blob: f11b36e6cdf2c86ac36ded4a3748280ad86be907 [file] [log] [blame]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait DebugBaseEventCallbacks_Impl: Sized + IDebugEventCallbacks_Impl {}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for DebugBaseEventCallbacks {}
#[cfg(feature = "Win32_Foundation")]
impl DebugBaseEventCallbacks_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: DebugBaseEventCallbacks_Impl, const OFFSET: isize>() -> DebugBaseEventCallbacks_Vtbl {
Self { base__: IDebugEventCallbacks_Vtbl::new::<Identity, Impl, OFFSET>() }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<DebugBaseEventCallbacks as ::windows::core::ComInterface>::IID || iid == &<IDebugEventCallbacks as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait DebugBaseEventCallbacksWide_Impl: Sized + IDebugEventCallbacksWide_Impl {}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for DebugBaseEventCallbacksWide {}
#[cfg(feature = "Win32_Foundation")]
impl DebugBaseEventCallbacksWide_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: DebugBaseEventCallbacksWide_Impl, const OFFSET: isize>() -> DebugBaseEventCallbacksWide_Vtbl {
Self { base__: IDebugEventCallbacksWide_Vtbl::new::<Identity, Impl, OFFSET>() }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<DebugBaseEventCallbacksWide as ::windows::core::ComInterface>::IID || iid == &<IDebugEventCallbacksWide as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait ICodeAddressConcept_Impl: Sized {
fn GetContainingSymbol(&self, pcontextobject: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<IDebugHostSymbol>;
}
impl ::windows::core::RuntimeName for ICodeAddressConcept {}
impl ICodeAddressConcept_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICodeAddressConcept_Impl, const OFFSET: isize>() -> ICodeAddressConcept_Vtbl {
unsafe extern "system" fn GetContainingSymbol<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: ICodeAddressConcept_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcontextobject: *mut ::core::ffi::c_void, ppsymbol: *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.GetContainingSymbol(::windows::core::from_raw_borrowed(&pcontextobject)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsymbol, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetContainingSymbol: GetContainingSymbol::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<ICodeAddressConcept as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IComparableConcept_Impl: Sized {
fn CompareObjects(&self, contextobject: ::core::option::Option<&IModelObject>, otherobject: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<i32>;
}
impl ::windows::core::RuntimeName for IComparableConcept {}
impl IComparableConcept_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IComparableConcept_Impl, const OFFSET: isize>() -> IComparableConcept_Vtbl {
unsafe extern "system" fn CompareObjects<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IComparableConcept_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, otherobject: *mut ::core::ffi::c_void, comparisonresult: *mut i32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CompareObjects(::windows::core::from_raw_borrowed(&contextobject), ::windows::core::from_raw_borrowed(&otherobject)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(comparisonresult, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), CompareObjects: CompareObjects::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IComparableConcept as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDataModelConcept_Impl: Sized {
fn InitializeObject(&self, modelobject: ::core::option::Option<&IModelObject>, matchingtypesignature: ::core::option::Option<&IDebugHostTypeSignature>, wildcardmatches: ::core::option::Option<&IDebugHostSymbolEnumerator>) -> ::windows::core::Result<()>;
fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR>;
}
impl ::windows::core::RuntimeName for IDataModelConcept {}
impl IDataModelConcept_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelConcept_Impl, const OFFSET: isize>() -> IDataModelConcept_Vtbl {
unsafe extern "system" fn InitializeObject<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelConcept_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, modelobject: *mut ::core::ffi::c_void, matchingtypesignature: *mut ::core::ffi::c_void, wildcardmatches: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InitializeObject(::windows::core::from_raw_borrowed(&modelobject), ::windows::core::from_raw_borrowed(&matchingtypesignature), ::windows::core::from_raw_borrowed(&wildcardmatches)).into()
}
unsafe extern "system" fn GetName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelConcept_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, modelname: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetName() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(modelname, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
InitializeObject: InitializeObject::<Identity, Impl, OFFSET>,
GetName: GetName::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDataModelConcept as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
pub trait IDataModelManager_Impl: Sized {
fn Close(&self) -> ::windows::core::Result<()>;
fn CreateNoValue(&self) -> ::windows::core::Result<IModelObject>;
fn CreateErrorObject(&self, hrerror: ::windows::core::HRESULT, pwszmessage: &::windows::core::PCWSTR) -> ::windows::core::Result<IModelObject>;
fn CreateTypedObject(&self, context: ::core::option::Option<&IDebugHostContext>, objectlocation: &Location, objecttype: ::core::option::Option<&IDebugHostType>) -> ::windows::core::Result<IModelObject>;
fn CreateTypedObjectReference(&self, context: ::core::option::Option<&IDebugHostContext>, objectlocation: &Location, objecttype: ::core::option::Option<&IDebugHostType>) -> ::windows::core::Result<IModelObject>;
fn CreateSyntheticObject(&self, context: ::core::option::Option<&IDebugHostContext>) -> ::windows::core::Result<IModelObject>;
fn CreateDataModelObject(&self, datamodel: ::core::option::Option<&IDataModelConcept>) -> ::windows::core::Result<IModelObject>;
fn CreateIntrinsicObject(&self, objectkind: ModelObjectKind, intrinsicdata: *const super::super::super::Com::VARIANT) -> ::windows::core::Result<IModelObject>;
fn CreateTypedIntrinsicObject(&self, intrinsicdata: *const super::super::super::Com::VARIANT, r#type: ::core::option::Option<&IDebugHostType>) -> ::windows::core::Result<IModelObject>;
fn GetModelForTypeSignature(&self, typesignature: ::core::option::Option<&IDebugHostTypeSignature>) -> ::windows::core::Result<IModelObject>;
fn GetModelForType(&self, r#type: ::core::option::Option<&IDebugHostType>, datamodel: *mut ::core::option::Option<IModelObject>, typesignature: *mut ::core::option::Option<IDebugHostTypeSignature>, wildcardmatches: *mut ::core::option::Option<IDebugHostSymbolEnumerator>) -> ::windows::core::Result<()>;
fn RegisterModelForTypeSignature(&self, typesignature: ::core::option::Option<&IDebugHostTypeSignature>, datamodel: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<()>;
fn UnregisterModelForTypeSignature(&self, datamodel: ::core::option::Option<&IModelObject>, typesignature: ::core::option::Option<&IDebugHostTypeSignature>) -> ::windows::core::Result<()>;
fn RegisterExtensionForTypeSignature(&self, typesignature: ::core::option::Option<&IDebugHostTypeSignature>, datamodel: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<()>;
fn UnregisterExtensionForTypeSignature(&self, datamodel: ::core::option::Option<&IModelObject>, typesignature: ::core::option::Option<&IDebugHostTypeSignature>) -> ::windows::core::Result<()>;
fn CreateMetadataStore(&self, parentstore: ::core::option::Option<&IKeyStore>) -> ::windows::core::Result<IKeyStore>;
fn GetRootNamespace(&self) -> ::windows::core::Result<IModelObject>;
fn RegisterNamedModel(&self, modelname: &::windows::core::PCWSTR, modeobject: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<()>;
fn UnregisterNamedModel(&self, modelname: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn AcquireNamedModel(&self, modelname: &::windows::core::PCWSTR) -> ::windows::core::Result<IModelObject>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
impl ::windows::core::RuntimeName for IDataModelManager {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
impl IDataModelManager_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_Impl, const OFFSET: isize>() -> IDataModelManager_Vtbl {
unsafe extern "system" fn Close<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_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.Close().into()
}
unsafe extern "system" fn CreateNoValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, object: *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.CreateNoValue() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(object, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateErrorObject<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hrerror: ::windows::core::HRESULT, pwszmessage: ::windows::core::PCWSTR, object: *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.CreateErrorObject(::core::mem::transmute_copy(&hrerror), ::core::mem::transmute(&pwszmessage)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(object, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateTypedObject<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, objectlocation: Location, objecttype: *mut ::core::ffi::c_void, object: *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.CreateTypedObject(::windows::core::from_raw_borrowed(&context), ::core::mem::transmute(&objectlocation), ::windows::core::from_raw_borrowed(&objecttype)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(object, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateTypedObjectReference<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, objectlocation: Location, objecttype: *mut ::core::ffi::c_void, object: *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.CreateTypedObjectReference(::windows::core::from_raw_borrowed(&context), ::core::mem::transmute(&objectlocation), ::windows::core::from_raw_borrowed(&objecttype)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(object, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateSyntheticObject<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, object: *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.CreateSyntheticObject(::windows::core::from_raw_borrowed(&context)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(object, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateDataModelObject<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, datamodel: *mut ::core::ffi::c_void, object: *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.CreateDataModelObject(::windows::core::from_raw_borrowed(&datamodel)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(object, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateIntrinsicObject<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, objectkind: ModelObjectKind, intrinsicdata: *const super::super::super::Com::VARIANT, object: *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.CreateIntrinsicObject(::core::mem::transmute_copy(&objectkind), ::core::mem::transmute_copy(&intrinsicdata)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(object, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateTypedIntrinsicObject<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, intrinsicdata: *const super::super::super::Com::VARIANT, r#type: *mut ::core::ffi::c_void, object: *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.CreateTypedIntrinsicObject(::core::mem::transmute_copy(&intrinsicdata), ::windows::core::from_raw_borrowed(&r#type)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(object, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetModelForTypeSignature<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, typesignature: *mut ::core::ffi::c_void, datamodel: *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.GetModelForTypeSignature(::windows::core::from_raw_borrowed(&typesignature)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(datamodel, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetModelForType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut ::core::ffi::c_void, datamodel: *mut *mut ::core::ffi::c_void, typesignature: *mut *mut ::core::ffi::c_void, wildcardmatches: *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.GetModelForType(::windows::core::from_raw_borrowed(&r#type), ::core::mem::transmute_copy(&datamodel), ::core::mem::transmute_copy(&typesignature), ::core::mem::transmute_copy(&wildcardmatches)).into()
}
unsafe extern "system" fn RegisterModelForTypeSignature<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, typesignature: *mut ::core::ffi::c_void, datamodel: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RegisterModelForTypeSignature(::windows::core::from_raw_borrowed(&typesignature), ::windows::core::from_raw_borrowed(&datamodel)).into()
}
unsafe extern "system" fn UnregisterModelForTypeSignature<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, datamodel: *mut ::core::ffi::c_void, typesignature: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnregisterModelForTypeSignature(::windows::core::from_raw_borrowed(&datamodel), ::windows::core::from_raw_borrowed(&typesignature)).into()
}
unsafe extern "system" fn RegisterExtensionForTypeSignature<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, typesignature: *mut ::core::ffi::c_void, datamodel: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RegisterExtensionForTypeSignature(::windows::core::from_raw_borrowed(&typesignature), ::windows::core::from_raw_borrowed(&datamodel)).into()
}
unsafe extern "system" fn UnregisterExtensionForTypeSignature<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, datamodel: *mut ::core::ffi::c_void, typesignature: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnregisterExtensionForTypeSignature(::windows::core::from_raw_borrowed(&datamodel), ::windows::core::from_raw_borrowed(&typesignature)).into()
}
unsafe extern "system" fn CreateMetadataStore<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, parentstore: *mut ::core::ffi::c_void, metadatastore: *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.CreateMetadataStore(::windows::core::from_raw_borrowed(&parentstore)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(metadatastore, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetRootNamespace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rootnamespace: *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.GetRootNamespace() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(rootnamespace, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RegisterNamedModel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, modelname: ::windows::core::PCWSTR, modeobject: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RegisterNamedModel(::core::mem::transmute(&modelname), ::windows::core::from_raw_borrowed(&modeobject)).into()
}
unsafe extern "system" fn UnregisterNamedModel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, modelname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnregisterNamedModel(::core::mem::transmute(&modelname)).into()
}
unsafe extern "system" fn AcquireNamedModel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, modelname: ::windows::core::PCWSTR, modelobject: *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.AcquireNamedModel(::core::mem::transmute(&modelname)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(modelobject, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Close: Close::<Identity, Impl, OFFSET>,
CreateNoValue: CreateNoValue::<Identity, Impl, OFFSET>,
CreateErrorObject: CreateErrorObject::<Identity, Impl, OFFSET>,
CreateTypedObject: CreateTypedObject::<Identity, Impl, OFFSET>,
CreateTypedObjectReference: CreateTypedObjectReference::<Identity, Impl, OFFSET>,
CreateSyntheticObject: CreateSyntheticObject::<Identity, Impl, OFFSET>,
CreateDataModelObject: CreateDataModelObject::<Identity, Impl, OFFSET>,
CreateIntrinsicObject: CreateIntrinsicObject::<Identity, Impl, OFFSET>,
CreateTypedIntrinsicObject: CreateTypedIntrinsicObject::<Identity, Impl, OFFSET>,
GetModelForTypeSignature: GetModelForTypeSignature::<Identity, Impl, OFFSET>,
GetModelForType: GetModelForType::<Identity, Impl, OFFSET>,
RegisterModelForTypeSignature: RegisterModelForTypeSignature::<Identity, Impl, OFFSET>,
UnregisterModelForTypeSignature: UnregisterModelForTypeSignature::<Identity, Impl, OFFSET>,
RegisterExtensionForTypeSignature: RegisterExtensionForTypeSignature::<Identity, Impl, OFFSET>,
UnregisterExtensionForTypeSignature: UnregisterExtensionForTypeSignature::<Identity, Impl, OFFSET>,
CreateMetadataStore: CreateMetadataStore::<Identity, Impl, OFFSET>,
GetRootNamespace: GetRootNamespace::<Identity, Impl, OFFSET>,
RegisterNamedModel: RegisterNamedModel::<Identity, Impl, OFFSET>,
UnregisterNamedModel: UnregisterNamedModel::<Identity, Impl, OFFSET>,
AcquireNamedModel: AcquireNamedModel::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDataModelManager as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
pub trait IDataModelManager2_Impl: Sized + IDataModelManager_Impl {
fn AcquireSubNamespace(&self, modelname: &::windows::core::PCWSTR, subnamespacemodelname: &::windows::core::PCWSTR, accessname: &::windows::core::PCWSTR, metadata: ::core::option::Option<&IKeyStore>) -> ::windows::core::Result<IModelObject>;
fn CreateTypedIntrinsicObjectEx(&self, context: ::core::option::Option<&IDebugHostContext>, intrinsicdata: *const super::super::super::Com::VARIANT, r#type: ::core::option::Option<&IDebugHostType>) -> ::windows::core::Result<IModelObject>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
impl ::windows::core::RuntimeName for IDataModelManager2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
impl IDataModelManager2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager2_Impl, const OFFSET: isize>() -> IDataModelManager2_Vtbl {
unsafe extern "system" fn AcquireSubNamespace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, modelname: ::windows::core::PCWSTR, subnamespacemodelname: ::windows::core::PCWSTR, accessname: ::windows::core::PCWSTR, metadata: *mut ::core::ffi::c_void, namespacemodelobject: *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.AcquireSubNamespace(::core::mem::transmute(&modelname), ::core::mem::transmute(&subnamespacemodelname), ::core::mem::transmute(&accessname), ::windows::core::from_raw_borrowed(&metadata)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(namespacemodelobject, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateTypedIntrinsicObjectEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelManager2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, intrinsicdata: *const super::super::super::Com::VARIANT, r#type: *mut ::core::ffi::c_void, object: *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.CreateTypedIntrinsicObjectEx(::windows::core::from_raw_borrowed(&context), ::core::mem::transmute_copy(&intrinsicdata), ::windows::core::from_raw_borrowed(&r#type)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(object, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IDataModelManager_Vtbl::new::<Identity, Impl, OFFSET>(),
AcquireSubNamespace: AcquireSubNamespace::<Identity, Impl, OFFSET>,
CreateTypedIntrinsicObjectEx: CreateTypedIntrinsicObjectEx::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDataModelManager2 as ::windows::core::ComInterface>::IID || iid == &<IDataModelManager as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDataModelNameBinder_Impl: Sized {
fn BindValue(&self, contextobject: ::core::option::Option<&IModelObject>, name: &::windows::core::PCWSTR, value: *mut ::core::option::Option<IModelObject>, metadata: *mut ::core::option::Option<IKeyStore>) -> ::windows::core::Result<()>;
fn BindReference(&self, contextobject: ::core::option::Option<&IModelObject>, name: &::windows::core::PCWSTR, reference: *mut ::core::option::Option<IModelObject>, metadata: *mut ::core::option::Option<IKeyStore>) -> ::windows::core::Result<()>;
fn EnumerateValues(&self, contextobject: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<IKeyEnumerator>;
fn EnumerateReferences(&self, contextobject: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<IKeyEnumerator>;
}
impl ::windows::core::RuntimeName for IDataModelNameBinder {}
impl IDataModelNameBinder_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelNameBinder_Impl, const OFFSET: isize>() -> IDataModelNameBinder_Vtbl {
unsafe extern "system" fn BindValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelNameBinder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, value: *mut *mut ::core::ffi::c_void, metadata: *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.BindValue(::windows::core::from_raw_borrowed(&contextobject), ::core::mem::transmute(&name), ::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&metadata)).into()
}
unsafe extern "system" fn BindReference<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelNameBinder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, reference: *mut *mut ::core::ffi::c_void, metadata: *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.BindReference(::windows::core::from_raw_borrowed(&contextobject), ::core::mem::transmute(&name), ::core::mem::transmute_copy(&reference), ::core::mem::transmute_copy(&metadata)).into()
}
unsafe extern "system" fn EnumerateValues<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelNameBinder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, enumerator: *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.EnumerateValues(::windows::core::from_raw_borrowed(&contextobject)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(enumerator, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumerateReferences<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelNameBinder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, enumerator: *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.EnumerateReferences(::windows::core::from_raw_borrowed(&contextobject)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(enumerator, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
BindValue: BindValue::<Identity, Impl, OFFSET>,
BindReference: BindReference::<Identity, Impl, OFFSET>,
EnumerateValues: EnumerateValues::<Identity, Impl, OFFSET>,
EnumerateReferences: EnumerateReferences::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDataModelNameBinder as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IDataModelScript_Impl: Sized {
fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR>;
fn Rename(&self, scriptname: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn Populate(&self, contentstream: ::core::option::Option<&super::super::super::Com::IStream>) -> ::windows::core::Result<()>;
fn Execute(&self, client: ::core::option::Option<&IDataModelScriptClient>) -> ::windows::core::Result<()>;
fn Unlink(&self) -> ::windows::core::Result<()>;
fn IsInvocable(&self) -> ::windows::core::Result<bool>;
fn InvokeMain(&self, client: ::core::option::Option<&IDataModelScriptClient>) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows::core::RuntimeName for IDataModelScript {}
#[cfg(feature = "Win32_System_Com")]
impl IDataModelScript_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScript_Impl, const OFFSET: isize>() -> IDataModelScript_Vtbl {
unsafe extern "system" fn GetName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScript_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, scriptname: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetName() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(scriptname, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Rename<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScript_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, scriptname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Rename(::core::mem::transmute(&scriptname)).into()
}
unsafe extern "system" fn Populate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScript_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contentstream: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Populate(::windows::core::from_raw_borrowed(&contentstream)).into()
}
unsafe extern "system" fn Execute<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScript_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Execute(::windows::core::from_raw_borrowed(&client)).into()
}
unsafe extern "system" fn Unlink<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScript_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.Unlink().into()
}
unsafe extern "system" fn IsInvocable<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScript_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, isinvocable: *mut bool) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsInvocable() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(isinvocable, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn InvokeMain<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScript_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InvokeMain(::windows::core::from_raw_borrowed(&client)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetName: GetName::<Identity, Impl, OFFSET>,
Rename: Rename::<Identity, Impl, OFFSET>,
Populate: Populate::<Identity, Impl, OFFSET>,
Execute: Execute::<Identity, Impl, OFFSET>,
Unlink: Unlink::<Identity, Impl, OFFSET>,
IsInvocable: IsInvocable::<Identity, Impl, OFFSET>,
InvokeMain: InvokeMain::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDataModelScript as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDataModelScriptClient_Impl: Sized {
fn ReportError(&self, errclass: ErrorClass, hrfail: ::windows::core::HRESULT, message: &::windows::core::PCWSTR, line: u32, position: u32) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDataModelScriptClient {}
impl IDataModelScriptClient_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptClient_Impl, const OFFSET: isize>() -> IDataModelScriptClient_Vtbl {
unsafe extern "system" fn ReportError<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, errclass: ErrorClass, hrfail: ::windows::core::HRESULT, message: ::windows::core::PCWSTR, line: u32, position: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReportError(::core::mem::transmute_copy(&errclass), ::core::mem::transmute_copy(&hrfail), ::core::mem::transmute(&message), ::core::mem::transmute_copy(&line), ::core::mem::transmute_copy(&position)).into()
}
Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), ReportError: ReportError::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDataModelScriptClient as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDataModelScriptDebug_Impl: Sized {
fn GetDebugState(&self) -> ScriptDebugState;
fn GetCurrentPosition(&self, currentposition: *mut ScriptDebugPosition, positionspanend: *mut ScriptDebugPosition, linetext: *mut ::windows::core::BSTR) -> ::windows::core::Result<()>;
fn GetStack(&self) -> ::windows::core::Result<IDataModelScriptDebugStack>;
fn SetBreakpoint(&self, lineposition: u32, columnposition: u32) -> ::windows::core::Result<IDataModelScriptDebugBreakpoint>;
fn FindBreakpointById(&self, breakpointid: u64) -> ::windows::core::Result<IDataModelScriptDebugBreakpoint>;
fn EnumerateBreakpoints(&self) -> ::windows::core::Result<IDataModelScriptDebugBreakpointEnumerator>;
fn GetEventFilter(&self, eventfilter: ScriptDebugEventFilter) -> ::windows::core::Result<bool>;
fn SetEventFilter(&self, eventfilter: ScriptDebugEventFilter, isbreakenabled: u8) -> ::windows::core::Result<()>;
fn StartDebugging(&self, debugclient: ::core::option::Option<&IDataModelScriptDebugClient>) -> ::windows::core::Result<()>;
fn StopDebugging(&self, debugclient: ::core::option::Option<&IDataModelScriptDebugClient>) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDataModelScriptDebug {}
impl IDataModelScriptDebug_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebug_Impl, const OFFSET: isize>() -> IDataModelScriptDebug_Vtbl {
unsafe extern "system" fn GetDebugState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebug_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ScriptDebugState {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDebugState()
}
unsafe extern "system" fn GetCurrentPosition<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebug_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, currentposition: *mut ScriptDebugPosition, positionspanend: *mut ScriptDebugPosition, linetext: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentPosition(::core::mem::transmute_copy(&currentposition), ::core::mem::transmute_copy(&positionspanend), ::core::mem::transmute_copy(&linetext)).into()
}
unsafe extern "system" fn GetStack<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebug_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, stack: *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.GetStack() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(stack, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetBreakpoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebug_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lineposition: u32, columnposition: u32, breakpoint: *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.SetBreakpoint(::core::mem::transmute_copy(&lineposition), ::core::mem::transmute_copy(&columnposition)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(breakpoint, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindBreakpointById<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebug_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, breakpointid: u64, breakpoint: *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.FindBreakpointById(::core::mem::transmute_copy(&breakpointid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(breakpoint, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumerateBreakpoints<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebug_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, breakpointenum: *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.EnumerateBreakpoints() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(breakpointenum, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetEventFilter<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebug_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, eventfilter: ScriptDebugEventFilter, isbreakenabled: *mut bool) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEventFilter(::core::mem::transmute_copy(&eventfilter)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(isbreakenabled, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEventFilter<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebug_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, eventfilter: ScriptDebugEventFilter, isbreakenabled: u8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventFilter(::core::mem::transmute_copy(&eventfilter), ::core::mem::transmute_copy(&isbreakenabled)).into()
}
unsafe extern "system" fn StartDebugging<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebug_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, debugclient: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartDebugging(::windows::core::from_raw_borrowed(&debugclient)).into()
}
unsafe extern "system" fn StopDebugging<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebug_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, debugclient: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StopDebugging(::windows::core::from_raw_borrowed(&debugclient)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetDebugState: GetDebugState::<Identity, Impl, OFFSET>,
GetCurrentPosition: GetCurrentPosition::<Identity, Impl, OFFSET>,
GetStack: GetStack::<Identity, Impl, OFFSET>,
SetBreakpoint: SetBreakpoint::<Identity, Impl, OFFSET>,
FindBreakpointById: FindBreakpointById::<Identity, Impl, OFFSET>,
EnumerateBreakpoints: EnumerateBreakpoints::<Identity, Impl, OFFSET>,
GetEventFilter: GetEventFilter::<Identity, Impl, OFFSET>,
SetEventFilter: SetEventFilter::<Identity, Impl, OFFSET>,
StartDebugging: StartDebugging::<Identity, Impl, OFFSET>,
StopDebugging: StopDebugging::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDataModelScriptDebug as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDataModelScriptDebug2_Impl: Sized + IDataModelScriptDebug_Impl {
fn SetBreakpointAtFunction(&self, functionname: &::windows::core::PCWSTR) -> ::windows::core::Result<IDataModelScriptDebugBreakpoint>;
}
impl ::windows::core::RuntimeName for IDataModelScriptDebug2 {}
impl IDataModelScriptDebug2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebug2_Impl, const OFFSET: isize>() -> IDataModelScriptDebug2_Vtbl {
unsafe extern "system" fn SetBreakpointAtFunction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebug2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, functionname: ::windows::core::PCWSTR, breakpoint: *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.SetBreakpointAtFunction(::core::mem::transmute(&functionname)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(breakpoint, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: IDataModelScriptDebug_Vtbl::new::<Identity, Impl, OFFSET>(), SetBreakpointAtFunction: SetBreakpointAtFunction::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDataModelScriptDebug2 as ::windows::core::ComInterface>::IID || iid == &<IDataModelScriptDebug as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDataModelScriptDebugBreakpoint_Impl: Sized {
fn GetId(&self) -> u64;
fn IsEnabled(&self) -> bool;
fn Enable(&self);
fn Disable(&self);
fn Remove(&self);
fn GetPosition(&self, position: *mut ScriptDebugPosition, positionspanend: *mut ScriptDebugPosition, linetext: *mut ::windows::core::BSTR) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDataModelScriptDebugBreakpoint {}
impl IDataModelScriptDebugBreakpoint_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugBreakpoint_Impl, const OFFSET: isize>() -> IDataModelScriptDebugBreakpoint_Vtbl {
unsafe extern "system" fn GetId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> u64 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetId()
}
unsafe extern "system" fn IsEnabled<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> bool {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsEnabled()
}
unsafe extern "system" fn Enable<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Enable()
}
unsafe extern "system" fn Disable<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Disable()
}
unsafe extern "system" fn Remove<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Remove()
}
unsafe extern "system" fn GetPosition<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, position: *mut ScriptDebugPosition, positionspanend: *mut ScriptDebugPosition, linetext: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPosition(::core::mem::transmute_copy(&position), ::core::mem::transmute_copy(&positionspanend), ::core::mem::transmute_copy(&linetext)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetId: GetId::<Identity, Impl, OFFSET>,
IsEnabled: IsEnabled::<Identity, Impl, OFFSET>,
Enable: Enable::<Identity, Impl, OFFSET>,
Disable: Disable::<Identity, Impl, OFFSET>,
Remove: Remove::<Identity, Impl, OFFSET>,
GetPosition: GetPosition::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDataModelScriptDebugBreakpoint as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDataModelScriptDebugBreakpointEnumerator_Impl: Sized {
fn Reset(&self) -> ::windows::core::Result<()>;
fn GetNext(&self) -> ::windows::core::Result<IDataModelScriptDebugBreakpoint>;
}
impl ::windows::core::RuntimeName for IDataModelScriptDebugBreakpointEnumerator {}
impl IDataModelScriptDebugBreakpointEnumerator_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugBreakpointEnumerator_Impl, const OFFSET: isize>() -> IDataModelScriptDebugBreakpointEnumerator_Vtbl {
unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugBreakpointEnumerator_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 GetNext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugBreakpointEnumerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, breakpoint: *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.GetNext() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(breakpoint, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Reset: Reset::<Identity, Impl, OFFSET>,
GetNext: GetNext::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDataModelScriptDebugBreakpointEnumerator as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDataModelScriptDebugClient_Impl: Sized {
fn NotifyDebugEvent(&self, peventinfo: *const ScriptDebugEventInformation, pscript: ::core::option::Option<&IDataModelScript>, peventdataobject: ::core::option::Option<&IModelObject>, resumeeventkind: *mut ScriptExecutionKind) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDataModelScriptDebugClient {}
impl IDataModelScriptDebugClient_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugClient_Impl, const OFFSET: isize>() -> IDataModelScriptDebugClient_Vtbl {
unsafe extern "system" fn NotifyDebugEvent<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, peventinfo: *const ScriptDebugEventInformation, pscript: *mut ::core::ffi::c_void, peventdataobject: *mut ::core::ffi::c_void, resumeeventkind: *mut ScriptExecutionKind) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NotifyDebugEvent(::core::mem::transmute_copy(&peventinfo), ::windows::core::from_raw_borrowed(&pscript), ::windows::core::from_raw_borrowed(&peventdataobject), ::core::mem::transmute_copy(&resumeeventkind)).into()
}
Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), NotifyDebugEvent: NotifyDebugEvent::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDataModelScriptDebugClient as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDataModelScriptDebugStack_Impl: Sized {
fn GetFrameCount(&self) -> u64;
fn GetStackFrame(&self, framenumber: u64) -> ::windows::core::Result<IDataModelScriptDebugStackFrame>;
}
impl ::windows::core::RuntimeName for IDataModelScriptDebugStack {}
impl IDataModelScriptDebugStack_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugStack_Impl, const OFFSET: isize>() -> IDataModelScriptDebugStack_Vtbl {
unsafe extern "system" fn GetFrameCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugStack_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> u64 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFrameCount()
}
unsafe extern "system" fn GetStackFrame<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugStack_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, framenumber: u64, stackframe: *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.GetStackFrame(::core::mem::transmute_copy(&framenumber)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(stackframe, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetFrameCount: GetFrameCount::<Identity, Impl, OFFSET>,
GetStackFrame: GetStackFrame::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDataModelScriptDebugStack as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDataModelScriptDebugStackFrame_Impl: Sized {
fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR>;
fn GetPosition(&self, position: *mut ScriptDebugPosition, positionspanend: *mut ScriptDebugPosition, linetext: *mut ::windows::core::BSTR) -> ::windows::core::Result<()>;
fn IsTransitionPoint(&self) -> ::windows::core::Result<bool>;
fn GetTransition(&self, transitionscript: *mut ::core::option::Option<IDataModelScript>, istransitioncontiguous: *mut bool) -> ::windows::core::Result<()>;
fn Evaluate(&self, pwszexpression: &::windows::core::PCWSTR) -> ::windows::core::Result<IModelObject>;
fn EnumerateLocals(&self) -> ::windows::core::Result<IDataModelScriptDebugVariableSetEnumerator>;
fn EnumerateArguments(&self) -> ::windows::core::Result<IDataModelScriptDebugVariableSetEnumerator>;
}
impl ::windows::core::RuntimeName for IDataModelScriptDebugStackFrame {}
impl IDataModelScriptDebugStackFrame_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugStackFrame_Impl, const OFFSET: isize>() -> IDataModelScriptDebugStackFrame_Vtbl {
unsafe extern "system" fn GetName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugStackFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetName() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(name, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetPosition<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugStackFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, position: *mut ScriptDebugPosition, positionspanend: *mut ScriptDebugPosition, linetext: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPosition(::core::mem::transmute_copy(&position), ::core::mem::transmute_copy(&positionspanend), ::core::mem::transmute_copy(&linetext)).into()
}
unsafe extern "system" fn IsTransitionPoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugStackFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, istransitionpoint: *mut bool) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsTransitionPoint() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(istransitionpoint, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTransition<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugStackFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, transitionscript: *mut *mut ::core::ffi::c_void, istransitioncontiguous: *mut bool) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTransition(::core::mem::transmute_copy(&transitionscript), ::core::mem::transmute_copy(&istransitioncontiguous)).into()
}
unsafe extern "system" fn Evaluate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugStackFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwszexpression: ::windows::core::PCWSTR, ppresult: *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.Evaluate(::core::mem::transmute(&pwszexpression)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppresult, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumerateLocals<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugStackFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, variablesenum: *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.EnumerateLocals() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(variablesenum, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumerateArguments<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugStackFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, variablesenum: *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.EnumerateArguments() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(variablesenum, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetName: GetName::<Identity, Impl, OFFSET>,
GetPosition: GetPosition::<Identity, Impl, OFFSET>,
IsTransitionPoint: IsTransitionPoint::<Identity, Impl, OFFSET>,
GetTransition: GetTransition::<Identity, Impl, OFFSET>,
Evaluate: Evaluate::<Identity, Impl, OFFSET>,
EnumerateLocals: EnumerateLocals::<Identity, Impl, OFFSET>,
EnumerateArguments: EnumerateArguments::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDataModelScriptDebugStackFrame as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDataModelScriptDebugVariableSetEnumerator_Impl: Sized {
fn Reset(&self) -> ::windows::core::Result<()>;
fn GetNext(&self, variablename: *mut ::windows::core::BSTR, variablevalue: *mut ::core::option::Option<IModelObject>, variablemetadata: *mut ::core::option::Option<IKeyStore>) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDataModelScriptDebugVariableSetEnumerator {}
impl IDataModelScriptDebugVariableSetEnumerator_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugVariableSetEnumerator_Impl, const OFFSET: isize>() -> IDataModelScriptDebugVariableSetEnumerator_Vtbl {
unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugVariableSetEnumerator_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 GetNext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptDebugVariableSetEnumerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, variablename: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>, variablevalue: *mut *mut ::core::ffi::c_void, variablemetadata: *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.GetNext(::core::mem::transmute_copy(&variablename), ::core::mem::transmute_copy(&variablevalue), ::core::mem::transmute_copy(&variablemetadata)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Reset: Reset::<Identity, Impl, OFFSET>,
GetNext: GetNext::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDataModelScriptDebugVariableSetEnumerator as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDataModelScriptHostContext_Impl: Sized {
fn NotifyScriptChange(&self, script: ::core::option::Option<&IDataModelScript>, changekind: ScriptChangeKind) -> ::windows::core::Result<()>;
fn GetNamespaceObject(&self) -> ::windows::core::Result<IModelObject>;
}
impl ::windows::core::RuntimeName for IDataModelScriptHostContext {}
impl IDataModelScriptHostContext_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptHostContext_Impl, const OFFSET: isize>() -> IDataModelScriptHostContext_Vtbl {
unsafe extern "system" fn NotifyScriptChange<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptHostContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, script: *mut ::core::ffi::c_void, changekind: ScriptChangeKind) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NotifyScriptChange(::windows::core::from_raw_borrowed(&script), ::core::mem::transmute_copy(&changekind)).into()
}
unsafe extern "system" fn GetNamespaceObject<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptHostContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, namespaceobject: *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.GetNamespaceObject() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(namespaceobject, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
NotifyScriptChange: NotifyScriptChange::<Identity, Impl, OFFSET>,
GetNamespaceObject: GetNamespaceObject::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDataModelScriptHostContext as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDataModelScriptManager_Impl: Sized {
fn GetDefaultNameBinder(&self) -> ::windows::core::Result<IDataModelNameBinder>;
fn RegisterScriptProvider(&self, provider: ::core::option::Option<&IDataModelScriptProvider>) -> ::windows::core::Result<()>;
fn UnregisterScriptProvider(&self, provider: ::core::option::Option<&IDataModelScriptProvider>) -> ::windows::core::Result<()>;
fn FindProviderForScriptType(&self, scripttype: &::windows::core::PCWSTR) -> ::windows::core::Result<IDataModelScriptProvider>;
fn FindProviderForScriptExtension(&self, scriptextension: &::windows::core::PCWSTR) -> ::windows::core::Result<IDataModelScriptProvider>;
fn EnumerateScriptProviders(&self) -> ::windows::core::Result<IDataModelScriptProviderEnumerator>;
}
impl ::windows::core::RuntimeName for IDataModelScriptManager {}
impl IDataModelScriptManager_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptManager_Impl, const OFFSET: isize>() -> IDataModelScriptManager_Vtbl {
unsafe extern "system" fn GetDefaultNameBinder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppnamebinder: *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.GetDefaultNameBinder() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppnamebinder, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RegisterScriptProvider<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, provider: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RegisterScriptProvider(::windows::core::from_raw_borrowed(&provider)).into()
}
unsafe extern "system" fn UnregisterScriptProvider<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, provider: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnregisterScriptProvider(::windows::core::from_raw_borrowed(&provider)).into()
}
unsafe extern "system" fn FindProviderForScriptType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, scripttype: ::windows::core::PCWSTR, provider: *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.FindProviderForScriptType(::core::mem::transmute(&scripttype)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(provider, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindProviderForScriptExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, scriptextension: ::windows::core::PCWSTR, provider: *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.FindProviderForScriptExtension(::core::mem::transmute(&scriptextension)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(provider, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumerateScriptProviders<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, enumerator: *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.EnumerateScriptProviders() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(enumerator, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetDefaultNameBinder: GetDefaultNameBinder::<Identity, Impl, OFFSET>,
RegisterScriptProvider: RegisterScriptProvider::<Identity, Impl, OFFSET>,
UnregisterScriptProvider: UnregisterScriptProvider::<Identity, Impl, OFFSET>,
FindProviderForScriptType: FindProviderForScriptType::<Identity, Impl, OFFSET>,
FindProviderForScriptExtension: FindProviderForScriptExtension::<Identity, Impl, OFFSET>,
EnumerateScriptProviders: EnumerateScriptProviders::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDataModelScriptManager as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDataModelScriptProvider_Impl: Sized {
fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR>;
fn GetExtension(&self) -> ::windows::core::Result<::windows::core::BSTR>;
fn CreateScript(&self) -> ::windows::core::Result<IDataModelScript>;
fn GetDefaultTemplateContent(&self) -> ::windows::core::Result<IDataModelScriptTemplate>;
fn EnumerateTemplates(&self) -> ::windows::core::Result<IDataModelScriptTemplateEnumerator>;
}
impl ::windows::core::RuntimeName for IDataModelScriptProvider {}
impl IDataModelScriptProvider_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptProvider_Impl, const OFFSET: isize>() -> IDataModelScriptProvider_Vtbl {
unsafe extern "system" fn GetName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetName() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(name, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, extension: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExtension() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(extension, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateScript<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, script: *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.CreateScript() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(script, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDefaultTemplateContent<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, templatecontent: *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.GetDefaultTemplateContent() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(templatecontent, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumerateTemplates<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, enumerator: *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.EnumerateTemplates() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(enumerator, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetName: GetName::<Identity, Impl, OFFSET>,
GetExtension: GetExtension::<Identity, Impl, OFFSET>,
CreateScript: CreateScript::<Identity, Impl, OFFSET>,
GetDefaultTemplateContent: GetDefaultTemplateContent::<Identity, Impl, OFFSET>,
EnumerateTemplates: EnumerateTemplates::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDataModelScriptProvider as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDataModelScriptProviderEnumerator_Impl: Sized {
fn Reset(&self) -> ::windows::core::Result<()>;
fn GetNext(&self) -> ::windows::core::Result<IDataModelScriptProvider>;
}
impl ::windows::core::RuntimeName for IDataModelScriptProviderEnumerator {}
impl IDataModelScriptProviderEnumerator_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptProviderEnumerator_Impl, const OFFSET: isize>() -> IDataModelScriptProviderEnumerator_Vtbl {
unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptProviderEnumerator_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 GetNext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptProviderEnumerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, provider: *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.GetNext() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(provider, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Reset: Reset::<Identity, Impl, OFFSET>,
GetNext: GetNext::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDataModelScriptProviderEnumerator as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IDataModelScriptTemplate_Impl: Sized {
fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR>;
fn GetDescription(&self) -> ::windows::core::Result<::windows::core::BSTR>;
fn GetContent(&self) -> ::windows::core::Result<super::super::super::Com::IStream>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows::core::RuntimeName for IDataModelScriptTemplate {}
#[cfg(feature = "Win32_System_Com")]
impl IDataModelScriptTemplate_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptTemplate_Impl, const OFFSET: isize>() -> IDataModelScriptTemplate_Vtbl {
unsafe extern "system" fn GetName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptTemplate_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, templatename: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetName() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(templatename, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptTemplate_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, templatedescription: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDescription() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(templatedescription, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetContent<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptTemplate_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contentstream: *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.GetContent() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(contentstream, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetName: GetName::<Identity, Impl, OFFSET>,
GetDescription: GetDescription::<Identity, Impl, OFFSET>,
GetContent: GetContent::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDataModelScriptTemplate as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDataModelScriptTemplateEnumerator_Impl: Sized {
fn Reset(&self) -> ::windows::core::Result<()>;
fn GetNext(&self) -> ::windows::core::Result<IDataModelScriptTemplate>;
}
impl ::windows::core::RuntimeName for IDataModelScriptTemplateEnumerator {}
impl IDataModelScriptTemplateEnumerator_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptTemplateEnumerator_Impl, const OFFSET: isize>() -> IDataModelScriptTemplateEnumerator_Vtbl {
unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptTemplateEnumerator_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 GetNext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDataModelScriptTemplateEnumerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, templatecontent: *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.GetNext() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(templatecontent, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Reset: Reset::<Identity, Impl, OFFSET>,
GetNext: GetNext::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDataModelScriptTemplateEnumerator as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugAdvanced_Impl: Sized {
fn GetThreadContext(&self, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
fn SetThreadContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugAdvanced {}
impl IDebugAdvanced_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced_Impl, const OFFSET: isize>() -> IDebugAdvanced_Vtbl {
unsafe extern "system" fn GetThreadContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::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(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
unsafe extern "system" fn SetThreadContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetThreadContext(::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetThreadContext: GetThreadContext::<Identity, Impl, OFFSET>,
SetThreadContext: SetThreadContext::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugAdvanced as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugAdvanced2_Impl: Sized {
fn GetThreadContext(&self, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
fn SetThreadContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
fn Request(&self, request: u32, inbuffer: *const ::core::ffi::c_void, inbuffersize: u32, outbuffer: *mut ::core::ffi::c_void, outbuffersize: u32, outsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceFileInformation(&self, which: u32, sourcefile: &::windows::core::PCSTR, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows::core::Result<()>;
fn FindSourceFileAndToken(&self, startelement: u32, modaddr: u64, file: &::windows::core::PCSTR, flags: u32, filetoken: *const ::core::ffi::c_void, filetokensize: u32, foundelement: *mut u32, buffer: ::windows::core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32, stringbuffer: ::windows::core::PSTR, stringbuffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSystemObjectInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugAdvanced2 {}
impl IDebugAdvanced2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced2_Impl, const OFFSET: isize>() -> IDebugAdvanced2_Vtbl {
unsafe extern "system" fn GetThreadContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::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(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
unsafe extern "system" fn SetThreadContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetThreadContext(::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
unsafe extern "system" fn Request<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, request: u32, inbuffer: *const ::core::ffi::c_void, inbuffersize: u32, outbuffer: *mut ::core::ffi::c_void, outbuffersize: u32, outsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Request(::core::mem::transmute_copy(&request), ::core::mem::transmute_copy(&inbuffer), ::core::mem::transmute_copy(&inbuffersize), ::core::mem::transmute_copy(&outbuffer), ::core::mem::transmute_copy(&outbuffersize), ::core::mem::transmute_copy(&outsize)).into()
}
unsafe extern "system" fn GetSourceFileInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, sourcefile: ::windows::core::PCSTR, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceFileInformation(::core::mem::transmute_copy(&which), ::core::mem::transmute(&sourcefile), ::core::mem::transmute_copy(&arg64), ::core::mem::transmute_copy(&arg32), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&infosize)).into()
}
unsafe extern "system" fn FindSourceFileAndToken<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startelement: u32, modaddr: u64, file: ::windows::core::PCSTR, flags: u32, filetoken: *const ::core::ffi::c_void, filetokensize: u32, foundelement: *mut u32, buffer: ::windows::core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FindSourceFileAndToken(::core::mem::transmute_copy(&startelement), ::core::mem::transmute_copy(&modaddr), ::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&filetoken), ::core::mem::transmute_copy(&filetokensize), ::core::mem::transmute_copy(&foundelement), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&foundsize)).into()
}
unsafe extern "system" fn GetSymbolInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32, stringbuffer: ::windows::core::PSTR, stringbuffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolInformation(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&arg64), ::core::mem::transmute_copy(&arg32), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&infosize), ::core::mem::transmute_copy(&stringbuffer), ::core::mem::transmute_copy(&stringbuffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetSystemObjectInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemObjectInformation(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&arg64), ::core::mem::transmute_copy(&arg32), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&infosize)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetThreadContext: GetThreadContext::<Identity, Impl, OFFSET>,
SetThreadContext: SetThreadContext::<Identity, Impl, OFFSET>,
Request: Request::<Identity, Impl, OFFSET>,
GetSourceFileInformation: GetSourceFileInformation::<Identity, Impl, OFFSET>,
FindSourceFileAndToken: FindSourceFileAndToken::<Identity, Impl, OFFSET>,
GetSymbolInformation: GetSymbolInformation::<Identity, Impl, OFFSET>,
GetSystemObjectInformation: GetSystemObjectInformation::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugAdvanced2 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugAdvanced3_Impl: Sized {
fn GetThreadContext(&self, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
fn SetThreadContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
fn Request(&self, request: u32, inbuffer: *const ::core::ffi::c_void, inbuffersize: u32, outbuffer: *mut ::core::ffi::c_void, outbuffersize: u32, outsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceFileInformation(&self, which: u32, sourcefile: &::windows::core::PCSTR, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows::core::Result<()>;
fn FindSourceFileAndToken(&self, startelement: u32, modaddr: u64, file: &::windows::core::PCSTR, flags: u32, filetoken: *const ::core::ffi::c_void, filetokensize: u32, foundelement: *mut u32, buffer: ::windows::core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32, stringbuffer: ::windows::core::PSTR, stringbuffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSystemObjectInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceFileInformationWide(&self, which: u32, sourcefile: &::windows::core::PCWSTR, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows::core::Result<()>;
fn FindSourceFileAndTokenWide(&self, startelement: u32, modaddr: u64, file: &::windows::core::PCWSTR, flags: u32, filetoken: *const ::core::ffi::c_void, filetokensize: u32, foundelement: *mut u32, buffer: ::windows::core::PWSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolInformationWide(&self, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32, stringbuffer: ::windows::core::PWSTR, stringbuffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugAdvanced3 {}
impl IDebugAdvanced3_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced3_Impl, const OFFSET: isize>() -> IDebugAdvanced3_Vtbl {
unsafe extern "system" fn GetThreadContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::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(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
unsafe extern "system" fn SetThreadContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetThreadContext(::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
unsafe extern "system" fn Request<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, request: u32, inbuffer: *const ::core::ffi::c_void, inbuffersize: u32, outbuffer: *mut ::core::ffi::c_void, outbuffersize: u32, outsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Request(::core::mem::transmute_copy(&request), ::core::mem::transmute_copy(&inbuffer), ::core::mem::transmute_copy(&inbuffersize), ::core::mem::transmute_copy(&outbuffer), ::core::mem::transmute_copy(&outbuffersize), ::core::mem::transmute_copy(&outsize)).into()
}
unsafe extern "system" fn GetSourceFileInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, sourcefile: ::windows::core::PCSTR, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceFileInformation(::core::mem::transmute_copy(&which), ::core::mem::transmute(&sourcefile), ::core::mem::transmute_copy(&arg64), ::core::mem::transmute_copy(&arg32), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&infosize)).into()
}
unsafe extern "system" fn FindSourceFileAndToken<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startelement: u32, modaddr: u64, file: ::windows::core::PCSTR, flags: u32, filetoken: *const ::core::ffi::c_void, filetokensize: u32, foundelement: *mut u32, buffer: ::windows::core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FindSourceFileAndToken(::core::mem::transmute_copy(&startelement), ::core::mem::transmute_copy(&modaddr), ::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&filetoken), ::core::mem::transmute_copy(&filetokensize), ::core::mem::transmute_copy(&foundelement), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&foundsize)).into()
}
unsafe extern "system" fn GetSymbolInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32, stringbuffer: ::windows::core::PSTR, stringbuffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolInformation(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&arg64), ::core::mem::transmute_copy(&arg32), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&infosize), ::core::mem::transmute_copy(&stringbuffer), ::core::mem::transmute_copy(&stringbuffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetSystemObjectInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemObjectInformation(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&arg64), ::core::mem::transmute_copy(&arg32), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&infosize)).into()
}
unsafe extern "system" fn GetSourceFileInformationWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, sourcefile: ::windows::core::PCWSTR, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceFileInformationWide(::core::mem::transmute_copy(&which), ::core::mem::transmute(&sourcefile), ::core::mem::transmute_copy(&arg64), ::core::mem::transmute_copy(&arg32), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&infosize)).into()
}
unsafe extern "system" fn FindSourceFileAndTokenWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startelement: u32, modaddr: u64, file: ::windows::core::PCWSTR, flags: u32, filetoken: *const ::core::ffi::c_void, filetokensize: u32, foundelement: *mut u32, buffer: ::windows::core::PWSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FindSourceFileAndTokenWide(::core::mem::transmute_copy(&startelement), ::core::mem::transmute_copy(&modaddr), ::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&filetoken), ::core::mem::transmute_copy(&filetokensize), ::core::mem::transmute_copy(&foundelement), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&foundsize)).into()
}
unsafe extern "system" fn GetSymbolInformationWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32, stringbuffer: ::windows::core::PWSTR, stringbuffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolInformationWide(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&arg64), ::core::mem::transmute_copy(&arg32), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&infosize), ::core::mem::transmute_copy(&stringbuffer), ::core::mem::transmute_copy(&stringbuffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetThreadContext: GetThreadContext::<Identity, Impl, OFFSET>,
SetThreadContext: SetThreadContext::<Identity, Impl, OFFSET>,
Request: Request::<Identity, Impl, OFFSET>,
GetSourceFileInformation: GetSourceFileInformation::<Identity, Impl, OFFSET>,
FindSourceFileAndToken: FindSourceFileAndToken::<Identity, Impl, OFFSET>,
GetSymbolInformation: GetSymbolInformation::<Identity, Impl, OFFSET>,
GetSystemObjectInformation: GetSystemObjectInformation::<Identity, Impl, OFFSET>,
GetSourceFileInformationWide: GetSourceFileInformationWide::<Identity, Impl, OFFSET>,
FindSourceFileAndTokenWide: FindSourceFileAndTokenWide::<Identity, Impl, OFFSET>,
GetSymbolInformationWide: GetSymbolInformationWide::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugAdvanced3 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugAdvanced4_Impl: Sized {
fn GetThreadContext(&self, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
fn SetThreadContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
fn Request(&self, request: u32, inbuffer: *const ::core::ffi::c_void, inbuffersize: u32, outbuffer: *mut ::core::ffi::c_void, outbuffersize: u32, outsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceFileInformation(&self, which: u32, sourcefile: &::windows::core::PCSTR, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows::core::Result<()>;
fn FindSourceFileAndToken(&self, startelement: u32, modaddr: u64, file: &::windows::core::PCSTR, flags: u32, filetoken: *const ::core::ffi::c_void, filetokensize: u32, foundelement: *mut u32, buffer: ::windows::core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32, stringbuffer: ::windows::core::PSTR, stringbuffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSystemObjectInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceFileInformationWide(&self, which: u32, sourcefile: &::windows::core::PCWSTR, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows::core::Result<()>;
fn FindSourceFileAndTokenWide(&self, startelement: u32, modaddr: u64, file: &::windows::core::PCWSTR, flags: u32, filetoken: *const ::core::ffi::c_void, filetokensize: u32, foundelement: *mut u32, buffer: ::windows::core::PWSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolInformationWide(&self, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32, stringbuffer: ::windows::core::PWSTR, stringbuffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolInformationWideEx(&self, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32, stringbuffer: ::windows::core::PWSTR, stringbuffersize: u32, stringsize: *mut u32, pinfoex: *mut SYMBOL_INFO_EX) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugAdvanced4 {}
impl IDebugAdvanced4_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced4_Impl, const OFFSET: isize>() -> IDebugAdvanced4_Vtbl {
unsafe extern "system" fn GetThreadContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::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(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
unsafe extern "system" fn SetThreadContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetThreadContext(::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
unsafe extern "system" fn Request<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, request: u32, inbuffer: *const ::core::ffi::c_void, inbuffersize: u32, outbuffer: *mut ::core::ffi::c_void, outbuffersize: u32, outsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Request(::core::mem::transmute_copy(&request), ::core::mem::transmute_copy(&inbuffer), ::core::mem::transmute_copy(&inbuffersize), ::core::mem::transmute_copy(&outbuffer), ::core::mem::transmute_copy(&outbuffersize), ::core::mem::transmute_copy(&outsize)).into()
}
unsafe extern "system" fn GetSourceFileInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, sourcefile: ::windows::core::PCSTR, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceFileInformation(::core::mem::transmute_copy(&which), ::core::mem::transmute(&sourcefile), ::core::mem::transmute_copy(&arg64), ::core::mem::transmute_copy(&arg32), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&infosize)).into()
}
unsafe extern "system" fn FindSourceFileAndToken<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startelement: u32, modaddr: u64, file: ::windows::core::PCSTR, flags: u32, filetoken: *const ::core::ffi::c_void, filetokensize: u32, foundelement: *mut u32, buffer: ::windows::core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FindSourceFileAndToken(::core::mem::transmute_copy(&startelement), ::core::mem::transmute_copy(&modaddr), ::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&filetoken), ::core::mem::transmute_copy(&filetokensize), ::core::mem::transmute_copy(&foundelement), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&foundsize)).into()
}
unsafe extern "system" fn GetSymbolInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32, stringbuffer: ::windows::core::PSTR, stringbuffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolInformation(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&arg64), ::core::mem::transmute_copy(&arg32), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&infosize), ::core::mem::transmute_copy(&stringbuffer), ::core::mem::transmute_copy(&stringbuffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetSystemObjectInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemObjectInformation(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&arg64), ::core::mem::transmute_copy(&arg32), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&infosize)).into()
}
unsafe extern "system" fn GetSourceFileInformationWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, sourcefile: ::windows::core::PCWSTR, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceFileInformationWide(::core::mem::transmute_copy(&which), ::core::mem::transmute(&sourcefile), ::core::mem::transmute_copy(&arg64), ::core::mem::transmute_copy(&arg32), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&infosize)).into()
}
unsafe extern "system" fn FindSourceFileAndTokenWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startelement: u32, modaddr: u64, file: ::windows::core::PCWSTR, flags: u32, filetoken: *const ::core::ffi::c_void, filetokensize: u32, foundelement: *mut u32, buffer: ::windows::core::PWSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FindSourceFileAndTokenWide(::core::mem::transmute_copy(&startelement), ::core::mem::transmute_copy(&modaddr), ::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&filetoken), ::core::mem::transmute_copy(&filetokensize), ::core::mem::transmute_copy(&foundelement), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&foundsize)).into()
}
unsafe extern "system" fn GetSymbolInformationWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32, stringbuffer: ::windows::core::PWSTR, stringbuffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolInformationWide(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&arg64), ::core::mem::transmute_copy(&arg32), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&infosize), ::core::mem::transmute_copy(&stringbuffer), ::core::mem::transmute_copy(&stringbuffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetSymbolInformationWideEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugAdvanced4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32, stringbuffer: ::windows::core::PWSTR, stringbuffersize: u32, stringsize: *mut u32, pinfoex: *mut SYMBOL_INFO_EX) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolInformationWideEx(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&arg64), ::core::mem::transmute_copy(&arg32), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&infosize), ::core::mem::transmute_copy(&stringbuffer), ::core::mem::transmute_copy(&stringbuffersize), ::core::mem::transmute_copy(&stringsize), ::core::mem::transmute_copy(&pinfoex)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetThreadContext: GetThreadContext::<Identity, Impl, OFFSET>,
SetThreadContext: SetThreadContext::<Identity, Impl, OFFSET>,
Request: Request::<Identity, Impl, OFFSET>,
GetSourceFileInformation: GetSourceFileInformation::<Identity, Impl, OFFSET>,
FindSourceFileAndToken: FindSourceFileAndToken::<Identity, Impl, OFFSET>,
GetSymbolInformation: GetSymbolInformation::<Identity, Impl, OFFSET>,
GetSystemObjectInformation: GetSystemObjectInformation::<Identity, Impl, OFFSET>,
GetSourceFileInformationWide: GetSourceFileInformationWide::<Identity, Impl, OFFSET>,
FindSourceFileAndTokenWide: FindSourceFileAndTokenWide::<Identity, Impl, OFFSET>,
GetSymbolInformationWide: GetSymbolInformationWide::<Identity, Impl, OFFSET>,
GetSymbolInformationWideEx: GetSymbolInformationWideEx::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugAdvanced4 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugBreakpoint_Impl: Sized {
fn GetId(&self) -> ::windows::core::Result<u32>;
fn GetType(&self, breaktype: *mut u32, proctype: *mut u32) -> ::windows::core::Result<()>;
fn GetAdder(&self) -> ::windows::core::Result<IDebugClient>;
fn GetFlags(&self) -> ::windows::core::Result<u32>;
fn AddFlags(&self, flags: u32) -> ::windows::core::Result<()>;
fn RemoveFlags(&self, flags: u32) -> ::windows::core::Result<()>;
fn SetFlags(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetOffset(&self) -> ::windows::core::Result<u64>;
fn SetOffset(&self, offset: u64) -> ::windows::core::Result<()>;
fn GetDataParameters(&self, size: *mut u32, accesstype: *mut u32) -> ::windows::core::Result<()>;
fn SetDataParameters(&self, size: u32, accesstype: u32) -> ::windows::core::Result<()>;
fn GetPassCount(&self) -> ::windows::core::Result<u32>;
fn SetPassCount(&self, count: u32) -> ::windows::core::Result<()>;
fn GetCurrentPassCount(&self) -> ::windows::core::Result<u32>;
fn GetMatchThreadId(&self) -> ::windows::core::Result<u32>;
fn SetMatchThreadId(&self, thread: u32) -> ::windows::core::Result<()>;
fn GetCommand(&self, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetCommand(&self, command: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetOffsetExpression(&self, buffer: ::windows::core::PSTR, buffersize: u32, expressionsize: *mut u32) -> ::windows::core::Result<()>;
fn SetOffsetExpression(&self, expression: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetParameters(&self, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugBreakpoint {}
impl IDebugBreakpoint_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_Impl, const OFFSET: isize>() -> IDebugBreakpoint_Vtbl {
unsafe extern "system" fn GetId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, breaktype: *mut u32, proctype: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetType(::core::mem::transmute_copy(&breaktype), ::core::mem::transmute_copy(&proctype)).into()
}
unsafe extern "system" fn GetAdder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, adder: *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.GetAdder() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(adder, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(flags, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_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.AddFlags(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn RemoveFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_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.RemoveFlags(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn SetFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_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.SetFlags(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOffset(::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn GetDataParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, size: *mut u32, accesstype: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDataParameters(::core::mem::transmute_copy(&size), ::core::mem::transmute_copy(&accesstype)).into()
}
unsafe extern "system" fn SetDataParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, size: u32, accesstype: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDataParameters(::core::mem::transmute_copy(&size), ::core::mem::transmute_copy(&accesstype)).into()
}
unsafe extern "system" fn GetPassCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPassCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetPassCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPassCount(::core::mem::transmute_copy(&count)).into()
}
unsafe extern "system" fn GetCurrentPassCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentPassCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetMatchThreadId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMatchThreadId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetMatchThreadId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, thread: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMatchThreadId(::core::mem::transmute_copy(&thread)).into()
}
unsafe extern "system" fn GetCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCommand(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCommand(::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn GetOffsetExpression<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, expressionsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOffsetExpression(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&expressionsize)).into()
}
unsafe extern "system" fn SetOffsetExpression<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOffsetExpression(::core::mem::transmute(&expression)).into()
}
unsafe extern "system" fn GetParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetParameters(::core::mem::transmute_copy(&params)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetId: GetId::<Identity, Impl, OFFSET>,
GetType: GetType::<Identity, Impl, OFFSET>,
GetAdder: GetAdder::<Identity, Impl, OFFSET>,
GetFlags: GetFlags::<Identity, Impl, OFFSET>,
AddFlags: AddFlags::<Identity, Impl, OFFSET>,
RemoveFlags: RemoveFlags::<Identity, Impl, OFFSET>,
SetFlags: SetFlags::<Identity, Impl, OFFSET>,
GetOffset: GetOffset::<Identity, Impl, OFFSET>,
SetOffset: SetOffset::<Identity, Impl, OFFSET>,
GetDataParameters: GetDataParameters::<Identity, Impl, OFFSET>,
SetDataParameters: SetDataParameters::<Identity, Impl, OFFSET>,
GetPassCount: GetPassCount::<Identity, Impl, OFFSET>,
SetPassCount: SetPassCount::<Identity, Impl, OFFSET>,
GetCurrentPassCount: GetCurrentPassCount::<Identity, Impl, OFFSET>,
GetMatchThreadId: GetMatchThreadId::<Identity, Impl, OFFSET>,
SetMatchThreadId: SetMatchThreadId::<Identity, Impl, OFFSET>,
GetCommand: GetCommand::<Identity, Impl, OFFSET>,
SetCommand: SetCommand::<Identity, Impl, OFFSET>,
GetOffsetExpression: GetOffsetExpression::<Identity, Impl, OFFSET>,
SetOffsetExpression: SetOffsetExpression::<Identity, Impl, OFFSET>,
GetParameters: GetParameters::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugBreakpoint as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugBreakpoint2_Impl: Sized {
fn GetId(&self) -> ::windows::core::Result<u32>;
fn GetType(&self, breaktype: *mut u32, proctype: *mut u32) -> ::windows::core::Result<()>;
fn GetAdder(&self) -> ::windows::core::Result<IDebugClient>;
fn GetFlags(&self) -> ::windows::core::Result<u32>;
fn AddFlags(&self, flags: u32) -> ::windows::core::Result<()>;
fn RemoveFlags(&self, flags: u32) -> ::windows::core::Result<()>;
fn SetFlags(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetOffset(&self) -> ::windows::core::Result<u64>;
fn SetOffset(&self, offset: u64) -> ::windows::core::Result<()>;
fn GetDataParameters(&self, size: *mut u32, accesstype: *mut u32) -> ::windows::core::Result<()>;
fn SetDataParameters(&self, size: u32, accesstype: u32) -> ::windows::core::Result<()>;
fn GetPassCount(&self) -> ::windows::core::Result<u32>;
fn SetPassCount(&self, count: u32) -> ::windows::core::Result<()>;
fn GetCurrentPassCount(&self) -> ::windows::core::Result<u32>;
fn GetMatchThreadId(&self) -> ::windows::core::Result<u32>;
fn SetMatchThreadId(&self, thread: u32) -> ::windows::core::Result<()>;
fn GetCommand(&self, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetCommand(&self, command: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetOffsetExpression(&self, buffer: ::windows::core::PSTR, buffersize: u32, expressionsize: *mut u32) -> ::windows::core::Result<()>;
fn SetOffsetExpression(&self, expression: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetParameters(&self, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()>;
fn GetCommandWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetCommandWide(&self, command: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetOffsetExpressionWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, expressionsize: *mut u32) -> ::windows::core::Result<()>;
fn SetOffsetExpressionWide(&self, expression: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugBreakpoint2 {}
impl IDebugBreakpoint2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>() -> IDebugBreakpoint2_Vtbl {
unsafe extern "system" fn GetId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, breaktype: *mut u32, proctype: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetType(::core::mem::transmute_copy(&breaktype), ::core::mem::transmute_copy(&proctype)).into()
}
unsafe extern "system" fn GetAdder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, adder: *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.GetAdder() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(adder, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(flags, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_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.AddFlags(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn RemoveFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_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.RemoveFlags(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn SetFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_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.SetFlags(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOffset(::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn GetDataParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, size: *mut u32, accesstype: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDataParameters(::core::mem::transmute_copy(&size), ::core::mem::transmute_copy(&accesstype)).into()
}
unsafe extern "system" fn SetDataParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, size: u32, accesstype: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDataParameters(::core::mem::transmute_copy(&size), ::core::mem::transmute_copy(&accesstype)).into()
}
unsafe extern "system" fn GetPassCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPassCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetPassCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPassCount(::core::mem::transmute_copy(&count)).into()
}
unsafe extern "system" fn GetCurrentPassCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentPassCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetMatchThreadId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMatchThreadId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetMatchThreadId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, thread: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMatchThreadId(::core::mem::transmute_copy(&thread)).into()
}
unsafe extern "system" fn GetCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCommand(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCommand(::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn GetOffsetExpression<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, expressionsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOffsetExpression(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&expressionsize)).into()
}
unsafe extern "system" fn SetOffsetExpression<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOffsetExpression(::core::mem::transmute(&expression)).into()
}
unsafe extern "system" fn GetParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetParameters(::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetCommandWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCommandWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetCommandWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, command: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCommandWide(::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn GetOffsetExpressionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, expressionsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOffsetExpressionWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&expressionsize)).into()
}
unsafe extern "system" fn SetOffsetExpressionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOffsetExpressionWide(::core::mem::transmute(&expression)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetId: GetId::<Identity, Impl, OFFSET>,
GetType: GetType::<Identity, Impl, OFFSET>,
GetAdder: GetAdder::<Identity, Impl, OFFSET>,
GetFlags: GetFlags::<Identity, Impl, OFFSET>,
AddFlags: AddFlags::<Identity, Impl, OFFSET>,
RemoveFlags: RemoveFlags::<Identity, Impl, OFFSET>,
SetFlags: SetFlags::<Identity, Impl, OFFSET>,
GetOffset: GetOffset::<Identity, Impl, OFFSET>,
SetOffset: SetOffset::<Identity, Impl, OFFSET>,
GetDataParameters: GetDataParameters::<Identity, Impl, OFFSET>,
SetDataParameters: SetDataParameters::<Identity, Impl, OFFSET>,
GetPassCount: GetPassCount::<Identity, Impl, OFFSET>,
SetPassCount: SetPassCount::<Identity, Impl, OFFSET>,
GetCurrentPassCount: GetCurrentPassCount::<Identity, Impl, OFFSET>,
GetMatchThreadId: GetMatchThreadId::<Identity, Impl, OFFSET>,
SetMatchThreadId: SetMatchThreadId::<Identity, Impl, OFFSET>,
GetCommand: GetCommand::<Identity, Impl, OFFSET>,
SetCommand: SetCommand::<Identity, Impl, OFFSET>,
GetOffsetExpression: GetOffsetExpression::<Identity, Impl, OFFSET>,
SetOffsetExpression: SetOffsetExpression::<Identity, Impl, OFFSET>,
GetParameters: GetParameters::<Identity, Impl, OFFSET>,
GetCommandWide: GetCommandWide::<Identity, Impl, OFFSET>,
SetCommandWide: SetCommandWide::<Identity, Impl, OFFSET>,
GetOffsetExpressionWide: GetOffsetExpressionWide::<Identity, Impl, OFFSET>,
SetOffsetExpressionWide: SetOffsetExpressionWide::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugBreakpoint2 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugBreakpoint3_Impl: Sized {
fn GetId(&self) -> ::windows::core::Result<u32>;
fn GetType(&self, breaktype: *mut u32, proctype: *mut u32) -> ::windows::core::Result<()>;
fn GetAdder(&self) -> ::windows::core::Result<IDebugClient>;
fn GetFlags(&self) -> ::windows::core::Result<u32>;
fn AddFlags(&self, flags: u32) -> ::windows::core::Result<()>;
fn RemoveFlags(&self, flags: u32) -> ::windows::core::Result<()>;
fn SetFlags(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetOffset(&self) -> ::windows::core::Result<u64>;
fn SetOffset(&self, offset: u64) -> ::windows::core::Result<()>;
fn GetDataParameters(&self, size: *mut u32, accesstype: *mut u32) -> ::windows::core::Result<()>;
fn SetDataParameters(&self, size: u32, accesstype: u32) -> ::windows::core::Result<()>;
fn GetPassCount(&self) -> ::windows::core::Result<u32>;
fn SetPassCount(&self, count: u32) -> ::windows::core::Result<()>;
fn GetCurrentPassCount(&self) -> ::windows::core::Result<u32>;
fn GetMatchThreadId(&self) -> ::windows::core::Result<u32>;
fn SetMatchThreadId(&self, thread: u32) -> ::windows::core::Result<()>;
fn GetCommand(&self, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetCommand(&self, command: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetOffsetExpression(&self, buffer: ::windows::core::PSTR, buffersize: u32, expressionsize: *mut u32) -> ::windows::core::Result<()>;
fn SetOffsetExpression(&self, expression: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetParameters(&self, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()>;
fn GetCommandWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetCommandWide(&self, command: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetOffsetExpressionWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, expressionsize: *mut u32) -> ::windows::core::Result<()>;
fn SetOffsetExpressionWide(&self, expression: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetGuid(&self) -> ::windows::core::Result<::windows::core::GUID>;
}
impl ::windows::core::RuntimeName for IDebugBreakpoint3 {}
impl IDebugBreakpoint3_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>() -> IDebugBreakpoint3_Vtbl {
unsafe extern "system" fn GetId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, breaktype: *mut u32, proctype: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetType(::core::mem::transmute_copy(&breaktype), ::core::mem::transmute_copy(&proctype)).into()
}
unsafe extern "system" fn GetAdder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, adder: *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.GetAdder() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(adder, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(flags, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_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.AddFlags(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn RemoveFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_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.RemoveFlags(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn SetFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_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.SetFlags(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOffset(::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn GetDataParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, size: *mut u32, accesstype: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDataParameters(::core::mem::transmute_copy(&size), ::core::mem::transmute_copy(&accesstype)).into()
}
unsafe extern "system" fn SetDataParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, size: u32, accesstype: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDataParameters(::core::mem::transmute_copy(&size), ::core::mem::transmute_copy(&accesstype)).into()
}
unsafe extern "system" fn GetPassCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPassCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetPassCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPassCount(::core::mem::transmute_copy(&count)).into()
}
unsafe extern "system" fn GetCurrentPassCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentPassCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetMatchThreadId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMatchThreadId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetMatchThreadId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, thread: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMatchThreadId(::core::mem::transmute_copy(&thread)).into()
}
unsafe extern "system" fn GetCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCommand(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCommand(::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn GetOffsetExpression<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, expressionsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOffsetExpression(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&expressionsize)).into()
}
unsafe extern "system" fn SetOffsetExpression<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOffsetExpression(::core::mem::transmute(&expression)).into()
}
unsafe extern "system" fn GetParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetParameters(::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetCommandWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCommandWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetCommandWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, command: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCommandWide(::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn GetOffsetExpressionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, expressionsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOffsetExpressionWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&expressionsize)).into()
}
unsafe extern "system" fn SetOffsetExpressionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOffsetExpressionWide(::core::mem::transmute(&expression)).into()
}
unsafe extern "system" fn GetGuid<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugBreakpoint3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guid: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetGuid() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(guid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetId: GetId::<Identity, Impl, OFFSET>,
GetType: GetType::<Identity, Impl, OFFSET>,
GetAdder: GetAdder::<Identity, Impl, OFFSET>,
GetFlags: GetFlags::<Identity, Impl, OFFSET>,
AddFlags: AddFlags::<Identity, Impl, OFFSET>,
RemoveFlags: RemoveFlags::<Identity, Impl, OFFSET>,
SetFlags: SetFlags::<Identity, Impl, OFFSET>,
GetOffset: GetOffset::<Identity, Impl, OFFSET>,
SetOffset: SetOffset::<Identity, Impl, OFFSET>,
GetDataParameters: GetDataParameters::<Identity, Impl, OFFSET>,
SetDataParameters: SetDataParameters::<Identity, Impl, OFFSET>,
GetPassCount: GetPassCount::<Identity, Impl, OFFSET>,
SetPassCount: SetPassCount::<Identity, Impl, OFFSET>,
GetCurrentPassCount: GetCurrentPassCount::<Identity, Impl, OFFSET>,
GetMatchThreadId: GetMatchThreadId::<Identity, Impl, OFFSET>,
SetMatchThreadId: SetMatchThreadId::<Identity, Impl, OFFSET>,
GetCommand: GetCommand::<Identity, Impl, OFFSET>,
SetCommand: SetCommand::<Identity, Impl, OFFSET>,
GetOffsetExpression: GetOffsetExpression::<Identity, Impl, OFFSET>,
SetOffsetExpression: SetOffsetExpression::<Identity, Impl, OFFSET>,
GetParameters: GetParameters::<Identity, Impl, OFFSET>,
GetCommandWide: GetCommandWide::<Identity, Impl, OFFSET>,
SetCommandWide: SetCommandWide::<Identity, Impl, OFFSET>,
GetOffsetExpressionWide: GetOffsetExpressionWide::<Identity, Impl, OFFSET>,
SetOffsetExpressionWide: SetOffsetExpressionWide::<Identity, Impl, OFFSET>,
GetGuid: GetGuid::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugBreakpoint3 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugClient_Impl: Sized {
fn AttachKernel(&self, flags: u32, connectoptions: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetKernelConnectionOptions(&self, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::Result<()>;
fn SetKernelConnectionOptions(&self, options: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn StartProcessServer(&self, flags: u32, options: &::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::Result<()>;
fn ConnectProcessServer(&self, remoteoptions: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIds(&self, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIdByExecutableName(&self, server: u64, exename: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<u32>;
fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::Result<()>;
fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessA(&self, server: u64, commandline: &::windows::core::PCSTR, createflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessAndAttach(&self, server: u64, commandline: &::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn GetProcessOptions(&self) -> ::windows::core::Result<u32>;
fn AddProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn OpenDumpFile(&self, dumpfile: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn WriteDumpFile(&self, dumpfile: &::windows::core::PCSTR, qualifier: u32) -> ::windows::core::Result<()>;
fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows::core::Result<()>;
fn StartServer(&self, options: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputServers(&self, outputcontrol: u32, machine: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn TerminateProcesses(&self) -> ::windows::core::Result<()>;
fn DetachProcesses(&self) -> ::windows::core::Result<()>;
fn EndSession(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetExitCode(&self) -> ::windows::core::Result<u32>;
fn DispatchCallbacks(&self, timeout: u32) -> ::windows::core::Result<()>;
fn ExitDispatch(&self, client: ::core::option::Option<&IDebugClient>) -> ::windows::core::Result<()>;
fn CreateClient(&self) -> ::windows::core::Result<IDebugClient>;
fn GetInputCallbacks(&self) -> ::windows::core::Result<IDebugInputCallbacks>;
fn SetInputCallbacks(&self, callbacks: ::core::option::Option<&IDebugInputCallbacks>) -> ::windows::core::Result<()>;
fn GetOutputCallbacks(&self) -> ::windows::core::Result<IDebugOutputCallbacks>;
fn SetOutputCallbacks(&self, callbacks: ::core::option::Option<&IDebugOutputCallbacks>) -> ::windows::core::Result<()>;
fn GetOutputMask(&self) -> ::windows::core::Result<u32>;
fn SetOutputMask(&self, mask: u32) -> ::windows::core::Result<()>;
fn GetOtherOutputMask(&self, client: ::core::option::Option<&IDebugClient>) -> ::windows::core::Result<u32>;
fn SetOtherOutputMask(&self, client: ::core::option::Option<&IDebugClient>, mask: u32) -> ::windows::core::Result<()>;
fn GetOutputWidth(&self) -> ::windows::core::Result<u32>;
fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()>;
fn GetOutputLinePrefix(&self, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::Result<()>;
fn SetOutputLinePrefix(&self, prefix: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetIdentity(&self, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::Result<()>;
fn OutputIdentity(&self, outputcontrol: u32, flags: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetEventCallbacks(&self) -> ::windows::core::Result<IDebugEventCallbacks>;
fn SetEventCallbacks(&self, callbacks: ::core::option::Option<&IDebugEventCallbacks>) -> ::windows::core::Result<()>;
fn FlushCallbacks(&self) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugClient {}
impl IDebugClient_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>() -> IDebugClient_Vtbl {
unsafe extern "system" fn AttachKernel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttachKernel(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&connectoptions)).into()
}
unsafe extern "system" fn GetKernelConnectionOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetKernelConnectionOptions(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&optionssize)).into()
}
unsafe extern "system" fn SetKernelConnectionOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKernelConnectionOptions(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn StartProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartProcessServer(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&options), ::core::mem::transmute_copy(&reserved)).into()
}
unsafe extern "system" fn ConnectProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCSTR, server: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ConnectProcessServer(::core::mem::transmute(&remoteoptions)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(server, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DisconnectProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DisconnectProcessServer(::core::mem::transmute_copy(&server)).into()
}
unsafe extern "system" fn GetRunningProcessSystemIds<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessSystemIds(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&actualcount)).into()
}
unsafe extern "system" fn GetRunningProcessSystemIdByExecutableName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRunningProcessSystemIdByExecutableName(::core::mem::transmute_copy(&server), ::core::mem::transmute(&exename), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetRunningProcessDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessDescription(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&systemid), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&exename), ::core::mem::transmute_copy(&exenamesize), ::core::mem::transmute_copy(&actualexenamesize), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&actualdescriptionsize)).into()
}
unsafe extern "system" fn AttachProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttachProcess(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn CreateProcessA<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessA(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags)).into()
}
unsafe extern "system" fn CreateProcessAndAttach<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttach(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn GetProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn OpenDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenDumpFile(::core::mem::transmute(&dumpfile)).into()
}
unsafe extern "system" fn WriteDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteDumpFile(::core::mem::transmute(&dumpfile), ::core::mem::transmute_copy(&qualifier)).into()
}
unsafe extern "system" fn ConnectSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ConnectSession(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&historylimit)).into()
}
unsafe extern "system" fn StartServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartServer(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn OutputServers<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputServers(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&machine), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn TerminateProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_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.TerminateProcesses().into()
}
unsafe extern "system" fn DetachProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_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.DetachProcesses().into()
}
unsafe extern "system" fn EndSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_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.EndSession(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetExitCode<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExitCode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(code, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DispatchCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DispatchCallbacks(::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn ExitDispatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExitDispatch(::windows::core::from_raw_borrowed(&client)).into()
}
unsafe extern "system" fn CreateClient<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *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.CreateClient() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(client, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetInputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetInputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetInputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetInputCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn GetOutputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetOutputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn GetOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOutputMask() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputMask(::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn GetOtherOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOtherOutputMask(::windows::core::from_raw_borrowed(&client)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOtherOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOtherOutputMask(::windows::core::from_raw_borrowed(&client), ::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn GetOutputWidth<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOutputWidth() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(columns, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputWidth<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputWidth(::core::mem::transmute_copy(&columns)).into()
}
unsafe extern "system" fn GetOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOutputLinePrefix(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&prefixsize)).into()
}
unsafe extern "system" fn SetOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputLinePrefix(::core::mem::transmute(&prefix)).into()
}
unsafe extern "system" fn GetIdentity<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIdentity(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&identitysize)).into()
}
unsafe extern "system" fn OutputIdentity<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputIdentity(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn GetEventCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetEventCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEventCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn FlushCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient_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.FlushCallbacks().into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AttachKernel: AttachKernel::<Identity, Impl, OFFSET>,
GetKernelConnectionOptions: GetKernelConnectionOptions::<Identity, Impl, OFFSET>,
SetKernelConnectionOptions: SetKernelConnectionOptions::<Identity, Impl, OFFSET>,
StartProcessServer: StartProcessServer::<Identity, Impl, OFFSET>,
ConnectProcessServer: ConnectProcessServer::<Identity, Impl, OFFSET>,
DisconnectProcessServer: DisconnectProcessServer::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIds: GetRunningProcessSystemIds::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIdByExecutableName: GetRunningProcessSystemIdByExecutableName::<Identity, Impl, OFFSET>,
GetRunningProcessDescription: GetRunningProcessDescription::<Identity, Impl, OFFSET>,
AttachProcess: AttachProcess::<Identity, Impl, OFFSET>,
CreateProcessA: CreateProcessA::<Identity, Impl, OFFSET>,
CreateProcessAndAttach: CreateProcessAndAttach::<Identity, Impl, OFFSET>,
GetProcessOptions: GetProcessOptions::<Identity, Impl, OFFSET>,
AddProcessOptions: AddProcessOptions::<Identity, Impl, OFFSET>,
RemoveProcessOptions: RemoveProcessOptions::<Identity, Impl, OFFSET>,
SetProcessOptions: SetProcessOptions::<Identity, Impl, OFFSET>,
OpenDumpFile: OpenDumpFile::<Identity, Impl, OFFSET>,
WriteDumpFile: WriteDumpFile::<Identity, Impl, OFFSET>,
ConnectSession: ConnectSession::<Identity, Impl, OFFSET>,
StartServer: StartServer::<Identity, Impl, OFFSET>,
OutputServers: OutputServers::<Identity, Impl, OFFSET>,
TerminateProcesses: TerminateProcesses::<Identity, Impl, OFFSET>,
DetachProcesses: DetachProcesses::<Identity, Impl, OFFSET>,
EndSession: EndSession::<Identity, Impl, OFFSET>,
GetExitCode: GetExitCode::<Identity, Impl, OFFSET>,
DispatchCallbacks: DispatchCallbacks::<Identity, Impl, OFFSET>,
ExitDispatch: ExitDispatch::<Identity, Impl, OFFSET>,
CreateClient: CreateClient::<Identity, Impl, OFFSET>,
GetInputCallbacks: GetInputCallbacks::<Identity, Impl, OFFSET>,
SetInputCallbacks: SetInputCallbacks::<Identity, Impl, OFFSET>,
GetOutputCallbacks: GetOutputCallbacks::<Identity, Impl, OFFSET>,
SetOutputCallbacks: SetOutputCallbacks::<Identity, Impl, OFFSET>,
GetOutputMask: GetOutputMask::<Identity, Impl, OFFSET>,
SetOutputMask: SetOutputMask::<Identity, Impl, OFFSET>,
GetOtherOutputMask: GetOtherOutputMask::<Identity, Impl, OFFSET>,
SetOtherOutputMask: SetOtherOutputMask::<Identity, Impl, OFFSET>,
GetOutputWidth: GetOutputWidth::<Identity, Impl, OFFSET>,
SetOutputWidth: SetOutputWidth::<Identity, Impl, OFFSET>,
GetOutputLinePrefix: GetOutputLinePrefix::<Identity, Impl, OFFSET>,
SetOutputLinePrefix: SetOutputLinePrefix::<Identity, Impl, OFFSET>,
GetIdentity: GetIdentity::<Identity, Impl, OFFSET>,
OutputIdentity: OutputIdentity::<Identity, Impl, OFFSET>,
GetEventCallbacks: GetEventCallbacks::<Identity, Impl, OFFSET>,
SetEventCallbacks: SetEventCallbacks::<Identity, Impl, OFFSET>,
FlushCallbacks: FlushCallbacks::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugClient as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugClient2_Impl: Sized {
fn AttachKernel(&self, flags: u32, connectoptions: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetKernelConnectionOptions(&self, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::Result<()>;
fn SetKernelConnectionOptions(&self, options: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn StartProcessServer(&self, flags: u32, options: &::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::Result<()>;
fn ConnectProcessServer(&self, remoteoptions: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIds(&self, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIdByExecutableName(&self, server: u64, exename: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<u32>;
fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::Result<()>;
fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessA(&self, server: u64, commandline: &::windows::core::PCSTR, createflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessAndAttach(&self, server: u64, commandline: &::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn GetProcessOptions(&self) -> ::windows::core::Result<u32>;
fn AddProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn OpenDumpFile(&self, dumpfile: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn WriteDumpFile(&self, dumpfile: &::windows::core::PCSTR, qualifier: u32) -> ::windows::core::Result<()>;
fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows::core::Result<()>;
fn StartServer(&self, options: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputServers(&self, outputcontrol: u32, machine: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn TerminateProcesses(&self) -> ::windows::core::Result<()>;
fn DetachProcesses(&self) -> ::windows::core::Result<()>;
fn EndSession(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetExitCode(&self) -> ::windows::core::Result<u32>;
fn DispatchCallbacks(&self, timeout: u32) -> ::windows::core::Result<()>;
fn ExitDispatch(&self, client: ::core::option::Option<&IDebugClient>) -> ::windows::core::Result<()>;
fn CreateClient(&self) -> ::windows::core::Result<IDebugClient>;
fn GetInputCallbacks(&self) -> ::windows::core::Result<IDebugInputCallbacks>;
fn SetInputCallbacks(&self, callbacks: ::core::option::Option<&IDebugInputCallbacks>) -> ::windows::core::Result<()>;
fn GetOutputCallbacks(&self) -> ::windows::core::Result<IDebugOutputCallbacks>;
fn SetOutputCallbacks(&self, callbacks: ::core::option::Option<&IDebugOutputCallbacks>) -> ::windows::core::Result<()>;
fn GetOutputMask(&self) -> ::windows::core::Result<u32>;
fn SetOutputMask(&self, mask: u32) -> ::windows::core::Result<()>;
fn GetOtherOutputMask(&self, client: ::core::option::Option<&IDebugClient>) -> ::windows::core::Result<u32>;
fn SetOtherOutputMask(&self, client: ::core::option::Option<&IDebugClient>, mask: u32) -> ::windows::core::Result<()>;
fn GetOutputWidth(&self) -> ::windows::core::Result<u32>;
fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()>;
fn GetOutputLinePrefix(&self, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::Result<()>;
fn SetOutputLinePrefix(&self, prefix: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetIdentity(&self, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::Result<()>;
fn OutputIdentity(&self, outputcontrol: u32, flags: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetEventCallbacks(&self) -> ::windows::core::Result<IDebugEventCallbacks>;
fn SetEventCallbacks(&self, callbacks: ::core::option::Option<&IDebugEventCallbacks>) -> ::windows::core::Result<()>;
fn FlushCallbacks(&self) -> ::windows::core::Result<()>;
fn WriteDumpFile2(&self, dumpfile: &::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AddDumpInformationFile(&self, infofile: &::windows::core::PCSTR, r#type: u32) -> ::windows::core::Result<()>;
fn EndProcessServer(&self, server: u64) -> ::windows::core::Result<()>;
fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows::core::Result<()>;
fn IsKernelDebuggerEnabled(&self) -> ::windows::core::Result<()>;
fn TerminateCurrentProcess(&self) -> ::windows::core::Result<()>;
fn DetachCurrentProcess(&self) -> ::windows::core::Result<()>;
fn AbandonCurrentProcess(&self) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugClient2 {}
impl IDebugClient2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>() -> IDebugClient2_Vtbl {
unsafe extern "system" fn AttachKernel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttachKernel(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&connectoptions)).into()
}
unsafe extern "system" fn GetKernelConnectionOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetKernelConnectionOptions(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&optionssize)).into()
}
unsafe extern "system" fn SetKernelConnectionOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKernelConnectionOptions(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn StartProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartProcessServer(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&options), ::core::mem::transmute_copy(&reserved)).into()
}
unsafe extern "system" fn ConnectProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCSTR, server: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ConnectProcessServer(::core::mem::transmute(&remoteoptions)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(server, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DisconnectProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DisconnectProcessServer(::core::mem::transmute_copy(&server)).into()
}
unsafe extern "system" fn GetRunningProcessSystemIds<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessSystemIds(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&actualcount)).into()
}
unsafe extern "system" fn GetRunningProcessSystemIdByExecutableName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRunningProcessSystemIdByExecutableName(::core::mem::transmute_copy(&server), ::core::mem::transmute(&exename), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetRunningProcessDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessDescription(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&systemid), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&exename), ::core::mem::transmute_copy(&exenamesize), ::core::mem::transmute_copy(&actualexenamesize), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&actualdescriptionsize)).into()
}
unsafe extern "system" fn AttachProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttachProcess(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn CreateProcessA<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessA(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags)).into()
}
unsafe extern "system" fn CreateProcessAndAttach<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttach(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn GetProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn OpenDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenDumpFile(::core::mem::transmute(&dumpfile)).into()
}
unsafe extern "system" fn WriteDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteDumpFile(::core::mem::transmute(&dumpfile), ::core::mem::transmute_copy(&qualifier)).into()
}
unsafe extern "system" fn ConnectSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ConnectSession(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&historylimit)).into()
}
unsafe extern "system" fn StartServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartServer(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn OutputServers<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputServers(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&machine), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn TerminateProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_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.TerminateProcesses().into()
}
unsafe extern "system" fn DetachProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_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.DetachProcesses().into()
}
unsafe extern "system" fn EndSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_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.EndSession(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetExitCode<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExitCode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(code, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DispatchCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DispatchCallbacks(::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn ExitDispatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExitDispatch(::windows::core::from_raw_borrowed(&client)).into()
}
unsafe extern "system" fn CreateClient<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *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.CreateClient() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(client, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetInputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetInputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetInputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetInputCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn GetOutputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetOutputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn GetOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOutputMask() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputMask(::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn GetOtherOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOtherOutputMask(::windows::core::from_raw_borrowed(&client)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOtherOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOtherOutputMask(::windows::core::from_raw_borrowed(&client), ::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn GetOutputWidth<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOutputWidth() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(columns, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputWidth<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputWidth(::core::mem::transmute_copy(&columns)).into()
}
unsafe extern "system" fn GetOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOutputLinePrefix(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&prefixsize)).into()
}
unsafe extern "system" fn SetOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputLinePrefix(::core::mem::transmute(&prefix)).into()
}
unsafe extern "system" fn GetIdentity<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIdentity(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&identitysize)).into()
}
unsafe extern "system" fn OutputIdentity<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputIdentity(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn GetEventCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetEventCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEventCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn FlushCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_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.FlushCallbacks().into()
}
unsafe extern "system" fn WriteDumpFile2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteDumpFile2(::core::mem::transmute(&dumpfile), ::core::mem::transmute_copy(&qualifier), ::core::mem::transmute_copy(&formatflags), ::core::mem::transmute(&comment)).into()
}
unsafe extern "system" fn AddDumpInformationFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, infofile: ::windows::core::PCSTR, r#type: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddDumpInformationFile(::core::mem::transmute(&infofile), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn EndProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndProcessServer(::core::mem::transmute_copy(&server)).into()
}
unsafe extern "system" fn WaitForProcessServerEnd<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WaitForProcessServerEnd(::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn IsKernelDebuggerEnabled<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_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.IsKernelDebuggerEnabled().into()
}
unsafe extern "system" fn TerminateCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_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.TerminateCurrentProcess().into()
}
unsafe extern "system" fn DetachCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_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.DetachCurrentProcess().into()
}
unsafe extern "system" fn AbandonCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient2_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.AbandonCurrentProcess().into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AttachKernel: AttachKernel::<Identity, Impl, OFFSET>,
GetKernelConnectionOptions: GetKernelConnectionOptions::<Identity, Impl, OFFSET>,
SetKernelConnectionOptions: SetKernelConnectionOptions::<Identity, Impl, OFFSET>,
StartProcessServer: StartProcessServer::<Identity, Impl, OFFSET>,
ConnectProcessServer: ConnectProcessServer::<Identity, Impl, OFFSET>,
DisconnectProcessServer: DisconnectProcessServer::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIds: GetRunningProcessSystemIds::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIdByExecutableName: GetRunningProcessSystemIdByExecutableName::<Identity, Impl, OFFSET>,
GetRunningProcessDescription: GetRunningProcessDescription::<Identity, Impl, OFFSET>,
AttachProcess: AttachProcess::<Identity, Impl, OFFSET>,
CreateProcessA: CreateProcessA::<Identity, Impl, OFFSET>,
CreateProcessAndAttach: CreateProcessAndAttach::<Identity, Impl, OFFSET>,
GetProcessOptions: GetProcessOptions::<Identity, Impl, OFFSET>,
AddProcessOptions: AddProcessOptions::<Identity, Impl, OFFSET>,
RemoveProcessOptions: RemoveProcessOptions::<Identity, Impl, OFFSET>,
SetProcessOptions: SetProcessOptions::<Identity, Impl, OFFSET>,
OpenDumpFile: OpenDumpFile::<Identity, Impl, OFFSET>,
WriteDumpFile: WriteDumpFile::<Identity, Impl, OFFSET>,
ConnectSession: ConnectSession::<Identity, Impl, OFFSET>,
StartServer: StartServer::<Identity, Impl, OFFSET>,
OutputServers: OutputServers::<Identity, Impl, OFFSET>,
TerminateProcesses: TerminateProcesses::<Identity, Impl, OFFSET>,
DetachProcesses: DetachProcesses::<Identity, Impl, OFFSET>,
EndSession: EndSession::<Identity, Impl, OFFSET>,
GetExitCode: GetExitCode::<Identity, Impl, OFFSET>,
DispatchCallbacks: DispatchCallbacks::<Identity, Impl, OFFSET>,
ExitDispatch: ExitDispatch::<Identity, Impl, OFFSET>,
CreateClient: CreateClient::<Identity, Impl, OFFSET>,
GetInputCallbacks: GetInputCallbacks::<Identity, Impl, OFFSET>,
SetInputCallbacks: SetInputCallbacks::<Identity, Impl, OFFSET>,
GetOutputCallbacks: GetOutputCallbacks::<Identity, Impl, OFFSET>,
SetOutputCallbacks: SetOutputCallbacks::<Identity, Impl, OFFSET>,
GetOutputMask: GetOutputMask::<Identity, Impl, OFFSET>,
SetOutputMask: SetOutputMask::<Identity, Impl, OFFSET>,
GetOtherOutputMask: GetOtherOutputMask::<Identity, Impl, OFFSET>,
SetOtherOutputMask: SetOtherOutputMask::<Identity, Impl, OFFSET>,
GetOutputWidth: GetOutputWidth::<Identity, Impl, OFFSET>,
SetOutputWidth: SetOutputWidth::<Identity, Impl, OFFSET>,
GetOutputLinePrefix: GetOutputLinePrefix::<Identity, Impl, OFFSET>,
SetOutputLinePrefix: SetOutputLinePrefix::<Identity, Impl, OFFSET>,
GetIdentity: GetIdentity::<Identity, Impl, OFFSET>,
OutputIdentity: OutputIdentity::<Identity, Impl, OFFSET>,
GetEventCallbacks: GetEventCallbacks::<Identity, Impl, OFFSET>,
SetEventCallbacks: SetEventCallbacks::<Identity, Impl, OFFSET>,
FlushCallbacks: FlushCallbacks::<Identity, Impl, OFFSET>,
WriteDumpFile2: WriteDumpFile2::<Identity, Impl, OFFSET>,
AddDumpInformationFile: AddDumpInformationFile::<Identity, Impl, OFFSET>,
EndProcessServer: EndProcessServer::<Identity, Impl, OFFSET>,
WaitForProcessServerEnd: WaitForProcessServerEnd::<Identity, Impl, OFFSET>,
IsKernelDebuggerEnabled: IsKernelDebuggerEnabled::<Identity, Impl, OFFSET>,
TerminateCurrentProcess: TerminateCurrentProcess::<Identity, Impl, OFFSET>,
DetachCurrentProcess: DetachCurrentProcess::<Identity, Impl, OFFSET>,
AbandonCurrentProcess: AbandonCurrentProcess::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugClient2 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugClient3_Impl: Sized {
fn AttachKernel(&self, flags: u32, connectoptions: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetKernelConnectionOptions(&self, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::Result<()>;
fn SetKernelConnectionOptions(&self, options: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn StartProcessServer(&self, flags: u32, options: &::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::Result<()>;
fn ConnectProcessServer(&self, remoteoptions: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIds(&self, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIdByExecutableName(&self, server: u64, exename: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<u32>;
fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::Result<()>;
fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessA(&self, server: u64, commandline: &::windows::core::PCSTR, createflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessAndAttach(&self, server: u64, commandline: &::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn GetProcessOptions(&self) -> ::windows::core::Result<u32>;
fn AddProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn OpenDumpFile(&self, dumpfile: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn WriteDumpFile(&self, dumpfile: &::windows::core::PCSTR, qualifier: u32) -> ::windows::core::Result<()>;
fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows::core::Result<()>;
fn StartServer(&self, options: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputServers(&self, outputcontrol: u32, machine: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn TerminateProcesses(&self) -> ::windows::core::Result<()>;
fn DetachProcesses(&self) -> ::windows::core::Result<()>;
fn EndSession(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetExitCode(&self) -> ::windows::core::Result<u32>;
fn DispatchCallbacks(&self, timeout: u32) -> ::windows::core::Result<()>;
fn ExitDispatch(&self, client: ::core::option::Option<&IDebugClient>) -> ::windows::core::Result<()>;
fn CreateClient(&self) -> ::windows::core::Result<IDebugClient>;
fn GetInputCallbacks(&self) -> ::windows::core::Result<IDebugInputCallbacks>;
fn SetInputCallbacks(&self, callbacks: ::core::option::Option<&IDebugInputCallbacks>) -> ::windows::core::Result<()>;
fn GetOutputCallbacks(&self) -> ::windows::core::Result<IDebugOutputCallbacks>;
fn SetOutputCallbacks(&self, callbacks: ::core::option::Option<&IDebugOutputCallbacks>) -> ::windows::core::Result<()>;
fn GetOutputMask(&self) -> ::windows::core::Result<u32>;
fn SetOutputMask(&self, mask: u32) -> ::windows::core::Result<()>;
fn GetOtherOutputMask(&self, client: ::core::option::Option<&IDebugClient>) -> ::windows::core::Result<u32>;
fn SetOtherOutputMask(&self, client: ::core::option::Option<&IDebugClient>, mask: u32) -> ::windows::core::Result<()>;
fn GetOutputWidth(&self) -> ::windows::core::Result<u32>;
fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()>;
fn GetOutputLinePrefix(&self, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::Result<()>;
fn SetOutputLinePrefix(&self, prefix: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetIdentity(&self, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::Result<()>;
fn OutputIdentity(&self, outputcontrol: u32, flags: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetEventCallbacks(&self) -> ::windows::core::Result<IDebugEventCallbacks>;
fn SetEventCallbacks(&self, callbacks: ::core::option::Option<&IDebugEventCallbacks>) -> ::windows::core::Result<()>;
fn FlushCallbacks(&self) -> ::windows::core::Result<()>;
fn WriteDumpFile2(&self, dumpfile: &::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AddDumpInformationFile(&self, infofile: &::windows::core::PCSTR, r#type: u32) -> ::windows::core::Result<()>;
fn EndProcessServer(&self, server: u64) -> ::windows::core::Result<()>;
fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows::core::Result<()>;
fn IsKernelDebuggerEnabled(&self) -> ::windows::core::Result<()>;
fn TerminateCurrentProcess(&self) -> ::windows::core::Result<()>;
fn DetachCurrentProcess(&self) -> ::windows::core::Result<()>;
fn AbandonCurrentProcess(&self) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIdByExecutableNameWide(&self, server: u64, exename: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<u32>;
fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PWSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PWSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::Result<()>;
fn CreateProcessWide(&self, server: u64, commandline: &::windows::core::PCWSTR, createflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessAndAttachWide(&self, server: u64, commandline: &::windows::core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugClient3 {}
impl IDebugClient3_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>() -> IDebugClient3_Vtbl {
unsafe extern "system" fn AttachKernel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttachKernel(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&connectoptions)).into()
}
unsafe extern "system" fn GetKernelConnectionOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetKernelConnectionOptions(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&optionssize)).into()
}
unsafe extern "system" fn SetKernelConnectionOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKernelConnectionOptions(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn StartProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartProcessServer(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&options), ::core::mem::transmute_copy(&reserved)).into()
}
unsafe extern "system" fn ConnectProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCSTR, server: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ConnectProcessServer(::core::mem::transmute(&remoteoptions)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(server, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DisconnectProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DisconnectProcessServer(::core::mem::transmute_copy(&server)).into()
}
unsafe extern "system" fn GetRunningProcessSystemIds<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessSystemIds(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&actualcount)).into()
}
unsafe extern "system" fn GetRunningProcessSystemIdByExecutableName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRunningProcessSystemIdByExecutableName(::core::mem::transmute_copy(&server), ::core::mem::transmute(&exename), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetRunningProcessDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessDescription(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&systemid), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&exename), ::core::mem::transmute_copy(&exenamesize), ::core::mem::transmute_copy(&actualexenamesize), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&actualdescriptionsize)).into()
}
unsafe extern "system" fn AttachProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttachProcess(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn CreateProcessA<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessA(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags)).into()
}
unsafe extern "system" fn CreateProcessAndAttach<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttach(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn GetProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn OpenDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenDumpFile(::core::mem::transmute(&dumpfile)).into()
}
unsafe extern "system" fn WriteDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteDumpFile(::core::mem::transmute(&dumpfile), ::core::mem::transmute_copy(&qualifier)).into()
}
unsafe extern "system" fn ConnectSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ConnectSession(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&historylimit)).into()
}
unsafe extern "system" fn StartServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartServer(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn OutputServers<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputServers(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&machine), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn TerminateProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_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.TerminateProcesses().into()
}
unsafe extern "system" fn DetachProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_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.DetachProcesses().into()
}
unsafe extern "system" fn EndSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_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.EndSession(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetExitCode<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExitCode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(code, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DispatchCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DispatchCallbacks(::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn ExitDispatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExitDispatch(::windows::core::from_raw_borrowed(&client)).into()
}
unsafe extern "system" fn CreateClient<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *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.CreateClient() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(client, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetInputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetInputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetInputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetInputCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn GetOutputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetOutputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn GetOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOutputMask() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputMask(::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn GetOtherOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOtherOutputMask(::windows::core::from_raw_borrowed(&client)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOtherOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOtherOutputMask(::windows::core::from_raw_borrowed(&client), ::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn GetOutputWidth<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOutputWidth() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(columns, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputWidth<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputWidth(::core::mem::transmute_copy(&columns)).into()
}
unsafe extern "system" fn GetOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOutputLinePrefix(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&prefixsize)).into()
}
unsafe extern "system" fn SetOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputLinePrefix(::core::mem::transmute(&prefix)).into()
}
unsafe extern "system" fn GetIdentity<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIdentity(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&identitysize)).into()
}
unsafe extern "system" fn OutputIdentity<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputIdentity(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn GetEventCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetEventCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEventCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn FlushCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_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.FlushCallbacks().into()
}
unsafe extern "system" fn WriteDumpFile2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteDumpFile2(::core::mem::transmute(&dumpfile), ::core::mem::transmute_copy(&qualifier), ::core::mem::transmute_copy(&formatflags), ::core::mem::transmute(&comment)).into()
}
unsafe extern "system" fn AddDumpInformationFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, infofile: ::windows::core::PCSTR, r#type: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddDumpInformationFile(::core::mem::transmute(&infofile), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn EndProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndProcessServer(::core::mem::transmute_copy(&server)).into()
}
unsafe extern "system" fn WaitForProcessServerEnd<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WaitForProcessServerEnd(::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn IsKernelDebuggerEnabled<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_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.IsKernelDebuggerEnabled().into()
}
unsafe extern "system" fn TerminateCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_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.TerminateCurrentProcess().into()
}
unsafe extern "system" fn DetachCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_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.DetachCurrentProcess().into()
}
unsafe extern "system" fn AbandonCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_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.AbandonCurrentProcess().into()
}
unsafe extern "system" fn GetRunningProcessSystemIdByExecutableNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCWSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRunningProcessSystemIdByExecutableNameWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&exename), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetRunningProcessDescriptionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PWSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PWSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessDescriptionWide(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&systemid), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&exename), ::core::mem::transmute_copy(&exenamesize), ::core::mem::transmute_copy(&actualexenamesize), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&actualdescriptionsize)).into()
}
unsafe extern "system" fn CreateProcessWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags)).into()
}
unsafe extern "system" fn CreateProcessAndAttachWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttachWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AttachKernel: AttachKernel::<Identity, Impl, OFFSET>,
GetKernelConnectionOptions: GetKernelConnectionOptions::<Identity, Impl, OFFSET>,
SetKernelConnectionOptions: SetKernelConnectionOptions::<Identity, Impl, OFFSET>,
StartProcessServer: StartProcessServer::<Identity, Impl, OFFSET>,
ConnectProcessServer: ConnectProcessServer::<Identity, Impl, OFFSET>,
DisconnectProcessServer: DisconnectProcessServer::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIds: GetRunningProcessSystemIds::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIdByExecutableName: GetRunningProcessSystemIdByExecutableName::<Identity, Impl, OFFSET>,
GetRunningProcessDescription: GetRunningProcessDescription::<Identity, Impl, OFFSET>,
AttachProcess: AttachProcess::<Identity, Impl, OFFSET>,
CreateProcessA: CreateProcessA::<Identity, Impl, OFFSET>,
CreateProcessAndAttach: CreateProcessAndAttach::<Identity, Impl, OFFSET>,
GetProcessOptions: GetProcessOptions::<Identity, Impl, OFFSET>,
AddProcessOptions: AddProcessOptions::<Identity, Impl, OFFSET>,
RemoveProcessOptions: RemoveProcessOptions::<Identity, Impl, OFFSET>,
SetProcessOptions: SetProcessOptions::<Identity, Impl, OFFSET>,
OpenDumpFile: OpenDumpFile::<Identity, Impl, OFFSET>,
WriteDumpFile: WriteDumpFile::<Identity, Impl, OFFSET>,
ConnectSession: ConnectSession::<Identity, Impl, OFFSET>,
StartServer: StartServer::<Identity, Impl, OFFSET>,
OutputServers: OutputServers::<Identity, Impl, OFFSET>,
TerminateProcesses: TerminateProcesses::<Identity, Impl, OFFSET>,
DetachProcesses: DetachProcesses::<Identity, Impl, OFFSET>,
EndSession: EndSession::<Identity, Impl, OFFSET>,
GetExitCode: GetExitCode::<Identity, Impl, OFFSET>,
DispatchCallbacks: DispatchCallbacks::<Identity, Impl, OFFSET>,
ExitDispatch: ExitDispatch::<Identity, Impl, OFFSET>,
CreateClient: CreateClient::<Identity, Impl, OFFSET>,
GetInputCallbacks: GetInputCallbacks::<Identity, Impl, OFFSET>,
SetInputCallbacks: SetInputCallbacks::<Identity, Impl, OFFSET>,
GetOutputCallbacks: GetOutputCallbacks::<Identity, Impl, OFFSET>,
SetOutputCallbacks: SetOutputCallbacks::<Identity, Impl, OFFSET>,
GetOutputMask: GetOutputMask::<Identity, Impl, OFFSET>,
SetOutputMask: SetOutputMask::<Identity, Impl, OFFSET>,
GetOtherOutputMask: GetOtherOutputMask::<Identity, Impl, OFFSET>,
SetOtherOutputMask: SetOtherOutputMask::<Identity, Impl, OFFSET>,
GetOutputWidth: GetOutputWidth::<Identity, Impl, OFFSET>,
SetOutputWidth: SetOutputWidth::<Identity, Impl, OFFSET>,
GetOutputLinePrefix: GetOutputLinePrefix::<Identity, Impl, OFFSET>,
SetOutputLinePrefix: SetOutputLinePrefix::<Identity, Impl, OFFSET>,
GetIdentity: GetIdentity::<Identity, Impl, OFFSET>,
OutputIdentity: OutputIdentity::<Identity, Impl, OFFSET>,
GetEventCallbacks: GetEventCallbacks::<Identity, Impl, OFFSET>,
SetEventCallbacks: SetEventCallbacks::<Identity, Impl, OFFSET>,
FlushCallbacks: FlushCallbacks::<Identity, Impl, OFFSET>,
WriteDumpFile2: WriteDumpFile2::<Identity, Impl, OFFSET>,
AddDumpInformationFile: AddDumpInformationFile::<Identity, Impl, OFFSET>,
EndProcessServer: EndProcessServer::<Identity, Impl, OFFSET>,
WaitForProcessServerEnd: WaitForProcessServerEnd::<Identity, Impl, OFFSET>,
IsKernelDebuggerEnabled: IsKernelDebuggerEnabled::<Identity, Impl, OFFSET>,
TerminateCurrentProcess: TerminateCurrentProcess::<Identity, Impl, OFFSET>,
DetachCurrentProcess: DetachCurrentProcess::<Identity, Impl, OFFSET>,
AbandonCurrentProcess: AbandonCurrentProcess::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIdByExecutableNameWide: GetRunningProcessSystemIdByExecutableNameWide::<Identity, Impl, OFFSET>,
GetRunningProcessDescriptionWide: GetRunningProcessDescriptionWide::<Identity, Impl, OFFSET>,
CreateProcessWide: CreateProcessWide::<Identity, Impl, OFFSET>,
CreateProcessAndAttachWide: CreateProcessAndAttachWide::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugClient3 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugClient4_Impl: Sized {
fn AttachKernel(&self, flags: u32, connectoptions: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetKernelConnectionOptions(&self, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::Result<()>;
fn SetKernelConnectionOptions(&self, options: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn StartProcessServer(&self, flags: u32, options: &::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::Result<()>;
fn ConnectProcessServer(&self, remoteoptions: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIds(&self, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIdByExecutableName(&self, server: u64, exename: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<u32>;
fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::Result<()>;
fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessA(&self, server: u64, commandline: &::windows::core::PCSTR, createflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessAndAttach(&self, server: u64, commandline: &::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn GetProcessOptions(&self) -> ::windows::core::Result<u32>;
fn AddProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn OpenDumpFile(&self, dumpfile: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn WriteDumpFile(&self, dumpfile: &::windows::core::PCSTR, qualifier: u32) -> ::windows::core::Result<()>;
fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows::core::Result<()>;
fn StartServer(&self, options: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputServers(&self, outputcontrol: u32, machine: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn TerminateProcesses(&self) -> ::windows::core::Result<()>;
fn DetachProcesses(&self) -> ::windows::core::Result<()>;
fn EndSession(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetExitCode(&self) -> ::windows::core::Result<u32>;
fn DispatchCallbacks(&self, timeout: u32) -> ::windows::core::Result<()>;
fn ExitDispatch(&self, client: ::core::option::Option<&IDebugClient>) -> ::windows::core::Result<()>;
fn CreateClient(&self) -> ::windows::core::Result<IDebugClient>;
fn GetInputCallbacks(&self) -> ::windows::core::Result<IDebugInputCallbacks>;
fn SetInputCallbacks(&self, callbacks: ::core::option::Option<&IDebugInputCallbacks>) -> ::windows::core::Result<()>;
fn GetOutputCallbacks(&self) -> ::windows::core::Result<IDebugOutputCallbacks>;
fn SetOutputCallbacks(&self, callbacks: ::core::option::Option<&IDebugOutputCallbacks>) -> ::windows::core::Result<()>;
fn GetOutputMask(&self) -> ::windows::core::Result<u32>;
fn SetOutputMask(&self, mask: u32) -> ::windows::core::Result<()>;
fn GetOtherOutputMask(&self, client: ::core::option::Option<&IDebugClient>) -> ::windows::core::Result<u32>;
fn SetOtherOutputMask(&self, client: ::core::option::Option<&IDebugClient>, mask: u32) -> ::windows::core::Result<()>;
fn GetOutputWidth(&self) -> ::windows::core::Result<u32>;
fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()>;
fn GetOutputLinePrefix(&self, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::Result<()>;
fn SetOutputLinePrefix(&self, prefix: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetIdentity(&self, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::Result<()>;
fn OutputIdentity(&self, outputcontrol: u32, flags: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetEventCallbacks(&self) -> ::windows::core::Result<IDebugEventCallbacks>;
fn SetEventCallbacks(&self, callbacks: ::core::option::Option<&IDebugEventCallbacks>) -> ::windows::core::Result<()>;
fn FlushCallbacks(&self) -> ::windows::core::Result<()>;
fn WriteDumpFile2(&self, dumpfile: &::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AddDumpInformationFile(&self, infofile: &::windows::core::PCSTR, r#type: u32) -> ::windows::core::Result<()>;
fn EndProcessServer(&self, server: u64) -> ::windows::core::Result<()>;
fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows::core::Result<()>;
fn IsKernelDebuggerEnabled(&self) -> ::windows::core::Result<()>;
fn TerminateCurrentProcess(&self) -> ::windows::core::Result<()>;
fn DetachCurrentProcess(&self) -> ::windows::core::Result<()>;
fn AbandonCurrentProcess(&self) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIdByExecutableNameWide(&self, server: u64, exename: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<u32>;
fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PWSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PWSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::Result<()>;
fn CreateProcessWide(&self, server: u64, commandline: &::windows::core::PCWSTR, createflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessAndAttachWide(&self, server: u64, commandline: &::windows::core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn OpenDumpFileWide(&self, filename: &::windows::core::PCWSTR, filehandle: u64) -> ::windows::core::Result<()>;
fn WriteDumpFileWide(&self, filename: &::windows::core::PCWSTR, filehandle: u64, qualifier: u32, formatflags: u32, comment: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn AddDumpInformationFileWide(&self, filename: &::windows::core::PCWSTR, filehandle: u64, r#type: u32) -> ::windows::core::Result<()>;
fn GetNumberDumpFiles(&self) -> ::windows::core::Result<u32>;
fn GetDumpFile(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows::core::Result<()>;
fn GetDumpFileWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugClient4 {}
impl IDebugClient4_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>() -> IDebugClient4_Vtbl {
unsafe extern "system" fn AttachKernel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttachKernel(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&connectoptions)).into()
}
unsafe extern "system" fn GetKernelConnectionOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetKernelConnectionOptions(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&optionssize)).into()
}
unsafe extern "system" fn SetKernelConnectionOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKernelConnectionOptions(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn StartProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartProcessServer(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&options), ::core::mem::transmute_copy(&reserved)).into()
}
unsafe extern "system" fn ConnectProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCSTR, server: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ConnectProcessServer(::core::mem::transmute(&remoteoptions)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(server, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DisconnectProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DisconnectProcessServer(::core::mem::transmute_copy(&server)).into()
}
unsafe extern "system" fn GetRunningProcessSystemIds<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessSystemIds(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&actualcount)).into()
}
unsafe extern "system" fn GetRunningProcessSystemIdByExecutableName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRunningProcessSystemIdByExecutableName(::core::mem::transmute_copy(&server), ::core::mem::transmute(&exename), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetRunningProcessDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessDescription(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&systemid), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&exename), ::core::mem::transmute_copy(&exenamesize), ::core::mem::transmute_copy(&actualexenamesize), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&actualdescriptionsize)).into()
}
unsafe extern "system" fn AttachProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttachProcess(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn CreateProcessA<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessA(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags)).into()
}
unsafe extern "system" fn CreateProcessAndAttach<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttach(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn GetProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn OpenDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenDumpFile(::core::mem::transmute(&dumpfile)).into()
}
unsafe extern "system" fn WriteDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteDumpFile(::core::mem::transmute(&dumpfile), ::core::mem::transmute_copy(&qualifier)).into()
}
unsafe extern "system" fn ConnectSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ConnectSession(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&historylimit)).into()
}
unsafe extern "system" fn StartServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartServer(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn OutputServers<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputServers(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&machine), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn TerminateProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_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.TerminateProcesses().into()
}
unsafe extern "system" fn DetachProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_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.DetachProcesses().into()
}
unsafe extern "system" fn EndSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_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.EndSession(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetExitCode<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExitCode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(code, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DispatchCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DispatchCallbacks(::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn ExitDispatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExitDispatch(::windows::core::from_raw_borrowed(&client)).into()
}
unsafe extern "system" fn CreateClient<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *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.CreateClient() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(client, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetInputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetInputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetInputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetInputCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn GetOutputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetOutputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn GetOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOutputMask() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputMask(::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn GetOtherOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOtherOutputMask(::windows::core::from_raw_borrowed(&client)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOtherOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOtherOutputMask(::windows::core::from_raw_borrowed(&client), ::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn GetOutputWidth<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOutputWidth() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(columns, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputWidth<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputWidth(::core::mem::transmute_copy(&columns)).into()
}
unsafe extern "system" fn GetOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOutputLinePrefix(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&prefixsize)).into()
}
unsafe extern "system" fn SetOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputLinePrefix(::core::mem::transmute(&prefix)).into()
}
unsafe extern "system" fn GetIdentity<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIdentity(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&identitysize)).into()
}
unsafe extern "system" fn OutputIdentity<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputIdentity(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn GetEventCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetEventCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEventCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn FlushCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_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.FlushCallbacks().into()
}
unsafe extern "system" fn WriteDumpFile2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteDumpFile2(::core::mem::transmute(&dumpfile), ::core::mem::transmute_copy(&qualifier), ::core::mem::transmute_copy(&formatflags), ::core::mem::transmute(&comment)).into()
}
unsafe extern "system" fn AddDumpInformationFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, infofile: ::windows::core::PCSTR, r#type: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddDumpInformationFile(::core::mem::transmute(&infofile), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn EndProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndProcessServer(::core::mem::transmute_copy(&server)).into()
}
unsafe extern "system" fn WaitForProcessServerEnd<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WaitForProcessServerEnd(::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn IsKernelDebuggerEnabled<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_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.IsKernelDebuggerEnabled().into()
}
unsafe extern "system" fn TerminateCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_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.TerminateCurrentProcess().into()
}
unsafe extern "system" fn DetachCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_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.DetachCurrentProcess().into()
}
unsafe extern "system" fn AbandonCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_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.AbandonCurrentProcess().into()
}
unsafe extern "system" fn GetRunningProcessSystemIdByExecutableNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCWSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRunningProcessSystemIdByExecutableNameWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&exename), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetRunningProcessDescriptionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PWSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PWSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessDescriptionWide(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&systemid), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&exename), ::core::mem::transmute_copy(&exenamesize), ::core::mem::transmute_copy(&actualexenamesize), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&actualdescriptionsize)).into()
}
unsafe extern "system" fn CreateProcessWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags)).into()
}
unsafe extern "system" fn CreateProcessAndAttachWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttachWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn OpenDumpFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenDumpFileWide(::core::mem::transmute(&filename), ::core::mem::transmute_copy(&filehandle)).into()
}
unsafe extern "system" fn WriteDumpFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, qualifier: u32, formatflags: u32, comment: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteDumpFileWide(::core::mem::transmute(&filename), ::core::mem::transmute_copy(&filehandle), ::core::mem::transmute_copy(&qualifier), ::core::mem::transmute_copy(&formatflags), ::core::mem::transmute(&comment)).into()
}
unsafe extern "system" fn AddDumpInformationFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, r#type: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddDumpInformationFileWide(::core::mem::transmute(&filename), ::core::mem::transmute_copy(&filehandle), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn GetNumberDumpFiles<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberDumpFiles() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDumpFile(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn GetDumpFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDumpFileWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&r#type)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AttachKernel: AttachKernel::<Identity, Impl, OFFSET>,
GetKernelConnectionOptions: GetKernelConnectionOptions::<Identity, Impl, OFFSET>,
SetKernelConnectionOptions: SetKernelConnectionOptions::<Identity, Impl, OFFSET>,
StartProcessServer: StartProcessServer::<Identity, Impl, OFFSET>,
ConnectProcessServer: ConnectProcessServer::<Identity, Impl, OFFSET>,
DisconnectProcessServer: DisconnectProcessServer::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIds: GetRunningProcessSystemIds::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIdByExecutableName: GetRunningProcessSystemIdByExecutableName::<Identity, Impl, OFFSET>,
GetRunningProcessDescription: GetRunningProcessDescription::<Identity, Impl, OFFSET>,
AttachProcess: AttachProcess::<Identity, Impl, OFFSET>,
CreateProcessA: CreateProcessA::<Identity, Impl, OFFSET>,
CreateProcessAndAttach: CreateProcessAndAttach::<Identity, Impl, OFFSET>,
GetProcessOptions: GetProcessOptions::<Identity, Impl, OFFSET>,
AddProcessOptions: AddProcessOptions::<Identity, Impl, OFFSET>,
RemoveProcessOptions: RemoveProcessOptions::<Identity, Impl, OFFSET>,
SetProcessOptions: SetProcessOptions::<Identity, Impl, OFFSET>,
OpenDumpFile: OpenDumpFile::<Identity, Impl, OFFSET>,
WriteDumpFile: WriteDumpFile::<Identity, Impl, OFFSET>,
ConnectSession: ConnectSession::<Identity, Impl, OFFSET>,
StartServer: StartServer::<Identity, Impl, OFFSET>,
OutputServers: OutputServers::<Identity, Impl, OFFSET>,
TerminateProcesses: TerminateProcesses::<Identity, Impl, OFFSET>,
DetachProcesses: DetachProcesses::<Identity, Impl, OFFSET>,
EndSession: EndSession::<Identity, Impl, OFFSET>,
GetExitCode: GetExitCode::<Identity, Impl, OFFSET>,
DispatchCallbacks: DispatchCallbacks::<Identity, Impl, OFFSET>,
ExitDispatch: ExitDispatch::<Identity, Impl, OFFSET>,
CreateClient: CreateClient::<Identity, Impl, OFFSET>,
GetInputCallbacks: GetInputCallbacks::<Identity, Impl, OFFSET>,
SetInputCallbacks: SetInputCallbacks::<Identity, Impl, OFFSET>,
GetOutputCallbacks: GetOutputCallbacks::<Identity, Impl, OFFSET>,
SetOutputCallbacks: SetOutputCallbacks::<Identity, Impl, OFFSET>,
GetOutputMask: GetOutputMask::<Identity, Impl, OFFSET>,
SetOutputMask: SetOutputMask::<Identity, Impl, OFFSET>,
GetOtherOutputMask: GetOtherOutputMask::<Identity, Impl, OFFSET>,
SetOtherOutputMask: SetOtherOutputMask::<Identity, Impl, OFFSET>,
GetOutputWidth: GetOutputWidth::<Identity, Impl, OFFSET>,
SetOutputWidth: SetOutputWidth::<Identity, Impl, OFFSET>,
GetOutputLinePrefix: GetOutputLinePrefix::<Identity, Impl, OFFSET>,
SetOutputLinePrefix: SetOutputLinePrefix::<Identity, Impl, OFFSET>,
GetIdentity: GetIdentity::<Identity, Impl, OFFSET>,
OutputIdentity: OutputIdentity::<Identity, Impl, OFFSET>,
GetEventCallbacks: GetEventCallbacks::<Identity, Impl, OFFSET>,
SetEventCallbacks: SetEventCallbacks::<Identity, Impl, OFFSET>,
FlushCallbacks: FlushCallbacks::<Identity, Impl, OFFSET>,
WriteDumpFile2: WriteDumpFile2::<Identity, Impl, OFFSET>,
AddDumpInformationFile: AddDumpInformationFile::<Identity, Impl, OFFSET>,
EndProcessServer: EndProcessServer::<Identity, Impl, OFFSET>,
WaitForProcessServerEnd: WaitForProcessServerEnd::<Identity, Impl, OFFSET>,
IsKernelDebuggerEnabled: IsKernelDebuggerEnabled::<Identity, Impl, OFFSET>,
TerminateCurrentProcess: TerminateCurrentProcess::<Identity, Impl, OFFSET>,
DetachCurrentProcess: DetachCurrentProcess::<Identity, Impl, OFFSET>,
AbandonCurrentProcess: AbandonCurrentProcess::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIdByExecutableNameWide: GetRunningProcessSystemIdByExecutableNameWide::<Identity, Impl, OFFSET>,
GetRunningProcessDescriptionWide: GetRunningProcessDescriptionWide::<Identity, Impl, OFFSET>,
CreateProcessWide: CreateProcessWide::<Identity, Impl, OFFSET>,
CreateProcessAndAttachWide: CreateProcessAndAttachWide::<Identity, Impl, OFFSET>,
OpenDumpFileWide: OpenDumpFileWide::<Identity, Impl, OFFSET>,
WriteDumpFileWide: WriteDumpFileWide::<Identity, Impl, OFFSET>,
AddDumpInformationFileWide: AddDumpInformationFileWide::<Identity, Impl, OFFSET>,
GetNumberDumpFiles: GetNumberDumpFiles::<Identity, Impl, OFFSET>,
GetDumpFile: GetDumpFile::<Identity, Impl, OFFSET>,
GetDumpFileWide: GetDumpFileWide::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugClient4 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugClient5_Impl: Sized {
fn AttachKernel(&self, flags: u32, connectoptions: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetKernelConnectionOptions(&self, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::Result<()>;
fn SetKernelConnectionOptions(&self, options: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn StartProcessServer(&self, flags: u32, options: &::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::Result<()>;
fn ConnectProcessServer(&self, remoteoptions: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIds(&self, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIdByExecutableName(&self, server: u64, exename: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<u32>;
fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::Result<()>;
fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessA(&self, server: u64, commandline: &::windows::core::PCSTR, createflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessAndAttach(&self, server: u64, commandline: &::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn GetProcessOptions(&self) -> ::windows::core::Result<u32>;
fn AddProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn OpenDumpFile(&self, dumpfile: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn WriteDumpFile(&self, dumpfile: &::windows::core::PCSTR, qualifier: u32) -> ::windows::core::Result<()>;
fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows::core::Result<()>;
fn StartServer(&self, options: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputServers(&self, outputcontrol: u32, machine: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn TerminateProcesses(&self) -> ::windows::core::Result<()>;
fn DetachProcesses(&self) -> ::windows::core::Result<()>;
fn EndSession(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetExitCode(&self) -> ::windows::core::Result<u32>;
fn DispatchCallbacks(&self, timeout: u32) -> ::windows::core::Result<()>;
fn ExitDispatch(&self, client: ::core::option::Option<&IDebugClient>) -> ::windows::core::Result<()>;
fn CreateClient(&self) -> ::windows::core::Result<IDebugClient>;
fn GetInputCallbacks(&self) -> ::windows::core::Result<IDebugInputCallbacks>;
fn SetInputCallbacks(&self, callbacks: ::core::option::Option<&IDebugInputCallbacks>) -> ::windows::core::Result<()>;
fn GetOutputCallbacks(&self) -> ::windows::core::Result<IDebugOutputCallbacks>;
fn SetOutputCallbacks(&self, callbacks: ::core::option::Option<&IDebugOutputCallbacks>) -> ::windows::core::Result<()>;
fn GetOutputMask(&self) -> ::windows::core::Result<u32>;
fn SetOutputMask(&self, mask: u32) -> ::windows::core::Result<()>;
fn GetOtherOutputMask(&self, client: ::core::option::Option<&IDebugClient>) -> ::windows::core::Result<u32>;
fn SetOtherOutputMask(&self, client: ::core::option::Option<&IDebugClient>, mask: u32) -> ::windows::core::Result<()>;
fn GetOutputWidth(&self) -> ::windows::core::Result<u32>;
fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()>;
fn GetOutputLinePrefix(&self, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::Result<()>;
fn SetOutputLinePrefix(&self, prefix: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetIdentity(&self, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::Result<()>;
fn OutputIdentity(&self, outputcontrol: u32, flags: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetEventCallbacks(&self) -> ::windows::core::Result<IDebugEventCallbacks>;
fn SetEventCallbacks(&self, callbacks: ::core::option::Option<&IDebugEventCallbacks>) -> ::windows::core::Result<()>;
fn FlushCallbacks(&self) -> ::windows::core::Result<()>;
fn WriteDumpFile2(&self, dumpfile: &::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AddDumpInformationFile(&self, infofile: &::windows::core::PCSTR, r#type: u32) -> ::windows::core::Result<()>;
fn EndProcessServer(&self, server: u64) -> ::windows::core::Result<()>;
fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows::core::Result<()>;
fn IsKernelDebuggerEnabled(&self) -> ::windows::core::Result<()>;
fn TerminateCurrentProcess(&self) -> ::windows::core::Result<()>;
fn DetachCurrentProcess(&self) -> ::windows::core::Result<()>;
fn AbandonCurrentProcess(&self) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIdByExecutableNameWide(&self, server: u64, exename: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<u32>;
fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PWSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PWSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::Result<()>;
fn CreateProcessWide(&self, server: u64, commandline: &::windows::core::PCWSTR, createflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessAndAttachWide(&self, server: u64, commandline: &::windows::core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn OpenDumpFileWide(&self, filename: &::windows::core::PCWSTR, filehandle: u64) -> ::windows::core::Result<()>;
fn WriteDumpFileWide(&self, filename: &::windows::core::PCWSTR, filehandle: u64, qualifier: u32, formatflags: u32, comment: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn AddDumpInformationFileWide(&self, filename: &::windows::core::PCWSTR, filehandle: u64, r#type: u32) -> ::windows::core::Result<()>;
fn GetNumberDumpFiles(&self) -> ::windows::core::Result<u32>;
fn GetDumpFile(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows::core::Result<()>;
fn GetDumpFileWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows::core::Result<()>;
fn AttachKernelWide(&self, flags: u32, connectoptions: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetKernelConnectionOptionsWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::Result<()>;
fn SetKernelConnectionOptionsWide(&self, options: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn StartProcessServerWide(&self, flags: u32, options: &::windows::core::PCWSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::Result<()>;
fn ConnectProcessServerWide(&self, remoteoptions: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn StartServerWide(&self, options: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn OutputServersWide(&self, outputcontrol: u32, machine: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetOutputCallbacksWide(&self) -> ::windows::core::Result<IDebugOutputCallbacksWide>;
fn SetOutputCallbacksWide(&self, callbacks: ::core::option::Option<&IDebugOutputCallbacksWide>) -> ::windows::core::Result<()>;
fn GetOutputLinePrefixWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::Result<()>;
fn SetOutputLinePrefixWide(&self, prefix: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetIdentityWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::Result<()>;
fn OutputIdentityWide(&self, outputcontrol: u32, flags: u32, format: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetEventCallbacksWide(&self) -> ::windows::core::Result<IDebugEventCallbacksWide>;
fn SetEventCallbacksWide(&self, callbacks: ::core::option::Option<&IDebugEventCallbacksWide>) -> ::windows::core::Result<()>;
fn CreateProcess2(&self, server: u64, commandline: &::windows::core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: &::windows::core::PCSTR, environment: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn CreateProcess2Wide(&self, server: u64, commandline: &::windows::core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: &::windows::core::PCWSTR, environment: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn CreateProcessAndAttach2(&self, server: u64, commandline: &::windows::core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: &::windows::core::PCSTR, environment: &::windows::core::PCSTR, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessAndAttach2Wide(&self, server: u64, commandline: &::windows::core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: &::windows::core::PCWSTR, environment: &::windows::core::PCWSTR, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn PushOutputLinePrefix(&self, newprefix: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn PushOutputLinePrefixWide(&self, newprefix: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn PopOutputLinePrefix(&self, handle: u64) -> ::windows::core::Result<()>;
fn GetNumberInputCallbacks(&self) -> ::windows::core::Result<u32>;
fn GetNumberOutputCallbacks(&self) -> ::windows::core::Result<u32>;
fn GetNumberEventCallbacks(&self, eventflags: u32) -> ::windows::core::Result<u32>;
fn GetQuitLockString(&self, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn SetQuitLockString(&self, string: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetQuitLockStringWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn SetQuitLockStringWide(&self, string: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugClient5 {}
impl IDebugClient5_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>() -> IDebugClient5_Vtbl {
unsafe extern "system" fn AttachKernel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttachKernel(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&connectoptions)).into()
}
unsafe extern "system" fn GetKernelConnectionOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetKernelConnectionOptions(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&optionssize)).into()
}
unsafe extern "system" fn SetKernelConnectionOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKernelConnectionOptions(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn StartProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartProcessServer(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&options), ::core::mem::transmute_copy(&reserved)).into()
}
unsafe extern "system" fn ConnectProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCSTR, server: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ConnectProcessServer(::core::mem::transmute(&remoteoptions)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(server, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DisconnectProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DisconnectProcessServer(::core::mem::transmute_copy(&server)).into()
}
unsafe extern "system" fn GetRunningProcessSystemIds<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessSystemIds(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&actualcount)).into()
}
unsafe extern "system" fn GetRunningProcessSystemIdByExecutableName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRunningProcessSystemIdByExecutableName(::core::mem::transmute_copy(&server), ::core::mem::transmute(&exename), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetRunningProcessDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessDescription(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&systemid), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&exename), ::core::mem::transmute_copy(&exenamesize), ::core::mem::transmute_copy(&actualexenamesize), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&actualdescriptionsize)).into()
}
unsafe extern "system" fn AttachProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttachProcess(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn CreateProcessA<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessA(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags)).into()
}
unsafe extern "system" fn CreateProcessAndAttach<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttach(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn GetProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn OpenDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenDumpFile(::core::mem::transmute(&dumpfile)).into()
}
unsafe extern "system" fn WriteDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteDumpFile(::core::mem::transmute(&dumpfile), ::core::mem::transmute_copy(&qualifier)).into()
}
unsafe extern "system" fn ConnectSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ConnectSession(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&historylimit)).into()
}
unsafe extern "system" fn StartServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartServer(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn OutputServers<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputServers(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&machine), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn TerminateProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_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.TerminateProcesses().into()
}
unsafe extern "system" fn DetachProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_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.DetachProcesses().into()
}
unsafe extern "system" fn EndSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_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.EndSession(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetExitCode<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExitCode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(code, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DispatchCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DispatchCallbacks(::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn ExitDispatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExitDispatch(::windows::core::from_raw_borrowed(&client)).into()
}
unsafe extern "system" fn CreateClient<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *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.CreateClient() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(client, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetInputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetInputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetInputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetInputCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn GetOutputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetOutputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn GetOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOutputMask() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputMask(::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn GetOtherOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOtherOutputMask(::windows::core::from_raw_borrowed(&client)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOtherOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOtherOutputMask(::windows::core::from_raw_borrowed(&client), ::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn GetOutputWidth<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOutputWidth() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(columns, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputWidth<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputWidth(::core::mem::transmute_copy(&columns)).into()
}
unsafe extern "system" fn GetOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOutputLinePrefix(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&prefixsize)).into()
}
unsafe extern "system" fn SetOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputLinePrefix(::core::mem::transmute(&prefix)).into()
}
unsafe extern "system" fn GetIdentity<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIdentity(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&identitysize)).into()
}
unsafe extern "system" fn OutputIdentity<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputIdentity(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn GetEventCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetEventCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEventCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn FlushCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_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.FlushCallbacks().into()
}
unsafe extern "system" fn WriteDumpFile2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteDumpFile2(::core::mem::transmute(&dumpfile), ::core::mem::transmute_copy(&qualifier), ::core::mem::transmute_copy(&formatflags), ::core::mem::transmute(&comment)).into()
}
unsafe extern "system" fn AddDumpInformationFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, infofile: ::windows::core::PCSTR, r#type: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddDumpInformationFile(::core::mem::transmute(&infofile), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn EndProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndProcessServer(::core::mem::transmute_copy(&server)).into()
}
unsafe extern "system" fn WaitForProcessServerEnd<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WaitForProcessServerEnd(::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn IsKernelDebuggerEnabled<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_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.IsKernelDebuggerEnabled().into()
}
unsafe extern "system" fn TerminateCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_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.TerminateCurrentProcess().into()
}
unsafe extern "system" fn DetachCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_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.DetachCurrentProcess().into()
}
unsafe extern "system" fn AbandonCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_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.AbandonCurrentProcess().into()
}
unsafe extern "system" fn GetRunningProcessSystemIdByExecutableNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCWSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRunningProcessSystemIdByExecutableNameWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&exename), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetRunningProcessDescriptionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PWSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PWSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessDescriptionWide(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&systemid), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&exename), ::core::mem::transmute_copy(&exenamesize), ::core::mem::transmute_copy(&actualexenamesize), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&actualdescriptionsize)).into()
}
unsafe extern "system" fn CreateProcessWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags)).into()
}
unsafe extern "system" fn CreateProcessAndAttachWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttachWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn OpenDumpFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenDumpFileWide(::core::mem::transmute(&filename), ::core::mem::transmute_copy(&filehandle)).into()
}
unsafe extern "system" fn WriteDumpFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, qualifier: u32, formatflags: u32, comment: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteDumpFileWide(::core::mem::transmute(&filename), ::core::mem::transmute_copy(&filehandle), ::core::mem::transmute_copy(&qualifier), ::core::mem::transmute_copy(&formatflags), ::core::mem::transmute(&comment)).into()
}
unsafe extern "system" fn AddDumpInformationFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, r#type: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddDumpInformationFileWide(::core::mem::transmute(&filename), ::core::mem::transmute_copy(&filehandle), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn GetNumberDumpFiles<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberDumpFiles() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDumpFile(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn GetDumpFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDumpFileWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn AttachKernelWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttachKernelWide(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&connectoptions)).into()
}
unsafe extern "system" fn GetKernelConnectionOptionsWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetKernelConnectionOptionsWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&optionssize)).into()
}
unsafe extern "system" fn SetKernelConnectionOptionsWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKernelConnectionOptionsWide(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn StartProcessServerWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCWSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartProcessServerWide(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&options), ::core::mem::transmute_copy(&reserved)).into()
}
unsafe extern "system" fn ConnectProcessServerWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCWSTR, server: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ConnectProcessServerWide(::core::mem::transmute(&remoteoptions)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(server, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn StartServerWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartServerWide(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn OutputServersWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputServersWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&machine), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetOutputCallbacksWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetOutputCallbacksWide() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputCallbacksWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputCallbacksWide(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn GetOutputLinePrefixWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOutputLinePrefixWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&prefixsize)).into()
}
unsafe extern "system" fn SetOutputLinePrefixWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputLinePrefixWide(::core::mem::transmute(&prefix)).into()
}
unsafe extern "system" fn GetIdentityWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIdentityWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&identitysize)).into()
}
unsafe extern "system" fn OutputIdentityWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputIdentityWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn GetEventCallbacksWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetEventCallbacksWide() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEventCallbacksWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventCallbacksWide(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn CreateProcess2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows::core::PCSTR, environment: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcess2(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&optionsbuffer), ::core::mem::transmute_copy(&optionsbuffersize), ::core::mem::transmute(&initialdirectory), ::core::mem::transmute(&environment)).into()
}
unsafe extern "system" fn CreateProcess2Wide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows::core::PCWSTR, environment: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcess2Wide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&optionsbuffer), ::core::mem::transmute_copy(&optionsbuffersize), ::core::mem::transmute(&initialdirectory), ::core::mem::transmute(&environment)).into()
}
unsafe extern "system" fn CreateProcessAndAttach2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows::core::PCSTR, environment: ::windows::core::PCSTR, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttach2(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&optionsbuffer), ::core::mem::transmute_copy(&optionsbuffersize), ::core::mem::transmute(&initialdirectory), ::core::mem::transmute(&environment), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn CreateProcessAndAttach2Wide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows::core::PCWSTR, environment: ::windows::core::PCWSTR, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttach2Wide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&optionsbuffer), ::core::mem::transmute_copy(&optionsbuffersize), ::core::mem::transmute(&initialdirectory), ::core::mem::transmute(&environment), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn PushOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newprefix: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PushOutputLinePrefix(::core::mem::transmute(&newprefix)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PushOutputLinePrefixWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newprefix: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PushOutputLinePrefixWide(::core::mem::transmute(&newprefix)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PopOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PopOutputLinePrefix(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn GetNumberInputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberInputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberOutputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberOutputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberEventCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, eventflags: u32, count: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberEventCallbacks(::core::mem::transmute_copy(&eventflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetQuitLockString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetQuitLockString(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn SetQuitLockString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, string: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetQuitLockString(::core::mem::transmute(&string)).into()
}
unsafe extern "system" fn GetQuitLockStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetQuitLockStringWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn SetQuitLockStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, string: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetQuitLockStringWide(::core::mem::transmute(&string)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AttachKernel: AttachKernel::<Identity, Impl, OFFSET>,
GetKernelConnectionOptions: GetKernelConnectionOptions::<Identity, Impl, OFFSET>,
SetKernelConnectionOptions: SetKernelConnectionOptions::<Identity, Impl, OFFSET>,
StartProcessServer: StartProcessServer::<Identity, Impl, OFFSET>,
ConnectProcessServer: ConnectProcessServer::<Identity, Impl, OFFSET>,
DisconnectProcessServer: DisconnectProcessServer::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIds: GetRunningProcessSystemIds::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIdByExecutableName: GetRunningProcessSystemIdByExecutableName::<Identity, Impl, OFFSET>,
GetRunningProcessDescription: GetRunningProcessDescription::<Identity, Impl, OFFSET>,
AttachProcess: AttachProcess::<Identity, Impl, OFFSET>,
CreateProcessA: CreateProcessA::<Identity, Impl, OFFSET>,
CreateProcessAndAttach: CreateProcessAndAttach::<Identity, Impl, OFFSET>,
GetProcessOptions: GetProcessOptions::<Identity, Impl, OFFSET>,
AddProcessOptions: AddProcessOptions::<Identity, Impl, OFFSET>,
RemoveProcessOptions: RemoveProcessOptions::<Identity, Impl, OFFSET>,
SetProcessOptions: SetProcessOptions::<Identity, Impl, OFFSET>,
OpenDumpFile: OpenDumpFile::<Identity, Impl, OFFSET>,
WriteDumpFile: WriteDumpFile::<Identity, Impl, OFFSET>,
ConnectSession: ConnectSession::<Identity, Impl, OFFSET>,
StartServer: StartServer::<Identity, Impl, OFFSET>,
OutputServers: OutputServers::<Identity, Impl, OFFSET>,
TerminateProcesses: TerminateProcesses::<Identity, Impl, OFFSET>,
DetachProcesses: DetachProcesses::<Identity, Impl, OFFSET>,
EndSession: EndSession::<Identity, Impl, OFFSET>,
GetExitCode: GetExitCode::<Identity, Impl, OFFSET>,
DispatchCallbacks: DispatchCallbacks::<Identity, Impl, OFFSET>,
ExitDispatch: ExitDispatch::<Identity, Impl, OFFSET>,
CreateClient: CreateClient::<Identity, Impl, OFFSET>,
GetInputCallbacks: GetInputCallbacks::<Identity, Impl, OFFSET>,
SetInputCallbacks: SetInputCallbacks::<Identity, Impl, OFFSET>,
GetOutputCallbacks: GetOutputCallbacks::<Identity, Impl, OFFSET>,
SetOutputCallbacks: SetOutputCallbacks::<Identity, Impl, OFFSET>,
GetOutputMask: GetOutputMask::<Identity, Impl, OFFSET>,
SetOutputMask: SetOutputMask::<Identity, Impl, OFFSET>,
GetOtherOutputMask: GetOtherOutputMask::<Identity, Impl, OFFSET>,
SetOtherOutputMask: SetOtherOutputMask::<Identity, Impl, OFFSET>,
GetOutputWidth: GetOutputWidth::<Identity, Impl, OFFSET>,
SetOutputWidth: SetOutputWidth::<Identity, Impl, OFFSET>,
GetOutputLinePrefix: GetOutputLinePrefix::<Identity, Impl, OFFSET>,
SetOutputLinePrefix: SetOutputLinePrefix::<Identity, Impl, OFFSET>,
GetIdentity: GetIdentity::<Identity, Impl, OFFSET>,
OutputIdentity: OutputIdentity::<Identity, Impl, OFFSET>,
GetEventCallbacks: GetEventCallbacks::<Identity, Impl, OFFSET>,
SetEventCallbacks: SetEventCallbacks::<Identity, Impl, OFFSET>,
FlushCallbacks: FlushCallbacks::<Identity, Impl, OFFSET>,
WriteDumpFile2: WriteDumpFile2::<Identity, Impl, OFFSET>,
AddDumpInformationFile: AddDumpInformationFile::<Identity, Impl, OFFSET>,
EndProcessServer: EndProcessServer::<Identity, Impl, OFFSET>,
WaitForProcessServerEnd: WaitForProcessServerEnd::<Identity, Impl, OFFSET>,
IsKernelDebuggerEnabled: IsKernelDebuggerEnabled::<Identity, Impl, OFFSET>,
TerminateCurrentProcess: TerminateCurrentProcess::<Identity, Impl, OFFSET>,
DetachCurrentProcess: DetachCurrentProcess::<Identity, Impl, OFFSET>,
AbandonCurrentProcess: AbandonCurrentProcess::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIdByExecutableNameWide: GetRunningProcessSystemIdByExecutableNameWide::<Identity, Impl, OFFSET>,
GetRunningProcessDescriptionWide: GetRunningProcessDescriptionWide::<Identity, Impl, OFFSET>,
CreateProcessWide: CreateProcessWide::<Identity, Impl, OFFSET>,
CreateProcessAndAttachWide: CreateProcessAndAttachWide::<Identity, Impl, OFFSET>,
OpenDumpFileWide: OpenDumpFileWide::<Identity, Impl, OFFSET>,
WriteDumpFileWide: WriteDumpFileWide::<Identity, Impl, OFFSET>,
AddDumpInformationFileWide: AddDumpInformationFileWide::<Identity, Impl, OFFSET>,
GetNumberDumpFiles: GetNumberDumpFiles::<Identity, Impl, OFFSET>,
GetDumpFile: GetDumpFile::<Identity, Impl, OFFSET>,
GetDumpFileWide: GetDumpFileWide::<Identity, Impl, OFFSET>,
AttachKernelWide: AttachKernelWide::<Identity, Impl, OFFSET>,
GetKernelConnectionOptionsWide: GetKernelConnectionOptionsWide::<Identity, Impl, OFFSET>,
SetKernelConnectionOptionsWide: SetKernelConnectionOptionsWide::<Identity, Impl, OFFSET>,
StartProcessServerWide: StartProcessServerWide::<Identity, Impl, OFFSET>,
ConnectProcessServerWide: ConnectProcessServerWide::<Identity, Impl, OFFSET>,
StartServerWide: StartServerWide::<Identity, Impl, OFFSET>,
OutputServersWide: OutputServersWide::<Identity, Impl, OFFSET>,
GetOutputCallbacksWide: GetOutputCallbacksWide::<Identity, Impl, OFFSET>,
SetOutputCallbacksWide: SetOutputCallbacksWide::<Identity, Impl, OFFSET>,
GetOutputLinePrefixWide: GetOutputLinePrefixWide::<Identity, Impl, OFFSET>,
SetOutputLinePrefixWide: SetOutputLinePrefixWide::<Identity, Impl, OFFSET>,
GetIdentityWide: GetIdentityWide::<Identity, Impl, OFFSET>,
OutputIdentityWide: OutputIdentityWide::<Identity, Impl, OFFSET>,
GetEventCallbacksWide: GetEventCallbacksWide::<Identity, Impl, OFFSET>,
SetEventCallbacksWide: SetEventCallbacksWide::<Identity, Impl, OFFSET>,
CreateProcess2: CreateProcess2::<Identity, Impl, OFFSET>,
CreateProcess2Wide: CreateProcess2Wide::<Identity, Impl, OFFSET>,
CreateProcessAndAttach2: CreateProcessAndAttach2::<Identity, Impl, OFFSET>,
CreateProcessAndAttach2Wide: CreateProcessAndAttach2Wide::<Identity, Impl, OFFSET>,
PushOutputLinePrefix: PushOutputLinePrefix::<Identity, Impl, OFFSET>,
PushOutputLinePrefixWide: PushOutputLinePrefixWide::<Identity, Impl, OFFSET>,
PopOutputLinePrefix: PopOutputLinePrefix::<Identity, Impl, OFFSET>,
GetNumberInputCallbacks: GetNumberInputCallbacks::<Identity, Impl, OFFSET>,
GetNumberOutputCallbacks: GetNumberOutputCallbacks::<Identity, Impl, OFFSET>,
GetNumberEventCallbacks: GetNumberEventCallbacks::<Identity, Impl, OFFSET>,
GetQuitLockString: GetQuitLockString::<Identity, Impl, OFFSET>,
SetQuitLockString: SetQuitLockString::<Identity, Impl, OFFSET>,
GetQuitLockStringWide: GetQuitLockStringWide::<Identity, Impl, OFFSET>,
SetQuitLockStringWide: SetQuitLockStringWide::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugClient5 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugClient6_Impl: Sized {
fn AttachKernel(&self, flags: u32, connectoptions: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetKernelConnectionOptions(&self, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::Result<()>;
fn SetKernelConnectionOptions(&self, options: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn StartProcessServer(&self, flags: u32, options: &::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::Result<()>;
fn ConnectProcessServer(&self, remoteoptions: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIds(&self, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIdByExecutableName(&self, server: u64, exename: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<u32>;
fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::Result<()>;
fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessA(&self, server: u64, commandline: &::windows::core::PCSTR, createflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessAndAttach(&self, server: u64, commandline: &::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn GetProcessOptions(&self) -> ::windows::core::Result<u32>;
fn AddProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn OpenDumpFile(&self, dumpfile: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn WriteDumpFile(&self, dumpfile: &::windows::core::PCSTR, qualifier: u32) -> ::windows::core::Result<()>;
fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows::core::Result<()>;
fn StartServer(&self, options: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputServers(&self, outputcontrol: u32, machine: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn TerminateProcesses(&self) -> ::windows::core::Result<()>;
fn DetachProcesses(&self) -> ::windows::core::Result<()>;
fn EndSession(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetExitCode(&self) -> ::windows::core::Result<u32>;
fn DispatchCallbacks(&self, timeout: u32) -> ::windows::core::Result<()>;
fn ExitDispatch(&self, client: ::core::option::Option<&IDebugClient>) -> ::windows::core::Result<()>;
fn CreateClient(&self) -> ::windows::core::Result<IDebugClient>;
fn GetInputCallbacks(&self) -> ::windows::core::Result<IDebugInputCallbacks>;
fn SetInputCallbacks(&self, callbacks: ::core::option::Option<&IDebugInputCallbacks>) -> ::windows::core::Result<()>;
fn GetOutputCallbacks(&self) -> ::windows::core::Result<IDebugOutputCallbacks>;
fn SetOutputCallbacks(&self, callbacks: ::core::option::Option<&IDebugOutputCallbacks>) -> ::windows::core::Result<()>;
fn GetOutputMask(&self) -> ::windows::core::Result<u32>;
fn SetOutputMask(&self, mask: u32) -> ::windows::core::Result<()>;
fn GetOtherOutputMask(&self, client: ::core::option::Option<&IDebugClient>) -> ::windows::core::Result<u32>;
fn SetOtherOutputMask(&self, client: ::core::option::Option<&IDebugClient>, mask: u32) -> ::windows::core::Result<()>;
fn GetOutputWidth(&self) -> ::windows::core::Result<u32>;
fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()>;
fn GetOutputLinePrefix(&self, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::Result<()>;
fn SetOutputLinePrefix(&self, prefix: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetIdentity(&self, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::Result<()>;
fn OutputIdentity(&self, outputcontrol: u32, flags: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetEventCallbacks(&self) -> ::windows::core::Result<IDebugEventCallbacks>;
fn SetEventCallbacks(&self, callbacks: ::core::option::Option<&IDebugEventCallbacks>) -> ::windows::core::Result<()>;
fn FlushCallbacks(&self) -> ::windows::core::Result<()>;
fn WriteDumpFile2(&self, dumpfile: &::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AddDumpInformationFile(&self, infofile: &::windows::core::PCSTR, r#type: u32) -> ::windows::core::Result<()>;
fn EndProcessServer(&self, server: u64) -> ::windows::core::Result<()>;
fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows::core::Result<()>;
fn IsKernelDebuggerEnabled(&self) -> ::windows::core::Result<()>;
fn TerminateCurrentProcess(&self) -> ::windows::core::Result<()>;
fn DetachCurrentProcess(&self) -> ::windows::core::Result<()>;
fn AbandonCurrentProcess(&self) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIdByExecutableNameWide(&self, server: u64, exename: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<u32>;
fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PWSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PWSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::Result<()>;
fn CreateProcessWide(&self, server: u64, commandline: &::windows::core::PCWSTR, createflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessAndAttachWide(&self, server: u64, commandline: &::windows::core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn OpenDumpFileWide(&self, filename: &::windows::core::PCWSTR, filehandle: u64) -> ::windows::core::Result<()>;
fn WriteDumpFileWide(&self, filename: &::windows::core::PCWSTR, filehandle: u64, qualifier: u32, formatflags: u32, comment: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn AddDumpInformationFileWide(&self, filename: &::windows::core::PCWSTR, filehandle: u64, r#type: u32) -> ::windows::core::Result<()>;
fn GetNumberDumpFiles(&self) -> ::windows::core::Result<u32>;
fn GetDumpFile(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows::core::Result<()>;
fn GetDumpFileWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows::core::Result<()>;
fn AttachKernelWide(&self, flags: u32, connectoptions: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetKernelConnectionOptionsWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::Result<()>;
fn SetKernelConnectionOptionsWide(&self, options: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn StartProcessServerWide(&self, flags: u32, options: &::windows::core::PCWSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::Result<()>;
fn ConnectProcessServerWide(&self, remoteoptions: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn StartServerWide(&self, options: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn OutputServersWide(&self, outputcontrol: u32, machine: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetOutputCallbacksWide(&self) -> ::windows::core::Result<IDebugOutputCallbacksWide>;
fn SetOutputCallbacksWide(&self, callbacks: ::core::option::Option<&IDebugOutputCallbacksWide>) -> ::windows::core::Result<()>;
fn GetOutputLinePrefixWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::Result<()>;
fn SetOutputLinePrefixWide(&self, prefix: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetIdentityWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::Result<()>;
fn OutputIdentityWide(&self, outputcontrol: u32, flags: u32, format: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetEventCallbacksWide(&self) -> ::windows::core::Result<IDebugEventCallbacksWide>;
fn SetEventCallbacksWide(&self, callbacks: ::core::option::Option<&IDebugEventCallbacksWide>) -> ::windows::core::Result<()>;
fn CreateProcess2(&self, server: u64, commandline: &::windows::core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: &::windows::core::PCSTR, environment: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn CreateProcess2Wide(&self, server: u64, commandline: &::windows::core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: &::windows::core::PCWSTR, environment: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn CreateProcessAndAttach2(&self, server: u64, commandline: &::windows::core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: &::windows::core::PCSTR, environment: &::windows::core::PCSTR, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessAndAttach2Wide(&self, server: u64, commandline: &::windows::core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: &::windows::core::PCWSTR, environment: &::windows::core::PCWSTR, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn PushOutputLinePrefix(&self, newprefix: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn PushOutputLinePrefixWide(&self, newprefix: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn PopOutputLinePrefix(&self, handle: u64) -> ::windows::core::Result<()>;
fn GetNumberInputCallbacks(&self) -> ::windows::core::Result<u32>;
fn GetNumberOutputCallbacks(&self) -> ::windows::core::Result<u32>;
fn GetNumberEventCallbacks(&self, eventflags: u32) -> ::windows::core::Result<u32>;
fn GetQuitLockString(&self, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn SetQuitLockString(&self, string: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetQuitLockStringWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn SetQuitLockStringWide(&self, string: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn SetEventContextCallbacks(&self, callbacks: ::core::option::Option<&IDebugEventContextCallbacks>) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugClient6 {}
impl IDebugClient6_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>() -> IDebugClient6_Vtbl {
unsafe extern "system" fn AttachKernel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttachKernel(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&connectoptions)).into()
}
unsafe extern "system" fn GetKernelConnectionOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetKernelConnectionOptions(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&optionssize)).into()
}
unsafe extern "system" fn SetKernelConnectionOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKernelConnectionOptions(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn StartProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartProcessServer(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&options), ::core::mem::transmute_copy(&reserved)).into()
}
unsafe extern "system" fn ConnectProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCSTR, server: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ConnectProcessServer(::core::mem::transmute(&remoteoptions)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(server, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DisconnectProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DisconnectProcessServer(::core::mem::transmute_copy(&server)).into()
}
unsafe extern "system" fn GetRunningProcessSystemIds<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessSystemIds(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&actualcount)).into()
}
unsafe extern "system" fn GetRunningProcessSystemIdByExecutableName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRunningProcessSystemIdByExecutableName(::core::mem::transmute_copy(&server), ::core::mem::transmute(&exename), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetRunningProcessDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessDescription(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&systemid), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&exename), ::core::mem::transmute_copy(&exenamesize), ::core::mem::transmute_copy(&actualexenamesize), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&actualdescriptionsize)).into()
}
unsafe extern "system" fn AttachProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttachProcess(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn CreateProcessA<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessA(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags)).into()
}
unsafe extern "system" fn CreateProcessAndAttach<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttach(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn GetProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn OpenDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenDumpFile(::core::mem::transmute(&dumpfile)).into()
}
unsafe extern "system" fn WriteDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteDumpFile(::core::mem::transmute(&dumpfile), ::core::mem::transmute_copy(&qualifier)).into()
}
unsafe extern "system" fn ConnectSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ConnectSession(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&historylimit)).into()
}
unsafe extern "system" fn StartServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartServer(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn OutputServers<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputServers(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&machine), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn TerminateProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_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.TerminateProcesses().into()
}
unsafe extern "system" fn DetachProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_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.DetachProcesses().into()
}
unsafe extern "system" fn EndSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_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.EndSession(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetExitCode<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExitCode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(code, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DispatchCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DispatchCallbacks(::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn ExitDispatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExitDispatch(::windows::core::from_raw_borrowed(&client)).into()
}
unsafe extern "system" fn CreateClient<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *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.CreateClient() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(client, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetInputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetInputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetInputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetInputCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn GetOutputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetOutputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn GetOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOutputMask() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputMask(::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn GetOtherOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOtherOutputMask(::windows::core::from_raw_borrowed(&client)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOtherOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOtherOutputMask(::windows::core::from_raw_borrowed(&client), ::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn GetOutputWidth<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOutputWidth() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(columns, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputWidth<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputWidth(::core::mem::transmute_copy(&columns)).into()
}
unsafe extern "system" fn GetOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOutputLinePrefix(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&prefixsize)).into()
}
unsafe extern "system" fn SetOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputLinePrefix(::core::mem::transmute(&prefix)).into()
}
unsafe extern "system" fn GetIdentity<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIdentity(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&identitysize)).into()
}
unsafe extern "system" fn OutputIdentity<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputIdentity(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn GetEventCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetEventCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEventCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn FlushCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_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.FlushCallbacks().into()
}
unsafe extern "system" fn WriteDumpFile2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteDumpFile2(::core::mem::transmute(&dumpfile), ::core::mem::transmute_copy(&qualifier), ::core::mem::transmute_copy(&formatflags), ::core::mem::transmute(&comment)).into()
}
unsafe extern "system" fn AddDumpInformationFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, infofile: ::windows::core::PCSTR, r#type: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddDumpInformationFile(::core::mem::transmute(&infofile), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn EndProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndProcessServer(::core::mem::transmute_copy(&server)).into()
}
unsafe extern "system" fn WaitForProcessServerEnd<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WaitForProcessServerEnd(::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn IsKernelDebuggerEnabled<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_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.IsKernelDebuggerEnabled().into()
}
unsafe extern "system" fn TerminateCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_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.TerminateCurrentProcess().into()
}
unsafe extern "system" fn DetachCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_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.DetachCurrentProcess().into()
}
unsafe extern "system" fn AbandonCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_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.AbandonCurrentProcess().into()
}
unsafe extern "system" fn GetRunningProcessSystemIdByExecutableNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCWSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRunningProcessSystemIdByExecutableNameWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&exename), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetRunningProcessDescriptionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PWSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PWSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessDescriptionWide(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&systemid), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&exename), ::core::mem::transmute_copy(&exenamesize), ::core::mem::transmute_copy(&actualexenamesize), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&actualdescriptionsize)).into()
}
unsafe extern "system" fn CreateProcessWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags)).into()
}
unsafe extern "system" fn CreateProcessAndAttachWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttachWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn OpenDumpFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenDumpFileWide(::core::mem::transmute(&filename), ::core::mem::transmute_copy(&filehandle)).into()
}
unsafe extern "system" fn WriteDumpFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, qualifier: u32, formatflags: u32, comment: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteDumpFileWide(::core::mem::transmute(&filename), ::core::mem::transmute_copy(&filehandle), ::core::mem::transmute_copy(&qualifier), ::core::mem::transmute_copy(&formatflags), ::core::mem::transmute(&comment)).into()
}
unsafe extern "system" fn AddDumpInformationFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, r#type: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddDumpInformationFileWide(::core::mem::transmute(&filename), ::core::mem::transmute_copy(&filehandle), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn GetNumberDumpFiles<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberDumpFiles() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDumpFile(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn GetDumpFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDumpFileWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn AttachKernelWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttachKernelWide(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&connectoptions)).into()
}
unsafe extern "system" fn GetKernelConnectionOptionsWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetKernelConnectionOptionsWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&optionssize)).into()
}
unsafe extern "system" fn SetKernelConnectionOptionsWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKernelConnectionOptionsWide(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn StartProcessServerWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCWSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartProcessServerWide(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&options), ::core::mem::transmute_copy(&reserved)).into()
}
unsafe extern "system" fn ConnectProcessServerWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCWSTR, server: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ConnectProcessServerWide(::core::mem::transmute(&remoteoptions)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(server, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn StartServerWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartServerWide(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn OutputServersWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputServersWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&machine), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetOutputCallbacksWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetOutputCallbacksWide() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputCallbacksWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputCallbacksWide(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn GetOutputLinePrefixWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOutputLinePrefixWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&prefixsize)).into()
}
unsafe extern "system" fn SetOutputLinePrefixWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputLinePrefixWide(::core::mem::transmute(&prefix)).into()
}
unsafe extern "system" fn GetIdentityWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIdentityWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&identitysize)).into()
}
unsafe extern "system" fn OutputIdentityWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputIdentityWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn GetEventCallbacksWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetEventCallbacksWide() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEventCallbacksWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventCallbacksWide(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn CreateProcess2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows::core::PCSTR, environment: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcess2(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&optionsbuffer), ::core::mem::transmute_copy(&optionsbuffersize), ::core::mem::transmute(&initialdirectory), ::core::mem::transmute(&environment)).into()
}
unsafe extern "system" fn CreateProcess2Wide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows::core::PCWSTR, environment: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcess2Wide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&optionsbuffer), ::core::mem::transmute_copy(&optionsbuffersize), ::core::mem::transmute(&initialdirectory), ::core::mem::transmute(&environment)).into()
}
unsafe extern "system" fn CreateProcessAndAttach2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows::core::PCSTR, environment: ::windows::core::PCSTR, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttach2(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&optionsbuffer), ::core::mem::transmute_copy(&optionsbuffersize), ::core::mem::transmute(&initialdirectory), ::core::mem::transmute(&environment), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn CreateProcessAndAttach2Wide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows::core::PCWSTR, environment: ::windows::core::PCWSTR, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttach2Wide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&optionsbuffer), ::core::mem::transmute_copy(&optionsbuffersize), ::core::mem::transmute(&initialdirectory), ::core::mem::transmute(&environment), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn PushOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newprefix: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PushOutputLinePrefix(::core::mem::transmute(&newprefix)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PushOutputLinePrefixWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newprefix: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PushOutputLinePrefixWide(::core::mem::transmute(&newprefix)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PopOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PopOutputLinePrefix(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn GetNumberInputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberInputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberOutputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberOutputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberEventCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, eventflags: u32, count: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberEventCallbacks(::core::mem::transmute_copy(&eventflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetQuitLockString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetQuitLockString(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn SetQuitLockString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, string: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetQuitLockString(::core::mem::transmute(&string)).into()
}
unsafe extern "system" fn GetQuitLockStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetQuitLockStringWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn SetQuitLockStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, string: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetQuitLockStringWide(::core::mem::transmute(&string)).into()
}
unsafe extern "system" fn SetEventContextCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventContextCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AttachKernel: AttachKernel::<Identity, Impl, OFFSET>,
GetKernelConnectionOptions: GetKernelConnectionOptions::<Identity, Impl, OFFSET>,
SetKernelConnectionOptions: SetKernelConnectionOptions::<Identity, Impl, OFFSET>,
StartProcessServer: StartProcessServer::<Identity, Impl, OFFSET>,
ConnectProcessServer: ConnectProcessServer::<Identity, Impl, OFFSET>,
DisconnectProcessServer: DisconnectProcessServer::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIds: GetRunningProcessSystemIds::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIdByExecutableName: GetRunningProcessSystemIdByExecutableName::<Identity, Impl, OFFSET>,
GetRunningProcessDescription: GetRunningProcessDescription::<Identity, Impl, OFFSET>,
AttachProcess: AttachProcess::<Identity, Impl, OFFSET>,
CreateProcessA: CreateProcessA::<Identity, Impl, OFFSET>,
CreateProcessAndAttach: CreateProcessAndAttach::<Identity, Impl, OFFSET>,
GetProcessOptions: GetProcessOptions::<Identity, Impl, OFFSET>,
AddProcessOptions: AddProcessOptions::<Identity, Impl, OFFSET>,
RemoveProcessOptions: RemoveProcessOptions::<Identity, Impl, OFFSET>,
SetProcessOptions: SetProcessOptions::<Identity, Impl, OFFSET>,
OpenDumpFile: OpenDumpFile::<Identity, Impl, OFFSET>,
WriteDumpFile: WriteDumpFile::<Identity, Impl, OFFSET>,
ConnectSession: ConnectSession::<Identity, Impl, OFFSET>,
StartServer: StartServer::<Identity, Impl, OFFSET>,
OutputServers: OutputServers::<Identity, Impl, OFFSET>,
TerminateProcesses: TerminateProcesses::<Identity, Impl, OFFSET>,
DetachProcesses: DetachProcesses::<Identity, Impl, OFFSET>,
EndSession: EndSession::<Identity, Impl, OFFSET>,
GetExitCode: GetExitCode::<Identity, Impl, OFFSET>,
DispatchCallbacks: DispatchCallbacks::<Identity, Impl, OFFSET>,
ExitDispatch: ExitDispatch::<Identity, Impl, OFFSET>,
CreateClient: CreateClient::<Identity, Impl, OFFSET>,
GetInputCallbacks: GetInputCallbacks::<Identity, Impl, OFFSET>,
SetInputCallbacks: SetInputCallbacks::<Identity, Impl, OFFSET>,
GetOutputCallbacks: GetOutputCallbacks::<Identity, Impl, OFFSET>,
SetOutputCallbacks: SetOutputCallbacks::<Identity, Impl, OFFSET>,
GetOutputMask: GetOutputMask::<Identity, Impl, OFFSET>,
SetOutputMask: SetOutputMask::<Identity, Impl, OFFSET>,
GetOtherOutputMask: GetOtherOutputMask::<Identity, Impl, OFFSET>,
SetOtherOutputMask: SetOtherOutputMask::<Identity, Impl, OFFSET>,
GetOutputWidth: GetOutputWidth::<Identity, Impl, OFFSET>,
SetOutputWidth: SetOutputWidth::<Identity, Impl, OFFSET>,
GetOutputLinePrefix: GetOutputLinePrefix::<Identity, Impl, OFFSET>,
SetOutputLinePrefix: SetOutputLinePrefix::<Identity, Impl, OFFSET>,
GetIdentity: GetIdentity::<Identity, Impl, OFFSET>,
OutputIdentity: OutputIdentity::<Identity, Impl, OFFSET>,
GetEventCallbacks: GetEventCallbacks::<Identity, Impl, OFFSET>,
SetEventCallbacks: SetEventCallbacks::<Identity, Impl, OFFSET>,
FlushCallbacks: FlushCallbacks::<Identity, Impl, OFFSET>,
WriteDumpFile2: WriteDumpFile2::<Identity, Impl, OFFSET>,
AddDumpInformationFile: AddDumpInformationFile::<Identity, Impl, OFFSET>,
EndProcessServer: EndProcessServer::<Identity, Impl, OFFSET>,
WaitForProcessServerEnd: WaitForProcessServerEnd::<Identity, Impl, OFFSET>,
IsKernelDebuggerEnabled: IsKernelDebuggerEnabled::<Identity, Impl, OFFSET>,
TerminateCurrentProcess: TerminateCurrentProcess::<Identity, Impl, OFFSET>,
DetachCurrentProcess: DetachCurrentProcess::<Identity, Impl, OFFSET>,
AbandonCurrentProcess: AbandonCurrentProcess::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIdByExecutableNameWide: GetRunningProcessSystemIdByExecutableNameWide::<Identity, Impl, OFFSET>,
GetRunningProcessDescriptionWide: GetRunningProcessDescriptionWide::<Identity, Impl, OFFSET>,
CreateProcessWide: CreateProcessWide::<Identity, Impl, OFFSET>,
CreateProcessAndAttachWide: CreateProcessAndAttachWide::<Identity, Impl, OFFSET>,
OpenDumpFileWide: OpenDumpFileWide::<Identity, Impl, OFFSET>,
WriteDumpFileWide: WriteDumpFileWide::<Identity, Impl, OFFSET>,
AddDumpInformationFileWide: AddDumpInformationFileWide::<Identity, Impl, OFFSET>,
GetNumberDumpFiles: GetNumberDumpFiles::<Identity, Impl, OFFSET>,
GetDumpFile: GetDumpFile::<Identity, Impl, OFFSET>,
GetDumpFileWide: GetDumpFileWide::<Identity, Impl, OFFSET>,
AttachKernelWide: AttachKernelWide::<Identity, Impl, OFFSET>,
GetKernelConnectionOptionsWide: GetKernelConnectionOptionsWide::<Identity, Impl, OFFSET>,
SetKernelConnectionOptionsWide: SetKernelConnectionOptionsWide::<Identity, Impl, OFFSET>,
StartProcessServerWide: StartProcessServerWide::<Identity, Impl, OFFSET>,
ConnectProcessServerWide: ConnectProcessServerWide::<Identity, Impl, OFFSET>,
StartServerWide: StartServerWide::<Identity, Impl, OFFSET>,
OutputServersWide: OutputServersWide::<Identity, Impl, OFFSET>,
GetOutputCallbacksWide: GetOutputCallbacksWide::<Identity, Impl, OFFSET>,
SetOutputCallbacksWide: SetOutputCallbacksWide::<Identity, Impl, OFFSET>,
GetOutputLinePrefixWide: GetOutputLinePrefixWide::<Identity, Impl, OFFSET>,
SetOutputLinePrefixWide: SetOutputLinePrefixWide::<Identity, Impl, OFFSET>,
GetIdentityWide: GetIdentityWide::<Identity, Impl, OFFSET>,
OutputIdentityWide: OutputIdentityWide::<Identity, Impl, OFFSET>,
GetEventCallbacksWide: GetEventCallbacksWide::<Identity, Impl, OFFSET>,
SetEventCallbacksWide: SetEventCallbacksWide::<Identity, Impl, OFFSET>,
CreateProcess2: CreateProcess2::<Identity, Impl, OFFSET>,
CreateProcess2Wide: CreateProcess2Wide::<Identity, Impl, OFFSET>,
CreateProcessAndAttach2: CreateProcessAndAttach2::<Identity, Impl, OFFSET>,
CreateProcessAndAttach2Wide: CreateProcessAndAttach2Wide::<Identity, Impl, OFFSET>,
PushOutputLinePrefix: PushOutputLinePrefix::<Identity, Impl, OFFSET>,
PushOutputLinePrefixWide: PushOutputLinePrefixWide::<Identity, Impl, OFFSET>,
PopOutputLinePrefix: PopOutputLinePrefix::<Identity, Impl, OFFSET>,
GetNumberInputCallbacks: GetNumberInputCallbacks::<Identity, Impl, OFFSET>,
GetNumberOutputCallbacks: GetNumberOutputCallbacks::<Identity, Impl, OFFSET>,
GetNumberEventCallbacks: GetNumberEventCallbacks::<Identity, Impl, OFFSET>,
GetQuitLockString: GetQuitLockString::<Identity, Impl, OFFSET>,
SetQuitLockString: SetQuitLockString::<Identity, Impl, OFFSET>,
GetQuitLockStringWide: GetQuitLockStringWide::<Identity, Impl, OFFSET>,
SetQuitLockStringWide: SetQuitLockStringWide::<Identity, Impl, OFFSET>,
SetEventContextCallbacks: SetEventContextCallbacks::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugClient6 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugClient7_Impl: Sized {
fn AttachKernel(&self, flags: u32, connectoptions: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetKernelConnectionOptions(&self, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::Result<()>;
fn SetKernelConnectionOptions(&self, options: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn StartProcessServer(&self, flags: u32, options: &::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::Result<()>;
fn ConnectProcessServer(&self, remoteoptions: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIds(&self, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIdByExecutableName(&self, server: u64, exename: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<u32>;
fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::Result<()>;
fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessA(&self, server: u64, commandline: &::windows::core::PCSTR, createflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessAndAttach(&self, server: u64, commandline: &::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn GetProcessOptions(&self) -> ::windows::core::Result<u32>;
fn AddProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn OpenDumpFile(&self, dumpfile: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn WriteDumpFile(&self, dumpfile: &::windows::core::PCSTR, qualifier: u32) -> ::windows::core::Result<()>;
fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows::core::Result<()>;
fn StartServer(&self, options: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputServers(&self, outputcontrol: u32, machine: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn TerminateProcesses(&self) -> ::windows::core::Result<()>;
fn DetachProcesses(&self) -> ::windows::core::Result<()>;
fn EndSession(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetExitCode(&self) -> ::windows::core::Result<u32>;
fn DispatchCallbacks(&self, timeout: u32) -> ::windows::core::Result<()>;
fn ExitDispatch(&self, client: ::core::option::Option<&IDebugClient>) -> ::windows::core::Result<()>;
fn CreateClient(&self) -> ::windows::core::Result<IDebugClient>;
fn GetInputCallbacks(&self) -> ::windows::core::Result<IDebugInputCallbacks>;
fn SetInputCallbacks(&self, callbacks: ::core::option::Option<&IDebugInputCallbacks>) -> ::windows::core::Result<()>;
fn GetOutputCallbacks(&self) -> ::windows::core::Result<IDebugOutputCallbacks>;
fn SetOutputCallbacks(&self, callbacks: ::core::option::Option<&IDebugOutputCallbacks>) -> ::windows::core::Result<()>;
fn GetOutputMask(&self) -> ::windows::core::Result<u32>;
fn SetOutputMask(&self, mask: u32) -> ::windows::core::Result<()>;
fn GetOtherOutputMask(&self, client: ::core::option::Option<&IDebugClient>) -> ::windows::core::Result<u32>;
fn SetOtherOutputMask(&self, client: ::core::option::Option<&IDebugClient>, mask: u32) -> ::windows::core::Result<()>;
fn GetOutputWidth(&self) -> ::windows::core::Result<u32>;
fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()>;
fn GetOutputLinePrefix(&self, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::Result<()>;
fn SetOutputLinePrefix(&self, prefix: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetIdentity(&self, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::Result<()>;
fn OutputIdentity(&self, outputcontrol: u32, flags: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetEventCallbacks(&self) -> ::windows::core::Result<IDebugEventCallbacks>;
fn SetEventCallbacks(&self, callbacks: ::core::option::Option<&IDebugEventCallbacks>) -> ::windows::core::Result<()>;
fn FlushCallbacks(&self) -> ::windows::core::Result<()>;
fn WriteDumpFile2(&self, dumpfile: &::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AddDumpInformationFile(&self, infofile: &::windows::core::PCSTR, r#type: u32) -> ::windows::core::Result<()>;
fn EndProcessServer(&self, server: u64) -> ::windows::core::Result<()>;
fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows::core::Result<()>;
fn IsKernelDebuggerEnabled(&self) -> ::windows::core::Result<()>;
fn TerminateCurrentProcess(&self) -> ::windows::core::Result<()>;
fn DetachCurrentProcess(&self) -> ::windows::core::Result<()>;
fn AbandonCurrentProcess(&self) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIdByExecutableNameWide(&self, server: u64, exename: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<u32>;
fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PWSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PWSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::Result<()>;
fn CreateProcessWide(&self, server: u64, commandline: &::windows::core::PCWSTR, createflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessAndAttachWide(&self, server: u64, commandline: &::windows::core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn OpenDumpFileWide(&self, filename: &::windows::core::PCWSTR, filehandle: u64) -> ::windows::core::Result<()>;
fn WriteDumpFileWide(&self, filename: &::windows::core::PCWSTR, filehandle: u64, qualifier: u32, formatflags: u32, comment: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn AddDumpInformationFileWide(&self, filename: &::windows::core::PCWSTR, filehandle: u64, r#type: u32) -> ::windows::core::Result<()>;
fn GetNumberDumpFiles(&self) -> ::windows::core::Result<u32>;
fn GetDumpFile(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows::core::Result<()>;
fn GetDumpFileWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows::core::Result<()>;
fn AttachKernelWide(&self, flags: u32, connectoptions: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetKernelConnectionOptionsWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::Result<()>;
fn SetKernelConnectionOptionsWide(&self, options: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn StartProcessServerWide(&self, flags: u32, options: &::windows::core::PCWSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::Result<()>;
fn ConnectProcessServerWide(&self, remoteoptions: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn StartServerWide(&self, options: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn OutputServersWide(&self, outputcontrol: u32, machine: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetOutputCallbacksWide(&self) -> ::windows::core::Result<IDebugOutputCallbacksWide>;
fn SetOutputCallbacksWide(&self, callbacks: ::core::option::Option<&IDebugOutputCallbacksWide>) -> ::windows::core::Result<()>;
fn GetOutputLinePrefixWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::Result<()>;
fn SetOutputLinePrefixWide(&self, prefix: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetIdentityWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::Result<()>;
fn OutputIdentityWide(&self, outputcontrol: u32, flags: u32, format: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetEventCallbacksWide(&self) -> ::windows::core::Result<IDebugEventCallbacksWide>;
fn SetEventCallbacksWide(&self, callbacks: ::core::option::Option<&IDebugEventCallbacksWide>) -> ::windows::core::Result<()>;
fn CreateProcess2(&self, server: u64, commandline: &::windows::core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: &::windows::core::PCSTR, environment: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn CreateProcess2Wide(&self, server: u64, commandline: &::windows::core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: &::windows::core::PCWSTR, environment: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn CreateProcessAndAttach2(&self, server: u64, commandline: &::windows::core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: &::windows::core::PCSTR, environment: &::windows::core::PCSTR, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessAndAttach2Wide(&self, server: u64, commandline: &::windows::core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: &::windows::core::PCWSTR, environment: &::windows::core::PCWSTR, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn PushOutputLinePrefix(&self, newprefix: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn PushOutputLinePrefixWide(&self, newprefix: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn PopOutputLinePrefix(&self, handle: u64) -> ::windows::core::Result<()>;
fn GetNumberInputCallbacks(&self) -> ::windows::core::Result<u32>;
fn GetNumberOutputCallbacks(&self) -> ::windows::core::Result<u32>;
fn GetNumberEventCallbacks(&self, eventflags: u32) -> ::windows::core::Result<u32>;
fn GetQuitLockString(&self, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn SetQuitLockString(&self, string: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetQuitLockStringWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn SetQuitLockStringWide(&self, string: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn SetEventContextCallbacks(&self, callbacks: ::core::option::Option<&IDebugEventContextCallbacks>) -> ::windows::core::Result<()>;
fn SetClientContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugClient7 {}
impl IDebugClient7_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>() -> IDebugClient7_Vtbl {
unsafe extern "system" fn AttachKernel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttachKernel(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&connectoptions)).into()
}
unsafe extern "system" fn GetKernelConnectionOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetKernelConnectionOptions(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&optionssize)).into()
}
unsafe extern "system" fn SetKernelConnectionOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKernelConnectionOptions(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn StartProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartProcessServer(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&options), ::core::mem::transmute_copy(&reserved)).into()
}
unsafe extern "system" fn ConnectProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCSTR, server: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ConnectProcessServer(::core::mem::transmute(&remoteoptions)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(server, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DisconnectProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DisconnectProcessServer(::core::mem::transmute_copy(&server)).into()
}
unsafe extern "system" fn GetRunningProcessSystemIds<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessSystemIds(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&actualcount)).into()
}
unsafe extern "system" fn GetRunningProcessSystemIdByExecutableName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRunningProcessSystemIdByExecutableName(::core::mem::transmute_copy(&server), ::core::mem::transmute(&exename), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetRunningProcessDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessDescription(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&systemid), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&exename), ::core::mem::transmute_copy(&exenamesize), ::core::mem::transmute_copy(&actualexenamesize), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&actualdescriptionsize)).into()
}
unsafe extern "system" fn AttachProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttachProcess(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn CreateProcessA<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessA(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags)).into()
}
unsafe extern "system" fn CreateProcessAndAttach<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttach(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn GetProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn OpenDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenDumpFile(::core::mem::transmute(&dumpfile)).into()
}
unsafe extern "system" fn WriteDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteDumpFile(::core::mem::transmute(&dumpfile), ::core::mem::transmute_copy(&qualifier)).into()
}
unsafe extern "system" fn ConnectSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ConnectSession(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&historylimit)).into()
}
unsafe extern "system" fn StartServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartServer(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn OutputServers<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputServers(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&machine), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn TerminateProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_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.TerminateProcesses().into()
}
unsafe extern "system" fn DetachProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_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.DetachProcesses().into()
}
unsafe extern "system" fn EndSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_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.EndSession(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetExitCode<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExitCode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(code, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DispatchCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DispatchCallbacks(::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn ExitDispatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExitDispatch(::windows::core::from_raw_borrowed(&client)).into()
}
unsafe extern "system" fn CreateClient<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *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.CreateClient() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(client, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetInputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetInputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetInputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetInputCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn GetOutputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetOutputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn GetOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOutputMask() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputMask(::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn GetOtherOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOtherOutputMask(::windows::core::from_raw_borrowed(&client)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOtherOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOtherOutputMask(::windows::core::from_raw_borrowed(&client), ::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn GetOutputWidth<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOutputWidth() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(columns, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputWidth<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputWidth(::core::mem::transmute_copy(&columns)).into()
}
unsafe extern "system" fn GetOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOutputLinePrefix(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&prefixsize)).into()
}
unsafe extern "system" fn SetOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputLinePrefix(::core::mem::transmute(&prefix)).into()
}
unsafe extern "system" fn GetIdentity<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIdentity(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&identitysize)).into()
}
unsafe extern "system" fn OutputIdentity<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputIdentity(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn GetEventCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetEventCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEventCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn FlushCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_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.FlushCallbacks().into()
}
unsafe extern "system" fn WriteDumpFile2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteDumpFile2(::core::mem::transmute(&dumpfile), ::core::mem::transmute_copy(&qualifier), ::core::mem::transmute_copy(&formatflags), ::core::mem::transmute(&comment)).into()
}
unsafe extern "system" fn AddDumpInformationFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, infofile: ::windows::core::PCSTR, r#type: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddDumpInformationFile(::core::mem::transmute(&infofile), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn EndProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndProcessServer(::core::mem::transmute_copy(&server)).into()
}
unsafe extern "system" fn WaitForProcessServerEnd<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WaitForProcessServerEnd(::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn IsKernelDebuggerEnabled<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_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.IsKernelDebuggerEnabled().into()
}
unsafe extern "system" fn TerminateCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_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.TerminateCurrentProcess().into()
}
unsafe extern "system" fn DetachCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_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.DetachCurrentProcess().into()
}
unsafe extern "system" fn AbandonCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_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.AbandonCurrentProcess().into()
}
unsafe extern "system" fn GetRunningProcessSystemIdByExecutableNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCWSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRunningProcessSystemIdByExecutableNameWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&exename), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetRunningProcessDescriptionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PWSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PWSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessDescriptionWide(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&systemid), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&exename), ::core::mem::transmute_copy(&exenamesize), ::core::mem::transmute_copy(&actualexenamesize), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&actualdescriptionsize)).into()
}
unsafe extern "system" fn CreateProcessWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags)).into()
}
unsafe extern "system" fn CreateProcessAndAttachWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttachWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn OpenDumpFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenDumpFileWide(::core::mem::transmute(&filename), ::core::mem::transmute_copy(&filehandle)).into()
}
unsafe extern "system" fn WriteDumpFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, qualifier: u32, formatflags: u32, comment: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteDumpFileWide(::core::mem::transmute(&filename), ::core::mem::transmute_copy(&filehandle), ::core::mem::transmute_copy(&qualifier), ::core::mem::transmute_copy(&formatflags), ::core::mem::transmute(&comment)).into()
}
unsafe extern "system" fn AddDumpInformationFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, r#type: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddDumpInformationFileWide(::core::mem::transmute(&filename), ::core::mem::transmute_copy(&filehandle), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn GetNumberDumpFiles<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberDumpFiles() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDumpFile(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn GetDumpFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDumpFileWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn AttachKernelWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttachKernelWide(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&connectoptions)).into()
}
unsafe extern "system" fn GetKernelConnectionOptionsWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetKernelConnectionOptionsWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&optionssize)).into()
}
unsafe extern "system" fn SetKernelConnectionOptionsWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKernelConnectionOptionsWide(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn StartProcessServerWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCWSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartProcessServerWide(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&options), ::core::mem::transmute_copy(&reserved)).into()
}
unsafe extern "system" fn ConnectProcessServerWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCWSTR, server: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ConnectProcessServerWide(::core::mem::transmute(&remoteoptions)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(server, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn StartServerWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartServerWide(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn OutputServersWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputServersWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&machine), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetOutputCallbacksWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetOutputCallbacksWide() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputCallbacksWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputCallbacksWide(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn GetOutputLinePrefixWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOutputLinePrefixWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&prefixsize)).into()
}
unsafe extern "system" fn SetOutputLinePrefixWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputLinePrefixWide(::core::mem::transmute(&prefix)).into()
}
unsafe extern "system" fn GetIdentityWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIdentityWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&identitysize)).into()
}
unsafe extern "system" fn OutputIdentityWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputIdentityWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn GetEventCallbacksWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetEventCallbacksWide() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEventCallbacksWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventCallbacksWide(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn CreateProcess2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows::core::PCSTR, environment: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcess2(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&optionsbuffer), ::core::mem::transmute_copy(&optionsbuffersize), ::core::mem::transmute(&initialdirectory), ::core::mem::transmute(&environment)).into()
}
unsafe extern "system" fn CreateProcess2Wide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows::core::PCWSTR, environment: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcess2Wide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&optionsbuffer), ::core::mem::transmute_copy(&optionsbuffersize), ::core::mem::transmute(&initialdirectory), ::core::mem::transmute(&environment)).into()
}
unsafe extern "system" fn CreateProcessAndAttach2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows::core::PCSTR, environment: ::windows::core::PCSTR, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttach2(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&optionsbuffer), ::core::mem::transmute_copy(&optionsbuffersize), ::core::mem::transmute(&initialdirectory), ::core::mem::transmute(&environment), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn CreateProcessAndAttach2Wide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows::core::PCWSTR, environment: ::windows::core::PCWSTR, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttach2Wide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&optionsbuffer), ::core::mem::transmute_copy(&optionsbuffersize), ::core::mem::transmute(&initialdirectory), ::core::mem::transmute(&environment), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn PushOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newprefix: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PushOutputLinePrefix(::core::mem::transmute(&newprefix)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PushOutputLinePrefixWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newprefix: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PushOutputLinePrefixWide(::core::mem::transmute(&newprefix)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PopOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PopOutputLinePrefix(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn GetNumberInputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberInputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberOutputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberOutputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberEventCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, eventflags: u32, count: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberEventCallbacks(::core::mem::transmute_copy(&eventflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetQuitLockString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetQuitLockString(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn SetQuitLockString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, string: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetQuitLockString(::core::mem::transmute(&string)).into()
}
unsafe extern "system" fn GetQuitLockStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetQuitLockStringWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn SetQuitLockStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, string: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetQuitLockStringWide(::core::mem::transmute(&string)).into()
}
unsafe extern "system" fn SetEventContextCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventContextCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn SetClientContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetClientContext(::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AttachKernel: AttachKernel::<Identity, Impl, OFFSET>,
GetKernelConnectionOptions: GetKernelConnectionOptions::<Identity, Impl, OFFSET>,
SetKernelConnectionOptions: SetKernelConnectionOptions::<Identity, Impl, OFFSET>,
StartProcessServer: StartProcessServer::<Identity, Impl, OFFSET>,
ConnectProcessServer: ConnectProcessServer::<Identity, Impl, OFFSET>,
DisconnectProcessServer: DisconnectProcessServer::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIds: GetRunningProcessSystemIds::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIdByExecutableName: GetRunningProcessSystemIdByExecutableName::<Identity, Impl, OFFSET>,
GetRunningProcessDescription: GetRunningProcessDescription::<Identity, Impl, OFFSET>,
AttachProcess: AttachProcess::<Identity, Impl, OFFSET>,
CreateProcessA: CreateProcessA::<Identity, Impl, OFFSET>,
CreateProcessAndAttach: CreateProcessAndAttach::<Identity, Impl, OFFSET>,
GetProcessOptions: GetProcessOptions::<Identity, Impl, OFFSET>,
AddProcessOptions: AddProcessOptions::<Identity, Impl, OFFSET>,
RemoveProcessOptions: RemoveProcessOptions::<Identity, Impl, OFFSET>,
SetProcessOptions: SetProcessOptions::<Identity, Impl, OFFSET>,
OpenDumpFile: OpenDumpFile::<Identity, Impl, OFFSET>,
WriteDumpFile: WriteDumpFile::<Identity, Impl, OFFSET>,
ConnectSession: ConnectSession::<Identity, Impl, OFFSET>,
StartServer: StartServer::<Identity, Impl, OFFSET>,
OutputServers: OutputServers::<Identity, Impl, OFFSET>,
TerminateProcesses: TerminateProcesses::<Identity, Impl, OFFSET>,
DetachProcesses: DetachProcesses::<Identity, Impl, OFFSET>,
EndSession: EndSession::<Identity, Impl, OFFSET>,
GetExitCode: GetExitCode::<Identity, Impl, OFFSET>,
DispatchCallbacks: DispatchCallbacks::<Identity, Impl, OFFSET>,
ExitDispatch: ExitDispatch::<Identity, Impl, OFFSET>,
CreateClient: CreateClient::<Identity, Impl, OFFSET>,
GetInputCallbacks: GetInputCallbacks::<Identity, Impl, OFFSET>,
SetInputCallbacks: SetInputCallbacks::<Identity, Impl, OFFSET>,
GetOutputCallbacks: GetOutputCallbacks::<Identity, Impl, OFFSET>,
SetOutputCallbacks: SetOutputCallbacks::<Identity, Impl, OFFSET>,
GetOutputMask: GetOutputMask::<Identity, Impl, OFFSET>,
SetOutputMask: SetOutputMask::<Identity, Impl, OFFSET>,
GetOtherOutputMask: GetOtherOutputMask::<Identity, Impl, OFFSET>,
SetOtherOutputMask: SetOtherOutputMask::<Identity, Impl, OFFSET>,
GetOutputWidth: GetOutputWidth::<Identity, Impl, OFFSET>,
SetOutputWidth: SetOutputWidth::<Identity, Impl, OFFSET>,
GetOutputLinePrefix: GetOutputLinePrefix::<Identity, Impl, OFFSET>,
SetOutputLinePrefix: SetOutputLinePrefix::<Identity, Impl, OFFSET>,
GetIdentity: GetIdentity::<Identity, Impl, OFFSET>,
OutputIdentity: OutputIdentity::<Identity, Impl, OFFSET>,
GetEventCallbacks: GetEventCallbacks::<Identity, Impl, OFFSET>,
SetEventCallbacks: SetEventCallbacks::<Identity, Impl, OFFSET>,
FlushCallbacks: FlushCallbacks::<Identity, Impl, OFFSET>,
WriteDumpFile2: WriteDumpFile2::<Identity, Impl, OFFSET>,
AddDumpInformationFile: AddDumpInformationFile::<Identity, Impl, OFFSET>,
EndProcessServer: EndProcessServer::<Identity, Impl, OFFSET>,
WaitForProcessServerEnd: WaitForProcessServerEnd::<Identity, Impl, OFFSET>,
IsKernelDebuggerEnabled: IsKernelDebuggerEnabled::<Identity, Impl, OFFSET>,
TerminateCurrentProcess: TerminateCurrentProcess::<Identity, Impl, OFFSET>,
DetachCurrentProcess: DetachCurrentProcess::<Identity, Impl, OFFSET>,
AbandonCurrentProcess: AbandonCurrentProcess::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIdByExecutableNameWide: GetRunningProcessSystemIdByExecutableNameWide::<Identity, Impl, OFFSET>,
GetRunningProcessDescriptionWide: GetRunningProcessDescriptionWide::<Identity, Impl, OFFSET>,
CreateProcessWide: CreateProcessWide::<Identity, Impl, OFFSET>,
CreateProcessAndAttachWide: CreateProcessAndAttachWide::<Identity, Impl, OFFSET>,
OpenDumpFileWide: OpenDumpFileWide::<Identity, Impl, OFFSET>,
WriteDumpFileWide: WriteDumpFileWide::<Identity, Impl, OFFSET>,
AddDumpInformationFileWide: AddDumpInformationFileWide::<Identity, Impl, OFFSET>,
GetNumberDumpFiles: GetNumberDumpFiles::<Identity, Impl, OFFSET>,
GetDumpFile: GetDumpFile::<Identity, Impl, OFFSET>,
GetDumpFileWide: GetDumpFileWide::<Identity, Impl, OFFSET>,
AttachKernelWide: AttachKernelWide::<Identity, Impl, OFFSET>,
GetKernelConnectionOptionsWide: GetKernelConnectionOptionsWide::<Identity, Impl, OFFSET>,
SetKernelConnectionOptionsWide: SetKernelConnectionOptionsWide::<Identity, Impl, OFFSET>,
StartProcessServerWide: StartProcessServerWide::<Identity, Impl, OFFSET>,
ConnectProcessServerWide: ConnectProcessServerWide::<Identity, Impl, OFFSET>,
StartServerWide: StartServerWide::<Identity, Impl, OFFSET>,
OutputServersWide: OutputServersWide::<Identity, Impl, OFFSET>,
GetOutputCallbacksWide: GetOutputCallbacksWide::<Identity, Impl, OFFSET>,
SetOutputCallbacksWide: SetOutputCallbacksWide::<Identity, Impl, OFFSET>,
GetOutputLinePrefixWide: GetOutputLinePrefixWide::<Identity, Impl, OFFSET>,
SetOutputLinePrefixWide: SetOutputLinePrefixWide::<Identity, Impl, OFFSET>,
GetIdentityWide: GetIdentityWide::<Identity, Impl, OFFSET>,
OutputIdentityWide: OutputIdentityWide::<Identity, Impl, OFFSET>,
GetEventCallbacksWide: GetEventCallbacksWide::<Identity, Impl, OFFSET>,
SetEventCallbacksWide: SetEventCallbacksWide::<Identity, Impl, OFFSET>,
CreateProcess2: CreateProcess2::<Identity, Impl, OFFSET>,
CreateProcess2Wide: CreateProcess2Wide::<Identity, Impl, OFFSET>,
CreateProcessAndAttach2: CreateProcessAndAttach2::<Identity, Impl, OFFSET>,
CreateProcessAndAttach2Wide: CreateProcessAndAttach2Wide::<Identity, Impl, OFFSET>,
PushOutputLinePrefix: PushOutputLinePrefix::<Identity, Impl, OFFSET>,
PushOutputLinePrefixWide: PushOutputLinePrefixWide::<Identity, Impl, OFFSET>,
PopOutputLinePrefix: PopOutputLinePrefix::<Identity, Impl, OFFSET>,
GetNumberInputCallbacks: GetNumberInputCallbacks::<Identity, Impl, OFFSET>,
GetNumberOutputCallbacks: GetNumberOutputCallbacks::<Identity, Impl, OFFSET>,
GetNumberEventCallbacks: GetNumberEventCallbacks::<Identity, Impl, OFFSET>,
GetQuitLockString: GetQuitLockString::<Identity, Impl, OFFSET>,
SetQuitLockString: SetQuitLockString::<Identity, Impl, OFFSET>,
GetQuitLockStringWide: GetQuitLockStringWide::<Identity, Impl, OFFSET>,
SetQuitLockStringWide: SetQuitLockStringWide::<Identity, Impl, OFFSET>,
SetEventContextCallbacks: SetEventContextCallbacks::<Identity, Impl, OFFSET>,
SetClientContext: SetClientContext::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugClient7 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugClient8_Impl: Sized {
fn AttachKernel(&self, flags: u32, connectoptions: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetKernelConnectionOptions(&self, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::Result<()>;
fn SetKernelConnectionOptions(&self, options: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn StartProcessServer(&self, flags: u32, options: &::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::Result<()>;
fn ConnectProcessServer(&self, remoteoptions: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIds(&self, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIdByExecutableName(&self, server: u64, exename: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<u32>;
fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::Result<()>;
fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessA(&self, server: u64, commandline: &::windows::core::PCSTR, createflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessAndAttach(&self, server: u64, commandline: &::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn GetProcessOptions(&self) -> ::windows::core::Result<u32>;
fn AddProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetProcessOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn OpenDumpFile(&self, dumpfile: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn WriteDumpFile(&self, dumpfile: &::windows::core::PCSTR, qualifier: u32) -> ::windows::core::Result<()>;
fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows::core::Result<()>;
fn StartServer(&self, options: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputServers(&self, outputcontrol: u32, machine: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn TerminateProcesses(&self) -> ::windows::core::Result<()>;
fn DetachProcesses(&self) -> ::windows::core::Result<()>;
fn EndSession(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetExitCode(&self) -> ::windows::core::Result<u32>;
fn DispatchCallbacks(&self, timeout: u32) -> ::windows::core::Result<()>;
fn ExitDispatch(&self, client: ::core::option::Option<&IDebugClient>) -> ::windows::core::Result<()>;
fn CreateClient(&self) -> ::windows::core::Result<IDebugClient>;
fn GetInputCallbacks(&self) -> ::windows::core::Result<IDebugInputCallbacks>;
fn SetInputCallbacks(&self, callbacks: ::core::option::Option<&IDebugInputCallbacks>) -> ::windows::core::Result<()>;
fn GetOutputCallbacks(&self) -> ::windows::core::Result<IDebugOutputCallbacks>;
fn SetOutputCallbacks(&self, callbacks: ::core::option::Option<&IDebugOutputCallbacks>) -> ::windows::core::Result<()>;
fn GetOutputMask(&self) -> ::windows::core::Result<u32>;
fn SetOutputMask(&self, mask: u32) -> ::windows::core::Result<()>;
fn GetOtherOutputMask(&self, client: ::core::option::Option<&IDebugClient>) -> ::windows::core::Result<u32>;
fn SetOtherOutputMask(&self, client: ::core::option::Option<&IDebugClient>, mask: u32) -> ::windows::core::Result<()>;
fn GetOutputWidth(&self) -> ::windows::core::Result<u32>;
fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()>;
fn GetOutputLinePrefix(&self, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::Result<()>;
fn SetOutputLinePrefix(&self, prefix: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetIdentity(&self, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::Result<()>;
fn OutputIdentity(&self, outputcontrol: u32, flags: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetEventCallbacks(&self) -> ::windows::core::Result<IDebugEventCallbacks>;
fn SetEventCallbacks(&self, callbacks: ::core::option::Option<&IDebugEventCallbacks>) -> ::windows::core::Result<()>;
fn FlushCallbacks(&self) -> ::windows::core::Result<()>;
fn WriteDumpFile2(&self, dumpfile: &::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AddDumpInformationFile(&self, infofile: &::windows::core::PCSTR, r#type: u32) -> ::windows::core::Result<()>;
fn EndProcessServer(&self, server: u64) -> ::windows::core::Result<()>;
fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows::core::Result<()>;
fn IsKernelDebuggerEnabled(&self) -> ::windows::core::Result<()>;
fn TerminateCurrentProcess(&self) -> ::windows::core::Result<()>;
fn DetachCurrentProcess(&self) -> ::windows::core::Result<()>;
fn AbandonCurrentProcess(&self) -> ::windows::core::Result<()>;
fn GetRunningProcessSystemIdByExecutableNameWide(&self, server: u64, exename: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<u32>;
fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PWSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PWSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::Result<()>;
fn CreateProcessWide(&self, server: u64, commandline: &::windows::core::PCWSTR, createflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessAndAttachWide(&self, server: u64, commandline: &::windows::core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn OpenDumpFileWide(&self, filename: &::windows::core::PCWSTR, filehandle: u64) -> ::windows::core::Result<()>;
fn WriteDumpFileWide(&self, filename: &::windows::core::PCWSTR, filehandle: u64, qualifier: u32, formatflags: u32, comment: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn AddDumpInformationFileWide(&self, filename: &::windows::core::PCWSTR, filehandle: u64, r#type: u32) -> ::windows::core::Result<()>;
fn GetNumberDumpFiles(&self) -> ::windows::core::Result<u32>;
fn GetDumpFile(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows::core::Result<()>;
fn GetDumpFileWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows::core::Result<()>;
fn AttachKernelWide(&self, flags: u32, connectoptions: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetKernelConnectionOptionsWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::Result<()>;
fn SetKernelConnectionOptionsWide(&self, options: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn StartProcessServerWide(&self, flags: u32, options: &::windows::core::PCWSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::Result<()>;
fn ConnectProcessServerWide(&self, remoteoptions: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn StartServerWide(&self, options: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn OutputServersWide(&self, outputcontrol: u32, machine: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetOutputCallbacksWide(&self) -> ::windows::core::Result<IDebugOutputCallbacksWide>;
fn SetOutputCallbacksWide(&self, callbacks: ::core::option::Option<&IDebugOutputCallbacksWide>) -> ::windows::core::Result<()>;
fn GetOutputLinePrefixWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::Result<()>;
fn SetOutputLinePrefixWide(&self, prefix: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetIdentityWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::Result<()>;
fn OutputIdentityWide(&self, outputcontrol: u32, flags: u32, format: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetEventCallbacksWide(&self) -> ::windows::core::Result<IDebugEventCallbacksWide>;
fn SetEventCallbacksWide(&self, callbacks: ::core::option::Option<&IDebugEventCallbacksWide>) -> ::windows::core::Result<()>;
fn CreateProcess2(&self, server: u64, commandline: &::windows::core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: &::windows::core::PCSTR, environment: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn CreateProcess2Wide(&self, server: u64, commandline: &::windows::core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: &::windows::core::PCWSTR, environment: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn CreateProcessAndAttach2(&self, server: u64, commandline: &::windows::core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: &::windows::core::PCSTR, environment: &::windows::core::PCSTR, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn CreateProcessAndAttach2Wide(&self, server: u64, commandline: &::windows::core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: &::windows::core::PCWSTR, environment: &::windows::core::PCWSTR, processid: u32, attachflags: u32) -> ::windows::core::Result<()>;
fn PushOutputLinePrefix(&self, newprefix: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn PushOutputLinePrefixWide(&self, newprefix: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn PopOutputLinePrefix(&self, handle: u64) -> ::windows::core::Result<()>;
fn GetNumberInputCallbacks(&self) -> ::windows::core::Result<u32>;
fn GetNumberOutputCallbacks(&self) -> ::windows::core::Result<u32>;
fn GetNumberEventCallbacks(&self, eventflags: u32) -> ::windows::core::Result<u32>;
fn GetQuitLockString(&self, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn SetQuitLockString(&self, string: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetQuitLockStringWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn SetQuitLockStringWide(&self, string: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn SetEventContextCallbacks(&self, callbacks: ::core::option::Option<&IDebugEventContextCallbacks>) -> ::windows::core::Result<()>;
fn SetClientContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
fn OpenDumpFileWide2(&self, filename: &::windows::core::PCWSTR, filehandle: u64, alternatearch: u32) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugClient8 {}
impl IDebugClient8_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>() -> IDebugClient8_Vtbl {
unsafe extern "system" fn AttachKernel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttachKernel(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&connectoptions)).into()
}
unsafe extern "system" fn GetKernelConnectionOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetKernelConnectionOptions(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&optionssize)).into()
}
unsafe extern "system" fn SetKernelConnectionOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKernelConnectionOptions(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn StartProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartProcessServer(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&options), ::core::mem::transmute_copy(&reserved)).into()
}
unsafe extern "system" fn ConnectProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCSTR, server: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ConnectProcessServer(::core::mem::transmute(&remoteoptions)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(server, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DisconnectProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DisconnectProcessServer(::core::mem::transmute_copy(&server)).into()
}
unsafe extern "system" fn GetRunningProcessSystemIds<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessSystemIds(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&actualcount)).into()
}
unsafe extern "system" fn GetRunningProcessSystemIdByExecutableName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRunningProcessSystemIdByExecutableName(::core::mem::transmute_copy(&server), ::core::mem::transmute(&exename), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetRunningProcessDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessDescription(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&systemid), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&exename), ::core::mem::transmute_copy(&exenamesize), ::core::mem::transmute_copy(&actualexenamesize), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&actualdescriptionsize)).into()
}
unsafe extern "system" fn AttachProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttachProcess(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn CreateProcessA<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessA(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags)).into()
}
unsafe extern "system" fn CreateProcessAndAttach<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttach(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn GetProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetProcessOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetProcessOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn OpenDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenDumpFile(::core::mem::transmute(&dumpfile)).into()
}
unsafe extern "system" fn WriteDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteDumpFile(::core::mem::transmute(&dumpfile), ::core::mem::transmute_copy(&qualifier)).into()
}
unsafe extern "system" fn ConnectSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ConnectSession(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&historylimit)).into()
}
unsafe extern "system" fn StartServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartServer(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn OutputServers<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputServers(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&machine), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn TerminateProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_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.TerminateProcesses().into()
}
unsafe extern "system" fn DetachProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_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.DetachProcesses().into()
}
unsafe extern "system" fn EndSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_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.EndSession(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetExitCode<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExitCode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(code, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DispatchCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DispatchCallbacks(::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn ExitDispatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExitDispatch(::windows::core::from_raw_borrowed(&client)).into()
}
unsafe extern "system" fn CreateClient<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *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.CreateClient() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(client, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetInputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetInputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetInputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetInputCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn GetOutputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetOutputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn GetOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOutputMask() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputMask(::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn GetOtherOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOtherOutputMask(::windows::core::from_raw_borrowed(&client)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOtherOutputMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOtherOutputMask(::windows::core::from_raw_borrowed(&client), ::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn GetOutputWidth<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOutputWidth() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(columns, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputWidth<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputWidth(::core::mem::transmute_copy(&columns)).into()
}
unsafe extern "system" fn GetOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOutputLinePrefix(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&prefixsize)).into()
}
unsafe extern "system" fn SetOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputLinePrefix(::core::mem::transmute(&prefix)).into()
}
unsafe extern "system" fn GetIdentity<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIdentity(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&identitysize)).into()
}
unsafe extern "system" fn OutputIdentity<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputIdentity(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn GetEventCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetEventCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEventCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn FlushCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_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.FlushCallbacks().into()
}
unsafe extern "system" fn WriteDumpFile2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteDumpFile2(::core::mem::transmute(&dumpfile), ::core::mem::transmute_copy(&qualifier), ::core::mem::transmute_copy(&formatflags), ::core::mem::transmute(&comment)).into()
}
unsafe extern "system" fn AddDumpInformationFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, infofile: ::windows::core::PCSTR, r#type: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddDumpInformationFile(::core::mem::transmute(&infofile), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn EndProcessServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndProcessServer(::core::mem::transmute_copy(&server)).into()
}
unsafe extern "system" fn WaitForProcessServerEnd<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WaitForProcessServerEnd(::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn IsKernelDebuggerEnabled<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_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.IsKernelDebuggerEnabled().into()
}
unsafe extern "system" fn TerminateCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_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.TerminateCurrentProcess().into()
}
unsafe extern "system" fn DetachCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_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.DetachCurrentProcess().into()
}
unsafe extern "system" fn AbandonCurrentProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_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.AbandonCurrentProcess().into()
}
unsafe extern "system" fn GetRunningProcessSystemIdByExecutableNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCWSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRunningProcessSystemIdByExecutableNameWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&exename), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetRunningProcessDescriptionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows::core::PWSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows::core::PWSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRunningProcessDescriptionWide(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&systemid), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&exename), ::core::mem::transmute_copy(&exenamesize), ::core::mem::transmute_copy(&actualexenamesize), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&actualdescriptionsize)).into()
}
unsafe extern "system" fn CreateProcessWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags)).into()
}
unsafe extern "system" fn CreateProcessAndAttachWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttachWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&createflags), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn OpenDumpFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenDumpFileWide(::core::mem::transmute(&filename), ::core::mem::transmute_copy(&filehandle)).into()
}
unsafe extern "system" fn WriteDumpFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, qualifier: u32, formatflags: u32, comment: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteDumpFileWide(::core::mem::transmute(&filename), ::core::mem::transmute_copy(&filehandle), ::core::mem::transmute_copy(&qualifier), ::core::mem::transmute_copy(&formatflags), ::core::mem::transmute(&comment)).into()
}
unsafe extern "system" fn AddDumpInformationFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, r#type: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddDumpInformationFileWide(::core::mem::transmute(&filename), ::core::mem::transmute_copy(&filehandle), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn GetNumberDumpFiles<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberDumpFiles() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDumpFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDumpFile(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn GetDumpFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDumpFileWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn AttachKernelWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttachKernelWide(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&connectoptions)).into()
}
unsafe extern "system" fn GetKernelConnectionOptionsWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetKernelConnectionOptionsWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&optionssize)).into()
}
unsafe extern "system" fn SetKernelConnectionOptionsWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKernelConnectionOptionsWide(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn StartProcessServerWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCWSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartProcessServerWide(::core::mem::transmute_copy(&flags), ::core::mem::transmute(&options), ::core::mem::transmute_copy(&reserved)).into()
}
unsafe extern "system" fn ConnectProcessServerWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCWSTR, server: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ConnectProcessServerWide(::core::mem::transmute(&remoteoptions)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(server, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn StartServerWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartServerWide(::core::mem::transmute(&options)).into()
}
unsafe extern "system" fn OutputServersWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputServersWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&machine), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetOutputCallbacksWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetOutputCallbacksWide() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputCallbacksWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputCallbacksWide(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn GetOutputLinePrefixWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOutputLinePrefixWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&prefixsize)).into()
}
unsafe extern "system" fn SetOutputLinePrefixWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputLinePrefixWide(::core::mem::transmute(&prefix)).into()
}
unsafe extern "system" fn GetIdentityWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIdentityWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&identitysize)).into()
}
unsafe extern "system" fn OutputIdentityWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputIdentityWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn GetEventCallbacksWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *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.GetEventCallbacksWide() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(callbacks, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEventCallbacksWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventCallbacksWide(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn CreateProcess2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows::core::PCSTR, environment: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcess2(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&optionsbuffer), ::core::mem::transmute_copy(&optionsbuffersize), ::core::mem::transmute(&initialdirectory), ::core::mem::transmute(&environment)).into()
}
unsafe extern "system" fn CreateProcess2Wide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows::core::PCWSTR, environment: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcess2Wide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&optionsbuffer), ::core::mem::transmute_copy(&optionsbuffersize), ::core::mem::transmute(&initialdirectory), ::core::mem::transmute(&environment)).into()
}
unsafe extern "system" fn CreateProcessAndAttach2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows::core::PCSTR, environment: ::windows::core::PCSTR, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttach2(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&optionsbuffer), ::core::mem::transmute_copy(&optionsbuffersize), ::core::mem::transmute(&initialdirectory), ::core::mem::transmute(&environment), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn CreateProcessAndAttach2Wide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows::core::PCWSTR, environment: ::windows::core::PCWSTR, processid: u32, attachflags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessAndAttach2Wide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&commandline), ::core::mem::transmute_copy(&optionsbuffer), ::core::mem::transmute_copy(&optionsbuffersize), ::core::mem::transmute(&initialdirectory), ::core::mem::transmute(&environment), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&attachflags)).into()
}
unsafe extern "system" fn PushOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newprefix: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PushOutputLinePrefix(::core::mem::transmute(&newprefix)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PushOutputLinePrefixWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newprefix: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PushOutputLinePrefixWide(::core::mem::transmute(&newprefix)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PopOutputLinePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PopOutputLinePrefix(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn GetNumberInputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberInputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberOutputCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberOutputCallbacks() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberEventCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, eventflags: u32, count: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberEventCallbacks(::core::mem::transmute_copy(&eventflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetQuitLockString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetQuitLockString(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn SetQuitLockString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, string: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetQuitLockString(::core::mem::transmute(&string)).into()
}
unsafe extern "system" fn GetQuitLockStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetQuitLockStringWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn SetQuitLockStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, string: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetQuitLockStringWide(::core::mem::transmute(&string)).into()
}
unsafe extern "system" fn SetEventContextCallbacks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventContextCallbacks(::windows::core::from_raw_borrowed(&callbacks)).into()
}
unsafe extern "system" fn SetClientContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetClientContext(::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
unsafe extern "system" fn OpenDumpFileWide2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugClient8_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, alternatearch: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenDumpFileWide2(::core::mem::transmute(&filename), ::core::mem::transmute_copy(&filehandle), ::core::mem::transmute_copy(&alternatearch)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AttachKernel: AttachKernel::<Identity, Impl, OFFSET>,
GetKernelConnectionOptions: GetKernelConnectionOptions::<Identity, Impl, OFFSET>,
SetKernelConnectionOptions: SetKernelConnectionOptions::<Identity, Impl, OFFSET>,
StartProcessServer: StartProcessServer::<Identity, Impl, OFFSET>,
ConnectProcessServer: ConnectProcessServer::<Identity, Impl, OFFSET>,
DisconnectProcessServer: DisconnectProcessServer::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIds: GetRunningProcessSystemIds::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIdByExecutableName: GetRunningProcessSystemIdByExecutableName::<Identity, Impl, OFFSET>,
GetRunningProcessDescription: GetRunningProcessDescription::<Identity, Impl, OFFSET>,
AttachProcess: AttachProcess::<Identity, Impl, OFFSET>,
CreateProcessA: CreateProcessA::<Identity, Impl, OFFSET>,
CreateProcessAndAttach: CreateProcessAndAttach::<Identity, Impl, OFFSET>,
GetProcessOptions: GetProcessOptions::<Identity, Impl, OFFSET>,
AddProcessOptions: AddProcessOptions::<Identity, Impl, OFFSET>,
RemoveProcessOptions: RemoveProcessOptions::<Identity, Impl, OFFSET>,
SetProcessOptions: SetProcessOptions::<Identity, Impl, OFFSET>,
OpenDumpFile: OpenDumpFile::<Identity, Impl, OFFSET>,
WriteDumpFile: WriteDumpFile::<Identity, Impl, OFFSET>,
ConnectSession: ConnectSession::<Identity, Impl, OFFSET>,
StartServer: StartServer::<Identity, Impl, OFFSET>,
OutputServers: OutputServers::<Identity, Impl, OFFSET>,
TerminateProcesses: TerminateProcesses::<Identity, Impl, OFFSET>,
DetachProcesses: DetachProcesses::<Identity, Impl, OFFSET>,
EndSession: EndSession::<Identity, Impl, OFFSET>,
GetExitCode: GetExitCode::<Identity, Impl, OFFSET>,
DispatchCallbacks: DispatchCallbacks::<Identity, Impl, OFFSET>,
ExitDispatch: ExitDispatch::<Identity, Impl, OFFSET>,
CreateClient: CreateClient::<Identity, Impl, OFFSET>,
GetInputCallbacks: GetInputCallbacks::<Identity, Impl, OFFSET>,
SetInputCallbacks: SetInputCallbacks::<Identity, Impl, OFFSET>,
GetOutputCallbacks: GetOutputCallbacks::<Identity, Impl, OFFSET>,
SetOutputCallbacks: SetOutputCallbacks::<Identity, Impl, OFFSET>,
GetOutputMask: GetOutputMask::<Identity, Impl, OFFSET>,
SetOutputMask: SetOutputMask::<Identity, Impl, OFFSET>,
GetOtherOutputMask: GetOtherOutputMask::<Identity, Impl, OFFSET>,
SetOtherOutputMask: SetOtherOutputMask::<Identity, Impl, OFFSET>,
GetOutputWidth: GetOutputWidth::<Identity, Impl, OFFSET>,
SetOutputWidth: SetOutputWidth::<Identity, Impl, OFFSET>,
GetOutputLinePrefix: GetOutputLinePrefix::<Identity, Impl, OFFSET>,
SetOutputLinePrefix: SetOutputLinePrefix::<Identity, Impl, OFFSET>,
GetIdentity: GetIdentity::<Identity, Impl, OFFSET>,
OutputIdentity: OutputIdentity::<Identity, Impl, OFFSET>,
GetEventCallbacks: GetEventCallbacks::<Identity, Impl, OFFSET>,
SetEventCallbacks: SetEventCallbacks::<Identity, Impl, OFFSET>,
FlushCallbacks: FlushCallbacks::<Identity, Impl, OFFSET>,
WriteDumpFile2: WriteDumpFile2::<Identity, Impl, OFFSET>,
AddDumpInformationFile: AddDumpInformationFile::<Identity, Impl, OFFSET>,
EndProcessServer: EndProcessServer::<Identity, Impl, OFFSET>,
WaitForProcessServerEnd: WaitForProcessServerEnd::<Identity, Impl, OFFSET>,
IsKernelDebuggerEnabled: IsKernelDebuggerEnabled::<Identity, Impl, OFFSET>,
TerminateCurrentProcess: TerminateCurrentProcess::<Identity, Impl, OFFSET>,
DetachCurrentProcess: DetachCurrentProcess::<Identity, Impl, OFFSET>,
AbandonCurrentProcess: AbandonCurrentProcess::<Identity, Impl, OFFSET>,
GetRunningProcessSystemIdByExecutableNameWide: GetRunningProcessSystemIdByExecutableNameWide::<Identity, Impl, OFFSET>,
GetRunningProcessDescriptionWide: GetRunningProcessDescriptionWide::<Identity, Impl, OFFSET>,
CreateProcessWide: CreateProcessWide::<Identity, Impl, OFFSET>,
CreateProcessAndAttachWide: CreateProcessAndAttachWide::<Identity, Impl, OFFSET>,
OpenDumpFileWide: OpenDumpFileWide::<Identity, Impl, OFFSET>,
WriteDumpFileWide: WriteDumpFileWide::<Identity, Impl, OFFSET>,
AddDumpInformationFileWide: AddDumpInformationFileWide::<Identity, Impl, OFFSET>,
GetNumberDumpFiles: GetNumberDumpFiles::<Identity, Impl, OFFSET>,
GetDumpFile: GetDumpFile::<Identity, Impl, OFFSET>,
GetDumpFileWide: GetDumpFileWide::<Identity, Impl, OFFSET>,
AttachKernelWide: AttachKernelWide::<Identity, Impl, OFFSET>,
GetKernelConnectionOptionsWide: GetKernelConnectionOptionsWide::<Identity, Impl, OFFSET>,
SetKernelConnectionOptionsWide: SetKernelConnectionOptionsWide::<Identity, Impl, OFFSET>,
StartProcessServerWide: StartProcessServerWide::<Identity, Impl, OFFSET>,
ConnectProcessServerWide: ConnectProcessServerWide::<Identity, Impl, OFFSET>,
StartServerWide: StartServerWide::<Identity, Impl, OFFSET>,
OutputServersWide: OutputServersWide::<Identity, Impl, OFFSET>,
GetOutputCallbacksWide: GetOutputCallbacksWide::<Identity, Impl, OFFSET>,
SetOutputCallbacksWide: SetOutputCallbacksWide::<Identity, Impl, OFFSET>,
GetOutputLinePrefixWide: GetOutputLinePrefixWide::<Identity, Impl, OFFSET>,
SetOutputLinePrefixWide: SetOutputLinePrefixWide::<Identity, Impl, OFFSET>,
GetIdentityWide: GetIdentityWide::<Identity, Impl, OFFSET>,
OutputIdentityWide: OutputIdentityWide::<Identity, Impl, OFFSET>,
GetEventCallbacksWide: GetEventCallbacksWide::<Identity, Impl, OFFSET>,
SetEventCallbacksWide: SetEventCallbacksWide::<Identity, Impl, OFFSET>,
CreateProcess2: CreateProcess2::<Identity, Impl, OFFSET>,
CreateProcess2Wide: CreateProcess2Wide::<Identity, Impl, OFFSET>,
CreateProcessAndAttach2: CreateProcessAndAttach2::<Identity, Impl, OFFSET>,
CreateProcessAndAttach2Wide: CreateProcessAndAttach2Wide::<Identity, Impl, OFFSET>,
PushOutputLinePrefix: PushOutputLinePrefix::<Identity, Impl, OFFSET>,
PushOutputLinePrefixWide: PushOutputLinePrefixWide::<Identity, Impl, OFFSET>,
PopOutputLinePrefix: PopOutputLinePrefix::<Identity, Impl, OFFSET>,
GetNumberInputCallbacks: GetNumberInputCallbacks::<Identity, Impl, OFFSET>,
GetNumberOutputCallbacks: GetNumberOutputCallbacks::<Identity, Impl, OFFSET>,
GetNumberEventCallbacks: GetNumberEventCallbacks::<Identity, Impl, OFFSET>,
GetQuitLockString: GetQuitLockString::<Identity, Impl, OFFSET>,
SetQuitLockString: SetQuitLockString::<Identity, Impl, OFFSET>,
GetQuitLockStringWide: GetQuitLockStringWide::<Identity, Impl, OFFSET>,
SetQuitLockStringWide: SetQuitLockStringWide::<Identity, Impl, OFFSET>,
SetEventContextCallbacks: SetEventContextCallbacks::<Identity, Impl, OFFSET>,
SetClientContext: SetClientContext::<Identity, Impl, OFFSET>,
OpenDumpFileWide2: OpenDumpFileWide2::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugClient8 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
pub trait IDebugControl_Impl: Sized {
fn GetInterrupt(&self) -> ::windows::core::Result<()>;
fn SetInterrupt(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetInterruptTimeout(&self) -> ::windows::core::Result<u32>;
fn SetInterruptTimeout(&self, seconds: u32) -> ::windows::core::Result<()>;
fn GetLogFile(&self, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn OpenLogFile(&self, file: &::windows::core::PCSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn CloseLogFile(&self) -> ::windows::core::Result<()>;
fn GetLogMask(&self) -> ::windows::core::Result<u32>;
fn SetLogMask(&self, mask: u32) -> ::windows::core::Result<()>;
fn Input(&self, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::Result<()>;
fn ReturnInput(&self, buffer: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn Output(&self, mask: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputVaList(&self, mask: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn ControlledOutput(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn ControlledOutputVaList(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn OutputPrompt(&self, outputcontrol: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputPromptVaList(&self, outputcontrol: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn GetPromptText(&self, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()>;
fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows::core::Result<()>;
fn GetNotifyEventHandle(&self) -> ::windows::core::Result<u64>;
fn SetNotifyEventHandle(&self, handle: u64) -> ::windows::core::Result<()>;
fn Assemble(&self, offset: u64, instr: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn Disassemble(&self, offset: u64, flags: u32, buffer: ::windows::core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::Result<()>;
fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result<u64>;
fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows::core::Result<u64>;
fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows::core::Result<()>;
fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result<u64>;
fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows::core::Result<()>;
fn GetReturnOffset(&self) -> ::windows::core::Result<u64>;
fn OutputStackTrace(&self, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows::core::Result<()>;
fn GetActualProcessorType(&self) -> ::windows::core::Result<u32>;
fn GetExecutingProcessorType(&self) -> ::windows::core::Result<u32>;
fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows::core::Result<u32>;
fn GetPossibleExecutingProcessorTypes(&self, start: u32, count: u32, types: *mut u32) -> ::windows::core::Result<()>;
fn GetNumberProcessors(&self) -> ::windows::core::Result<u32>;
fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows::core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows::core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows::core::Result<()>;
fn GetPageSize(&self) -> ::windows::core::Result<u32>;
fn IsPointer64Bit(&self) -> ::windows::core::Result<()>;
fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::Result<()>;
fn GetNumberSupportedProcessorTypes(&self) -> ::windows::core::Result<u32>;
fn GetSupportedProcessorTypes(&self, start: u32, count: u32, types: *mut u32) -> ::windows::core::Result<()>;
fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetEffectiveProcessorType(&self) -> ::windows::core::Result<u32>;
fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows::core::Result<()>;
fn GetExecutionStatus(&self) -> ::windows::core::Result<u32>;
fn SetExecutionStatus(&self, status: u32) -> ::windows::core::Result<()>;
fn GetCodeLevel(&self) -> ::windows::core::Result<u32>;
fn SetCodeLevel(&self, level: u32) -> ::windows::core::Result<()>;
fn GetEngineOptions(&self) -> ::windows::core::Result<u32>;
fn AddEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::Result<()>;
fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()>;
fn GetTextMacro(&self, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextMacro(&self, slot: u32, r#macro: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetRadix(&self) -> ::windows::core::Result<u32>;
fn SetRadix(&self, radix: u32) -> ::windows::core::Result<()>;
fn Evaluate(&self, expression: &::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::Result<()>;
fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()>;
fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()>;
fn Execute(&self, outputcontrol: u32, command: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn ExecuteCommandFile(&self, outputcontrol: u32, commandfile: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetNumberBreakpoints(&self) -> ::windows::core::Result<u32>;
fn GetBreakpointByIndex(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn GetBreakpointById(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn GetBreakpointParameters(&self, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()>;
fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn RemoveBreakpoint(&self, bp: ::core::option::Option<&IDebugBreakpoint>) -> ::windows::core::Result<()>;
fn AddExtension(&self, path: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<u64>;
fn RemoveExtension(&self, handle: u64) -> ::windows::core::Result<()>;
fn GetExtensionByPath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn CallExtension(&self, handle: u64, function: &::windows::core::PCSTR, arguments: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetExtensionFunction(&self, handle: u64, funcname: &::windows::core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>;
fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::Result<()>;
fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::Result<()>;
fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::Result<()>;
fn GetEventFilterText(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn GetEventFilterCommand(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetEventFilterCommand(&self, index: u32, command: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetSpecificFilterParameters(&self, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn SetSpecificFilterParameters(&self, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn GetSpecificFilterArgument(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSpecificFilterArgument(&self, index: u32, argument: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetExceptionFilterParameters(&self, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn SetExceptionFilterParameters(&self, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetExceptionFilterSecondCommand(&self, index: u32, command: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()>;
fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::windows::core::RuntimeName for IDebugControl {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl IDebugControl_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>() -> IDebugControl_Vtbl {
unsafe extern "system" fn GetInterrupt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_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.GetInterrupt().into()
}
unsafe extern "system" fn SetInterrupt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_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.SetInterrupt(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetInterruptTimeout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetInterruptTimeout() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(seconds, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetInterruptTimeout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetInterruptTimeout(::core::mem::transmute_copy(&seconds)).into()
}
unsafe extern "system" fn GetLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::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.GetLogFile(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn OpenLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, append: super::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.OpenLogFile(::core::mem::transmute(&file), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn CloseLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_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.CloseLogFile().into()
}
unsafe extern "system" fn GetLogMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLogMask() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetLogMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetLogMask(::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn Input<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Input(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&inputsize)).into()
}
unsafe extern "system" fn ReturnInput<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReturnInput(::core::mem::transmute(&buffer)).into()
}
unsafe extern "system" fn Output<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Output(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputVaList(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn ControlledOutput<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutput(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn ControlledOutputVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutputVaList(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn OutputPrompt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPrompt(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputPromptVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPromptVaList(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn GetPromptText<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPromptText(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn OutputCurrentState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputCurrentState(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn OutputVersionInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputVersionInformation(::core::mem::transmute_copy(&outputcontrol)).into()
}
unsafe extern "system" fn GetNotifyEventHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNotifyEventHandle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetNotifyEventHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNotifyEventHandle(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn Assemble<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCSTR, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Assemble(::core::mem::transmute_copy(&offset), ::core::mem::transmute(&instr)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(endoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Disassemble<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows::core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Disassemble(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&disassemblysize), ::core::mem::transmute_copy(&endoffset)).into()
}
unsafe extern "system" fn GetDisassembleEffectiveOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDisassembleEffectiveOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputDisassembly<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.OutputDisassembly(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(endoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputDisassemblyLines<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputDisassemblyLines(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&previouslines), ::core::mem::transmute_copy(&totallines), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&offsetline), ::core::mem::transmute_copy(&startoffset), ::core::mem::transmute_copy(&endoffset), ::core::mem::transmute_copy(&lineoffsets)).into()
}
unsafe extern "system" fn GetNearInstruction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNearInstruction(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&delta)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(nearoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStackTrace(::core::mem::transmute_copy(&frameoffset), ::core::mem::transmute_copy(&stackoffset), ::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framesfilled)).into()
}
unsafe extern "system" fn GetReturnOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetReturnOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputStackTrace(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetDebuggeeType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDebuggeeType(::core::mem::transmute_copy(&class), ::core::mem::transmute_copy(&qualifier)).into()
}
unsafe extern "system" fn GetActualProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetActualProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetExecutingProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExecutingProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberPossibleExecutingProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberPossibleExecutingProcessorTypes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetPossibleExecutingProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPossibleExecutingProcessorTypes(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&types)).into()
}
unsafe extern "system" fn GetNumberProcessors<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberProcessors() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSystemVersion<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows::core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows::core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemVersion(::core::mem::transmute_copy(&platformid), ::core::mem::transmute_copy(&major), ::core::mem::transmute_copy(&minor), ::core::mem::transmute_copy(&servicepackstring), ::core::mem::transmute_copy(&servicepackstringsize), ::core::mem::transmute_copy(&servicepackstringused), ::core::mem::transmute_copy(&servicepacknumber), ::core::mem::transmute_copy(&buildstring), ::core::mem::transmute_copy(&buildstringsize), ::core::mem::transmute_copy(&buildstringused))
.into()
}
unsafe extern "system" fn GetPageSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPageSize() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(size, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsPointer64Bit<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_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.IsPointer64Bit().into()
}
unsafe extern "system" fn ReadBugCheckData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadBugCheckData(::core::mem::transmute_copy(&code), ::core::mem::transmute_copy(&arg1), ::core::mem::transmute_copy(&arg2), ::core::mem::transmute_copy(&arg3), ::core::mem::transmute_copy(&arg4)).into()
}
unsafe extern "system" fn GetNumberSupportedProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberSupportedProcessorTypes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSupportedProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSupportedProcessorTypes(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&types)).into()
}
unsafe extern "system" fn GetProcessorTypeNames<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetProcessorTypeNames(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&fullnamebuffer), ::core::mem::transmute_copy(&fullnamebuffersize), ::core::mem::transmute_copy(&fullnamesize), ::core::mem::transmute_copy(&abbrevnamebuffer), ::core::mem::transmute_copy(&abbrevnamebuffersize), ::core::mem::transmute_copy(&abbrevnamesize)).into()
}
unsafe extern "system" fn GetEffectiveProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEffectiveProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEffectiveProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEffectiveProcessorType(::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn GetExecutionStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExecutionStatus() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(status, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetExecutionStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExecutionStatus(::core::mem::transmute_copy(&status)).into()
}
unsafe extern "system" fn GetCodeLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCodeLevel() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(level, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCodeLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, level: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCodeLevel(::core::mem::transmute_copy(&level)).into()
}
unsafe extern "system" fn GetEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEngineOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn GetSystemErrorControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemErrorControl(::core::mem::transmute_copy(&outputlevel), ::core::mem::transmute_copy(&breaklevel)).into()
}
unsafe extern "system" fn SetSystemErrorControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSystemErrorControl(::core::mem::transmute_copy(&outputlevel), ::core::mem::transmute_copy(&breaklevel)).into()
}
unsafe extern "system" fn GetTextMacro<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextMacro(::core::mem::transmute_copy(&slot), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&macrosize)).into()
}
unsafe extern "system" fn SetTextMacro<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextMacro(::core::mem::transmute_copy(&slot), ::core::mem::transmute(&r#macro)).into()
}
unsafe extern "system" fn GetRadix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRadix() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(radix, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetRadix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRadix(::core::mem::transmute_copy(&radix)).into()
}
unsafe extern "system" fn Evaluate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Evaluate(::core::mem::transmute(&expression), ::core::mem::transmute_copy(&desiredtype), ::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&remainderindex)).into()
}
unsafe extern "system" fn CoerceValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CoerceValue(::core::mem::transmute_copy(&r#in), ::core::mem::transmute_copy(&outtype), ::core::mem::transmute_copy(&out)).into()
}
unsafe extern "system" fn CoerceValues<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CoerceValues(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&r#in), ::core::mem::transmute_copy(&outtypes), ::core::mem::transmute_copy(&out)).into()
}
unsafe extern "system" fn Execute<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Execute(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&command), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn ExecuteCommandFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExecuteCommandFile(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&commandfile), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetNumberBreakpoints<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberBreakpoints() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, bp: *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.GetBreakpointByIndex(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointById<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32, bp: *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.GetBreakpointById(::core::mem::transmute_copy(&id)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBreakpointParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn AddBreakpoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *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.AddBreakpoint(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&desiredid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveBreakpoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveBreakpoint(::windows::core::from_raw_borrowed(&bp)).into()
}
unsafe extern "system" fn AddExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AddExtension(::core::mem::transmute(&path), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveExtension(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn GetExtensionByPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExtensionByPath(::core::mem::transmute(&path)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CallExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCSTR, arguments: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CallExtension(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&function), ::core::mem::transmute(&arguments)).into()
}
unsafe extern "system" fn GetExtensionFunction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExtensionFunction(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&funcname), ::core::mem::transmute_copy(&function)).into()
}
unsafe extern "system" fn GetWindbgExtensionApis32<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetWindbgExtensionApis32(::core::mem::transmute_copy(&api)).into()
}
unsafe extern "system" fn GetWindbgExtensionApis64<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetWindbgExtensionApis64(::core::mem::transmute_copy(&api)).into()
}
unsafe extern "system" fn GetNumberEventFilters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNumberEventFilters(::core::mem::transmute_copy(&specificevents), ::core::mem::transmute_copy(&specificexceptions), ::core::mem::transmute_copy(&arbitraryexceptions)).into()
}
unsafe extern "system" fn GetEventFilterText<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterText(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn GetEventFilterCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetEventFilterCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventFilterCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn GetSpecificFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSpecificFilterParameters(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn SetSpecificFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSpecificFilterParameters(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetSpecificFilterArgument<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSpecificFilterArgument(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&argumentsize)).into()
}
unsafe extern "system" fn SetSpecificFilterArgument<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSpecificFilterArgument(::core::mem::transmute_copy(&index), ::core::mem::transmute(&argument)).into()
}
unsafe extern "system" fn GetExceptionFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExceptionFilterParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&codes), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn SetExceptionFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExceptionFilterParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetExceptionFilterSecondCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExceptionFilterSecondCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetExceptionFilterSecondCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExceptionFilterSecondCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn WaitForEvent<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WaitForEvent(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn GetLastEventInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLastEventInformation(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&extrainformation), ::core::mem::transmute_copy(&extrainformationsize), ::core::mem::transmute_copy(&extrainformationused), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&descriptionused)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetInterrupt: GetInterrupt::<Identity, Impl, OFFSET>,
SetInterrupt: SetInterrupt::<Identity, Impl, OFFSET>,
GetInterruptTimeout: GetInterruptTimeout::<Identity, Impl, OFFSET>,
SetInterruptTimeout: SetInterruptTimeout::<Identity, Impl, OFFSET>,
GetLogFile: GetLogFile::<Identity, Impl, OFFSET>,
OpenLogFile: OpenLogFile::<Identity, Impl, OFFSET>,
CloseLogFile: CloseLogFile::<Identity, Impl, OFFSET>,
GetLogMask: GetLogMask::<Identity, Impl, OFFSET>,
SetLogMask: SetLogMask::<Identity, Impl, OFFSET>,
Input: Input::<Identity, Impl, OFFSET>,
ReturnInput: ReturnInput::<Identity, Impl, OFFSET>,
Output: Output::<Identity, Impl, OFFSET>,
OutputVaList: OutputVaList::<Identity, Impl, OFFSET>,
ControlledOutput: ControlledOutput::<Identity, Impl, OFFSET>,
ControlledOutputVaList: ControlledOutputVaList::<Identity, Impl, OFFSET>,
OutputPrompt: OutputPrompt::<Identity, Impl, OFFSET>,
OutputPromptVaList: OutputPromptVaList::<Identity, Impl, OFFSET>,
GetPromptText: GetPromptText::<Identity, Impl, OFFSET>,
OutputCurrentState: OutputCurrentState::<Identity, Impl, OFFSET>,
OutputVersionInformation: OutputVersionInformation::<Identity, Impl, OFFSET>,
GetNotifyEventHandle: GetNotifyEventHandle::<Identity, Impl, OFFSET>,
SetNotifyEventHandle: SetNotifyEventHandle::<Identity, Impl, OFFSET>,
Assemble: Assemble::<Identity, Impl, OFFSET>,
Disassemble: Disassemble::<Identity, Impl, OFFSET>,
GetDisassembleEffectiveOffset: GetDisassembleEffectiveOffset::<Identity, Impl, OFFSET>,
OutputDisassembly: OutputDisassembly::<Identity, Impl, OFFSET>,
OutputDisassemblyLines: OutputDisassemblyLines::<Identity, Impl, OFFSET>,
GetNearInstruction: GetNearInstruction::<Identity, Impl, OFFSET>,
GetStackTrace: GetStackTrace::<Identity, Impl, OFFSET>,
GetReturnOffset: GetReturnOffset::<Identity, Impl, OFFSET>,
OutputStackTrace: OutputStackTrace::<Identity, Impl, OFFSET>,
GetDebuggeeType: GetDebuggeeType::<Identity, Impl, OFFSET>,
GetActualProcessorType: GetActualProcessorType::<Identity, Impl, OFFSET>,
GetExecutingProcessorType: GetExecutingProcessorType::<Identity, Impl, OFFSET>,
GetNumberPossibleExecutingProcessorTypes: GetNumberPossibleExecutingProcessorTypes::<Identity, Impl, OFFSET>,
GetPossibleExecutingProcessorTypes: GetPossibleExecutingProcessorTypes::<Identity, Impl, OFFSET>,
GetNumberProcessors: GetNumberProcessors::<Identity, Impl, OFFSET>,
GetSystemVersion: GetSystemVersion::<Identity, Impl, OFFSET>,
GetPageSize: GetPageSize::<Identity, Impl, OFFSET>,
IsPointer64Bit: IsPointer64Bit::<Identity, Impl, OFFSET>,
ReadBugCheckData: ReadBugCheckData::<Identity, Impl, OFFSET>,
GetNumberSupportedProcessorTypes: GetNumberSupportedProcessorTypes::<Identity, Impl, OFFSET>,
GetSupportedProcessorTypes: GetSupportedProcessorTypes::<Identity, Impl, OFFSET>,
GetProcessorTypeNames: GetProcessorTypeNames::<Identity, Impl, OFFSET>,
GetEffectiveProcessorType: GetEffectiveProcessorType::<Identity, Impl, OFFSET>,
SetEffectiveProcessorType: SetEffectiveProcessorType::<Identity, Impl, OFFSET>,
GetExecutionStatus: GetExecutionStatus::<Identity, Impl, OFFSET>,
SetExecutionStatus: SetExecutionStatus::<Identity, Impl, OFFSET>,
GetCodeLevel: GetCodeLevel::<Identity, Impl, OFFSET>,
SetCodeLevel: SetCodeLevel::<Identity, Impl, OFFSET>,
GetEngineOptions: GetEngineOptions::<Identity, Impl, OFFSET>,
AddEngineOptions: AddEngineOptions::<Identity, Impl, OFFSET>,
RemoveEngineOptions: RemoveEngineOptions::<Identity, Impl, OFFSET>,
SetEngineOptions: SetEngineOptions::<Identity, Impl, OFFSET>,
GetSystemErrorControl: GetSystemErrorControl::<Identity, Impl, OFFSET>,
SetSystemErrorControl: SetSystemErrorControl::<Identity, Impl, OFFSET>,
GetTextMacro: GetTextMacro::<Identity, Impl, OFFSET>,
SetTextMacro: SetTextMacro::<Identity, Impl, OFFSET>,
GetRadix: GetRadix::<Identity, Impl, OFFSET>,
SetRadix: SetRadix::<Identity, Impl, OFFSET>,
Evaluate: Evaluate::<Identity, Impl, OFFSET>,
CoerceValue: CoerceValue::<Identity, Impl, OFFSET>,
CoerceValues: CoerceValues::<Identity, Impl, OFFSET>,
Execute: Execute::<Identity, Impl, OFFSET>,
ExecuteCommandFile: ExecuteCommandFile::<Identity, Impl, OFFSET>,
GetNumberBreakpoints: GetNumberBreakpoints::<Identity, Impl, OFFSET>,
GetBreakpointByIndex: GetBreakpointByIndex::<Identity, Impl, OFFSET>,
GetBreakpointById: GetBreakpointById::<Identity, Impl, OFFSET>,
GetBreakpointParameters: GetBreakpointParameters::<Identity, Impl, OFFSET>,
AddBreakpoint: AddBreakpoint::<Identity, Impl, OFFSET>,
RemoveBreakpoint: RemoveBreakpoint::<Identity, Impl, OFFSET>,
AddExtension: AddExtension::<Identity, Impl, OFFSET>,
RemoveExtension: RemoveExtension::<Identity, Impl, OFFSET>,
GetExtensionByPath: GetExtensionByPath::<Identity, Impl, OFFSET>,
CallExtension: CallExtension::<Identity, Impl, OFFSET>,
GetExtensionFunction: GetExtensionFunction::<Identity, Impl, OFFSET>,
GetWindbgExtensionApis32: GetWindbgExtensionApis32::<Identity, Impl, OFFSET>,
GetWindbgExtensionApis64: GetWindbgExtensionApis64::<Identity, Impl, OFFSET>,
GetNumberEventFilters: GetNumberEventFilters::<Identity, Impl, OFFSET>,
GetEventFilterText: GetEventFilterText::<Identity, Impl, OFFSET>,
GetEventFilterCommand: GetEventFilterCommand::<Identity, Impl, OFFSET>,
SetEventFilterCommand: SetEventFilterCommand::<Identity, Impl, OFFSET>,
GetSpecificFilterParameters: GetSpecificFilterParameters::<Identity, Impl, OFFSET>,
SetSpecificFilterParameters: SetSpecificFilterParameters::<Identity, Impl, OFFSET>,
GetSpecificFilterArgument: GetSpecificFilterArgument::<Identity, Impl, OFFSET>,
SetSpecificFilterArgument: SetSpecificFilterArgument::<Identity, Impl, OFFSET>,
GetExceptionFilterParameters: GetExceptionFilterParameters::<Identity, Impl, OFFSET>,
SetExceptionFilterParameters: SetExceptionFilterParameters::<Identity, Impl, OFFSET>,
GetExceptionFilterSecondCommand: GetExceptionFilterSecondCommand::<Identity, Impl, OFFSET>,
SetExceptionFilterSecondCommand: SetExceptionFilterSecondCommand::<Identity, Impl, OFFSET>,
WaitForEvent: WaitForEvent::<Identity, Impl, OFFSET>,
GetLastEventInformation: GetLastEventInformation::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugControl as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
pub trait IDebugControl2_Impl: Sized {
fn GetInterrupt(&self) -> ::windows::core::Result<()>;
fn SetInterrupt(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetInterruptTimeout(&self) -> ::windows::core::Result<u32>;
fn SetInterruptTimeout(&self, seconds: u32) -> ::windows::core::Result<()>;
fn GetLogFile(&self, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn OpenLogFile(&self, file: &::windows::core::PCSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn CloseLogFile(&self) -> ::windows::core::Result<()>;
fn GetLogMask(&self) -> ::windows::core::Result<u32>;
fn SetLogMask(&self, mask: u32) -> ::windows::core::Result<()>;
fn Input(&self, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::Result<()>;
fn ReturnInput(&self, buffer: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn Output(&self, mask: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputVaList(&self, mask: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn ControlledOutput(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn ControlledOutputVaList(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn OutputPrompt(&self, outputcontrol: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputPromptVaList(&self, outputcontrol: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn GetPromptText(&self, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()>;
fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows::core::Result<()>;
fn GetNotifyEventHandle(&self) -> ::windows::core::Result<u64>;
fn SetNotifyEventHandle(&self, handle: u64) -> ::windows::core::Result<()>;
fn Assemble(&self, offset: u64, instr: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn Disassemble(&self, offset: u64, flags: u32, buffer: ::windows::core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::Result<()>;
fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result<u64>;
fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows::core::Result<u64>;
fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows::core::Result<()>;
fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result<u64>;
fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows::core::Result<()>;
fn GetReturnOffset(&self) -> ::windows::core::Result<u64>;
fn OutputStackTrace(&self, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows::core::Result<()>;
fn GetActualProcessorType(&self) -> ::windows::core::Result<u32>;
fn GetExecutingProcessorType(&self) -> ::windows::core::Result<u32>;
fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows::core::Result<u32>;
fn GetPossibleExecutingProcessorTypes(&self, start: u32, count: u32, types: *mut u32) -> ::windows::core::Result<()>;
fn GetNumberProcessors(&self) -> ::windows::core::Result<u32>;
fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows::core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows::core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows::core::Result<()>;
fn GetPageSize(&self) -> ::windows::core::Result<u32>;
fn IsPointer64Bit(&self) -> ::windows::core::Result<()>;
fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::Result<()>;
fn GetNumberSupportedProcessorTypes(&self) -> ::windows::core::Result<u32>;
fn GetSupportedProcessorTypes(&self, start: u32, count: u32, types: *mut u32) -> ::windows::core::Result<()>;
fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetEffectiveProcessorType(&self) -> ::windows::core::Result<u32>;
fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows::core::Result<()>;
fn GetExecutionStatus(&self) -> ::windows::core::Result<u32>;
fn SetExecutionStatus(&self, status: u32) -> ::windows::core::Result<()>;
fn GetCodeLevel(&self) -> ::windows::core::Result<u32>;
fn SetCodeLevel(&self, level: u32) -> ::windows::core::Result<()>;
fn GetEngineOptions(&self) -> ::windows::core::Result<u32>;
fn AddEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::Result<()>;
fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()>;
fn GetTextMacro(&self, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextMacro(&self, slot: u32, r#macro: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetRadix(&self) -> ::windows::core::Result<u32>;
fn SetRadix(&self, radix: u32) -> ::windows::core::Result<()>;
fn Evaluate(&self, expression: &::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::Result<()>;
fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()>;
fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()>;
fn Execute(&self, outputcontrol: u32, command: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn ExecuteCommandFile(&self, outputcontrol: u32, commandfile: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetNumberBreakpoints(&self) -> ::windows::core::Result<u32>;
fn GetBreakpointByIndex(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn GetBreakpointById(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn GetBreakpointParameters(&self, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()>;
fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn RemoveBreakpoint(&self, bp: ::core::option::Option<&IDebugBreakpoint>) -> ::windows::core::Result<()>;
fn AddExtension(&self, path: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<u64>;
fn RemoveExtension(&self, handle: u64) -> ::windows::core::Result<()>;
fn GetExtensionByPath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn CallExtension(&self, handle: u64, function: &::windows::core::PCSTR, arguments: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetExtensionFunction(&self, handle: u64, funcname: &::windows::core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>;
fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::Result<()>;
fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::Result<()>;
fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::Result<()>;
fn GetEventFilterText(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn GetEventFilterCommand(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetEventFilterCommand(&self, index: u32, command: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetSpecificFilterParameters(&self, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn SetSpecificFilterParameters(&self, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn GetSpecificFilterArgument(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSpecificFilterArgument(&self, index: u32, argument: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetExceptionFilterParameters(&self, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn SetExceptionFilterParameters(&self, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetExceptionFilterSecondCommand(&self, index: u32, command: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()>;
fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentTimeDate(&self) -> ::windows::core::Result<u32>;
fn GetCurrentSystemUpTime(&self) -> ::windows::core::Result<u32>;
fn GetDumpFormatFlags(&self) -> ::windows::core::Result<u32>;
fn GetNumberTextReplacements(&self) -> ::windows::core::Result<u32>;
fn GetTextReplacement(&self, srctext: &::windows::core::PCSTR, index: u32, srcbuffer: ::windows::core::PSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows::core::PSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextReplacement(&self, srctext: &::windows::core::PCSTR, dsttext: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn RemoveTextReplacements(&self) -> ::windows::core::Result<()>;
fn OutputTextReplacements(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::windows::core::RuntimeName for IDebugControl2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl IDebugControl2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>() -> IDebugControl2_Vtbl {
unsafe extern "system" fn GetInterrupt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_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.GetInterrupt().into()
}
unsafe extern "system" fn SetInterrupt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_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.SetInterrupt(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetInterruptTimeout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetInterruptTimeout() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(seconds, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetInterruptTimeout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetInterruptTimeout(::core::mem::transmute_copy(&seconds)).into()
}
unsafe extern "system" fn GetLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::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.GetLogFile(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn OpenLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, append: super::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.OpenLogFile(::core::mem::transmute(&file), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn CloseLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_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.CloseLogFile().into()
}
unsafe extern "system" fn GetLogMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLogMask() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetLogMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetLogMask(::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn Input<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Input(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&inputsize)).into()
}
unsafe extern "system" fn ReturnInput<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReturnInput(::core::mem::transmute(&buffer)).into()
}
unsafe extern "system" fn Output<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Output(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputVaList(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn ControlledOutput<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutput(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn ControlledOutputVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutputVaList(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn OutputPrompt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPrompt(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputPromptVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPromptVaList(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn GetPromptText<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPromptText(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn OutputCurrentState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputCurrentState(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn OutputVersionInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputVersionInformation(::core::mem::transmute_copy(&outputcontrol)).into()
}
unsafe extern "system" fn GetNotifyEventHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNotifyEventHandle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetNotifyEventHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNotifyEventHandle(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn Assemble<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCSTR, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Assemble(::core::mem::transmute_copy(&offset), ::core::mem::transmute(&instr)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(endoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Disassemble<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows::core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Disassemble(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&disassemblysize), ::core::mem::transmute_copy(&endoffset)).into()
}
unsafe extern "system" fn GetDisassembleEffectiveOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDisassembleEffectiveOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputDisassembly<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.OutputDisassembly(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(endoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputDisassemblyLines<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputDisassemblyLines(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&previouslines), ::core::mem::transmute_copy(&totallines), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&offsetline), ::core::mem::transmute_copy(&startoffset), ::core::mem::transmute_copy(&endoffset), ::core::mem::transmute_copy(&lineoffsets)).into()
}
unsafe extern "system" fn GetNearInstruction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNearInstruction(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&delta)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(nearoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStackTrace(::core::mem::transmute_copy(&frameoffset), ::core::mem::transmute_copy(&stackoffset), ::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framesfilled)).into()
}
unsafe extern "system" fn GetReturnOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetReturnOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputStackTrace(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetDebuggeeType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDebuggeeType(::core::mem::transmute_copy(&class), ::core::mem::transmute_copy(&qualifier)).into()
}
unsafe extern "system" fn GetActualProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetActualProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetExecutingProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExecutingProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberPossibleExecutingProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberPossibleExecutingProcessorTypes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetPossibleExecutingProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPossibleExecutingProcessorTypes(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&types)).into()
}
unsafe extern "system" fn GetNumberProcessors<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberProcessors() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSystemVersion<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows::core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows::core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemVersion(::core::mem::transmute_copy(&platformid), ::core::mem::transmute_copy(&major), ::core::mem::transmute_copy(&minor), ::core::mem::transmute_copy(&servicepackstring), ::core::mem::transmute_copy(&servicepackstringsize), ::core::mem::transmute_copy(&servicepackstringused), ::core::mem::transmute_copy(&servicepacknumber), ::core::mem::transmute_copy(&buildstring), ::core::mem::transmute_copy(&buildstringsize), ::core::mem::transmute_copy(&buildstringused))
.into()
}
unsafe extern "system" fn GetPageSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPageSize() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(size, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsPointer64Bit<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_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.IsPointer64Bit().into()
}
unsafe extern "system" fn ReadBugCheckData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadBugCheckData(::core::mem::transmute_copy(&code), ::core::mem::transmute_copy(&arg1), ::core::mem::transmute_copy(&arg2), ::core::mem::transmute_copy(&arg3), ::core::mem::transmute_copy(&arg4)).into()
}
unsafe extern "system" fn GetNumberSupportedProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberSupportedProcessorTypes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSupportedProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSupportedProcessorTypes(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&types)).into()
}
unsafe extern "system" fn GetProcessorTypeNames<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetProcessorTypeNames(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&fullnamebuffer), ::core::mem::transmute_copy(&fullnamebuffersize), ::core::mem::transmute_copy(&fullnamesize), ::core::mem::transmute_copy(&abbrevnamebuffer), ::core::mem::transmute_copy(&abbrevnamebuffersize), ::core::mem::transmute_copy(&abbrevnamesize)).into()
}
unsafe extern "system" fn GetEffectiveProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEffectiveProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEffectiveProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEffectiveProcessorType(::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn GetExecutionStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExecutionStatus() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(status, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetExecutionStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExecutionStatus(::core::mem::transmute_copy(&status)).into()
}
unsafe extern "system" fn GetCodeLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCodeLevel() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(level, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCodeLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, level: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCodeLevel(::core::mem::transmute_copy(&level)).into()
}
unsafe extern "system" fn GetEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEngineOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn GetSystemErrorControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemErrorControl(::core::mem::transmute_copy(&outputlevel), ::core::mem::transmute_copy(&breaklevel)).into()
}
unsafe extern "system" fn SetSystemErrorControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSystemErrorControl(::core::mem::transmute_copy(&outputlevel), ::core::mem::transmute_copy(&breaklevel)).into()
}
unsafe extern "system" fn GetTextMacro<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextMacro(::core::mem::transmute_copy(&slot), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&macrosize)).into()
}
unsafe extern "system" fn SetTextMacro<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextMacro(::core::mem::transmute_copy(&slot), ::core::mem::transmute(&r#macro)).into()
}
unsafe extern "system" fn GetRadix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRadix() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(radix, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetRadix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRadix(::core::mem::transmute_copy(&radix)).into()
}
unsafe extern "system" fn Evaluate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Evaluate(::core::mem::transmute(&expression), ::core::mem::transmute_copy(&desiredtype), ::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&remainderindex)).into()
}
unsafe extern "system" fn CoerceValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CoerceValue(::core::mem::transmute_copy(&r#in), ::core::mem::transmute_copy(&outtype), ::core::mem::transmute_copy(&out)).into()
}
unsafe extern "system" fn CoerceValues<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CoerceValues(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&r#in), ::core::mem::transmute_copy(&outtypes), ::core::mem::transmute_copy(&out)).into()
}
unsafe extern "system" fn Execute<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Execute(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&command), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn ExecuteCommandFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExecuteCommandFile(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&commandfile), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetNumberBreakpoints<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberBreakpoints() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, bp: *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.GetBreakpointByIndex(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointById<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32, bp: *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.GetBreakpointById(::core::mem::transmute_copy(&id)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBreakpointParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn AddBreakpoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *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.AddBreakpoint(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&desiredid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveBreakpoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveBreakpoint(::windows::core::from_raw_borrowed(&bp)).into()
}
unsafe extern "system" fn AddExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AddExtension(::core::mem::transmute(&path), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveExtension(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn GetExtensionByPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExtensionByPath(::core::mem::transmute(&path)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CallExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCSTR, arguments: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CallExtension(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&function), ::core::mem::transmute(&arguments)).into()
}
unsafe extern "system" fn GetExtensionFunction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExtensionFunction(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&funcname), ::core::mem::transmute_copy(&function)).into()
}
unsafe extern "system" fn GetWindbgExtensionApis32<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetWindbgExtensionApis32(::core::mem::transmute_copy(&api)).into()
}
unsafe extern "system" fn GetWindbgExtensionApis64<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetWindbgExtensionApis64(::core::mem::transmute_copy(&api)).into()
}
unsafe extern "system" fn GetNumberEventFilters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNumberEventFilters(::core::mem::transmute_copy(&specificevents), ::core::mem::transmute_copy(&specificexceptions), ::core::mem::transmute_copy(&arbitraryexceptions)).into()
}
unsafe extern "system" fn GetEventFilterText<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterText(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn GetEventFilterCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetEventFilterCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventFilterCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn GetSpecificFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSpecificFilterParameters(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn SetSpecificFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSpecificFilterParameters(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetSpecificFilterArgument<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSpecificFilterArgument(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&argumentsize)).into()
}
unsafe extern "system" fn SetSpecificFilterArgument<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSpecificFilterArgument(::core::mem::transmute_copy(&index), ::core::mem::transmute(&argument)).into()
}
unsafe extern "system" fn GetExceptionFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExceptionFilterParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&codes), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn SetExceptionFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExceptionFilterParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetExceptionFilterSecondCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExceptionFilterSecondCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetExceptionFilterSecondCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExceptionFilterSecondCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn WaitForEvent<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WaitForEvent(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn GetLastEventInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLastEventInformation(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&extrainformation), ::core::mem::transmute_copy(&extrainformationsize), ::core::mem::transmute_copy(&extrainformationused), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&descriptionused)).into()
}
unsafe extern "system" fn GetCurrentTimeDate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timedate: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentTimeDate() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(timedate, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentSystemUpTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentSystemUpTime() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(uptime, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDumpFormatFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, formatflags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDumpFormatFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(formatflags, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberTextReplacements<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, numrepl: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberTextReplacements() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(numrepl, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTextReplacement<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCSTR, index: u32, srcbuffer: ::windows::core::PSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows::core::PSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextReplacement(::core::mem::transmute(&srctext), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&srcbuffer), ::core::mem::transmute_copy(&srcbuffersize), ::core::mem::transmute_copy(&srcsize), ::core::mem::transmute_copy(&dstbuffer), ::core::mem::transmute_copy(&dstbuffersize), ::core::mem::transmute_copy(&dstsize)).into()
}
unsafe extern "system" fn SetTextReplacement<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCSTR, dsttext: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextReplacement(::core::mem::transmute(&srctext), ::core::mem::transmute(&dsttext)).into()
}
unsafe extern "system" fn RemoveTextReplacements<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_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.RemoveTextReplacements().into()
}
unsafe extern "system" fn OutputTextReplacements<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputTextReplacements(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetInterrupt: GetInterrupt::<Identity, Impl, OFFSET>,
SetInterrupt: SetInterrupt::<Identity, Impl, OFFSET>,
GetInterruptTimeout: GetInterruptTimeout::<Identity, Impl, OFFSET>,
SetInterruptTimeout: SetInterruptTimeout::<Identity, Impl, OFFSET>,
GetLogFile: GetLogFile::<Identity, Impl, OFFSET>,
OpenLogFile: OpenLogFile::<Identity, Impl, OFFSET>,
CloseLogFile: CloseLogFile::<Identity, Impl, OFFSET>,
GetLogMask: GetLogMask::<Identity, Impl, OFFSET>,
SetLogMask: SetLogMask::<Identity, Impl, OFFSET>,
Input: Input::<Identity, Impl, OFFSET>,
ReturnInput: ReturnInput::<Identity, Impl, OFFSET>,
Output: Output::<Identity, Impl, OFFSET>,
OutputVaList: OutputVaList::<Identity, Impl, OFFSET>,
ControlledOutput: ControlledOutput::<Identity, Impl, OFFSET>,
ControlledOutputVaList: ControlledOutputVaList::<Identity, Impl, OFFSET>,
OutputPrompt: OutputPrompt::<Identity, Impl, OFFSET>,
OutputPromptVaList: OutputPromptVaList::<Identity, Impl, OFFSET>,
GetPromptText: GetPromptText::<Identity, Impl, OFFSET>,
OutputCurrentState: OutputCurrentState::<Identity, Impl, OFFSET>,
OutputVersionInformation: OutputVersionInformation::<Identity, Impl, OFFSET>,
GetNotifyEventHandle: GetNotifyEventHandle::<Identity, Impl, OFFSET>,
SetNotifyEventHandle: SetNotifyEventHandle::<Identity, Impl, OFFSET>,
Assemble: Assemble::<Identity, Impl, OFFSET>,
Disassemble: Disassemble::<Identity, Impl, OFFSET>,
GetDisassembleEffectiveOffset: GetDisassembleEffectiveOffset::<Identity, Impl, OFFSET>,
OutputDisassembly: OutputDisassembly::<Identity, Impl, OFFSET>,
OutputDisassemblyLines: OutputDisassemblyLines::<Identity, Impl, OFFSET>,
GetNearInstruction: GetNearInstruction::<Identity, Impl, OFFSET>,
GetStackTrace: GetStackTrace::<Identity, Impl, OFFSET>,
GetReturnOffset: GetReturnOffset::<Identity, Impl, OFFSET>,
OutputStackTrace: OutputStackTrace::<Identity, Impl, OFFSET>,
GetDebuggeeType: GetDebuggeeType::<Identity, Impl, OFFSET>,
GetActualProcessorType: GetActualProcessorType::<Identity, Impl, OFFSET>,
GetExecutingProcessorType: GetExecutingProcessorType::<Identity, Impl, OFFSET>,
GetNumberPossibleExecutingProcessorTypes: GetNumberPossibleExecutingProcessorTypes::<Identity, Impl, OFFSET>,
GetPossibleExecutingProcessorTypes: GetPossibleExecutingProcessorTypes::<Identity, Impl, OFFSET>,
GetNumberProcessors: GetNumberProcessors::<Identity, Impl, OFFSET>,
GetSystemVersion: GetSystemVersion::<Identity, Impl, OFFSET>,
GetPageSize: GetPageSize::<Identity, Impl, OFFSET>,
IsPointer64Bit: IsPointer64Bit::<Identity, Impl, OFFSET>,
ReadBugCheckData: ReadBugCheckData::<Identity, Impl, OFFSET>,
GetNumberSupportedProcessorTypes: GetNumberSupportedProcessorTypes::<Identity, Impl, OFFSET>,
GetSupportedProcessorTypes: GetSupportedProcessorTypes::<Identity, Impl, OFFSET>,
GetProcessorTypeNames: GetProcessorTypeNames::<Identity, Impl, OFFSET>,
GetEffectiveProcessorType: GetEffectiveProcessorType::<Identity, Impl, OFFSET>,
SetEffectiveProcessorType: SetEffectiveProcessorType::<Identity, Impl, OFFSET>,
GetExecutionStatus: GetExecutionStatus::<Identity, Impl, OFFSET>,
SetExecutionStatus: SetExecutionStatus::<Identity, Impl, OFFSET>,
GetCodeLevel: GetCodeLevel::<Identity, Impl, OFFSET>,
SetCodeLevel: SetCodeLevel::<Identity, Impl, OFFSET>,
GetEngineOptions: GetEngineOptions::<Identity, Impl, OFFSET>,
AddEngineOptions: AddEngineOptions::<Identity, Impl, OFFSET>,
RemoveEngineOptions: RemoveEngineOptions::<Identity, Impl, OFFSET>,
SetEngineOptions: SetEngineOptions::<Identity, Impl, OFFSET>,
GetSystemErrorControl: GetSystemErrorControl::<Identity, Impl, OFFSET>,
SetSystemErrorControl: SetSystemErrorControl::<Identity, Impl, OFFSET>,
GetTextMacro: GetTextMacro::<Identity, Impl, OFFSET>,
SetTextMacro: SetTextMacro::<Identity, Impl, OFFSET>,
GetRadix: GetRadix::<Identity, Impl, OFFSET>,
SetRadix: SetRadix::<Identity, Impl, OFFSET>,
Evaluate: Evaluate::<Identity, Impl, OFFSET>,
CoerceValue: CoerceValue::<Identity, Impl, OFFSET>,
CoerceValues: CoerceValues::<Identity, Impl, OFFSET>,
Execute: Execute::<Identity, Impl, OFFSET>,
ExecuteCommandFile: ExecuteCommandFile::<Identity, Impl, OFFSET>,
GetNumberBreakpoints: GetNumberBreakpoints::<Identity, Impl, OFFSET>,
GetBreakpointByIndex: GetBreakpointByIndex::<Identity, Impl, OFFSET>,
GetBreakpointById: GetBreakpointById::<Identity, Impl, OFFSET>,
GetBreakpointParameters: GetBreakpointParameters::<Identity, Impl, OFFSET>,
AddBreakpoint: AddBreakpoint::<Identity, Impl, OFFSET>,
RemoveBreakpoint: RemoveBreakpoint::<Identity, Impl, OFFSET>,
AddExtension: AddExtension::<Identity, Impl, OFFSET>,
RemoveExtension: RemoveExtension::<Identity, Impl, OFFSET>,
GetExtensionByPath: GetExtensionByPath::<Identity, Impl, OFFSET>,
CallExtension: CallExtension::<Identity, Impl, OFFSET>,
GetExtensionFunction: GetExtensionFunction::<Identity, Impl, OFFSET>,
GetWindbgExtensionApis32: GetWindbgExtensionApis32::<Identity, Impl, OFFSET>,
GetWindbgExtensionApis64: GetWindbgExtensionApis64::<Identity, Impl, OFFSET>,
GetNumberEventFilters: GetNumberEventFilters::<Identity, Impl, OFFSET>,
GetEventFilterText: GetEventFilterText::<Identity, Impl, OFFSET>,
GetEventFilterCommand: GetEventFilterCommand::<Identity, Impl, OFFSET>,
SetEventFilterCommand: SetEventFilterCommand::<Identity, Impl, OFFSET>,
GetSpecificFilterParameters: GetSpecificFilterParameters::<Identity, Impl, OFFSET>,
SetSpecificFilterParameters: SetSpecificFilterParameters::<Identity, Impl, OFFSET>,
GetSpecificFilterArgument: GetSpecificFilterArgument::<Identity, Impl, OFFSET>,
SetSpecificFilterArgument: SetSpecificFilterArgument::<Identity, Impl, OFFSET>,
GetExceptionFilterParameters: GetExceptionFilterParameters::<Identity, Impl, OFFSET>,
SetExceptionFilterParameters: SetExceptionFilterParameters::<Identity, Impl, OFFSET>,
GetExceptionFilterSecondCommand: GetExceptionFilterSecondCommand::<Identity, Impl, OFFSET>,
SetExceptionFilterSecondCommand: SetExceptionFilterSecondCommand::<Identity, Impl, OFFSET>,
WaitForEvent: WaitForEvent::<Identity, Impl, OFFSET>,
GetLastEventInformation: GetLastEventInformation::<Identity, Impl, OFFSET>,
GetCurrentTimeDate: GetCurrentTimeDate::<Identity, Impl, OFFSET>,
GetCurrentSystemUpTime: GetCurrentSystemUpTime::<Identity, Impl, OFFSET>,
GetDumpFormatFlags: GetDumpFormatFlags::<Identity, Impl, OFFSET>,
GetNumberTextReplacements: GetNumberTextReplacements::<Identity, Impl, OFFSET>,
GetTextReplacement: GetTextReplacement::<Identity, Impl, OFFSET>,
SetTextReplacement: SetTextReplacement::<Identity, Impl, OFFSET>,
RemoveTextReplacements: RemoveTextReplacements::<Identity, Impl, OFFSET>,
OutputTextReplacements: OutputTextReplacements::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugControl2 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
pub trait IDebugControl3_Impl: Sized {
fn GetInterrupt(&self) -> ::windows::core::Result<()>;
fn SetInterrupt(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetInterruptTimeout(&self) -> ::windows::core::Result<u32>;
fn SetInterruptTimeout(&self, seconds: u32) -> ::windows::core::Result<()>;
fn GetLogFile(&self, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn OpenLogFile(&self, file: &::windows::core::PCSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn CloseLogFile(&self) -> ::windows::core::Result<()>;
fn GetLogMask(&self) -> ::windows::core::Result<u32>;
fn SetLogMask(&self, mask: u32) -> ::windows::core::Result<()>;
fn Input(&self, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::Result<()>;
fn ReturnInput(&self, buffer: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn Output(&self, mask: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputVaList(&self, mask: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn ControlledOutput(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn ControlledOutputVaList(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn OutputPrompt(&self, outputcontrol: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputPromptVaList(&self, outputcontrol: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn GetPromptText(&self, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()>;
fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows::core::Result<()>;
fn GetNotifyEventHandle(&self) -> ::windows::core::Result<u64>;
fn SetNotifyEventHandle(&self, handle: u64) -> ::windows::core::Result<()>;
fn Assemble(&self, offset: u64, instr: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn Disassemble(&self, offset: u64, flags: u32, buffer: ::windows::core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::Result<()>;
fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result<u64>;
fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows::core::Result<u64>;
fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows::core::Result<()>;
fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result<u64>;
fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows::core::Result<()>;
fn GetReturnOffset(&self) -> ::windows::core::Result<u64>;
fn OutputStackTrace(&self, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows::core::Result<()>;
fn GetActualProcessorType(&self) -> ::windows::core::Result<u32>;
fn GetExecutingProcessorType(&self) -> ::windows::core::Result<u32>;
fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows::core::Result<u32>;
fn GetPossibleExecutingProcessorTypes(&self, start: u32, count: u32, types: *mut u32) -> ::windows::core::Result<()>;
fn GetNumberProcessors(&self) -> ::windows::core::Result<u32>;
fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows::core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows::core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows::core::Result<()>;
fn GetPageSize(&self) -> ::windows::core::Result<u32>;
fn IsPointer64Bit(&self) -> ::windows::core::Result<()>;
fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::Result<()>;
fn GetNumberSupportedProcessorTypes(&self) -> ::windows::core::Result<u32>;
fn GetSupportedProcessorTypes(&self, start: u32, count: u32, types: *mut u32) -> ::windows::core::Result<()>;
fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetEffectiveProcessorType(&self) -> ::windows::core::Result<u32>;
fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows::core::Result<()>;
fn GetExecutionStatus(&self) -> ::windows::core::Result<u32>;
fn SetExecutionStatus(&self, status: u32) -> ::windows::core::Result<()>;
fn GetCodeLevel(&self) -> ::windows::core::Result<u32>;
fn SetCodeLevel(&self, level: u32) -> ::windows::core::Result<()>;
fn GetEngineOptions(&self) -> ::windows::core::Result<u32>;
fn AddEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::Result<()>;
fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()>;
fn GetTextMacro(&self, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextMacro(&self, slot: u32, r#macro: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetRadix(&self) -> ::windows::core::Result<u32>;
fn SetRadix(&self, radix: u32) -> ::windows::core::Result<()>;
fn Evaluate(&self, expression: &::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::Result<()>;
fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()>;
fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()>;
fn Execute(&self, outputcontrol: u32, command: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn ExecuteCommandFile(&self, outputcontrol: u32, commandfile: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetNumberBreakpoints(&self) -> ::windows::core::Result<u32>;
fn GetBreakpointByIndex(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn GetBreakpointById(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn GetBreakpointParameters(&self, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()>;
fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn RemoveBreakpoint(&self, bp: ::core::option::Option<&IDebugBreakpoint>) -> ::windows::core::Result<()>;
fn AddExtension(&self, path: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<u64>;
fn RemoveExtension(&self, handle: u64) -> ::windows::core::Result<()>;
fn GetExtensionByPath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn CallExtension(&self, handle: u64, function: &::windows::core::PCSTR, arguments: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetExtensionFunction(&self, handle: u64, funcname: &::windows::core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>;
fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::Result<()>;
fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::Result<()>;
fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::Result<()>;
fn GetEventFilterText(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn GetEventFilterCommand(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetEventFilterCommand(&self, index: u32, command: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetSpecificFilterParameters(&self, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn SetSpecificFilterParameters(&self, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn GetSpecificFilterArgument(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSpecificFilterArgument(&self, index: u32, argument: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetExceptionFilterParameters(&self, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn SetExceptionFilterParameters(&self, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetExceptionFilterSecondCommand(&self, index: u32, command: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()>;
fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentTimeDate(&self) -> ::windows::core::Result<u32>;
fn GetCurrentSystemUpTime(&self) -> ::windows::core::Result<u32>;
fn GetDumpFormatFlags(&self) -> ::windows::core::Result<u32>;
fn GetNumberTextReplacements(&self) -> ::windows::core::Result<u32>;
fn GetTextReplacement(&self, srctext: &::windows::core::PCSTR, index: u32, srcbuffer: ::windows::core::PSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows::core::PSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextReplacement(&self, srctext: &::windows::core::PCSTR, dsttext: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn RemoveTextReplacements(&self) -> ::windows::core::Result<()>;
fn OutputTextReplacements(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetAssemblyOptions(&self) -> ::windows::core::Result<u32>;
fn AddAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn GetExpressionSyntax(&self) -> ::windows::core::Result<u32>;
fn SetExpressionSyntax(&self, flags: u32) -> ::windows::core::Result<()>;
fn SetExpressionSyntaxByName(&self, abbrevname: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetNumberExpressionSyntaxes(&self) -> ::windows::core::Result<u32>;
fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetNumberEvents(&self) -> ::windows::core::Result<u32>;
fn GetEventIndexDescription(&self, index: u32, which: u32, buffer: &::windows::core::PCSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentEventIndex(&self) -> ::windows::core::Result<u32>;
fn SetNextEventIndex(&self, relation: u32, value: u32) -> ::windows::core::Result<u32>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::windows::core::RuntimeName for IDebugControl3 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl IDebugControl3_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>() -> IDebugControl3_Vtbl {
unsafe extern "system" fn GetInterrupt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_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.GetInterrupt().into()
}
unsafe extern "system" fn SetInterrupt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_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.SetInterrupt(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetInterruptTimeout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetInterruptTimeout() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(seconds, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetInterruptTimeout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetInterruptTimeout(::core::mem::transmute_copy(&seconds)).into()
}
unsafe extern "system" fn GetLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::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.GetLogFile(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn OpenLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, append: super::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.OpenLogFile(::core::mem::transmute(&file), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn CloseLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_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.CloseLogFile().into()
}
unsafe extern "system" fn GetLogMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLogMask() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetLogMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetLogMask(::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn Input<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Input(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&inputsize)).into()
}
unsafe extern "system" fn ReturnInput<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReturnInput(::core::mem::transmute(&buffer)).into()
}
unsafe extern "system" fn Output<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Output(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputVaList(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn ControlledOutput<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutput(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn ControlledOutputVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutputVaList(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn OutputPrompt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPrompt(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputPromptVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPromptVaList(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn GetPromptText<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPromptText(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn OutputCurrentState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputCurrentState(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn OutputVersionInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputVersionInformation(::core::mem::transmute_copy(&outputcontrol)).into()
}
unsafe extern "system" fn GetNotifyEventHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNotifyEventHandle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetNotifyEventHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNotifyEventHandle(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn Assemble<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCSTR, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Assemble(::core::mem::transmute_copy(&offset), ::core::mem::transmute(&instr)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(endoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Disassemble<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows::core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Disassemble(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&disassemblysize), ::core::mem::transmute_copy(&endoffset)).into()
}
unsafe extern "system" fn GetDisassembleEffectiveOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDisassembleEffectiveOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputDisassembly<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.OutputDisassembly(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(endoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputDisassemblyLines<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputDisassemblyLines(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&previouslines), ::core::mem::transmute_copy(&totallines), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&offsetline), ::core::mem::transmute_copy(&startoffset), ::core::mem::transmute_copy(&endoffset), ::core::mem::transmute_copy(&lineoffsets)).into()
}
unsafe extern "system" fn GetNearInstruction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNearInstruction(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&delta)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(nearoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStackTrace(::core::mem::transmute_copy(&frameoffset), ::core::mem::transmute_copy(&stackoffset), ::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framesfilled)).into()
}
unsafe extern "system" fn GetReturnOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetReturnOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputStackTrace(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetDebuggeeType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDebuggeeType(::core::mem::transmute_copy(&class), ::core::mem::transmute_copy(&qualifier)).into()
}
unsafe extern "system" fn GetActualProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetActualProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetExecutingProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExecutingProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberPossibleExecutingProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberPossibleExecutingProcessorTypes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetPossibleExecutingProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPossibleExecutingProcessorTypes(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&types)).into()
}
unsafe extern "system" fn GetNumberProcessors<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberProcessors() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSystemVersion<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows::core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows::core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemVersion(::core::mem::transmute_copy(&platformid), ::core::mem::transmute_copy(&major), ::core::mem::transmute_copy(&minor), ::core::mem::transmute_copy(&servicepackstring), ::core::mem::transmute_copy(&servicepackstringsize), ::core::mem::transmute_copy(&servicepackstringused), ::core::mem::transmute_copy(&servicepacknumber), ::core::mem::transmute_copy(&buildstring), ::core::mem::transmute_copy(&buildstringsize), ::core::mem::transmute_copy(&buildstringused))
.into()
}
unsafe extern "system" fn GetPageSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPageSize() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(size, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsPointer64Bit<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_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.IsPointer64Bit().into()
}
unsafe extern "system" fn ReadBugCheckData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadBugCheckData(::core::mem::transmute_copy(&code), ::core::mem::transmute_copy(&arg1), ::core::mem::transmute_copy(&arg2), ::core::mem::transmute_copy(&arg3), ::core::mem::transmute_copy(&arg4)).into()
}
unsafe extern "system" fn GetNumberSupportedProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberSupportedProcessorTypes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSupportedProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSupportedProcessorTypes(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&types)).into()
}
unsafe extern "system" fn GetProcessorTypeNames<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetProcessorTypeNames(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&fullnamebuffer), ::core::mem::transmute_copy(&fullnamebuffersize), ::core::mem::transmute_copy(&fullnamesize), ::core::mem::transmute_copy(&abbrevnamebuffer), ::core::mem::transmute_copy(&abbrevnamebuffersize), ::core::mem::transmute_copy(&abbrevnamesize)).into()
}
unsafe extern "system" fn GetEffectiveProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEffectiveProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEffectiveProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEffectiveProcessorType(::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn GetExecutionStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExecutionStatus() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(status, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetExecutionStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExecutionStatus(::core::mem::transmute_copy(&status)).into()
}
unsafe extern "system" fn GetCodeLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCodeLevel() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(level, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCodeLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, level: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCodeLevel(::core::mem::transmute_copy(&level)).into()
}
unsafe extern "system" fn GetEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEngineOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn GetSystemErrorControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemErrorControl(::core::mem::transmute_copy(&outputlevel), ::core::mem::transmute_copy(&breaklevel)).into()
}
unsafe extern "system" fn SetSystemErrorControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSystemErrorControl(::core::mem::transmute_copy(&outputlevel), ::core::mem::transmute_copy(&breaklevel)).into()
}
unsafe extern "system" fn GetTextMacro<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextMacro(::core::mem::transmute_copy(&slot), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&macrosize)).into()
}
unsafe extern "system" fn SetTextMacro<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextMacro(::core::mem::transmute_copy(&slot), ::core::mem::transmute(&r#macro)).into()
}
unsafe extern "system" fn GetRadix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRadix() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(radix, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetRadix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRadix(::core::mem::transmute_copy(&radix)).into()
}
unsafe extern "system" fn Evaluate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Evaluate(::core::mem::transmute(&expression), ::core::mem::transmute_copy(&desiredtype), ::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&remainderindex)).into()
}
unsafe extern "system" fn CoerceValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CoerceValue(::core::mem::transmute_copy(&r#in), ::core::mem::transmute_copy(&outtype), ::core::mem::transmute_copy(&out)).into()
}
unsafe extern "system" fn CoerceValues<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CoerceValues(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&r#in), ::core::mem::transmute_copy(&outtypes), ::core::mem::transmute_copy(&out)).into()
}
unsafe extern "system" fn Execute<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Execute(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&command), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn ExecuteCommandFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExecuteCommandFile(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&commandfile), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetNumberBreakpoints<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberBreakpoints() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, bp: *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.GetBreakpointByIndex(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointById<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32, bp: *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.GetBreakpointById(::core::mem::transmute_copy(&id)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBreakpointParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn AddBreakpoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *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.AddBreakpoint(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&desiredid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveBreakpoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveBreakpoint(::windows::core::from_raw_borrowed(&bp)).into()
}
unsafe extern "system" fn AddExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AddExtension(::core::mem::transmute(&path), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveExtension(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn GetExtensionByPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExtensionByPath(::core::mem::transmute(&path)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CallExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCSTR, arguments: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CallExtension(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&function), ::core::mem::transmute(&arguments)).into()
}
unsafe extern "system" fn GetExtensionFunction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExtensionFunction(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&funcname), ::core::mem::transmute_copy(&function)).into()
}
unsafe extern "system" fn GetWindbgExtensionApis32<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetWindbgExtensionApis32(::core::mem::transmute_copy(&api)).into()
}
unsafe extern "system" fn GetWindbgExtensionApis64<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetWindbgExtensionApis64(::core::mem::transmute_copy(&api)).into()
}
unsafe extern "system" fn GetNumberEventFilters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNumberEventFilters(::core::mem::transmute_copy(&specificevents), ::core::mem::transmute_copy(&specificexceptions), ::core::mem::transmute_copy(&arbitraryexceptions)).into()
}
unsafe extern "system" fn GetEventFilterText<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterText(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn GetEventFilterCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetEventFilterCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventFilterCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn GetSpecificFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSpecificFilterParameters(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn SetSpecificFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSpecificFilterParameters(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetSpecificFilterArgument<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSpecificFilterArgument(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&argumentsize)).into()
}
unsafe extern "system" fn SetSpecificFilterArgument<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSpecificFilterArgument(::core::mem::transmute_copy(&index), ::core::mem::transmute(&argument)).into()
}
unsafe extern "system" fn GetExceptionFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExceptionFilterParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&codes), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn SetExceptionFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExceptionFilterParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetExceptionFilterSecondCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExceptionFilterSecondCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetExceptionFilterSecondCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExceptionFilterSecondCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn WaitForEvent<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WaitForEvent(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn GetLastEventInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLastEventInformation(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&extrainformation), ::core::mem::transmute_copy(&extrainformationsize), ::core::mem::transmute_copy(&extrainformationused), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&descriptionused)).into()
}
unsafe extern "system" fn GetCurrentTimeDate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timedate: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentTimeDate() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(timedate, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentSystemUpTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentSystemUpTime() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(uptime, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDumpFormatFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, formatflags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDumpFormatFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(formatflags, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberTextReplacements<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, numrepl: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberTextReplacements() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(numrepl, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTextReplacement<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCSTR, index: u32, srcbuffer: ::windows::core::PSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows::core::PSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextReplacement(::core::mem::transmute(&srctext), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&srcbuffer), ::core::mem::transmute_copy(&srcbuffersize), ::core::mem::transmute_copy(&srcsize), ::core::mem::transmute_copy(&dstbuffer), ::core::mem::transmute_copy(&dstbuffersize), ::core::mem::transmute_copy(&dstsize)).into()
}
unsafe extern "system" fn SetTextReplacement<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCSTR, dsttext: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextReplacement(::core::mem::transmute(&srctext), ::core::mem::transmute(&dsttext)).into()
}
unsafe extern "system" fn RemoveTextReplacements<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_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.RemoveTextReplacements().into()
}
unsafe extern "system" fn OutputTextReplacements<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputTextReplacements(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetAssemblyOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAssemblyOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddAssemblyOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddAssemblyOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveAssemblyOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveAssemblyOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetAssemblyOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAssemblyOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn GetExpressionSyntax<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExpressionSyntax() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(flags, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetExpressionSyntax<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_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.SetExpressionSyntax(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn SetExpressionSyntaxByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, abbrevname: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExpressionSyntaxByName(::core::mem::transmute(&abbrevname)).into()
}
unsafe extern "system" fn GetNumberExpressionSyntaxes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberExpressionSyntaxes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetExpressionSyntaxNames<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExpressionSyntaxNames(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&fullnamebuffer), ::core::mem::transmute_copy(&fullnamebuffersize), ::core::mem::transmute_copy(&fullnamesize), ::core::mem::transmute_copy(&abbrevnamebuffer), ::core::mem::transmute_copy(&abbrevnamebuffersize), ::core::mem::transmute_copy(&abbrevnamesize)).into()
}
unsafe extern "system" fn GetNumberEvents<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, events: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberEvents() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(events, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetEventIndexDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows::core::PCSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventIndexDescription(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&which), ::core::mem::transmute(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&descsize)).into()
}
unsafe extern "system" fn GetCurrentEventIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentEventIndex() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(index, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetNextEventIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, relation: u32, value: u32, nextindex: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SetNextEventIndex(::core::mem::transmute_copy(&relation), ::core::mem::transmute_copy(&value)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(nextindex, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetInterrupt: GetInterrupt::<Identity, Impl, OFFSET>,
SetInterrupt: SetInterrupt::<Identity, Impl, OFFSET>,
GetInterruptTimeout: GetInterruptTimeout::<Identity, Impl, OFFSET>,
SetInterruptTimeout: SetInterruptTimeout::<Identity, Impl, OFFSET>,
GetLogFile: GetLogFile::<Identity, Impl, OFFSET>,
OpenLogFile: OpenLogFile::<Identity, Impl, OFFSET>,
CloseLogFile: CloseLogFile::<Identity, Impl, OFFSET>,
GetLogMask: GetLogMask::<Identity, Impl, OFFSET>,
SetLogMask: SetLogMask::<Identity, Impl, OFFSET>,
Input: Input::<Identity, Impl, OFFSET>,
ReturnInput: ReturnInput::<Identity, Impl, OFFSET>,
Output: Output::<Identity, Impl, OFFSET>,
OutputVaList: OutputVaList::<Identity, Impl, OFFSET>,
ControlledOutput: ControlledOutput::<Identity, Impl, OFFSET>,
ControlledOutputVaList: ControlledOutputVaList::<Identity, Impl, OFFSET>,
OutputPrompt: OutputPrompt::<Identity, Impl, OFFSET>,
OutputPromptVaList: OutputPromptVaList::<Identity, Impl, OFFSET>,
GetPromptText: GetPromptText::<Identity, Impl, OFFSET>,
OutputCurrentState: OutputCurrentState::<Identity, Impl, OFFSET>,
OutputVersionInformation: OutputVersionInformation::<Identity, Impl, OFFSET>,
GetNotifyEventHandle: GetNotifyEventHandle::<Identity, Impl, OFFSET>,
SetNotifyEventHandle: SetNotifyEventHandle::<Identity, Impl, OFFSET>,
Assemble: Assemble::<Identity, Impl, OFFSET>,
Disassemble: Disassemble::<Identity, Impl, OFFSET>,
GetDisassembleEffectiveOffset: GetDisassembleEffectiveOffset::<Identity, Impl, OFFSET>,
OutputDisassembly: OutputDisassembly::<Identity, Impl, OFFSET>,
OutputDisassemblyLines: OutputDisassemblyLines::<Identity, Impl, OFFSET>,
GetNearInstruction: GetNearInstruction::<Identity, Impl, OFFSET>,
GetStackTrace: GetStackTrace::<Identity, Impl, OFFSET>,
GetReturnOffset: GetReturnOffset::<Identity, Impl, OFFSET>,
OutputStackTrace: OutputStackTrace::<Identity, Impl, OFFSET>,
GetDebuggeeType: GetDebuggeeType::<Identity, Impl, OFFSET>,
GetActualProcessorType: GetActualProcessorType::<Identity, Impl, OFFSET>,
GetExecutingProcessorType: GetExecutingProcessorType::<Identity, Impl, OFFSET>,
GetNumberPossibleExecutingProcessorTypes: GetNumberPossibleExecutingProcessorTypes::<Identity, Impl, OFFSET>,
GetPossibleExecutingProcessorTypes: GetPossibleExecutingProcessorTypes::<Identity, Impl, OFFSET>,
GetNumberProcessors: GetNumberProcessors::<Identity, Impl, OFFSET>,
GetSystemVersion: GetSystemVersion::<Identity, Impl, OFFSET>,
GetPageSize: GetPageSize::<Identity, Impl, OFFSET>,
IsPointer64Bit: IsPointer64Bit::<Identity, Impl, OFFSET>,
ReadBugCheckData: ReadBugCheckData::<Identity, Impl, OFFSET>,
GetNumberSupportedProcessorTypes: GetNumberSupportedProcessorTypes::<Identity, Impl, OFFSET>,
GetSupportedProcessorTypes: GetSupportedProcessorTypes::<Identity, Impl, OFFSET>,
GetProcessorTypeNames: GetProcessorTypeNames::<Identity, Impl, OFFSET>,
GetEffectiveProcessorType: GetEffectiveProcessorType::<Identity, Impl, OFFSET>,
SetEffectiveProcessorType: SetEffectiveProcessorType::<Identity, Impl, OFFSET>,
GetExecutionStatus: GetExecutionStatus::<Identity, Impl, OFFSET>,
SetExecutionStatus: SetExecutionStatus::<Identity, Impl, OFFSET>,
GetCodeLevel: GetCodeLevel::<Identity, Impl, OFFSET>,
SetCodeLevel: SetCodeLevel::<Identity, Impl, OFFSET>,
GetEngineOptions: GetEngineOptions::<Identity, Impl, OFFSET>,
AddEngineOptions: AddEngineOptions::<Identity, Impl, OFFSET>,
RemoveEngineOptions: RemoveEngineOptions::<Identity, Impl, OFFSET>,
SetEngineOptions: SetEngineOptions::<Identity, Impl, OFFSET>,
GetSystemErrorControl: GetSystemErrorControl::<Identity, Impl, OFFSET>,
SetSystemErrorControl: SetSystemErrorControl::<Identity, Impl, OFFSET>,
GetTextMacro: GetTextMacro::<Identity, Impl, OFFSET>,
SetTextMacro: SetTextMacro::<Identity, Impl, OFFSET>,
GetRadix: GetRadix::<Identity, Impl, OFFSET>,
SetRadix: SetRadix::<Identity, Impl, OFFSET>,
Evaluate: Evaluate::<Identity, Impl, OFFSET>,
CoerceValue: CoerceValue::<Identity, Impl, OFFSET>,
CoerceValues: CoerceValues::<Identity, Impl, OFFSET>,
Execute: Execute::<Identity, Impl, OFFSET>,
ExecuteCommandFile: ExecuteCommandFile::<Identity, Impl, OFFSET>,
GetNumberBreakpoints: GetNumberBreakpoints::<Identity, Impl, OFFSET>,
GetBreakpointByIndex: GetBreakpointByIndex::<Identity, Impl, OFFSET>,
GetBreakpointById: GetBreakpointById::<Identity, Impl, OFFSET>,
GetBreakpointParameters: GetBreakpointParameters::<Identity, Impl, OFFSET>,
AddBreakpoint: AddBreakpoint::<Identity, Impl, OFFSET>,
RemoveBreakpoint: RemoveBreakpoint::<Identity, Impl, OFFSET>,
AddExtension: AddExtension::<Identity, Impl, OFFSET>,
RemoveExtension: RemoveExtension::<Identity, Impl, OFFSET>,
GetExtensionByPath: GetExtensionByPath::<Identity, Impl, OFFSET>,
CallExtension: CallExtension::<Identity, Impl, OFFSET>,
GetExtensionFunction: GetExtensionFunction::<Identity, Impl, OFFSET>,
GetWindbgExtensionApis32: GetWindbgExtensionApis32::<Identity, Impl, OFFSET>,
GetWindbgExtensionApis64: GetWindbgExtensionApis64::<Identity, Impl, OFFSET>,
GetNumberEventFilters: GetNumberEventFilters::<Identity, Impl, OFFSET>,
GetEventFilterText: GetEventFilterText::<Identity, Impl, OFFSET>,
GetEventFilterCommand: GetEventFilterCommand::<Identity, Impl, OFFSET>,
SetEventFilterCommand: SetEventFilterCommand::<Identity, Impl, OFFSET>,
GetSpecificFilterParameters: GetSpecificFilterParameters::<Identity, Impl, OFFSET>,
SetSpecificFilterParameters: SetSpecificFilterParameters::<Identity, Impl, OFFSET>,
GetSpecificFilterArgument: GetSpecificFilterArgument::<Identity, Impl, OFFSET>,
SetSpecificFilterArgument: SetSpecificFilterArgument::<Identity, Impl, OFFSET>,
GetExceptionFilterParameters: GetExceptionFilterParameters::<Identity, Impl, OFFSET>,
SetExceptionFilterParameters: SetExceptionFilterParameters::<Identity, Impl, OFFSET>,
GetExceptionFilterSecondCommand: GetExceptionFilterSecondCommand::<Identity, Impl, OFFSET>,
SetExceptionFilterSecondCommand: SetExceptionFilterSecondCommand::<Identity, Impl, OFFSET>,
WaitForEvent: WaitForEvent::<Identity, Impl, OFFSET>,
GetLastEventInformation: GetLastEventInformation::<Identity, Impl, OFFSET>,
GetCurrentTimeDate: GetCurrentTimeDate::<Identity, Impl, OFFSET>,
GetCurrentSystemUpTime: GetCurrentSystemUpTime::<Identity, Impl, OFFSET>,
GetDumpFormatFlags: GetDumpFormatFlags::<Identity, Impl, OFFSET>,
GetNumberTextReplacements: GetNumberTextReplacements::<Identity, Impl, OFFSET>,
GetTextReplacement: GetTextReplacement::<Identity, Impl, OFFSET>,
SetTextReplacement: SetTextReplacement::<Identity, Impl, OFFSET>,
RemoveTextReplacements: RemoveTextReplacements::<Identity, Impl, OFFSET>,
OutputTextReplacements: OutputTextReplacements::<Identity, Impl, OFFSET>,
GetAssemblyOptions: GetAssemblyOptions::<Identity, Impl, OFFSET>,
AddAssemblyOptions: AddAssemblyOptions::<Identity, Impl, OFFSET>,
RemoveAssemblyOptions: RemoveAssemblyOptions::<Identity, Impl, OFFSET>,
SetAssemblyOptions: SetAssemblyOptions::<Identity, Impl, OFFSET>,
GetExpressionSyntax: GetExpressionSyntax::<Identity, Impl, OFFSET>,
SetExpressionSyntax: SetExpressionSyntax::<Identity, Impl, OFFSET>,
SetExpressionSyntaxByName: SetExpressionSyntaxByName::<Identity, Impl, OFFSET>,
GetNumberExpressionSyntaxes: GetNumberExpressionSyntaxes::<Identity, Impl, OFFSET>,
GetExpressionSyntaxNames: GetExpressionSyntaxNames::<Identity, Impl, OFFSET>,
GetNumberEvents: GetNumberEvents::<Identity, Impl, OFFSET>,
GetEventIndexDescription: GetEventIndexDescription::<Identity, Impl, OFFSET>,
GetCurrentEventIndex: GetCurrentEventIndex::<Identity, Impl, OFFSET>,
SetNextEventIndex: SetNextEventIndex::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugControl3 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
pub trait IDebugControl4_Impl: Sized {
fn GetInterrupt(&self) -> ::windows::core::Result<()>;
fn SetInterrupt(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetInterruptTimeout(&self) -> ::windows::core::Result<u32>;
fn SetInterruptTimeout(&self, seconds: u32) -> ::windows::core::Result<()>;
fn GetLogFile(&self, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn OpenLogFile(&self, file: &::windows::core::PCSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn CloseLogFile(&self) -> ::windows::core::Result<()>;
fn GetLogMask(&self) -> ::windows::core::Result<u32>;
fn SetLogMask(&self, mask: u32) -> ::windows::core::Result<()>;
fn Input(&self, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::Result<()>;
fn ReturnInput(&self, buffer: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn Output(&self, mask: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputVaList(&self, mask: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn ControlledOutput(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn ControlledOutputVaList(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn OutputPrompt(&self, outputcontrol: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputPromptVaList(&self, outputcontrol: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn GetPromptText(&self, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()>;
fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows::core::Result<()>;
fn GetNotifyEventHandle(&self) -> ::windows::core::Result<u64>;
fn SetNotifyEventHandle(&self, handle: u64) -> ::windows::core::Result<()>;
fn Assemble(&self, offset: u64, instr: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn Disassemble(&self, offset: u64, flags: u32, buffer: ::windows::core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::Result<()>;
fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result<u64>;
fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows::core::Result<u64>;
fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows::core::Result<()>;
fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result<u64>;
fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows::core::Result<()>;
fn GetReturnOffset(&self) -> ::windows::core::Result<u64>;
fn OutputStackTrace(&self, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows::core::Result<()>;
fn GetActualProcessorType(&self) -> ::windows::core::Result<u32>;
fn GetExecutingProcessorType(&self) -> ::windows::core::Result<u32>;
fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows::core::Result<u32>;
fn GetPossibleExecutingProcessorTypes(&self, start: u32, count: u32, types: *mut u32) -> ::windows::core::Result<()>;
fn GetNumberProcessors(&self) -> ::windows::core::Result<u32>;
fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows::core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows::core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows::core::Result<()>;
fn GetPageSize(&self) -> ::windows::core::Result<u32>;
fn IsPointer64Bit(&self) -> ::windows::core::Result<()>;
fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::Result<()>;
fn GetNumberSupportedProcessorTypes(&self) -> ::windows::core::Result<u32>;
fn GetSupportedProcessorTypes(&self, start: u32, count: u32, types: *mut u32) -> ::windows::core::Result<()>;
fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetEffectiveProcessorType(&self) -> ::windows::core::Result<u32>;
fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows::core::Result<()>;
fn GetExecutionStatus(&self) -> ::windows::core::Result<u32>;
fn SetExecutionStatus(&self, status: u32) -> ::windows::core::Result<()>;
fn GetCodeLevel(&self) -> ::windows::core::Result<u32>;
fn SetCodeLevel(&self, level: u32) -> ::windows::core::Result<()>;
fn GetEngineOptions(&self) -> ::windows::core::Result<u32>;
fn AddEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::Result<()>;
fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()>;
fn GetTextMacro(&self, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextMacro(&self, slot: u32, r#macro: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetRadix(&self) -> ::windows::core::Result<u32>;
fn SetRadix(&self, radix: u32) -> ::windows::core::Result<()>;
fn Evaluate(&self, expression: &::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::Result<()>;
fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()>;
fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()>;
fn Execute(&self, outputcontrol: u32, command: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn ExecuteCommandFile(&self, outputcontrol: u32, commandfile: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetNumberBreakpoints(&self) -> ::windows::core::Result<u32>;
fn GetBreakpointByIndex(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn GetBreakpointById(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn GetBreakpointParameters(&self, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()>;
fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn RemoveBreakpoint(&self, bp: ::core::option::Option<&IDebugBreakpoint>) -> ::windows::core::Result<()>;
fn AddExtension(&self, path: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<u64>;
fn RemoveExtension(&self, handle: u64) -> ::windows::core::Result<()>;
fn GetExtensionByPath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn CallExtension(&self, handle: u64, function: &::windows::core::PCSTR, arguments: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetExtensionFunction(&self, handle: u64, funcname: &::windows::core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>;
fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::Result<()>;
fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::Result<()>;
fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::Result<()>;
fn GetEventFilterText(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn GetEventFilterCommand(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetEventFilterCommand(&self, index: u32, command: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetSpecificFilterParameters(&self, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn SetSpecificFilterParameters(&self, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn GetSpecificFilterArgument(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSpecificFilterArgument(&self, index: u32, argument: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetExceptionFilterParameters(&self, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn SetExceptionFilterParameters(&self, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetExceptionFilterSecondCommand(&self, index: u32, command: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()>;
fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentTimeDate(&self) -> ::windows::core::Result<u32>;
fn GetCurrentSystemUpTime(&self) -> ::windows::core::Result<u32>;
fn GetDumpFormatFlags(&self) -> ::windows::core::Result<u32>;
fn GetNumberTextReplacements(&self) -> ::windows::core::Result<u32>;
fn GetTextReplacement(&self, srctext: &::windows::core::PCSTR, index: u32, srcbuffer: ::windows::core::PSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows::core::PSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextReplacement(&self, srctext: &::windows::core::PCSTR, dsttext: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn RemoveTextReplacements(&self) -> ::windows::core::Result<()>;
fn OutputTextReplacements(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetAssemblyOptions(&self) -> ::windows::core::Result<u32>;
fn AddAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn GetExpressionSyntax(&self) -> ::windows::core::Result<u32>;
fn SetExpressionSyntax(&self, flags: u32) -> ::windows::core::Result<()>;
fn SetExpressionSyntaxByName(&self, abbrevname: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetNumberExpressionSyntaxes(&self) -> ::windows::core::Result<u32>;
fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetNumberEvents(&self) -> ::windows::core::Result<u32>;
fn GetEventIndexDescription(&self, index: u32, which: u32, buffer: &::windows::core::PCSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentEventIndex(&self) -> ::windows::core::Result<u32>;
fn SetNextEventIndex(&self, relation: u32, value: u32) -> ::windows::core::Result<u32>;
fn GetLogFileWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn OpenLogFileWide(&self, file: &::windows::core::PCWSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn InputWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::Result<()>;
fn ReturnInputWide(&self, buffer: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn OutputWide(&self, mask: u32, format: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn OutputVaListWide(&self, mask: u32, format: &::windows::core::PCWSTR, args: *const i8) -> ::windows::core::Result<()>;
fn ControlledOutputWide(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn ControlledOutputVaListWide(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCWSTR, args: *const i8) -> ::windows::core::Result<()>;
fn OutputPromptWide(&self, outputcontrol: u32, format: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn OutputPromptVaListWide(&self, outputcontrol: u32, format: &::windows::core::PCWSTR, args: *const i8) -> ::windows::core::Result<()>;
fn GetPromptTextWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn AssembleWide(&self, offset: u64, instr: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn DisassembleWide(&self, offset: u64, flags: u32, buffer: ::windows::core::PWSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::Result<()>;
fn GetProcessorTypeNamesWide(&self, r#type: u32, fullnamebuffer: ::windows::core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetTextMacroWide(&self, slot: u32, buffer: ::windows::core::PWSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextMacroWide(&self, slot: u32, r#macro: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn EvaluateWide(&self, expression: &::windows::core::PCWSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::Result<()>;
fn ExecuteWide(&self, outputcontrol: u32, command: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<()>;
fn ExecuteCommandFileWide(&self, outputcontrol: u32, commandfile: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetBreakpointByIndex2(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint2>;
fn GetBreakpointById2(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint2>;
fn AddBreakpoint2(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint2>;
fn RemoveBreakpoint2(&self, bp: ::core::option::Option<&IDebugBreakpoint2>) -> ::windows::core::Result<()>;
fn AddExtensionWide(&self, path: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<u64>;
fn GetExtensionByPathWide(&self, path: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn CallExtensionWide(&self, handle: u64, function: &::windows::core::PCWSTR, arguments: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetExtensionFunctionWide(&self, handle: u64, funcname: &::windows::core::PCWSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>;
fn GetEventFilterTextWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn GetEventFilterCommandWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetEventFilterCommandWide(&self, index: u32, command: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSpecificFilterArgumentWide(&self, index: u32, argument: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetExceptionFilterSecondCommandWide(&self, index: u32, command: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetLastEventInformationWide(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PWSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::Result<()>;
fn GetTextReplacementWide(&self, srctext: &::windows::core::PCWSTR, index: u32, srcbuffer: ::windows::core::PWSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows::core::PWSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextReplacementWide(&self, srctext: &::windows::core::PCWSTR, dsttext: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn SetExpressionSyntaxByNameWide(&self, abbrevname: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: ::windows::core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetEventIndexDescriptionWide(&self, index: u32, which: u32, buffer: &::windows::core::PCWSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::Result<()>;
fn GetLogFile2(&self, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::Result<()>;
fn OpenLogFile2(&self, file: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetLogFile2Wide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::Result<()>;
fn OpenLogFile2Wide(&self, file: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetSystemVersionValues(&self, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: *mut u32, kdminor: *mut u32) -> ::windows::core::Result<()>;
fn GetSystemVersionString(&self, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSystemVersionStringWide(&self, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetContextStackTrace(&self, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows::core::Result<()>;
fn OutputContextStackTrace(&self, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetStoredEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, context: *mut ::core::ffi::c_void, contextsize: u32, contextused: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32) -> ::windows::core::Result<()>;
fn GetManagedStatus(&self, flags: *mut u32, whichstring: u32, string: ::windows::core::PSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::Result<()>;
fn GetManagedStatusWide(&self, flags: *mut u32, whichstring: u32, string: ::windows::core::PWSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::Result<()>;
fn ResetManagedStatus(&self, flags: u32) -> ::windows::core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::windows::core::RuntimeName for IDebugControl4 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl IDebugControl4_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>() -> IDebugControl4_Vtbl {
unsafe extern "system" fn GetInterrupt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_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.GetInterrupt().into()
}
unsafe extern "system" fn SetInterrupt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_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.SetInterrupt(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetInterruptTimeout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetInterruptTimeout() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(seconds, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetInterruptTimeout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetInterruptTimeout(::core::mem::transmute_copy(&seconds)).into()
}
unsafe extern "system" fn GetLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::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.GetLogFile(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn OpenLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, append: super::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.OpenLogFile(::core::mem::transmute(&file), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn CloseLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_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.CloseLogFile().into()
}
unsafe extern "system" fn GetLogMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLogMask() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetLogMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetLogMask(::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn Input<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Input(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&inputsize)).into()
}
unsafe extern "system" fn ReturnInput<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReturnInput(::core::mem::transmute(&buffer)).into()
}
unsafe extern "system" fn Output<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Output(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputVaList(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn ControlledOutput<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutput(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn ControlledOutputVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutputVaList(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn OutputPrompt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPrompt(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputPromptVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPromptVaList(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn GetPromptText<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPromptText(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn OutputCurrentState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputCurrentState(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn OutputVersionInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputVersionInformation(::core::mem::transmute_copy(&outputcontrol)).into()
}
unsafe extern "system" fn GetNotifyEventHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNotifyEventHandle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetNotifyEventHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNotifyEventHandle(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn Assemble<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCSTR, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Assemble(::core::mem::transmute_copy(&offset), ::core::mem::transmute(&instr)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(endoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Disassemble<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows::core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Disassemble(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&disassemblysize), ::core::mem::transmute_copy(&endoffset)).into()
}
unsafe extern "system" fn GetDisassembleEffectiveOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDisassembleEffectiveOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputDisassembly<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.OutputDisassembly(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(endoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputDisassemblyLines<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputDisassemblyLines(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&previouslines), ::core::mem::transmute_copy(&totallines), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&offsetline), ::core::mem::transmute_copy(&startoffset), ::core::mem::transmute_copy(&endoffset), ::core::mem::transmute_copy(&lineoffsets)).into()
}
unsafe extern "system" fn GetNearInstruction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNearInstruction(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&delta)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(nearoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStackTrace(::core::mem::transmute_copy(&frameoffset), ::core::mem::transmute_copy(&stackoffset), ::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framesfilled)).into()
}
unsafe extern "system" fn GetReturnOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetReturnOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputStackTrace(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetDebuggeeType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDebuggeeType(::core::mem::transmute_copy(&class), ::core::mem::transmute_copy(&qualifier)).into()
}
unsafe extern "system" fn GetActualProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetActualProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetExecutingProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExecutingProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberPossibleExecutingProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberPossibleExecutingProcessorTypes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetPossibleExecutingProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPossibleExecutingProcessorTypes(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&types)).into()
}
unsafe extern "system" fn GetNumberProcessors<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberProcessors() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSystemVersion<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows::core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows::core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemVersion(::core::mem::transmute_copy(&platformid), ::core::mem::transmute_copy(&major), ::core::mem::transmute_copy(&minor), ::core::mem::transmute_copy(&servicepackstring), ::core::mem::transmute_copy(&servicepackstringsize), ::core::mem::transmute_copy(&servicepackstringused), ::core::mem::transmute_copy(&servicepacknumber), ::core::mem::transmute_copy(&buildstring), ::core::mem::transmute_copy(&buildstringsize), ::core::mem::transmute_copy(&buildstringused))
.into()
}
unsafe extern "system" fn GetPageSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPageSize() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(size, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsPointer64Bit<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_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.IsPointer64Bit().into()
}
unsafe extern "system" fn ReadBugCheckData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadBugCheckData(::core::mem::transmute_copy(&code), ::core::mem::transmute_copy(&arg1), ::core::mem::transmute_copy(&arg2), ::core::mem::transmute_copy(&arg3), ::core::mem::transmute_copy(&arg4)).into()
}
unsafe extern "system" fn GetNumberSupportedProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberSupportedProcessorTypes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSupportedProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSupportedProcessorTypes(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&types)).into()
}
unsafe extern "system" fn GetProcessorTypeNames<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetProcessorTypeNames(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&fullnamebuffer), ::core::mem::transmute_copy(&fullnamebuffersize), ::core::mem::transmute_copy(&fullnamesize), ::core::mem::transmute_copy(&abbrevnamebuffer), ::core::mem::transmute_copy(&abbrevnamebuffersize), ::core::mem::transmute_copy(&abbrevnamesize)).into()
}
unsafe extern "system" fn GetEffectiveProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEffectiveProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEffectiveProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEffectiveProcessorType(::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn GetExecutionStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExecutionStatus() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(status, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetExecutionStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExecutionStatus(::core::mem::transmute_copy(&status)).into()
}
unsafe extern "system" fn GetCodeLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCodeLevel() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(level, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCodeLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, level: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCodeLevel(::core::mem::transmute_copy(&level)).into()
}
unsafe extern "system" fn GetEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEngineOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn GetSystemErrorControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemErrorControl(::core::mem::transmute_copy(&outputlevel), ::core::mem::transmute_copy(&breaklevel)).into()
}
unsafe extern "system" fn SetSystemErrorControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSystemErrorControl(::core::mem::transmute_copy(&outputlevel), ::core::mem::transmute_copy(&breaklevel)).into()
}
unsafe extern "system" fn GetTextMacro<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextMacro(::core::mem::transmute_copy(&slot), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&macrosize)).into()
}
unsafe extern "system" fn SetTextMacro<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextMacro(::core::mem::transmute_copy(&slot), ::core::mem::transmute(&r#macro)).into()
}
unsafe extern "system" fn GetRadix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRadix() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(radix, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetRadix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRadix(::core::mem::transmute_copy(&radix)).into()
}
unsafe extern "system" fn Evaluate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Evaluate(::core::mem::transmute(&expression), ::core::mem::transmute_copy(&desiredtype), ::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&remainderindex)).into()
}
unsafe extern "system" fn CoerceValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CoerceValue(::core::mem::transmute_copy(&r#in), ::core::mem::transmute_copy(&outtype), ::core::mem::transmute_copy(&out)).into()
}
unsafe extern "system" fn CoerceValues<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CoerceValues(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&r#in), ::core::mem::transmute_copy(&outtypes), ::core::mem::transmute_copy(&out)).into()
}
unsafe extern "system" fn Execute<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Execute(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&command), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn ExecuteCommandFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExecuteCommandFile(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&commandfile), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetNumberBreakpoints<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberBreakpoints() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, bp: *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.GetBreakpointByIndex(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointById<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32, bp: *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.GetBreakpointById(::core::mem::transmute_copy(&id)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBreakpointParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn AddBreakpoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *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.AddBreakpoint(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&desiredid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveBreakpoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveBreakpoint(::windows::core::from_raw_borrowed(&bp)).into()
}
unsafe extern "system" fn AddExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AddExtension(::core::mem::transmute(&path), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveExtension(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn GetExtensionByPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExtensionByPath(::core::mem::transmute(&path)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CallExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCSTR, arguments: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CallExtension(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&function), ::core::mem::transmute(&arguments)).into()
}
unsafe extern "system" fn GetExtensionFunction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExtensionFunction(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&funcname), ::core::mem::transmute_copy(&function)).into()
}
unsafe extern "system" fn GetWindbgExtensionApis32<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetWindbgExtensionApis32(::core::mem::transmute_copy(&api)).into()
}
unsafe extern "system" fn GetWindbgExtensionApis64<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetWindbgExtensionApis64(::core::mem::transmute_copy(&api)).into()
}
unsafe extern "system" fn GetNumberEventFilters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNumberEventFilters(::core::mem::transmute_copy(&specificevents), ::core::mem::transmute_copy(&specificexceptions), ::core::mem::transmute_copy(&arbitraryexceptions)).into()
}
unsafe extern "system" fn GetEventFilterText<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterText(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn GetEventFilterCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetEventFilterCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventFilterCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn GetSpecificFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSpecificFilterParameters(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn SetSpecificFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSpecificFilterParameters(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetSpecificFilterArgument<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSpecificFilterArgument(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&argumentsize)).into()
}
unsafe extern "system" fn SetSpecificFilterArgument<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSpecificFilterArgument(::core::mem::transmute_copy(&index), ::core::mem::transmute(&argument)).into()
}
unsafe extern "system" fn GetExceptionFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExceptionFilterParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&codes), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn SetExceptionFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExceptionFilterParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetExceptionFilterSecondCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExceptionFilterSecondCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetExceptionFilterSecondCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExceptionFilterSecondCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn WaitForEvent<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WaitForEvent(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn GetLastEventInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLastEventInformation(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&extrainformation), ::core::mem::transmute_copy(&extrainformationsize), ::core::mem::transmute_copy(&extrainformationused), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&descriptionused)).into()
}
unsafe extern "system" fn GetCurrentTimeDate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timedate: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentTimeDate() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(timedate, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentSystemUpTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentSystemUpTime() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(uptime, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDumpFormatFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, formatflags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDumpFormatFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(formatflags, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberTextReplacements<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, numrepl: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberTextReplacements() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(numrepl, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTextReplacement<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCSTR, index: u32, srcbuffer: ::windows::core::PSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows::core::PSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextReplacement(::core::mem::transmute(&srctext), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&srcbuffer), ::core::mem::transmute_copy(&srcbuffersize), ::core::mem::transmute_copy(&srcsize), ::core::mem::transmute_copy(&dstbuffer), ::core::mem::transmute_copy(&dstbuffersize), ::core::mem::transmute_copy(&dstsize)).into()
}
unsafe extern "system" fn SetTextReplacement<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCSTR, dsttext: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextReplacement(::core::mem::transmute(&srctext), ::core::mem::transmute(&dsttext)).into()
}
unsafe extern "system" fn RemoveTextReplacements<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_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.RemoveTextReplacements().into()
}
unsafe extern "system" fn OutputTextReplacements<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputTextReplacements(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetAssemblyOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAssemblyOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddAssemblyOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddAssemblyOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveAssemblyOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveAssemblyOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetAssemblyOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAssemblyOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn GetExpressionSyntax<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExpressionSyntax() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(flags, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetExpressionSyntax<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_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.SetExpressionSyntax(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn SetExpressionSyntaxByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, abbrevname: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExpressionSyntaxByName(::core::mem::transmute(&abbrevname)).into()
}
unsafe extern "system" fn GetNumberExpressionSyntaxes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberExpressionSyntaxes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetExpressionSyntaxNames<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExpressionSyntaxNames(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&fullnamebuffer), ::core::mem::transmute_copy(&fullnamebuffersize), ::core::mem::transmute_copy(&fullnamesize), ::core::mem::transmute_copy(&abbrevnamebuffer), ::core::mem::transmute_copy(&abbrevnamebuffersize), ::core::mem::transmute_copy(&abbrevnamesize)).into()
}
unsafe extern "system" fn GetNumberEvents<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, events: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberEvents() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(events, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetEventIndexDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows::core::PCSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventIndexDescription(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&which), ::core::mem::transmute(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&descsize)).into()
}
unsafe extern "system" fn GetCurrentEventIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentEventIndex() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(index, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetNextEventIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, relation: u32, value: u32, nextindex: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SetNextEventIndex(::core::mem::transmute_copy(&relation), ::core::mem::transmute_copy(&value)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(nextindex, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetLogFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, append: *mut super::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.GetLogFileWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn OpenLogFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, append: super::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.OpenLogFileWide(::core::mem::transmute(&file), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn InputWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InputWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&inputsize)).into()
}
unsafe extern "system" fn ReturnInputWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReturnInputWide(::core::mem::transmute(&buffer)).into()
}
unsafe extern "system" fn OutputWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputWide(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputVaListWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputVaListWide(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn ControlledOutputWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutputWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn ControlledOutputVaListWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutputVaListWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn OutputPromptWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPromptWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputPromptVaListWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPromptVaListWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn GetPromptTextWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPromptTextWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn AssembleWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCWSTR, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AssembleWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute(&instr)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(endoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DisassembleWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows::core::PWSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DisassembleWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&disassemblysize), ::core::mem::transmute_copy(&endoffset)).into()
}
unsafe extern "system" fn GetProcessorTypeNamesWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows::core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetProcessorTypeNamesWide(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&fullnamebuffer), ::core::mem::transmute_copy(&fullnamebuffersize), ::core::mem::transmute_copy(&fullnamesize), ::core::mem::transmute_copy(&abbrevnamebuffer), ::core::mem::transmute_copy(&abbrevnamebuffersize), ::core::mem::transmute_copy(&abbrevnamesize)).into()
}
unsafe extern "system" fn GetTextMacroWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PWSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextMacroWide(::core::mem::transmute_copy(&slot), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&macrosize)).into()
}
unsafe extern "system" fn SetTextMacroWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextMacroWide(::core::mem::transmute_copy(&slot), ::core::mem::transmute(&r#macro)).into()
}
unsafe extern "system" fn EvaluateWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCWSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EvaluateWide(::core::mem::transmute(&expression), ::core::mem::transmute_copy(&desiredtype), ::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&remainderindex)).into()
}
unsafe extern "system" fn ExecuteWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExecuteWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&command), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn ExecuteCommandFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExecuteCommandFileWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&commandfile), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetBreakpointByIndex2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, bp: *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.GetBreakpointByIndex2(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointById2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32, bp: *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.GetBreakpointById2(::core::mem::transmute_copy(&id)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddBreakpoint2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *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.AddBreakpoint2(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&desiredid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveBreakpoint2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveBreakpoint2(::windows::core::from_raw_borrowed(&bp)).into()
}
unsafe extern "system" fn AddExtensionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AddExtensionWide(::core::mem::transmute(&path), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetExtensionByPathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExtensionByPathWide(::core::mem::transmute(&path)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CallExtensionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCWSTR, arguments: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CallExtensionWide(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&function), ::core::mem::transmute(&arguments)).into()
}
unsafe extern "system" fn GetExtensionFunctionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCWSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExtensionFunctionWide(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&funcname), ::core::mem::transmute_copy(&function)).into()
}
unsafe extern "system" fn GetEventFilterTextWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterTextWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn GetEventFilterCommandWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterCommandWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetEventFilterCommandWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventFilterCommandWide(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn GetSpecificFilterArgumentWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSpecificFilterArgumentWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&argumentsize)).into()
}
unsafe extern "system" fn SetSpecificFilterArgumentWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSpecificFilterArgumentWide(::core::mem::transmute_copy(&index), ::core::mem::transmute(&argument)).into()
}
unsafe extern "system" fn GetExceptionFilterSecondCommandWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExceptionFilterSecondCommandWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetExceptionFilterSecondCommandWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExceptionFilterSecondCommandWide(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn GetLastEventInformationWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PWSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLastEventInformationWide(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&extrainformation), ::core::mem::transmute_copy(&extrainformationsize), ::core::mem::transmute_copy(&extrainformationused), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&descriptionused)).into()
}
unsafe extern "system" fn GetTextReplacementWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCWSTR, index: u32, srcbuffer: ::windows::core::PWSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows::core::PWSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextReplacementWide(::core::mem::transmute(&srctext), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&srcbuffer), ::core::mem::transmute_copy(&srcbuffersize), ::core::mem::transmute_copy(&srcsize), ::core::mem::transmute_copy(&dstbuffer), ::core::mem::transmute_copy(&dstbuffersize), ::core::mem::transmute_copy(&dstsize)).into()
}
unsafe extern "system" fn SetTextReplacementWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCWSTR, dsttext: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextReplacementWide(::core::mem::transmute(&srctext), ::core::mem::transmute(&dsttext)).into()
}
unsafe extern "system" fn SetExpressionSyntaxByNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, abbrevname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExpressionSyntaxByNameWide(::core::mem::transmute(&abbrevname)).into()
}
unsafe extern "system" fn GetExpressionSyntaxNamesWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, fullnamebuffer: ::windows::core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExpressionSyntaxNamesWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&fullnamebuffer), ::core::mem::transmute_copy(&fullnamebuffersize), ::core::mem::transmute_copy(&fullnamesize), ::core::mem::transmute_copy(&abbrevnamebuffer), ::core::mem::transmute_copy(&abbrevnamebuffersize), ::core::mem::transmute_copy(&abbrevnamesize)).into()
}
unsafe extern "system" fn GetEventIndexDescriptionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows::core::PCWSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventIndexDescriptionWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&which), ::core::mem::transmute(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&descsize)).into()
}
unsafe extern "system" fn GetLogFile2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLogFile2(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn OpenLogFile2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenLogFile2(::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetLogFile2Wide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLogFile2Wide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn OpenLogFile2Wide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenLogFile2Wide(::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetSystemVersionValues<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: *mut u32, kdminor: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemVersionValues(::core::mem::transmute_copy(&platformid), ::core::mem::transmute_copy(&win32major), ::core::mem::transmute_copy(&win32minor), ::core::mem::transmute_copy(&kdmajor), ::core::mem::transmute_copy(&kdminor)).into()
}
unsafe extern "system" fn GetSystemVersionString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemVersionString(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetSystemVersionStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemVersionStringWide(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetContextStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetContextStackTrace(::core::mem::transmute_copy(&startcontext), ::core::mem::transmute_copy(&startcontextsize), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framecontexts), ::core::mem::transmute_copy(&framecontextssize), ::core::mem::transmute_copy(&framecontextsentrysize), ::core::mem::transmute_copy(&framesfilled)).into()
}
unsafe extern "system" fn OutputContextStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputContextStackTrace(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framecontexts), ::core::mem::transmute_copy(&framecontextssize), ::core::mem::transmute_copy(&framecontextsentrysize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetStoredEventInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, context: *mut ::core::ffi::c_void, contextsize: u32, contextused: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStoredEventInformation(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize), ::core::mem::transmute_copy(&contextused), ::core::mem::transmute_copy(&extrainformation), ::core::mem::transmute_copy(&extrainformationsize), ::core::mem::transmute_copy(&extrainformationused)).into()
}
unsafe extern "system" fn GetManagedStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows::core::PSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetManagedStatus(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&whichstring), ::core::mem::transmute_copy(&string), ::core::mem::transmute_copy(&stringsize), ::core::mem::transmute_copy(&stringneeded)).into()
}
unsafe extern "system" fn GetManagedStatusWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows::core::PWSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetManagedStatusWide(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&whichstring), ::core::mem::transmute_copy(&string), ::core::mem::transmute_copy(&stringsize), ::core::mem::transmute_copy(&stringneeded)).into()
}
unsafe extern "system" fn ResetManagedStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl4_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.ResetManagedStatus(::core::mem::transmute_copy(&flags)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetInterrupt: GetInterrupt::<Identity, Impl, OFFSET>,
SetInterrupt: SetInterrupt::<Identity, Impl, OFFSET>,
GetInterruptTimeout: GetInterruptTimeout::<Identity, Impl, OFFSET>,
SetInterruptTimeout: SetInterruptTimeout::<Identity, Impl, OFFSET>,
GetLogFile: GetLogFile::<Identity, Impl, OFFSET>,
OpenLogFile: OpenLogFile::<Identity, Impl, OFFSET>,
CloseLogFile: CloseLogFile::<Identity, Impl, OFFSET>,
GetLogMask: GetLogMask::<Identity, Impl, OFFSET>,
SetLogMask: SetLogMask::<Identity, Impl, OFFSET>,
Input: Input::<Identity, Impl, OFFSET>,
ReturnInput: ReturnInput::<Identity, Impl, OFFSET>,
Output: Output::<Identity, Impl, OFFSET>,
OutputVaList: OutputVaList::<Identity, Impl, OFFSET>,
ControlledOutput: ControlledOutput::<Identity, Impl, OFFSET>,
ControlledOutputVaList: ControlledOutputVaList::<Identity, Impl, OFFSET>,
OutputPrompt: OutputPrompt::<Identity, Impl, OFFSET>,
OutputPromptVaList: OutputPromptVaList::<Identity, Impl, OFFSET>,
GetPromptText: GetPromptText::<Identity, Impl, OFFSET>,
OutputCurrentState: OutputCurrentState::<Identity, Impl, OFFSET>,
OutputVersionInformation: OutputVersionInformation::<Identity, Impl, OFFSET>,
GetNotifyEventHandle: GetNotifyEventHandle::<Identity, Impl, OFFSET>,
SetNotifyEventHandle: SetNotifyEventHandle::<Identity, Impl, OFFSET>,
Assemble: Assemble::<Identity, Impl, OFFSET>,
Disassemble: Disassemble::<Identity, Impl, OFFSET>,
GetDisassembleEffectiveOffset: GetDisassembleEffectiveOffset::<Identity, Impl, OFFSET>,
OutputDisassembly: OutputDisassembly::<Identity, Impl, OFFSET>,
OutputDisassemblyLines: OutputDisassemblyLines::<Identity, Impl, OFFSET>,
GetNearInstruction: GetNearInstruction::<Identity, Impl, OFFSET>,
GetStackTrace: GetStackTrace::<Identity, Impl, OFFSET>,
GetReturnOffset: GetReturnOffset::<Identity, Impl, OFFSET>,
OutputStackTrace: OutputStackTrace::<Identity, Impl, OFFSET>,
GetDebuggeeType: GetDebuggeeType::<Identity, Impl, OFFSET>,
GetActualProcessorType: GetActualProcessorType::<Identity, Impl, OFFSET>,
GetExecutingProcessorType: GetExecutingProcessorType::<Identity, Impl, OFFSET>,
GetNumberPossibleExecutingProcessorTypes: GetNumberPossibleExecutingProcessorTypes::<Identity, Impl, OFFSET>,
GetPossibleExecutingProcessorTypes: GetPossibleExecutingProcessorTypes::<Identity, Impl, OFFSET>,
GetNumberProcessors: GetNumberProcessors::<Identity, Impl, OFFSET>,
GetSystemVersion: GetSystemVersion::<Identity, Impl, OFFSET>,
GetPageSize: GetPageSize::<Identity, Impl, OFFSET>,
IsPointer64Bit: IsPointer64Bit::<Identity, Impl, OFFSET>,
ReadBugCheckData: ReadBugCheckData::<Identity, Impl, OFFSET>,
GetNumberSupportedProcessorTypes: GetNumberSupportedProcessorTypes::<Identity, Impl, OFFSET>,
GetSupportedProcessorTypes: GetSupportedProcessorTypes::<Identity, Impl, OFFSET>,
GetProcessorTypeNames: GetProcessorTypeNames::<Identity, Impl, OFFSET>,
GetEffectiveProcessorType: GetEffectiveProcessorType::<Identity, Impl, OFFSET>,
SetEffectiveProcessorType: SetEffectiveProcessorType::<Identity, Impl, OFFSET>,
GetExecutionStatus: GetExecutionStatus::<Identity, Impl, OFFSET>,
SetExecutionStatus: SetExecutionStatus::<Identity, Impl, OFFSET>,
GetCodeLevel: GetCodeLevel::<Identity, Impl, OFFSET>,
SetCodeLevel: SetCodeLevel::<Identity, Impl, OFFSET>,
GetEngineOptions: GetEngineOptions::<Identity, Impl, OFFSET>,
AddEngineOptions: AddEngineOptions::<Identity, Impl, OFFSET>,
RemoveEngineOptions: RemoveEngineOptions::<Identity, Impl, OFFSET>,
SetEngineOptions: SetEngineOptions::<Identity, Impl, OFFSET>,
GetSystemErrorControl: GetSystemErrorControl::<Identity, Impl, OFFSET>,
SetSystemErrorControl: SetSystemErrorControl::<Identity, Impl, OFFSET>,
GetTextMacro: GetTextMacro::<Identity, Impl, OFFSET>,
SetTextMacro: SetTextMacro::<Identity, Impl, OFFSET>,
GetRadix: GetRadix::<Identity, Impl, OFFSET>,
SetRadix: SetRadix::<Identity, Impl, OFFSET>,
Evaluate: Evaluate::<Identity, Impl, OFFSET>,
CoerceValue: CoerceValue::<Identity, Impl, OFFSET>,
CoerceValues: CoerceValues::<Identity, Impl, OFFSET>,
Execute: Execute::<Identity, Impl, OFFSET>,
ExecuteCommandFile: ExecuteCommandFile::<Identity, Impl, OFFSET>,
GetNumberBreakpoints: GetNumberBreakpoints::<Identity, Impl, OFFSET>,
GetBreakpointByIndex: GetBreakpointByIndex::<Identity, Impl, OFFSET>,
GetBreakpointById: GetBreakpointById::<Identity, Impl, OFFSET>,
GetBreakpointParameters: GetBreakpointParameters::<Identity, Impl, OFFSET>,
AddBreakpoint: AddBreakpoint::<Identity, Impl, OFFSET>,
RemoveBreakpoint: RemoveBreakpoint::<Identity, Impl, OFFSET>,
AddExtension: AddExtension::<Identity, Impl, OFFSET>,
RemoveExtension: RemoveExtension::<Identity, Impl, OFFSET>,
GetExtensionByPath: GetExtensionByPath::<Identity, Impl, OFFSET>,
CallExtension: CallExtension::<Identity, Impl, OFFSET>,
GetExtensionFunction: GetExtensionFunction::<Identity, Impl, OFFSET>,
GetWindbgExtensionApis32: GetWindbgExtensionApis32::<Identity, Impl, OFFSET>,
GetWindbgExtensionApis64: GetWindbgExtensionApis64::<Identity, Impl, OFFSET>,
GetNumberEventFilters: GetNumberEventFilters::<Identity, Impl, OFFSET>,
GetEventFilterText: GetEventFilterText::<Identity, Impl, OFFSET>,
GetEventFilterCommand: GetEventFilterCommand::<Identity, Impl, OFFSET>,
SetEventFilterCommand: SetEventFilterCommand::<Identity, Impl, OFFSET>,
GetSpecificFilterParameters: GetSpecificFilterParameters::<Identity, Impl, OFFSET>,
SetSpecificFilterParameters: SetSpecificFilterParameters::<Identity, Impl, OFFSET>,
GetSpecificFilterArgument: GetSpecificFilterArgument::<Identity, Impl, OFFSET>,
SetSpecificFilterArgument: SetSpecificFilterArgument::<Identity, Impl, OFFSET>,
GetExceptionFilterParameters: GetExceptionFilterParameters::<Identity, Impl, OFFSET>,
SetExceptionFilterParameters: SetExceptionFilterParameters::<Identity, Impl, OFFSET>,
GetExceptionFilterSecondCommand: GetExceptionFilterSecondCommand::<Identity, Impl, OFFSET>,
SetExceptionFilterSecondCommand: SetExceptionFilterSecondCommand::<Identity, Impl, OFFSET>,
WaitForEvent: WaitForEvent::<Identity, Impl, OFFSET>,
GetLastEventInformation: GetLastEventInformation::<Identity, Impl, OFFSET>,
GetCurrentTimeDate: GetCurrentTimeDate::<Identity, Impl, OFFSET>,
GetCurrentSystemUpTime: GetCurrentSystemUpTime::<Identity, Impl, OFFSET>,
GetDumpFormatFlags: GetDumpFormatFlags::<Identity, Impl, OFFSET>,
GetNumberTextReplacements: GetNumberTextReplacements::<Identity, Impl, OFFSET>,
GetTextReplacement: GetTextReplacement::<Identity, Impl, OFFSET>,
SetTextReplacement: SetTextReplacement::<Identity, Impl, OFFSET>,
RemoveTextReplacements: RemoveTextReplacements::<Identity, Impl, OFFSET>,
OutputTextReplacements: OutputTextReplacements::<Identity, Impl, OFFSET>,
GetAssemblyOptions: GetAssemblyOptions::<Identity, Impl, OFFSET>,
AddAssemblyOptions: AddAssemblyOptions::<Identity, Impl, OFFSET>,
RemoveAssemblyOptions: RemoveAssemblyOptions::<Identity, Impl, OFFSET>,
SetAssemblyOptions: SetAssemblyOptions::<Identity, Impl, OFFSET>,
GetExpressionSyntax: GetExpressionSyntax::<Identity, Impl, OFFSET>,
SetExpressionSyntax: SetExpressionSyntax::<Identity, Impl, OFFSET>,
SetExpressionSyntaxByName: SetExpressionSyntaxByName::<Identity, Impl, OFFSET>,
GetNumberExpressionSyntaxes: GetNumberExpressionSyntaxes::<Identity, Impl, OFFSET>,
GetExpressionSyntaxNames: GetExpressionSyntaxNames::<Identity, Impl, OFFSET>,
GetNumberEvents: GetNumberEvents::<Identity, Impl, OFFSET>,
GetEventIndexDescription: GetEventIndexDescription::<Identity, Impl, OFFSET>,
GetCurrentEventIndex: GetCurrentEventIndex::<Identity, Impl, OFFSET>,
SetNextEventIndex: SetNextEventIndex::<Identity, Impl, OFFSET>,
GetLogFileWide: GetLogFileWide::<Identity, Impl, OFFSET>,
OpenLogFileWide: OpenLogFileWide::<Identity, Impl, OFFSET>,
InputWide: InputWide::<Identity, Impl, OFFSET>,
ReturnInputWide: ReturnInputWide::<Identity, Impl, OFFSET>,
OutputWide: OutputWide::<Identity, Impl, OFFSET>,
OutputVaListWide: OutputVaListWide::<Identity, Impl, OFFSET>,
ControlledOutputWide: ControlledOutputWide::<Identity, Impl, OFFSET>,
ControlledOutputVaListWide: ControlledOutputVaListWide::<Identity, Impl, OFFSET>,
OutputPromptWide: OutputPromptWide::<Identity, Impl, OFFSET>,
OutputPromptVaListWide: OutputPromptVaListWide::<Identity, Impl, OFFSET>,
GetPromptTextWide: GetPromptTextWide::<Identity, Impl, OFFSET>,
AssembleWide: AssembleWide::<Identity, Impl, OFFSET>,
DisassembleWide: DisassembleWide::<Identity, Impl, OFFSET>,
GetProcessorTypeNamesWide: GetProcessorTypeNamesWide::<Identity, Impl, OFFSET>,
GetTextMacroWide: GetTextMacroWide::<Identity, Impl, OFFSET>,
SetTextMacroWide: SetTextMacroWide::<Identity, Impl, OFFSET>,
EvaluateWide: EvaluateWide::<Identity, Impl, OFFSET>,
ExecuteWide: ExecuteWide::<Identity, Impl, OFFSET>,
ExecuteCommandFileWide: ExecuteCommandFileWide::<Identity, Impl, OFFSET>,
GetBreakpointByIndex2: GetBreakpointByIndex2::<Identity, Impl, OFFSET>,
GetBreakpointById2: GetBreakpointById2::<Identity, Impl, OFFSET>,
AddBreakpoint2: AddBreakpoint2::<Identity, Impl, OFFSET>,
RemoveBreakpoint2: RemoveBreakpoint2::<Identity, Impl, OFFSET>,
AddExtensionWide: AddExtensionWide::<Identity, Impl, OFFSET>,
GetExtensionByPathWide: GetExtensionByPathWide::<Identity, Impl, OFFSET>,
CallExtensionWide: CallExtensionWide::<Identity, Impl, OFFSET>,
GetExtensionFunctionWide: GetExtensionFunctionWide::<Identity, Impl, OFFSET>,
GetEventFilterTextWide: GetEventFilterTextWide::<Identity, Impl, OFFSET>,
GetEventFilterCommandWide: GetEventFilterCommandWide::<Identity, Impl, OFFSET>,
SetEventFilterCommandWide: SetEventFilterCommandWide::<Identity, Impl, OFFSET>,
GetSpecificFilterArgumentWide: GetSpecificFilterArgumentWide::<Identity, Impl, OFFSET>,
SetSpecificFilterArgumentWide: SetSpecificFilterArgumentWide::<Identity, Impl, OFFSET>,
GetExceptionFilterSecondCommandWide: GetExceptionFilterSecondCommandWide::<Identity, Impl, OFFSET>,
SetExceptionFilterSecondCommandWide: SetExceptionFilterSecondCommandWide::<Identity, Impl, OFFSET>,
GetLastEventInformationWide: GetLastEventInformationWide::<Identity, Impl, OFFSET>,
GetTextReplacementWide: GetTextReplacementWide::<Identity, Impl, OFFSET>,
SetTextReplacementWide: SetTextReplacementWide::<Identity, Impl, OFFSET>,
SetExpressionSyntaxByNameWide: SetExpressionSyntaxByNameWide::<Identity, Impl, OFFSET>,
GetExpressionSyntaxNamesWide: GetExpressionSyntaxNamesWide::<Identity, Impl, OFFSET>,
GetEventIndexDescriptionWide: GetEventIndexDescriptionWide::<Identity, Impl, OFFSET>,
GetLogFile2: GetLogFile2::<Identity, Impl, OFFSET>,
OpenLogFile2: OpenLogFile2::<Identity, Impl, OFFSET>,
GetLogFile2Wide: GetLogFile2Wide::<Identity, Impl, OFFSET>,
OpenLogFile2Wide: OpenLogFile2Wide::<Identity, Impl, OFFSET>,
GetSystemVersionValues: GetSystemVersionValues::<Identity, Impl, OFFSET>,
GetSystemVersionString: GetSystemVersionString::<Identity, Impl, OFFSET>,
GetSystemVersionStringWide: GetSystemVersionStringWide::<Identity, Impl, OFFSET>,
GetContextStackTrace: GetContextStackTrace::<Identity, Impl, OFFSET>,
OutputContextStackTrace: OutputContextStackTrace::<Identity, Impl, OFFSET>,
GetStoredEventInformation: GetStoredEventInformation::<Identity, Impl, OFFSET>,
GetManagedStatus: GetManagedStatus::<Identity, Impl, OFFSET>,
GetManagedStatusWide: GetManagedStatusWide::<Identity, Impl, OFFSET>,
ResetManagedStatus: ResetManagedStatus::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugControl4 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
pub trait IDebugControl5_Impl: Sized {
fn GetInterrupt(&self) -> ::windows::core::Result<()>;
fn SetInterrupt(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetInterruptTimeout(&self) -> ::windows::core::Result<u32>;
fn SetInterruptTimeout(&self, seconds: u32) -> ::windows::core::Result<()>;
fn GetLogFile(&self, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn OpenLogFile(&self, file: &::windows::core::PCSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn CloseLogFile(&self) -> ::windows::core::Result<()>;
fn GetLogMask(&self) -> ::windows::core::Result<u32>;
fn SetLogMask(&self, mask: u32) -> ::windows::core::Result<()>;
fn Input(&self, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::Result<()>;
fn ReturnInput(&self, buffer: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn Output(&self, mask: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputVaList(&self, mask: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn ControlledOutput(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn ControlledOutputVaList(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn OutputPrompt(&self, outputcontrol: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputPromptVaList(&self, outputcontrol: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn GetPromptText(&self, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()>;
fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows::core::Result<()>;
fn GetNotifyEventHandle(&self) -> ::windows::core::Result<u64>;
fn SetNotifyEventHandle(&self, handle: u64) -> ::windows::core::Result<()>;
fn Assemble(&self, offset: u64, instr: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn Disassemble(&self, offset: u64, flags: u32, buffer: ::windows::core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::Result<()>;
fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result<u64>;
fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows::core::Result<u64>;
fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows::core::Result<()>;
fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result<u64>;
fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows::core::Result<()>;
fn GetReturnOffset(&self) -> ::windows::core::Result<u64>;
fn OutputStackTrace(&self, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows::core::Result<()>;
fn GetActualProcessorType(&self) -> ::windows::core::Result<u32>;
fn GetExecutingProcessorType(&self) -> ::windows::core::Result<u32>;
fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows::core::Result<u32>;
fn GetPossibleExecutingProcessorTypes(&self, start: u32, count: u32, types: *mut u32) -> ::windows::core::Result<()>;
fn GetNumberProcessors(&self) -> ::windows::core::Result<u32>;
fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows::core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows::core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows::core::Result<()>;
fn GetPageSize(&self) -> ::windows::core::Result<u32>;
fn IsPointer64Bit(&self) -> ::windows::core::Result<()>;
fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::Result<()>;
fn GetNumberSupportedProcessorTypes(&self) -> ::windows::core::Result<u32>;
fn GetSupportedProcessorTypes(&self, start: u32, count: u32, types: *mut u32) -> ::windows::core::Result<()>;
fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetEffectiveProcessorType(&self) -> ::windows::core::Result<u32>;
fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows::core::Result<()>;
fn GetExecutionStatus(&self) -> ::windows::core::Result<u32>;
fn SetExecutionStatus(&self, status: u32) -> ::windows::core::Result<()>;
fn GetCodeLevel(&self) -> ::windows::core::Result<u32>;
fn SetCodeLevel(&self, level: u32) -> ::windows::core::Result<()>;
fn GetEngineOptions(&self) -> ::windows::core::Result<u32>;
fn AddEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::Result<()>;
fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()>;
fn GetTextMacro(&self, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextMacro(&self, slot: u32, r#macro: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetRadix(&self) -> ::windows::core::Result<u32>;
fn SetRadix(&self, radix: u32) -> ::windows::core::Result<()>;
fn Evaluate(&self, expression: &::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::Result<()>;
fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()>;
fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()>;
fn Execute(&self, outputcontrol: u32, command: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn ExecuteCommandFile(&self, outputcontrol: u32, commandfile: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetNumberBreakpoints(&self) -> ::windows::core::Result<u32>;
fn GetBreakpointByIndex(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn GetBreakpointById(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn GetBreakpointParameters(&self, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()>;
fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn RemoveBreakpoint(&self, bp: ::core::option::Option<&IDebugBreakpoint>) -> ::windows::core::Result<()>;
fn AddExtension(&self, path: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<u64>;
fn RemoveExtension(&self, handle: u64) -> ::windows::core::Result<()>;
fn GetExtensionByPath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn CallExtension(&self, handle: u64, function: &::windows::core::PCSTR, arguments: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetExtensionFunction(&self, handle: u64, funcname: &::windows::core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>;
fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::Result<()>;
fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::Result<()>;
fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::Result<()>;
fn GetEventFilterText(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn GetEventFilterCommand(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetEventFilterCommand(&self, index: u32, command: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetSpecificFilterParameters(&self, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn SetSpecificFilterParameters(&self, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn GetSpecificFilterArgument(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSpecificFilterArgument(&self, index: u32, argument: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetExceptionFilterParameters(&self, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn SetExceptionFilterParameters(&self, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetExceptionFilterSecondCommand(&self, index: u32, command: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()>;
fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentTimeDate(&self) -> ::windows::core::Result<u32>;
fn GetCurrentSystemUpTime(&self) -> ::windows::core::Result<u32>;
fn GetDumpFormatFlags(&self) -> ::windows::core::Result<u32>;
fn GetNumberTextReplacements(&self) -> ::windows::core::Result<u32>;
fn GetTextReplacement(&self, srctext: &::windows::core::PCSTR, index: u32, srcbuffer: ::windows::core::PSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows::core::PSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextReplacement(&self, srctext: &::windows::core::PCSTR, dsttext: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn RemoveTextReplacements(&self) -> ::windows::core::Result<()>;
fn OutputTextReplacements(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetAssemblyOptions(&self) -> ::windows::core::Result<u32>;
fn AddAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn GetExpressionSyntax(&self) -> ::windows::core::Result<u32>;
fn SetExpressionSyntax(&self, flags: u32) -> ::windows::core::Result<()>;
fn SetExpressionSyntaxByName(&self, abbrevname: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetNumberExpressionSyntaxes(&self) -> ::windows::core::Result<u32>;
fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetNumberEvents(&self) -> ::windows::core::Result<u32>;
fn GetEventIndexDescription(&self, index: u32, which: u32, buffer: &::windows::core::PCSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentEventIndex(&self) -> ::windows::core::Result<u32>;
fn SetNextEventIndex(&self, relation: u32, value: u32) -> ::windows::core::Result<u32>;
fn GetLogFileWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn OpenLogFileWide(&self, file: &::windows::core::PCWSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn InputWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::Result<()>;
fn ReturnInputWide(&self, buffer: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn OutputWide(&self, mask: u32, format: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn OutputVaListWide(&self, mask: u32, format: &::windows::core::PCWSTR, args: *const i8) -> ::windows::core::Result<()>;
fn ControlledOutputWide(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn ControlledOutputVaListWide(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCWSTR, args: *const i8) -> ::windows::core::Result<()>;
fn OutputPromptWide(&self, outputcontrol: u32, format: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn OutputPromptVaListWide(&self, outputcontrol: u32, format: &::windows::core::PCWSTR, args: *const i8) -> ::windows::core::Result<()>;
fn GetPromptTextWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn AssembleWide(&self, offset: u64, instr: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn DisassembleWide(&self, offset: u64, flags: u32, buffer: ::windows::core::PWSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::Result<()>;
fn GetProcessorTypeNamesWide(&self, r#type: u32, fullnamebuffer: ::windows::core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetTextMacroWide(&self, slot: u32, buffer: ::windows::core::PWSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextMacroWide(&self, slot: u32, r#macro: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn EvaluateWide(&self, expression: &::windows::core::PCWSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::Result<()>;
fn ExecuteWide(&self, outputcontrol: u32, command: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<()>;
fn ExecuteCommandFileWide(&self, outputcontrol: u32, commandfile: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetBreakpointByIndex2(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint2>;
fn GetBreakpointById2(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint2>;
fn AddBreakpoint2(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint2>;
fn RemoveBreakpoint2(&self, bp: ::core::option::Option<&IDebugBreakpoint2>) -> ::windows::core::Result<()>;
fn AddExtensionWide(&self, path: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<u64>;
fn GetExtensionByPathWide(&self, path: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn CallExtensionWide(&self, handle: u64, function: &::windows::core::PCWSTR, arguments: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetExtensionFunctionWide(&self, handle: u64, funcname: &::windows::core::PCWSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>;
fn GetEventFilterTextWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn GetEventFilterCommandWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetEventFilterCommandWide(&self, index: u32, command: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSpecificFilterArgumentWide(&self, index: u32, argument: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetExceptionFilterSecondCommandWide(&self, index: u32, command: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetLastEventInformationWide(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PWSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::Result<()>;
fn GetTextReplacementWide(&self, srctext: &::windows::core::PCWSTR, index: u32, srcbuffer: ::windows::core::PWSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows::core::PWSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextReplacementWide(&self, srctext: &::windows::core::PCWSTR, dsttext: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn SetExpressionSyntaxByNameWide(&self, abbrevname: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: ::windows::core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetEventIndexDescriptionWide(&self, index: u32, which: u32, buffer: &::windows::core::PCWSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::Result<()>;
fn GetLogFile2(&self, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::Result<()>;
fn OpenLogFile2(&self, file: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetLogFile2Wide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::Result<()>;
fn OpenLogFile2Wide(&self, file: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetSystemVersionValues(&self, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: *mut u32, kdminor: *mut u32) -> ::windows::core::Result<()>;
fn GetSystemVersionString(&self, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSystemVersionStringWide(&self, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetContextStackTrace(&self, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows::core::Result<()>;
fn OutputContextStackTrace(&self, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetStoredEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, context: *mut ::core::ffi::c_void, contextsize: u32, contextused: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32) -> ::windows::core::Result<()>;
fn GetManagedStatus(&self, flags: *mut u32, whichstring: u32, string: ::windows::core::PSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::Result<()>;
fn GetManagedStatusWide(&self, flags: *mut u32, whichstring: u32, string: ::windows::core::PWSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::Result<()>;
fn ResetManagedStatus(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetStackTraceEx(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME_EX, framessize: u32, framesfilled: *mut u32) -> ::windows::core::Result<()>;
fn OutputStackTraceEx(&self, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetContextStackTraceEx(&self, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME_EX, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows::core::Result<()>;
fn OutputContextStackTraceEx(&self, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetBreakpointByGuid(&self, guid: *const ::windows::core::GUID) -> ::windows::core::Result<IDebugBreakpoint3>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::windows::core::RuntimeName for IDebugControl5 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl IDebugControl5_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>() -> IDebugControl5_Vtbl {
unsafe extern "system" fn GetInterrupt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_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.GetInterrupt().into()
}
unsafe extern "system" fn SetInterrupt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_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.SetInterrupt(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetInterruptTimeout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetInterruptTimeout() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(seconds, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetInterruptTimeout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetInterruptTimeout(::core::mem::transmute_copy(&seconds)).into()
}
unsafe extern "system" fn GetLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::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.GetLogFile(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn OpenLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, append: super::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.OpenLogFile(::core::mem::transmute(&file), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn CloseLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_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.CloseLogFile().into()
}
unsafe extern "system" fn GetLogMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLogMask() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetLogMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetLogMask(::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn Input<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Input(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&inputsize)).into()
}
unsafe extern "system" fn ReturnInput<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReturnInput(::core::mem::transmute(&buffer)).into()
}
unsafe extern "system" fn Output<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Output(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputVaList(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn ControlledOutput<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutput(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn ControlledOutputVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutputVaList(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn OutputPrompt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPrompt(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputPromptVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPromptVaList(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn GetPromptText<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPromptText(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn OutputCurrentState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputCurrentState(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn OutputVersionInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputVersionInformation(::core::mem::transmute_copy(&outputcontrol)).into()
}
unsafe extern "system" fn GetNotifyEventHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNotifyEventHandle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetNotifyEventHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNotifyEventHandle(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn Assemble<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCSTR, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Assemble(::core::mem::transmute_copy(&offset), ::core::mem::transmute(&instr)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(endoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Disassemble<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows::core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Disassemble(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&disassemblysize), ::core::mem::transmute_copy(&endoffset)).into()
}
unsafe extern "system" fn GetDisassembleEffectiveOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDisassembleEffectiveOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputDisassembly<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.OutputDisassembly(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(endoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputDisassemblyLines<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputDisassemblyLines(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&previouslines), ::core::mem::transmute_copy(&totallines), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&offsetline), ::core::mem::transmute_copy(&startoffset), ::core::mem::transmute_copy(&endoffset), ::core::mem::transmute_copy(&lineoffsets)).into()
}
unsafe extern "system" fn GetNearInstruction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNearInstruction(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&delta)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(nearoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStackTrace(::core::mem::transmute_copy(&frameoffset), ::core::mem::transmute_copy(&stackoffset), ::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framesfilled)).into()
}
unsafe extern "system" fn GetReturnOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetReturnOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputStackTrace(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetDebuggeeType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDebuggeeType(::core::mem::transmute_copy(&class), ::core::mem::transmute_copy(&qualifier)).into()
}
unsafe extern "system" fn GetActualProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetActualProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetExecutingProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExecutingProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberPossibleExecutingProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberPossibleExecutingProcessorTypes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetPossibleExecutingProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPossibleExecutingProcessorTypes(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&types)).into()
}
unsafe extern "system" fn GetNumberProcessors<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberProcessors() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSystemVersion<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows::core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows::core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemVersion(::core::mem::transmute_copy(&platformid), ::core::mem::transmute_copy(&major), ::core::mem::transmute_copy(&minor), ::core::mem::transmute_copy(&servicepackstring), ::core::mem::transmute_copy(&servicepackstringsize), ::core::mem::transmute_copy(&servicepackstringused), ::core::mem::transmute_copy(&servicepacknumber), ::core::mem::transmute_copy(&buildstring), ::core::mem::transmute_copy(&buildstringsize), ::core::mem::transmute_copy(&buildstringused))
.into()
}
unsafe extern "system" fn GetPageSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPageSize() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(size, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsPointer64Bit<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_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.IsPointer64Bit().into()
}
unsafe extern "system" fn ReadBugCheckData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadBugCheckData(::core::mem::transmute_copy(&code), ::core::mem::transmute_copy(&arg1), ::core::mem::transmute_copy(&arg2), ::core::mem::transmute_copy(&arg3), ::core::mem::transmute_copy(&arg4)).into()
}
unsafe extern "system" fn GetNumberSupportedProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberSupportedProcessorTypes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSupportedProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSupportedProcessorTypes(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&types)).into()
}
unsafe extern "system" fn GetProcessorTypeNames<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetProcessorTypeNames(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&fullnamebuffer), ::core::mem::transmute_copy(&fullnamebuffersize), ::core::mem::transmute_copy(&fullnamesize), ::core::mem::transmute_copy(&abbrevnamebuffer), ::core::mem::transmute_copy(&abbrevnamebuffersize), ::core::mem::transmute_copy(&abbrevnamesize)).into()
}
unsafe extern "system" fn GetEffectiveProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEffectiveProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEffectiveProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEffectiveProcessorType(::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn GetExecutionStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExecutionStatus() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(status, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetExecutionStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExecutionStatus(::core::mem::transmute_copy(&status)).into()
}
unsafe extern "system" fn GetCodeLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCodeLevel() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(level, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCodeLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, level: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCodeLevel(::core::mem::transmute_copy(&level)).into()
}
unsafe extern "system" fn GetEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEngineOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn GetSystemErrorControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemErrorControl(::core::mem::transmute_copy(&outputlevel), ::core::mem::transmute_copy(&breaklevel)).into()
}
unsafe extern "system" fn SetSystemErrorControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSystemErrorControl(::core::mem::transmute_copy(&outputlevel), ::core::mem::transmute_copy(&breaklevel)).into()
}
unsafe extern "system" fn GetTextMacro<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextMacro(::core::mem::transmute_copy(&slot), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&macrosize)).into()
}
unsafe extern "system" fn SetTextMacro<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextMacro(::core::mem::transmute_copy(&slot), ::core::mem::transmute(&r#macro)).into()
}
unsafe extern "system" fn GetRadix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRadix() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(radix, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetRadix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRadix(::core::mem::transmute_copy(&radix)).into()
}
unsafe extern "system" fn Evaluate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Evaluate(::core::mem::transmute(&expression), ::core::mem::transmute_copy(&desiredtype), ::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&remainderindex)).into()
}
unsafe extern "system" fn CoerceValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CoerceValue(::core::mem::transmute_copy(&r#in), ::core::mem::transmute_copy(&outtype), ::core::mem::transmute_copy(&out)).into()
}
unsafe extern "system" fn CoerceValues<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CoerceValues(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&r#in), ::core::mem::transmute_copy(&outtypes), ::core::mem::transmute_copy(&out)).into()
}
unsafe extern "system" fn Execute<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Execute(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&command), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn ExecuteCommandFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExecuteCommandFile(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&commandfile), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetNumberBreakpoints<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberBreakpoints() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, bp: *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.GetBreakpointByIndex(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointById<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32, bp: *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.GetBreakpointById(::core::mem::transmute_copy(&id)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBreakpointParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn AddBreakpoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *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.AddBreakpoint(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&desiredid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveBreakpoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveBreakpoint(::windows::core::from_raw_borrowed(&bp)).into()
}
unsafe extern "system" fn AddExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AddExtension(::core::mem::transmute(&path), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveExtension(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn GetExtensionByPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExtensionByPath(::core::mem::transmute(&path)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CallExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCSTR, arguments: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CallExtension(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&function), ::core::mem::transmute(&arguments)).into()
}
unsafe extern "system" fn GetExtensionFunction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExtensionFunction(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&funcname), ::core::mem::transmute_copy(&function)).into()
}
unsafe extern "system" fn GetWindbgExtensionApis32<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetWindbgExtensionApis32(::core::mem::transmute_copy(&api)).into()
}
unsafe extern "system" fn GetWindbgExtensionApis64<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetWindbgExtensionApis64(::core::mem::transmute_copy(&api)).into()
}
unsafe extern "system" fn GetNumberEventFilters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNumberEventFilters(::core::mem::transmute_copy(&specificevents), ::core::mem::transmute_copy(&specificexceptions), ::core::mem::transmute_copy(&arbitraryexceptions)).into()
}
unsafe extern "system" fn GetEventFilterText<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterText(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn GetEventFilterCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetEventFilterCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventFilterCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn GetSpecificFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSpecificFilterParameters(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn SetSpecificFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSpecificFilterParameters(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetSpecificFilterArgument<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSpecificFilterArgument(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&argumentsize)).into()
}
unsafe extern "system" fn SetSpecificFilterArgument<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSpecificFilterArgument(::core::mem::transmute_copy(&index), ::core::mem::transmute(&argument)).into()
}
unsafe extern "system" fn GetExceptionFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExceptionFilterParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&codes), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn SetExceptionFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExceptionFilterParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetExceptionFilterSecondCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExceptionFilterSecondCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetExceptionFilterSecondCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExceptionFilterSecondCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn WaitForEvent<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WaitForEvent(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn GetLastEventInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLastEventInformation(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&extrainformation), ::core::mem::transmute_copy(&extrainformationsize), ::core::mem::transmute_copy(&extrainformationused), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&descriptionused)).into()
}
unsafe extern "system" fn GetCurrentTimeDate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timedate: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentTimeDate() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(timedate, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentSystemUpTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentSystemUpTime() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(uptime, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDumpFormatFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, formatflags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDumpFormatFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(formatflags, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberTextReplacements<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, numrepl: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberTextReplacements() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(numrepl, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTextReplacement<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCSTR, index: u32, srcbuffer: ::windows::core::PSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows::core::PSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextReplacement(::core::mem::transmute(&srctext), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&srcbuffer), ::core::mem::transmute_copy(&srcbuffersize), ::core::mem::transmute_copy(&srcsize), ::core::mem::transmute_copy(&dstbuffer), ::core::mem::transmute_copy(&dstbuffersize), ::core::mem::transmute_copy(&dstsize)).into()
}
unsafe extern "system" fn SetTextReplacement<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCSTR, dsttext: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextReplacement(::core::mem::transmute(&srctext), ::core::mem::transmute(&dsttext)).into()
}
unsafe extern "system" fn RemoveTextReplacements<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_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.RemoveTextReplacements().into()
}
unsafe extern "system" fn OutputTextReplacements<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputTextReplacements(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetAssemblyOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAssemblyOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddAssemblyOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddAssemblyOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveAssemblyOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveAssemblyOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetAssemblyOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAssemblyOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn GetExpressionSyntax<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExpressionSyntax() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(flags, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetExpressionSyntax<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_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.SetExpressionSyntax(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn SetExpressionSyntaxByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, abbrevname: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExpressionSyntaxByName(::core::mem::transmute(&abbrevname)).into()
}
unsafe extern "system" fn GetNumberExpressionSyntaxes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberExpressionSyntaxes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetExpressionSyntaxNames<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExpressionSyntaxNames(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&fullnamebuffer), ::core::mem::transmute_copy(&fullnamebuffersize), ::core::mem::transmute_copy(&fullnamesize), ::core::mem::transmute_copy(&abbrevnamebuffer), ::core::mem::transmute_copy(&abbrevnamebuffersize), ::core::mem::transmute_copy(&abbrevnamesize)).into()
}
unsafe extern "system" fn GetNumberEvents<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, events: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberEvents() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(events, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetEventIndexDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows::core::PCSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventIndexDescription(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&which), ::core::mem::transmute(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&descsize)).into()
}
unsafe extern "system" fn GetCurrentEventIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentEventIndex() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(index, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetNextEventIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, relation: u32, value: u32, nextindex: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SetNextEventIndex(::core::mem::transmute_copy(&relation), ::core::mem::transmute_copy(&value)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(nextindex, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetLogFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, append: *mut super::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.GetLogFileWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn OpenLogFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, append: super::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.OpenLogFileWide(::core::mem::transmute(&file), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn InputWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InputWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&inputsize)).into()
}
unsafe extern "system" fn ReturnInputWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReturnInputWide(::core::mem::transmute(&buffer)).into()
}
unsafe extern "system" fn OutputWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputWide(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputVaListWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputVaListWide(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn ControlledOutputWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutputWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn ControlledOutputVaListWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutputVaListWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn OutputPromptWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPromptWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputPromptVaListWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPromptVaListWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn GetPromptTextWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPromptTextWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn AssembleWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCWSTR, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AssembleWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute(&instr)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(endoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DisassembleWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows::core::PWSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DisassembleWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&disassemblysize), ::core::mem::transmute_copy(&endoffset)).into()
}
unsafe extern "system" fn GetProcessorTypeNamesWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows::core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetProcessorTypeNamesWide(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&fullnamebuffer), ::core::mem::transmute_copy(&fullnamebuffersize), ::core::mem::transmute_copy(&fullnamesize), ::core::mem::transmute_copy(&abbrevnamebuffer), ::core::mem::transmute_copy(&abbrevnamebuffersize), ::core::mem::transmute_copy(&abbrevnamesize)).into()
}
unsafe extern "system" fn GetTextMacroWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PWSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextMacroWide(::core::mem::transmute_copy(&slot), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&macrosize)).into()
}
unsafe extern "system" fn SetTextMacroWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextMacroWide(::core::mem::transmute_copy(&slot), ::core::mem::transmute(&r#macro)).into()
}
unsafe extern "system" fn EvaluateWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCWSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EvaluateWide(::core::mem::transmute(&expression), ::core::mem::transmute_copy(&desiredtype), ::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&remainderindex)).into()
}
unsafe extern "system" fn ExecuteWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExecuteWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&command), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn ExecuteCommandFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExecuteCommandFileWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&commandfile), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetBreakpointByIndex2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, bp: *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.GetBreakpointByIndex2(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointById2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32, bp: *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.GetBreakpointById2(::core::mem::transmute_copy(&id)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddBreakpoint2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *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.AddBreakpoint2(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&desiredid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveBreakpoint2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveBreakpoint2(::windows::core::from_raw_borrowed(&bp)).into()
}
unsafe extern "system" fn AddExtensionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AddExtensionWide(::core::mem::transmute(&path), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetExtensionByPathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExtensionByPathWide(::core::mem::transmute(&path)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CallExtensionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCWSTR, arguments: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CallExtensionWide(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&function), ::core::mem::transmute(&arguments)).into()
}
unsafe extern "system" fn GetExtensionFunctionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCWSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExtensionFunctionWide(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&funcname), ::core::mem::transmute_copy(&function)).into()
}
unsafe extern "system" fn GetEventFilterTextWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterTextWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn GetEventFilterCommandWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterCommandWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetEventFilterCommandWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventFilterCommandWide(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn GetSpecificFilterArgumentWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSpecificFilterArgumentWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&argumentsize)).into()
}
unsafe extern "system" fn SetSpecificFilterArgumentWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSpecificFilterArgumentWide(::core::mem::transmute_copy(&index), ::core::mem::transmute(&argument)).into()
}
unsafe extern "system" fn GetExceptionFilterSecondCommandWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExceptionFilterSecondCommandWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetExceptionFilterSecondCommandWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExceptionFilterSecondCommandWide(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn GetLastEventInformationWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PWSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLastEventInformationWide(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&extrainformation), ::core::mem::transmute_copy(&extrainformationsize), ::core::mem::transmute_copy(&extrainformationused), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&descriptionused)).into()
}
unsafe extern "system" fn GetTextReplacementWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCWSTR, index: u32, srcbuffer: ::windows::core::PWSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows::core::PWSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextReplacementWide(::core::mem::transmute(&srctext), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&srcbuffer), ::core::mem::transmute_copy(&srcbuffersize), ::core::mem::transmute_copy(&srcsize), ::core::mem::transmute_copy(&dstbuffer), ::core::mem::transmute_copy(&dstbuffersize), ::core::mem::transmute_copy(&dstsize)).into()
}
unsafe extern "system" fn SetTextReplacementWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCWSTR, dsttext: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextReplacementWide(::core::mem::transmute(&srctext), ::core::mem::transmute(&dsttext)).into()
}
unsafe extern "system" fn SetExpressionSyntaxByNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, abbrevname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExpressionSyntaxByNameWide(::core::mem::transmute(&abbrevname)).into()
}
unsafe extern "system" fn GetExpressionSyntaxNamesWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, fullnamebuffer: ::windows::core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExpressionSyntaxNamesWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&fullnamebuffer), ::core::mem::transmute_copy(&fullnamebuffersize), ::core::mem::transmute_copy(&fullnamesize), ::core::mem::transmute_copy(&abbrevnamebuffer), ::core::mem::transmute_copy(&abbrevnamebuffersize), ::core::mem::transmute_copy(&abbrevnamesize)).into()
}
unsafe extern "system" fn GetEventIndexDescriptionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows::core::PCWSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventIndexDescriptionWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&which), ::core::mem::transmute(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&descsize)).into()
}
unsafe extern "system" fn GetLogFile2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLogFile2(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn OpenLogFile2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenLogFile2(::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetLogFile2Wide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLogFile2Wide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn OpenLogFile2Wide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenLogFile2Wide(::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetSystemVersionValues<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: *mut u32, kdminor: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemVersionValues(::core::mem::transmute_copy(&platformid), ::core::mem::transmute_copy(&win32major), ::core::mem::transmute_copy(&win32minor), ::core::mem::transmute_copy(&kdmajor), ::core::mem::transmute_copy(&kdminor)).into()
}
unsafe extern "system" fn GetSystemVersionString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemVersionString(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetSystemVersionStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemVersionStringWide(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetContextStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetContextStackTrace(::core::mem::transmute_copy(&startcontext), ::core::mem::transmute_copy(&startcontextsize), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framecontexts), ::core::mem::transmute_copy(&framecontextssize), ::core::mem::transmute_copy(&framecontextsentrysize), ::core::mem::transmute_copy(&framesfilled)).into()
}
unsafe extern "system" fn OutputContextStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputContextStackTrace(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framecontexts), ::core::mem::transmute_copy(&framecontextssize), ::core::mem::transmute_copy(&framecontextsentrysize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetStoredEventInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, context: *mut ::core::ffi::c_void, contextsize: u32, contextused: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStoredEventInformation(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize), ::core::mem::transmute_copy(&contextused), ::core::mem::transmute_copy(&extrainformation), ::core::mem::transmute_copy(&extrainformationsize), ::core::mem::transmute_copy(&extrainformationused)).into()
}
unsafe extern "system" fn GetManagedStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows::core::PSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetManagedStatus(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&whichstring), ::core::mem::transmute_copy(&string), ::core::mem::transmute_copy(&stringsize), ::core::mem::transmute_copy(&stringneeded)).into()
}
unsafe extern "system" fn GetManagedStatusWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows::core::PWSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetManagedStatusWide(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&whichstring), ::core::mem::transmute_copy(&string), ::core::mem::transmute_copy(&stringsize), ::core::mem::transmute_copy(&stringneeded)).into()
}
unsafe extern "system" fn ResetManagedStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_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.ResetManagedStatus(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetStackTraceEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME_EX, framessize: u32, framesfilled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStackTraceEx(::core::mem::transmute_copy(&frameoffset), ::core::mem::transmute_copy(&stackoffset), ::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framesfilled)).into()
}
unsafe extern "system" fn OutputStackTraceEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputStackTraceEx(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetContextStackTraceEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME_EX, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetContextStackTraceEx(::core::mem::transmute_copy(&startcontext), ::core::mem::transmute_copy(&startcontextsize), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framecontexts), ::core::mem::transmute_copy(&framecontextssize), ::core::mem::transmute_copy(&framecontextsentrysize), ::core::mem::transmute_copy(&framesfilled)).into()
}
unsafe extern "system" fn OutputContextStackTraceEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputContextStackTraceEx(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framecontexts), ::core::mem::transmute_copy(&framecontextssize), ::core::mem::transmute_copy(&framecontextsentrysize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetBreakpointByGuid<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guid: *const ::windows::core::GUID, bp: *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.GetBreakpointByGuid(::core::mem::transmute_copy(&guid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetInterrupt: GetInterrupt::<Identity, Impl, OFFSET>,
SetInterrupt: SetInterrupt::<Identity, Impl, OFFSET>,
GetInterruptTimeout: GetInterruptTimeout::<Identity, Impl, OFFSET>,
SetInterruptTimeout: SetInterruptTimeout::<Identity, Impl, OFFSET>,
GetLogFile: GetLogFile::<Identity, Impl, OFFSET>,
OpenLogFile: OpenLogFile::<Identity, Impl, OFFSET>,
CloseLogFile: CloseLogFile::<Identity, Impl, OFFSET>,
GetLogMask: GetLogMask::<Identity, Impl, OFFSET>,
SetLogMask: SetLogMask::<Identity, Impl, OFFSET>,
Input: Input::<Identity, Impl, OFFSET>,
ReturnInput: ReturnInput::<Identity, Impl, OFFSET>,
Output: Output::<Identity, Impl, OFFSET>,
OutputVaList: OutputVaList::<Identity, Impl, OFFSET>,
ControlledOutput: ControlledOutput::<Identity, Impl, OFFSET>,
ControlledOutputVaList: ControlledOutputVaList::<Identity, Impl, OFFSET>,
OutputPrompt: OutputPrompt::<Identity, Impl, OFFSET>,
OutputPromptVaList: OutputPromptVaList::<Identity, Impl, OFFSET>,
GetPromptText: GetPromptText::<Identity, Impl, OFFSET>,
OutputCurrentState: OutputCurrentState::<Identity, Impl, OFFSET>,
OutputVersionInformation: OutputVersionInformation::<Identity, Impl, OFFSET>,
GetNotifyEventHandle: GetNotifyEventHandle::<Identity, Impl, OFFSET>,
SetNotifyEventHandle: SetNotifyEventHandle::<Identity, Impl, OFFSET>,
Assemble: Assemble::<Identity, Impl, OFFSET>,
Disassemble: Disassemble::<Identity, Impl, OFFSET>,
GetDisassembleEffectiveOffset: GetDisassembleEffectiveOffset::<Identity, Impl, OFFSET>,
OutputDisassembly: OutputDisassembly::<Identity, Impl, OFFSET>,
OutputDisassemblyLines: OutputDisassemblyLines::<Identity, Impl, OFFSET>,
GetNearInstruction: GetNearInstruction::<Identity, Impl, OFFSET>,
GetStackTrace: GetStackTrace::<Identity, Impl, OFFSET>,
GetReturnOffset: GetReturnOffset::<Identity, Impl, OFFSET>,
OutputStackTrace: OutputStackTrace::<Identity, Impl, OFFSET>,
GetDebuggeeType: GetDebuggeeType::<Identity, Impl, OFFSET>,
GetActualProcessorType: GetActualProcessorType::<Identity, Impl, OFFSET>,
GetExecutingProcessorType: GetExecutingProcessorType::<Identity, Impl, OFFSET>,
GetNumberPossibleExecutingProcessorTypes: GetNumberPossibleExecutingProcessorTypes::<Identity, Impl, OFFSET>,
GetPossibleExecutingProcessorTypes: GetPossibleExecutingProcessorTypes::<Identity, Impl, OFFSET>,
GetNumberProcessors: GetNumberProcessors::<Identity, Impl, OFFSET>,
GetSystemVersion: GetSystemVersion::<Identity, Impl, OFFSET>,
GetPageSize: GetPageSize::<Identity, Impl, OFFSET>,
IsPointer64Bit: IsPointer64Bit::<Identity, Impl, OFFSET>,
ReadBugCheckData: ReadBugCheckData::<Identity, Impl, OFFSET>,
GetNumberSupportedProcessorTypes: GetNumberSupportedProcessorTypes::<Identity, Impl, OFFSET>,
GetSupportedProcessorTypes: GetSupportedProcessorTypes::<Identity, Impl, OFFSET>,
GetProcessorTypeNames: GetProcessorTypeNames::<Identity, Impl, OFFSET>,
GetEffectiveProcessorType: GetEffectiveProcessorType::<Identity, Impl, OFFSET>,
SetEffectiveProcessorType: SetEffectiveProcessorType::<Identity, Impl, OFFSET>,
GetExecutionStatus: GetExecutionStatus::<Identity, Impl, OFFSET>,
SetExecutionStatus: SetExecutionStatus::<Identity, Impl, OFFSET>,
GetCodeLevel: GetCodeLevel::<Identity, Impl, OFFSET>,
SetCodeLevel: SetCodeLevel::<Identity, Impl, OFFSET>,
GetEngineOptions: GetEngineOptions::<Identity, Impl, OFFSET>,
AddEngineOptions: AddEngineOptions::<Identity, Impl, OFFSET>,
RemoveEngineOptions: RemoveEngineOptions::<Identity, Impl, OFFSET>,
SetEngineOptions: SetEngineOptions::<Identity, Impl, OFFSET>,
GetSystemErrorControl: GetSystemErrorControl::<Identity, Impl, OFFSET>,
SetSystemErrorControl: SetSystemErrorControl::<Identity, Impl, OFFSET>,
GetTextMacro: GetTextMacro::<Identity, Impl, OFFSET>,
SetTextMacro: SetTextMacro::<Identity, Impl, OFFSET>,
GetRadix: GetRadix::<Identity, Impl, OFFSET>,
SetRadix: SetRadix::<Identity, Impl, OFFSET>,
Evaluate: Evaluate::<Identity, Impl, OFFSET>,
CoerceValue: CoerceValue::<Identity, Impl, OFFSET>,
CoerceValues: CoerceValues::<Identity, Impl, OFFSET>,
Execute: Execute::<Identity, Impl, OFFSET>,
ExecuteCommandFile: ExecuteCommandFile::<Identity, Impl, OFFSET>,
GetNumberBreakpoints: GetNumberBreakpoints::<Identity, Impl, OFFSET>,
GetBreakpointByIndex: GetBreakpointByIndex::<Identity, Impl, OFFSET>,
GetBreakpointById: GetBreakpointById::<Identity, Impl, OFFSET>,
GetBreakpointParameters: GetBreakpointParameters::<Identity, Impl, OFFSET>,
AddBreakpoint: AddBreakpoint::<Identity, Impl, OFFSET>,
RemoveBreakpoint: RemoveBreakpoint::<Identity, Impl, OFFSET>,
AddExtension: AddExtension::<Identity, Impl, OFFSET>,
RemoveExtension: RemoveExtension::<Identity, Impl, OFFSET>,
GetExtensionByPath: GetExtensionByPath::<Identity, Impl, OFFSET>,
CallExtension: CallExtension::<Identity, Impl, OFFSET>,
GetExtensionFunction: GetExtensionFunction::<Identity, Impl, OFFSET>,
GetWindbgExtensionApis32: GetWindbgExtensionApis32::<Identity, Impl, OFFSET>,
GetWindbgExtensionApis64: GetWindbgExtensionApis64::<Identity, Impl, OFFSET>,
GetNumberEventFilters: GetNumberEventFilters::<Identity, Impl, OFFSET>,
GetEventFilterText: GetEventFilterText::<Identity, Impl, OFFSET>,
GetEventFilterCommand: GetEventFilterCommand::<Identity, Impl, OFFSET>,
SetEventFilterCommand: SetEventFilterCommand::<Identity, Impl, OFFSET>,
GetSpecificFilterParameters: GetSpecificFilterParameters::<Identity, Impl, OFFSET>,
SetSpecificFilterParameters: SetSpecificFilterParameters::<Identity, Impl, OFFSET>,
GetSpecificFilterArgument: GetSpecificFilterArgument::<Identity, Impl, OFFSET>,
SetSpecificFilterArgument: SetSpecificFilterArgument::<Identity, Impl, OFFSET>,
GetExceptionFilterParameters: GetExceptionFilterParameters::<Identity, Impl, OFFSET>,
SetExceptionFilterParameters: SetExceptionFilterParameters::<Identity, Impl, OFFSET>,
GetExceptionFilterSecondCommand: GetExceptionFilterSecondCommand::<Identity, Impl, OFFSET>,
SetExceptionFilterSecondCommand: SetExceptionFilterSecondCommand::<Identity, Impl, OFFSET>,
WaitForEvent: WaitForEvent::<Identity, Impl, OFFSET>,
GetLastEventInformation: GetLastEventInformation::<Identity, Impl, OFFSET>,
GetCurrentTimeDate: GetCurrentTimeDate::<Identity, Impl, OFFSET>,
GetCurrentSystemUpTime: GetCurrentSystemUpTime::<Identity, Impl, OFFSET>,
GetDumpFormatFlags: GetDumpFormatFlags::<Identity, Impl, OFFSET>,
GetNumberTextReplacements: GetNumberTextReplacements::<Identity, Impl, OFFSET>,
GetTextReplacement: GetTextReplacement::<Identity, Impl, OFFSET>,
SetTextReplacement: SetTextReplacement::<Identity, Impl, OFFSET>,
RemoveTextReplacements: RemoveTextReplacements::<Identity, Impl, OFFSET>,
OutputTextReplacements: OutputTextReplacements::<Identity, Impl, OFFSET>,
GetAssemblyOptions: GetAssemblyOptions::<Identity, Impl, OFFSET>,
AddAssemblyOptions: AddAssemblyOptions::<Identity, Impl, OFFSET>,
RemoveAssemblyOptions: RemoveAssemblyOptions::<Identity, Impl, OFFSET>,
SetAssemblyOptions: SetAssemblyOptions::<Identity, Impl, OFFSET>,
GetExpressionSyntax: GetExpressionSyntax::<Identity, Impl, OFFSET>,
SetExpressionSyntax: SetExpressionSyntax::<Identity, Impl, OFFSET>,
SetExpressionSyntaxByName: SetExpressionSyntaxByName::<Identity, Impl, OFFSET>,
GetNumberExpressionSyntaxes: GetNumberExpressionSyntaxes::<Identity, Impl, OFFSET>,
GetExpressionSyntaxNames: GetExpressionSyntaxNames::<Identity, Impl, OFFSET>,
GetNumberEvents: GetNumberEvents::<Identity, Impl, OFFSET>,
GetEventIndexDescription: GetEventIndexDescription::<Identity, Impl, OFFSET>,
GetCurrentEventIndex: GetCurrentEventIndex::<Identity, Impl, OFFSET>,
SetNextEventIndex: SetNextEventIndex::<Identity, Impl, OFFSET>,
GetLogFileWide: GetLogFileWide::<Identity, Impl, OFFSET>,
OpenLogFileWide: OpenLogFileWide::<Identity, Impl, OFFSET>,
InputWide: InputWide::<Identity, Impl, OFFSET>,
ReturnInputWide: ReturnInputWide::<Identity, Impl, OFFSET>,
OutputWide: OutputWide::<Identity, Impl, OFFSET>,
OutputVaListWide: OutputVaListWide::<Identity, Impl, OFFSET>,
ControlledOutputWide: ControlledOutputWide::<Identity, Impl, OFFSET>,
ControlledOutputVaListWide: ControlledOutputVaListWide::<Identity, Impl, OFFSET>,
OutputPromptWide: OutputPromptWide::<Identity, Impl, OFFSET>,
OutputPromptVaListWide: OutputPromptVaListWide::<Identity, Impl, OFFSET>,
GetPromptTextWide: GetPromptTextWide::<Identity, Impl, OFFSET>,
AssembleWide: AssembleWide::<Identity, Impl, OFFSET>,
DisassembleWide: DisassembleWide::<Identity, Impl, OFFSET>,
GetProcessorTypeNamesWide: GetProcessorTypeNamesWide::<Identity, Impl, OFFSET>,
GetTextMacroWide: GetTextMacroWide::<Identity, Impl, OFFSET>,
SetTextMacroWide: SetTextMacroWide::<Identity, Impl, OFFSET>,
EvaluateWide: EvaluateWide::<Identity, Impl, OFFSET>,
ExecuteWide: ExecuteWide::<Identity, Impl, OFFSET>,
ExecuteCommandFileWide: ExecuteCommandFileWide::<Identity, Impl, OFFSET>,
GetBreakpointByIndex2: GetBreakpointByIndex2::<Identity, Impl, OFFSET>,
GetBreakpointById2: GetBreakpointById2::<Identity, Impl, OFFSET>,
AddBreakpoint2: AddBreakpoint2::<Identity, Impl, OFFSET>,
RemoveBreakpoint2: RemoveBreakpoint2::<Identity, Impl, OFFSET>,
AddExtensionWide: AddExtensionWide::<Identity, Impl, OFFSET>,
GetExtensionByPathWide: GetExtensionByPathWide::<Identity, Impl, OFFSET>,
CallExtensionWide: CallExtensionWide::<Identity, Impl, OFFSET>,
GetExtensionFunctionWide: GetExtensionFunctionWide::<Identity, Impl, OFFSET>,
GetEventFilterTextWide: GetEventFilterTextWide::<Identity, Impl, OFFSET>,
GetEventFilterCommandWide: GetEventFilterCommandWide::<Identity, Impl, OFFSET>,
SetEventFilterCommandWide: SetEventFilterCommandWide::<Identity, Impl, OFFSET>,
GetSpecificFilterArgumentWide: GetSpecificFilterArgumentWide::<Identity, Impl, OFFSET>,
SetSpecificFilterArgumentWide: SetSpecificFilterArgumentWide::<Identity, Impl, OFFSET>,
GetExceptionFilterSecondCommandWide: GetExceptionFilterSecondCommandWide::<Identity, Impl, OFFSET>,
SetExceptionFilterSecondCommandWide: SetExceptionFilterSecondCommandWide::<Identity, Impl, OFFSET>,
GetLastEventInformationWide: GetLastEventInformationWide::<Identity, Impl, OFFSET>,
GetTextReplacementWide: GetTextReplacementWide::<Identity, Impl, OFFSET>,
SetTextReplacementWide: SetTextReplacementWide::<Identity, Impl, OFFSET>,
SetExpressionSyntaxByNameWide: SetExpressionSyntaxByNameWide::<Identity, Impl, OFFSET>,
GetExpressionSyntaxNamesWide: GetExpressionSyntaxNamesWide::<Identity, Impl, OFFSET>,
GetEventIndexDescriptionWide: GetEventIndexDescriptionWide::<Identity, Impl, OFFSET>,
GetLogFile2: GetLogFile2::<Identity, Impl, OFFSET>,
OpenLogFile2: OpenLogFile2::<Identity, Impl, OFFSET>,
GetLogFile2Wide: GetLogFile2Wide::<Identity, Impl, OFFSET>,
OpenLogFile2Wide: OpenLogFile2Wide::<Identity, Impl, OFFSET>,
GetSystemVersionValues: GetSystemVersionValues::<Identity, Impl, OFFSET>,
GetSystemVersionString: GetSystemVersionString::<Identity, Impl, OFFSET>,
GetSystemVersionStringWide: GetSystemVersionStringWide::<Identity, Impl, OFFSET>,
GetContextStackTrace: GetContextStackTrace::<Identity, Impl, OFFSET>,
OutputContextStackTrace: OutputContextStackTrace::<Identity, Impl, OFFSET>,
GetStoredEventInformation: GetStoredEventInformation::<Identity, Impl, OFFSET>,
GetManagedStatus: GetManagedStatus::<Identity, Impl, OFFSET>,
GetManagedStatusWide: GetManagedStatusWide::<Identity, Impl, OFFSET>,
ResetManagedStatus: ResetManagedStatus::<Identity, Impl, OFFSET>,
GetStackTraceEx: GetStackTraceEx::<Identity, Impl, OFFSET>,
OutputStackTraceEx: OutputStackTraceEx::<Identity, Impl, OFFSET>,
GetContextStackTraceEx: GetContextStackTraceEx::<Identity, Impl, OFFSET>,
OutputContextStackTraceEx: OutputContextStackTraceEx::<Identity, Impl, OFFSET>,
GetBreakpointByGuid: GetBreakpointByGuid::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugControl5 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
pub trait IDebugControl6_Impl: Sized {
fn GetInterrupt(&self) -> ::windows::core::Result<()>;
fn SetInterrupt(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetInterruptTimeout(&self) -> ::windows::core::Result<u32>;
fn SetInterruptTimeout(&self, seconds: u32) -> ::windows::core::Result<()>;
fn GetLogFile(&self, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn OpenLogFile(&self, file: &::windows::core::PCSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn CloseLogFile(&self) -> ::windows::core::Result<()>;
fn GetLogMask(&self) -> ::windows::core::Result<u32>;
fn SetLogMask(&self, mask: u32) -> ::windows::core::Result<()>;
fn Input(&self, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::Result<()>;
fn ReturnInput(&self, buffer: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn Output(&self, mask: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputVaList(&self, mask: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn ControlledOutput(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn ControlledOutputVaList(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn OutputPrompt(&self, outputcontrol: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputPromptVaList(&self, outputcontrol: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn GetPromptText(&self, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()>;
fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows::core::Result<()>;
fn GetNotifyEventHandle(&self) -> ::windows::core::Result<u64>;
fn SetNotifyEventHandle(&self, handle: u64) -> ::windows::core::Result<()>;
fn Assemble(&self, offset: u64, instr: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn Disassemble(&self, offset: u64, flags: u32, buffer: ::windows::core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::Result<()>;
fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result<u64>;
fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows::core::Result<u64>;
fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows::core::Result<()>;
fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result<u64>;
fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows::core::Result<()>;
fn GetReturnOffset(&self) -> ::windows::core::Result<u64>;
fn OutputStackTrace(&self, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows::core::Result<()>;
fn GetActualProcessorType(&self) -> ::windows::core::Result<u32>;
fn GetExecutingProcessorType(&self) -> ::windows::core::Result<u32>;
fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows::core::Result<u32>;
fn GetPossibleExecutingProcessorTypes(&self, start: u32, count: u32, types: *mut u32) -> ::windows::core::Result<()>;
fn GetNumberProcessors(&self) -> ::windows::core::Result<u32>;
fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows::core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows::core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows::core::Result<()>;
fn GetPageSize(&self) -> ::windows::core::Result<u32>;
fn IsPointer64Bit(&self) -> ::windows::core::Result<()>;
fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::Result<()>;
fn GetNumberSupportedProcessorTypes(&self) -> ::windows::core::Result<u32>;
fn GetSupportedProcessorTypes(&self, start: u32, count: u32, types: *mut u32) -> ::windows::core::Result<()>;
fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetEffectiveProcessorType(&self) -> ::windows::core::Result<u32>;
fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows::core::Result<()>;
fn GetExecutionStatus(&self) -> ::windows::core::Result<u32>;
fn SetExecutionStatus(&self, status: u32) -> ::windows::core::Result<()>;
fn GetCodeLevel(&self) -> ::windows::core::Result<u32>;
fn SetCodeLevel(&self, level: u32) -> ::windows::core::Result<()>;
fn GetEngineOptions(&self) -> ::windows::core::Result<u32>;
fn AddEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::Result<()>;
fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()>;
fn GetTextMacro(&self, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextMacro(&self, slot: u32, r#macro: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetRadix(&self) -> ::windows::core::Result<u32>;
fn SetRadix(&self, radix: u32) -> ::windows::core::Result<()>;
fn Evaluate(&self, expression: &::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::Result<()>;
fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()>;
fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()>;
fn Execute(&self, outputcontrol: u32, command: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn ExecuteCommandFile(&self, outputcontrol: u32, commandfile: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetNumberBreakpoints(&self) -> ::windows::core::Result<u32>;
fn GetBreakpointByIndex(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn GetBreakpointById(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn GetBreakpointParameters(&self, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()>;
fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn RemoveBreakpoint(&self, bp: ::core::option::Option<&IDebugBreakpoint>) -> ::windows::core::Result<()>;
fn AddExtension(&self, path: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<u64>;
fn RemoveExtension(&self, handle: u64) -> ::windows::core::Result<()>;
fn GetExtensionByPath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn CallExtension(&self, handle: u64, function: &::windows::core::PCSTR, arguments: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetExtensionFunction(&self, handle: u64, funcname: &::windows::core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>;
fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::Result<()>;
fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::Result<()>;
fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::Result<()>;
fn GetEventFilterText(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn GetEventFilterCommand(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetEventFilterCommand(&self, index: u32, command: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetSpecificFilterParameters(&self, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn SetSpecificFilterParameters(&self, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn GetSpecificFilterArgument(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSpecificFilterArgument(&self, index: u32, argument: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetExceptionFilterParameters(&self, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn SetExceptionFilterParameters(&self, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetExceptionFilterSecondCommand(&self, index: u32, command: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()>;
fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentTimeDate(&self) -> ::windows::core::Result<u32>;
fn GetCurrentSystemUpTime(&self) -> ::windows::core::Result<u32>;
fn GetDumpFormatFlags(&self) -> ::windows::core::Result<u32>;
fn GetNumberTextReplacements(&self) -> ::windows::core::Result<u32>;
fn GetTextReplacement(&self, srctext: &::windows::core::PCSTR, index: u32, srcbuffer: ::windows::core::PSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows::core::PSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextReplacement(&self, srctext: &::windows::core::PCSTR, dsttext: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn RemoveTextReplacements(&self) -> ::windows::core::Result<()>;
fn OutputTextReplacements(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetAssemblyOptions(&self) -> ::windows::core::Result<u32>;
fn AddAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn GetExpressionSyntax(&self) -> ::windows::core::Result<u32>;
fn SetExpressionSyntax(&self, flags: u32) -> ::windows::core::Result<()>;
fn SetExpressionSyntaxByName(&self, abbrevname: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetNumberExpressionSyntaxes(&self) -> ::windows::core::Result<u32>;
fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetNumberEvents(&self) -> ::windows::core::Result<u32>;
fn GetEventIndexDescription(&self, index: u32, which: u32, buffer: &::windows::core::PCSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentEventIndex(&self) -> ::windows::core::Result<u32>;
fn SetNextEventIndex(&self, relation: u32, value: u32) -> ::windows::core::Result<u32>;
fn GetLogFileWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn OpenLogFileWide(&self, file: &::windows::core::PCWSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn InputWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::Result<()>;
fn ReturnInputWide(&self, buffer: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn OutputWide(&self, mask: u32, format: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn OutputVaListWide(&self, mask: u32, format: &::windows::core::PCWSTR, args: *const i8) -> ::windows::core::Result<()>;
fn ControlledOutputWide(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn ControlledOutputVaListWide(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCWSTR, args: *const i8) -> ::windows::core::Result<()>;
fn OutputPromptWide(&self, outputcontrol: u32, format: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn OutputPromptVaListWide(&self, outputcontrol: u32, format: &::windows::core::PCWSTR, args: *const i8) -> ::windows::core::Result<()>;
fn GetPromptTextWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn AssembleWide(&self, offset: u64, instr: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn DisassembleWide(&self, offset: u64, flags: u32, buffer: ::windows::core::PWSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::Result<()>;
fn GetProcessorTypeNamesWide(&self, r#type: u32, fullnamebuffer: ::windows::core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetTextMacroWide(&self, slot: u32, buffer: ::windows::core::PWSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextMacroWide(&self, slot: u32, r#macro: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn EvaluateWide(&self, expression: &::windows::core::PCWSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::Result<()>;
fn ExecuteWide(&self, outputcontrol: u32, command: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<()>;
fn ExecuteCommandFileWide(&self, outputcontrol: u32, commandfile: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetBreakpointByIndex2(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint2>;
fn GetBreakpointById2(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint2>;
fn AddBreakpoint2(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint2>;
fn RemoveBreakpoint2(&self, bp: ::core::option::Option<&IDebugBreakpoint2>) -> ::windows::core::Result<()>;
fn AddExtensionWide(&self, path: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<u64>;
fn GetExtensionByPathWide(&self, path: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn CallExtensionWide(&self, handle: u64, function: &::windows::core::PCWSTR, arguments: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetExtensionFunctionWide(&self, handle: u64, funcname: &::windows::core::PCWSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>;
fn GetEventFilterTextWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn GetEventFilterCommandWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetEventFilterCommandWide(&self, index: u32, command: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSpecificFilterArgumentWide(&self, index: u32, argument: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetExceptionFilterSecondCommandWide(&self, index: u32, command: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetLastEventInformationWide(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PWSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::Result<()>;
fn GetTextReplacementWide(&self, srctext: &::windows::core::PCWSTR, index: u32, srcbuffer: ::windows::core::PWSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows::core::PWSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextReplacementWide(&self, srctext: &::windows::core::PCWSTR, dsttext: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn SetExpressionSyntaxByNameWide(&self, abbrevname: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: ::windows::core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetEventIndexDescriptionWide(&self, index: u32, which: u32, buffer: &::windows::core::PCWSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::Result<()>;
fn GetLogFile2(&self, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::Result<()>;
fn OpenLogFile2(&self, file: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetLogFile2Wide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::Result<()>;
fn OpenLogFile2Wide(&self, file: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetSystemVersionValues(&self, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: *mut u32, kdminor: *mut u32) -> ::windows::core::Result<()>;
fn GetSystemVersionString(&self, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSystemVersionStringWide(&self, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetContextStackTrace(&self, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows::core::Result<()>;
fn OutputContextStackTrace(&self, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetStoredEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, context: *mut ::core::ffi::c_void, contextsize: u32, contextused: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32) -> ::windows::core::Result<()>;
fn GetManagedStatus(&self, flags: *mut u32, whichstring: u32, string: ::windows::core::PSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::Result<()>;
fn GetManagedStatusWide(&self, flags: *mut u32, whichstring: u32, string: ::windows::core::PWSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::Result<()>;
fn ResetManagedStatus(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetStackTraceEx(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME_EX, framessize: u32, framesfilled: *mut u32) -> ::windows::core::Result<()>;
fn OutputStackTraceEx(&self, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetContextStackTraceEx(&self, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME_EX, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows::core::Result<()>;
fn OutputContextStackTraceEx(&self, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetBreakpointByGuid(&self, guid: *const ::windows::core::GUID) -> ::windows::core::Result<IDebugBreakpoint3>;
fn GetExecutionStatusEx(&self) -> ::windows::core::Result<u32>;
fn GetSynchronizationStatus(&self, sendsattempted: *mut u32, secondssincelastresponse: *mut u32) -> ::windows::core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::windows::core::RuntimeName for IDebugControl6 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl IDebugControl6_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>() -> IDebugControl6_Vtbl {
unsafe extern "system" fn GetInterrupt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_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.GetInterrupt().into()
}
unsafe extern "system" fn SetInterrupt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_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.SetInterrupt(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetInterruptTimeout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetInterruptTimeout() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(seconds, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetInterruptTimeout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetInterruptTimeout(::core::mem::transmute_copy(&seconds)).into()
}
unsafe extern "system" fn GetLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::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.GetLogFile(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn OpenLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, append: super::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.OpenLogFile(::core::mem::transmute(&file), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn CloseLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_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.CloseLogFile().into()
}
unsafe extern "system" fn GetLogMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLogMask() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetLogMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetLogMask(::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn Input<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Input(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&inputsize)).into()
}
unsafe extern "system" fn ReturnInput<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReturnInput(::core::mem::transmute(&buffer)).into()
}
unsafe extern "system" fn Output<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Output(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputVaList(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn ControlledOutput<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutput(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn ControlledOutputVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutputVaList(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn OutputPrompt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPrompt(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputPromptVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPromptVaList(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn GetPromptText<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPromptText(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn OutputCurrentState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputCurrentState(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn OutputVersionInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputVersionInformation(::core::mem::transmute_copy(&outputcontrol)).into()
}
unsafe extern "system" fn GetNotifyEventHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNotifyEventHandle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetNotifyEventHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNotifyEventHandle(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn Assemble<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCSTR, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Assemble(::core::mem::transmute_copy(&offset), ::core::mem::transmute(&instr)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(endoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Disassemble<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows::core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Disassemble(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&disassemblysize), ::core::mem::transmute_copy(&endoffset)).into()
}
unsafe extern "system" fn GetDisassembleEffectiveOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDisassembleEffectiveOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputDisassembly<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.OutputDisassembly(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(endoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputDisassemblyLines<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputDisassemblyLines(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&previouslines), ::core::mem::transmute_copy(&totallines), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&offsetline), ::core::mem::transmute_copy(&startoffset), ::core::mem::transmute_copy(&endoffset), ::core::mem::transmute_copy(&lineoffsets)).into()
}
unsafe extern "system" fn GetNearInstruction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNearInstruction(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&delta)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(nearoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStackTrace(::core::mem::transmute_copy(&frameoffset), ::core::mem::transmute_copy(&stackoffset), ::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framesfilled)).into()
}
unsafe extern "system" fn GetReturnOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetReturnOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputStackTrace(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetDebuggeeType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDebuggeeType(::core::mem::transmute_copy(&class), ::core::mem::transmute_copy(&qualifier)).into()
}
unsafe extern "system" fn GetActualProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetActualProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetExecutingProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExecutingProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberPossibleExecutingProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberPossibleExecutingProcessorTypes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetPossibleExecutingProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPossibleExecutingProcessorTypes(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&types)).into()
}
unsafe extern "system" fn GetNumberProcessors<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberProcessors() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSystemVersion<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows::core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows::core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemVersion(::core::mem::transmute_copy(&platformid), ::core::mem::transmute_copy(&major), ::core::mem::transmute_copy(&minor), ::core::mem::transmute_copy(&servicepackstring), ::core::mem::transmute_copy(&servicepackstringsize), ::core::mem::transmute_copy(&servicepackstringused), ::core::mem::transmute_copy(&servicepacknumber), ::core::mem::transmute_copy(&buildstring), ::core::mem::transmute_copy(&buildstringsize), ::core::mem::transmute_copy(&buildstringused))
.into()
}
unsafe extern "system" fn GetPageSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPageSize() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(size, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsPointer64Bit<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_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.IsPointer64Bit().into()
}
unsafe extern "system" fn ReadBugCheckData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadBugCheckData(::core::mem::transmute_copy(&code), ::core::mem::transmute_copy(&arg1), ::core::mem::transmute_copy(&arg2), ::core::mem::transmute_copy(&arg3), ::core::mem::transmute_copy(&arg4)).into()
}
unsafe extern "system" fn GetNumberSupportedProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberSupportedProcessorTypes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSupportedProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSupportedProcessorTypes(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&types)).into()
}
unsafe extern "system" fn GetProcessorTypeNames<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetProcessorTypeNames(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&fullnamebuffer), ::core::mem::transmute_copy(&fullnamebuffersize), ::core::mem::transmute_copy(&fullnamesize), ::core::mem::transmute_copy(&abbrevnamebuffer), ::core::mem::transmute_copy(&abbrevnamebuffersize), ::core::mem::transmute_copy(&abbrevnamesize)).into()
}
unsafe extern "system" fn GetEffectiveProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEffectiveProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEffectiveProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEffectiveProcessorType(::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn GetExecutionStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExecutionStatus() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(status, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetExecutionStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExecutionStatus(::core::mem::transmute_copy(&status)).into()
}
unsafe extern "system" fn GetCodeLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCodeLevel() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(level, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCodeLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, level: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCodeLevel(::core::mem::transmute_copy(&level)).into()
}
unsafe extern "system" fn GetEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEngineOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn GetSystemErrorControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemErrorControl(::core::mem::transmute_copy(&outputlevel), ::core::mem::transmute_copy(&breaklevel)).into()
}
unsafe extern "system" fn SetSystemErrorControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSystemErrorControl(::core::mem::transmute_copy(&outputlevel), ::core::mem::transmute_copy(&breaklevel)).into()
}
unsafe extern "system" fn GetTextMacro<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextMacro(::core::mem::transmute_copy(&slot), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&macrosize)).into()
}
unsafe extern "system" fn SetTextMacro<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextMacro(::core::mem::transmute_copy(&slot), ::core::mem::transmute(&r#macro)).into()
}
unsafe extern "system" fn GetRadix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRadix() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(radix, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetRadix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRadix(::core::mem::transmute_copy(&radix)).into()
}
unsafe extern "system" fn Evaluate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Evaluate(::core::mem::transmute(&expression), ::core::mem::transmute_copy(&desiredtype), ::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&remainderindex)).into()
}
unsafe extern "system" fn CoerceValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CoerceValue(::core::mem::transmute_copy(&r#in), ::core::mem::transmute_copy(&outtype), ::core::mem::transmute_copy(&out)).into()
}
unsafe extern "system" fn CoerceValues<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CoerceValues(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&r#in), ::core::mem::transmute_copy(&outtypes), ::core::mem::transmute_copy(&out)).into()
}
unsafe extern "system" fn Execute<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Execute(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&command), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn ExecuteCommandFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExecuteCommandFile(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&commandfile), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetNumberBreakpoints<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberBreakpoints() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, bp: *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.GetBreakpointByIndex(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointById<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32, bp: *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.GetBreakpointById(::core::mem::transmute_copy(&id)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBreakpointParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn AddBreakpoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *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.AddBreakpoint(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&desiredid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveBreakpoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveBreakpoint(::windows::core::from_raw_borrowed(&bp)).into()
}
unsafe extern "system" fn AddExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AddExtension(::core::mem::transmute(&path), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveExtension(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn GetExtensionByPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExtensionByPath(::core::mem::transmute(&path)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CallExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCSTR, arguments: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CallExtension(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&function), ::core::mem::transmute(&arguments)).into()
}
unsafe extern "system" fn GetExtensionFunction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExtensionFunction(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&funcname), ::core::mem::transmute_copy(&function)).into()
}
unsafe extern "system" fn GetWindbgExtensionApis32<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetWindbgExtensionApis32(::core::mem::transmute_copy(&api)).into()
}
unsafe extern "system" fn GetWindbgExtensionApis64<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetWindbgExtensionApis64(::core::mem::transmute_copy(&api)).into()
}
unsafe extern "system" fn GetNumberEventFilters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNumberEventFilters(::core::mem::transmute_copy(&specificevents), ::core::mem::transmute_copy(&specificexceptions), ::core::mem::transmute_copy(&arbitraryexceptions)).into()
}
unsafe extern "system" fn GetEventFilterText<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterText(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn GetEventFilterCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetEventFilterCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventFilterCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn GetSpecificFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSpecificFilterParameters(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn SetSpecificFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSpecificFilterParameters(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetSpecificFilterArgument<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSpecificFilterArgument(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&argumentsize)).into()
}
unsafe extern "system" fn SetSpecificFilterArgument<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSpecificFilterArgument(::core::mem::transmute_copy(&index), ::core::mem::transmute(&argument)).into()
}
unsafe extern "system" fn GetExceptionFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExceptionFilterParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&codes), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn SetExceptionFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExceptionFilterParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetExceptionFilterSecondCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExceptionFilterSecondCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetExceptionFilterSecondCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExceptionFilterSecondCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn WaitForEvent<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WaitForEvent(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn GetLastEventInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLastEventInformation(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&extrainformation), ::core::mem::transmute_copy(&extrainformationsize), ::core::mem::transmute_copy(&extrainformationused), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&descriptionused)).into()
}
unsafe extern "system" fn GetCurrentTimeDate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timedate: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentTimeDate() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(timedate, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentSystemUpTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentSystemUpTime() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(uptime, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDumpFormatFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, formatflags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDumpFormatFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(formatflags, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberTextReplacements<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, numrepl: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberTextReplacements() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(numrepl, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTextReplacement<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCSTR, index: u32, srcbuffer: ::windows::core::PSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows::core::PSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextReplacement(::core::mem::transmute(&srctext), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&srcbuffer), ::core::mem::transmute_copy(&srcbuffersize), ::core::mem::transmute_copy(&srcsize), ::core::mem::transmute_copy(&dstbuffer), ::core::mem::transmute_copy(&dstbuffersize), ::core::mem::transmute_copy(&dstsize)).into()
}
unsafe extern "system" fn SetTextReplacement<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCSTR, dsttext: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextReplacement(::core::mem::transmute(&srctext), ::core::mem::transmute(&dsttext)).into()
}
unsafe extern "system" fn RemoveTextReplacements<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_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.RemoveTextReplacements().into()
}
unsafe extern "system" fn OutputTextReplacements<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputTextReplacements(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetAssemblyOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAssemblyOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddAssemblyOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddAssemblyOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveAssemblyOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveAssemblyOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetAssemblyOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAssemblyOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn GetExpressionSyntax<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExpressionSyntax() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(flags, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetExpressionSyntax<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_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.SetExpressionSyntax(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn SetExpressionSyntaxByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, abbrevname: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExpressionSyntaxByName(::core::mem::transmute(&abbrevname)).into()
}
unsafe extern "system" fn GetNumberExpressionSyntaxes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberExpressionSyntaxes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetExpressionSyntaxNames<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExpressionSyntaxNames(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&fullnamebuffer), ::core::mem::transmute_copy(&fullnamebuffersize), ::core::mem::transmute_copy(&fullnamesize), ::core::mem::transmute_copy(&abbrevnamebuffer), ::core::mem::transmute_copy(&abbrevnamebuffersize), ::core::mem::transmute_copy(&abbrevnamesize)).into()
}
unsafe extern "system" fn GetNumberEvents<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, events: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberEvents() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(events, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetEventIndexDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows::core::PCSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventIndexDescription(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&which), ::core::mem::transmute(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&descsize)).into()
}
unsafe extern "system" fn GetCurrentEventIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentEventIndex() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(index, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetNextEventIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, relation: u32, value: u32, nextindex: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SetNextEventIndex(::core::mem::transmute_copy(&relation), ::core::mem::transmute_copy(&value)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(nextindex, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetLogFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, append: *mut super::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.GetLogFileWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn OpenLogFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, append: super::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.OpenLogFileWide(::core::mem::transmute(&file), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn InputWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InputWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&inputsize)).into()
}
unsafe extern "system" fn ReturnInputWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReturnInputWide(::core::mem::transmute(&buffer)).into()
}
unsafe extern "system" fn OutputWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputWide(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputVaListWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputVaListWide(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn ControlledOutputWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutputWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn ControlledOutputVaListWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutputVaListWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn OutputPromptWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPromptWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputPromptVaListWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPromptVaListWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn GetPromptTextWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPromptTextWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn AssembleWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCWSTR, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AssembleWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute(&instr)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(endoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DisassembleWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows::core::PWSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DisassembleWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&disassemblysize), ::core::mem::transmute_copy(&endoffset)).into()
}
unsafe extern "system" fn GetProcessorTypeNamesWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows::core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetProcessorTypeNamesWide(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&fullnamebuffer), ::core::mem::transmute_copy(&fullnamebuffersize), ::core::mem::transmute_copy(&fullnamesize), ::core::mem::transmute_copy(&abbrevnamebuffer), ::core::mem::transmute_copy(&abbrevnamebuffersize), ::core::mem::transmute_copy(&abbrevnamesize)).into()
}
unsafe extern "system" fn GetTextMacroWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PWSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextMacroWide(::core::mem::transmute_copy(&slot), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&macrosize)).into()
}
unsafe extern "system" fn SetTextMacroWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextMacroWide(::core::mem::transmute_copy(&slot), ::core::mem::transmute(&r#macro)).into()
}
unsafe extern "system" fn EvaluateWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCWSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EvaluateWide(::core::mem::transmute(&expression), ::core::mem::transmute_copy(&desiredtype), ::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&remainderindex)).into()
}
unsafe extern "system" fn ExecuteWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExecuteWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&command), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn ExecuteCommandFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExecuteCommandFileWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&commandfile), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetBreakpointByIndex2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, bp: *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.GetBreakpointByIndex2(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointById2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32, bp: *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.GetBreakpointById2(::core::mem::transmute_copy(&id)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddBreakpoint2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *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.AddBreakpoint2(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&desiredid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveBreakpoint2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveBreakpoint2(::windows::core::from_raw_borrowed(&bp)).into()
}
unsafe extern "system" fn AddExtensionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AddExtensionWide(::core::mem::transmute(&path), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetExtensionByPathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExtensionByPathWide(::core::mem::transmute(&path)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CallExtensionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCWSTR, arguments: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CallExtensionWide(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&function), ::core::mem::transmute(&arguments)).into()
}
unsafe extern "system" fn GetExtensionFunctionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCWSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExtensionFunctionWide(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&funcname), ::core::mem::transmute_copy(&function)).into()
}
unsafe extern "system" fn GetEventFilterTextWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterTextWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn GetEventFilterCommandWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterCommandWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetEventFilterCommandWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventFilterCommandWide(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn GetSpecificFilterArgumentWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSpecificFilterArgumentWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&argumentsize)).into()
}
unsafe extern "system" fn SetSpecificFilterArgumentWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSpecificFilterArgumentWide(::core::mem::transmute_copy(&index), ::core::mem::transmute(&argument)).into()
}
unsafe extern "system" fn GetExceptionFilterSecondCommandWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExceptionFilterSecondCommandWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetExceptionFilterSecondCommandWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExceptionFilterSecondCommandWide(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn GetLastEventInformationWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PWSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLastEventInformationWide(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&extrainformation), ::core::mem::transmute_copy(&extrainformationsize), ::core::mem::transmute_copy(&extrainformationused), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&descriptionused)).into()
}
unsafe extern "system" fn GetTextReplacementWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCWSTR, index: u32, srcbuffer: ::windows::core::PWSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows::core::PWSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextReplacementWide(::core::mem::transmute(&srctext), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&srcbuffer), ::core::mem::transmute_copy(&srcbuffersize), ::core::mem::transmute_copy(&srcsize), ::core::mem::transmute_copy(&dstbuffer), ::core::mem::transmute_copy(&dstbuffersize), ::core::mem::transmute_copy(&dstsize)).into()
}
unsafe extern "system" fn SetTextReplacementWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCWSTR, dsttext: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextReplacementWide(::core::mem::transmute(&srctext), ::core::mem::transmute(&dsttext)).into()
}
unsafe extern "system" fn SetExpressionSyntaxByNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, abbrevname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExpressionSyntaxByNameWide(::core::mem::transmute(&abbrevname)).into()
}
unsafe extern "system" fn GetExpressionSyntaxNamesWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, fullnamebuffer: ::windows::core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExpressionSyntaxNamesWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&fullnamebuffer), ::core::mem::transmute_copy(&fullnamebuffersize), ::core::mem::transmute_copy(&fullnamesize), ::core::mem::transmute_copy(&abbrevnamebuffer), ::core::mem::transmute_copy(&abbrevnamebuffersize), ::core::mem::transmute_copy(&abbrevnamesize)).into()
}
unsafe extern "system" fn GetEventIndexDescriptionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows::core::PCWSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventIndexDescriptionWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&which), ::core::mem::transmute(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&descsize)).into()
}
unsafe extern "system" fn GetLogFile2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLogFile2(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn OpenLogFile2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenLogFile2(::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetLogFile2Wide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLogFile2Wide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn OpenLogFile2Wide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenLogFile2Wide(::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetSystemVersionValues<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: *mut u32, kdminor: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemVersionValues(::core::mem::transmute_copy(&platformid), ::core::mem::transmute_copy(&win32major), ::core::mem::transmute_copy(&win32minor), ::core::mem::transmute_copy(&kdmajor), ::core::mem::transmute_copy(&kdminor)).into()
}
unsafe extern "system" fn GetSystemVersionString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemVersionString(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetSystemVersionStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemVersionStringWide(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetContextStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetContextStackTrace(::core::mem::transmute_copy(&startcontext), ::core::mem::transmute_copy(&startcontextsize), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framecontexts), ::core::mem::transmute_copy(&framecontextssize), ::core::mem::transmute_copy(&framecontextsentrysize), ::core::mem::transmute_copy(&framesfilled)).into()
}
unsafe extern "system" fn OutputContextStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputContextStackTrace(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framecontexts), ::core::mem::transmute_copy(&framecontextssize), ::core::mem::transmute_copy(&framecontextsentrysize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetStoredEventInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, context: *mut ::core::ffi::c_void, contextsize: u32, contextused: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStoredEventInformation(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize), ::core::mem::transmute_copy(&contextused), ::core::mem::transmute_copy(&extrainformation), ::core::mem::transmute_copy(&extrainformationsize), ::core::mem::transmute_copy(&extrainformationused)).into()
}
unsafe extern "system" fn GetManagedStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows::core::PSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetManagedStatus(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&whichstring), ::core::mem::transmute_copy(&string), ::core::mem::transmute_copy(&stringsize), ::core::mem::transmute_copy(&stringneeded)).into()
}
unsafe extern "system" fn GetManagedStatusWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows::core::PWSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetManagedStatusWide(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&whichstring), ::core::mem::transmute_copy(&string), ::core::mem::transmute_copy(&stringsize), ::core::mem::transmute_copy(&stringneeded)).into()
}
unsafe extern "system" fn ResetManagedStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_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.ResetManagedStatus(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetStackTraceEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME_EX, framessize: u32, framesfilled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStackTraceEx(::core::mem::transmute_copy(&frameoffset), ::core::mem::transmute_copy(&stackoffset), ::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framesfilled)).into()
}
unsafe extern "system" fn OutputStackTraceEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputStackTraceEx(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetContextStackTraceEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME_EX, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetContextStackTraceEx(::core::mem::transmute_copy(&startcontext), ::core::mem::transmute_copy(&startcontextsize), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framecontexts), ::core::mem::transmute_copy(&framecontextssize), ::core::mem::transmute_copy(&framecontextsentrysize), ::core::mem::transmute_copy(&framesfilled)).into()
}
unsafe extern "system" fn OutputContextStackTraceEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputContextStackTraceEx(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framecontexts), ::core::mem::transmute_copy(&framecontextssize), ::core::mem::transmute_copy(&framecontextsentrysize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetBreakpointByGuid<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guid: *const ::windows::core::GUID, bp: *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.GetBreakpointByGuid(::core::mem::transmute_copy(&guid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetExecutionStatusEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExecutionStatusEx() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(status, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSynchronizationStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sendsattempted: *mut u32, secondssincelastresponse: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSynchronizationStatus(::core::mem::transmute_copy(&sendsattempted), ::core::mem::transmute_copy(&secondssincelastresponse)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetInterrupt: GetInterrupt::<Identity, Impl, OFFSET>,
SetInterrupt: SetInterrupt::<Identity, Impl, OFFSET>,
GetInterruptTimeout: GetInterruptTimeout::<Identity, Impl, OFFSET>,
SetInterruptTimeout: SetInterruptTimeout::<Identity, Impl, OFFSET>,
GetLogFile: GetLogFile::<Identity, Impl, OFFSET>,
OpenLogFile: OpenLogFile::<Identity, Impl, OFFSET>,
CloseLogFile: CloseLogFile::<Identity, Impl, OFFSET>,
GetLogMask: GetLogMask::<Identity, Impl, OFFSET>,
SetLogMask: SetLogMask::<Identity, Impl, OFFSET>,
Input: Input::<Identity, Impl, OFFSET>,
ReturnInput: ReturnInput::<Identity, Impl, OFFSET>,
Output: Output::<Identity, Impl, OFFSET>,
OutputVaList: OutputVaList::<Identity, Impl, OFFSET>,
ControlledOutput: ControlledOutput::<Identity, Impl, OFFSET>,
ControlledOutputVaList: ControlledOutputVaList::<Identity, Impl, OFFSET>,
OutputPrompt: OutputPrompt::<Identity, Impl, OFFSET>,
OutputPromptVaList: OutputPromptVaList::<Identity, Impl, OFFSET>,
GetPromptText: GetPromptText::<Identity, Impl, OFFSET>,
OutputCurrentState: OutputCurrentState::<Identity, Impl, OFFSET>,
OutputVersionInformation: OutputVersionInformation::<Identity, Impl, OFFSET>,
GetNotifyEventHandle: GetNotifyEventHandle::<Identity, Impl, OFFSET>,
SetNotifyEventHandle: SetNotifyEventHandle::<Identity, Impl, OFFSET>,
Assemble: Assemble::<Identity, Impl, OFFSET>,
Disassemble: Disassemble::<Identity, Impl, OFFSET>,
GetDisassembleEffectiveOffset: GetDisassembleEffectiveOffset::<Identity, Impl, OFFSET>,
OutputDisassembly: OutputDisassembly::<Identity, Impl, OFFSET>,
OutputDisassemblyLines: OutputDisassemblyLines::<Identity, Impl, OFFSET>,
GetNearInstruction: GetNearInstruction::<Identity, Impl, OFFSET>,
GetStackTrace: GetStackTrace::<Identity, Impl, OFFSET>,
GetReturnOffset: GetReturnOffset::<Identity, Impl, OFFSET>,
OutputStackTrace: OutputStackTrace::<Identity, Impl, OFFSET>,
GetDebuggeeType: GetDebuggeeType::<Identity, Impl, OFFSET>,
GetActualProcessorType: GetActualProcessorType::<Identity, Impl, OFFSET>,
GetExecutingProcessorType: GetExecutingProcessorType::<Identity, Impl, OFFSET>,
GetNumberPossibleExecutingProcessorTypes: GetNumberPossibleExecutingProcessorTypes::<Identity, Impl, OFFSET>,
GetPossibleExecutingProcessorTypes: GetPossibleExecutingProcessorTypes::<Identity, Impl, OFFSET>,
GetNumberProcessors: GetNumberProcessors::<Identity, Impl, OFFSET>,
GetSystemVersion: GetSystemVersion::<Identity, Impl, OFFSET>,
GetPageSize: GetPageSize::<Identity, Impl, OFFSET>,
IsPointer64Bit: IsPointer64Bit::<Identity, Impl, OFFSET>,
ReadBugCheckData: ReadBugCheckData::<Identity, Impl, OFFSET>,
GetNumberSupportedProcessorTypes: GetNumberSupportedProcessorTypes::<Identity, Impl, OFFSET>,
GetSupportedProcessorTypes: GetSupportedProcessorTypes::<Identity, Impl, OFFSET>,
GetProcessorTypeNames: GetProcessorTypeNames::<Identity, Impl, OFFSET>,
GetEffectiveProcessorType: GetEffectiveProcessorType::<Identity, Impl, OFFSET>,
SetEffectiveProcessorType: SetEffectiveProcessorType::<Identity, Impl, OFFSET>,
GetExecutionStatus: GetExecutionStatus::<Identity, Impl, OFFSET>,
SetExecutionStatus: SetExecutionStatus::<Identity, Impl, OFFSET>,
GetCodeLevel: GetCodeLevel::<Identity, Impl, OFFSET>,
SetCodeLevel: SetCodeLevel::<Identity, Impl, OFFSET>,
GetEngineOptions: GetEngineOptions::<Identity, Impl, OFFSET>,
AddEngineOptions: AddEngineOptions::<Identity, Impl, OFFSET>,
RemoveEngineOptions: RemoveEngineOptions::<Identity, Impl, OFFSET>,
SetEngineOptions: SetEngineOptions::<Identity, Impl, OFFSET>,
GetSystemErrorControl: GetSystemErrorControl::<Identity, Impl, OFFSET>,
SetSystemErrorControl: SetSystemErrorControl::<Identity, Impl, OFFSET>,
GetTextMacro: GetTextMacro::<Identity, Impl, OFFSET>,
SetTextMacro: SetTextMacro::<Identity, Impl, OFFSET>,
GetRadix: GetRadix::<Identity, Impl, OFFSET>,
SetRadix: SetRadix::<Identity, Impl, OFFSET>,
Evaluate: Evaluate::<Identity, Impl, OFFSET>,
CoerceValue: CoerceValue::<Identity, Impl, OFFSET>,
CoerceValues: CoerceValues::<Identity, Impl, OFFSET>,
Execute: Execute::<Identity, Impl, OFFSET>,
ExecuteCommandFile: ExecuteCommandFile::<Identity, Impl, OFFSET>,
GetNumberBreakpoints: GetNumberBreakpoints::<Identity, Impl, OFFSET>,
GetBreakpointByIndex: GetBreakpointByIndex::<Identity, Impl, OFFSET>,
GetBreakpointById: GetBreakpointById::<Identity, Impl, OFFSET>,
GetBreakpointParameters: GetBreakpointParameters::<Identity, Impl, OFFSET>,
AddBreakpoint: AddBreakpoint::<Identity, Impl, OFFSET>,
RemoveBreakpoint: RemoveBreakpoint::<Identity, Impl, OFFSET>,
AddExtension: AddExtension::<Identity, Impl, OFFSET>,
RemoveExtension: RemoveExtension::<Identity, Impl, OFFSET>,
GetExtensionByPath: GetExtensionByPath::<Identity, Impl, OFFSET>,
CallExtension: CallExtension::<Identity, Impl, OFFSET>,
GetExtensionFunction: GetExtensionFunction::<Identity, Impl, OFFSET>,
GetWindbgExtensionApis32: GetWindbgExtensionApis32::<Identity, Impl, OFFSET>,
GetWindbgExtensionApis64: GetWindbgExtensionApis64::<Identity, Impl, OFFSET>,
GetNumberEventFilters: GetNumberEventFilters::<Identity, Impl, OFFSET>,
GetEventFilterText: GetEventFilterText::<Identity, Impl, OFFSET>,
GetEventFilterCommand: GetEventFilterCommand::<Identity, Impl, OFFSET>,
SetEventFilterCommand: SetEventFilterCommand::<Identity, Impl, OFFSET>,
GetSpecificFilterParameters: GetSpecificFilterParameters::<Identity, Impl, OFFSET>,
SetSpecificFilterParameters: SetSpecificFilterParameters::<Identity, Impl, OFFSET>,
GetSpecificFilterArgument: GetSpecificFilterArgument::<Identity, Impl, OFFSET>,
SetSpecificFilterArgument: SetSpecificFilterArgument::<Identity, Impl, OFFSET>,
GetExceptionFilterParameters: GetExceptionFilterParameters::<Identity, Impl, OFFSET>,
SetExceptionFilterParameters: SetExceptionFilterParameters::<Identity, Impl, OFFSET>,
GetExceptionFilterSecondCommand: GetExceptionFilterSecondCommand::<Identity, Impl, OFFSET>,
SetExceptionFilterSecondCommand: SetExceptionFilterSecondCommand::<Identity, Impl, OFFSET>,
WaitForEvent: WaitForEvent::<Identity, Impl, OFFSET>,
GetLastEventInformation: GetLastEventInformation::<Identity, Impl, OFFSET>,
GetCurrentTimeDate: GetCurrentTimeDate::<Identity, Impl, OFFSET>,
GetCurrentSystemUpTime: GetCurrentSystemUpTime::<Identity, Impl, OFFSET>,
GetDumpFormatFlags: GetDumpFormatFlags::<Identity, Impl, OFFSET>,
GetNumberTextReplacements: GetNumberTextReplacements::<Identity, Impl, OFFSET>,
GetTextReplacement: GetTextReplacement::<Identity, Impl, OFFSET>,
SetTextReplacement: SetTextReplacement::<Identity, Impl, OFFSET>,
RemoveTextReplacements: RemoveTextReplacements::<Identity, Impl, OFFSET>,
OutputTextReplacements: OutputTextReplacements::<Identity, Impl, OFFSET>,
GetAssemblyOptions: GetAssemblyOptions::<Identity, Impl, OFFSET>,
AddAssemblyOptions: AddAssemblyOptions::<Identity, Impl, OFFSET>,
RemoveAssemblyOptions: RemoveAssemblyOptions::<Identity, Impl, OFFSET>,
SetAssemblyOptions: SetAssemblyOptions::<Identity, Impl, OFFSET>,
GetExpressionSyntax: GetExpressionSyntax::<Identity, Impl, OFFSET>,
SetExpressionSyntax: SetExpressionSyntax::<Identity, Impl, OFFSET>,
SetExpressionSyntaxByName: SetExpressionSyntaxByName::<Identity, Impl, OFFSET>,
GetNumberExpressionSyntaxes: GetNumberExpressionSyntaxes::<Identity, Impl, OFFSET>,
GetExpressionSyntaxNames: GetExpressionSyntaxNames::<Identity, Impl, OFFSET>,
GetNumberEvents: GetNumberEvents::<Identity, Impl, OFFSET>,
GetEventIndexDescription: GetEventIndexDescription::<Identity, Impl, OFFSET>,
GetCurrentEventIndex: GetCurrentEventIndex::<Identity, Impl, OFFSET>,
SetNextEventIndex: SetNextEventIndex::<Identity, Impl, OFFSET>,
GetLogFileWide: GetLogFileWide::<Identity, Impl, OFFSET>,
OpenLogFileWide: OpenLogFileWide::<Identity, Impl, OFFSET>,
InputWide: InputWide::<Identity, Impl, OFFSET>,
ReturnInputWide: ReturnInputWide::<Identity, Impl, OFFSET>,
OutputWide: OutputWide::<Identity, Impl, OFFSET>,
OutputVaListWide: OutputVaListWide::<Identity, Impl, OFFSET>,
ControlledOutputWide: ControlledOutputWide::<Identity, Impl, OFFSET>,
ControlledOutputVaListWide: ControlledOutputVaListWide::<Identity, Impl, OFFSET>,
OutputPromptWide: OutputPromptWide::<Identity, Impl, OFFSET>,
OutputPromptVaListWide: OutputPromptVaListWide::<Identity, Impl, OFFSET>,
GetPromptTextWide: GetPromptTextWide::<Identity, Impl, OFFSET>,
AssembleWide: AssembleWide::<Identity, Impl, OFFSET>,
DisassembleWide: DisassembleWide::<Identity, Impl, OFFSET>,
GetProcessorTypeNamesWide: GetProcessorTypeNamesWide::<Identity, Impl, OFFSET>,
GetTextMacroWide: GetTextMacroWide::<Identity, Impl, OFFSET>,
SetTextMacroWide: SetTextMacroWide::<Identity, Impl, OFFSET>,
EvaluateWide: EvaluateWide::<Identity, Impl, OFFSET>,
ExecuteWide: ExecuteWide::<Identity, Impl, OFFSET>,
ExecuteCommandFileWide: ExecuteCommandFileWide::<Identity, Impl, OFFSET>,
GetBreakpointByIndex2: GetBreakpointByIndex2::<Identity, Impl, OFFSET>,
GetBreakpointById2: GetBreakpointById2::<Identity, Impl, OFFSET>,
AddBreakpoint2: AddBreakpoint2::<Identity, Impl, OFFSET>,
RemoveBreakpoint2: RemoveBreakpoint2::<Identity, Impl, OFFSET>,
AddExtensionWide: AddExtensionWide::<Identity, Impl, OFFSET>,
GetExtensionByPathWide: GetExtensionByPathWide::<Identity, Impl, OFFSET>,
CallExtensionWide: CallExtensionWide::<Identity, Impl, OFFSET>,
GetExtensionFunctionWide: GetExtensionFunctionWide::<Identity, Impl, OFFSET>,
GetEventFilterTextWide: GetEventFilterTextWide::<Identity, Impl, OFFSET>,
GetEventFilterCommandWide: GetEventFilterCommandWide::<Identity, Impl, OFFSET>,
SetEventFilterCommandWide: SetEventFilterCommandWide::<Identity, Impl, OFFSET>,
GetSpecificFilterArgumentWide: GetSpecificFilterArgumentWide::<Identity, Impl, OFFSET>,
SetSpecificFilterArgumentWide: SetSpecificFilterArgumentWide::<Identity, Impl, OFFSET>,
GetExceptionFilterSecondCommandWide: GetExceptionFilterSecondCommandWide::<Identity, Impl, OFFSET>,
SetExceptionFilterSecondCommandWide: SetExceptionFilterSecondCommandWide::<Identity, Impl, OFFSET>,
GetLastEventInformationWide: GetLastEventInformationWide::<Identity, Impl, OFFSET>,
GetTextReplacementWide: GetTextReplacementWide::<Identity, Impl, OFFSET>,
SetTextReplacementWide: SetTextReplacementWide::<Identity, Impl, OFFSET>,
SetExpressionSyntaxByNameWide: SetExpressionSyntaxByNameWide::<Identity, Impl, OFFSET>,
GetExpressionSyntaxNamesWide: GetExpressionSyntaxNamesWide::<Identity, Impl, OFFSET>,
GetEventIndexDescriptionWide: GetEventIndexDescriptionWide::<Identity, Impl, OFFSET>,
GetLogFile2: GetLogFile2::<Identity, Impl, OFFSET>,
OpenLogFile2: OpenLogFile2::<Identity, Impl, OFFSET>,
GetLogFile2Wide: GetLogFile2Wide::<Identity, Impl, OFFSET>,
OpenLogFile2Wide: OpenLogFile2Wide::<Identity, Impl, OFFSET>,
GetSystemVersionValues: GetSystemVersionValues::<Identity, Impl, OFFSET>,
GetSystemVersionString: GetSystemVersionString::<Identity, Impl, OFFSET>,
GetSystemVersionStringWide: GetSystemVersionStringWide::<Identity, Impl, OFFSET>,
GetContextStackTrace: GetContextStackTrace::<Identity, Impl, OFFSET>,
OutputContextStackTrace: OutputContextStackTrace::<Identity, Impl, OFFSET>,
GetStoredEventInformation: GetStoredEventInformation::<Identity, Impl, OFFSET>,
GetManagedStatus: GetManagedStatus::<Identity, Impl, OFFSET>,
GetManagedStatusWide: GetManagedStatusWide::<Identity, Impl, OFFSET>,
ResetManagedStatus: ResetManagedStatus::<Identity, Impl, OFFSET>,
GetStackTraceEx: GetStackTraceEx::<Identity, Impl, OFFSET>,
OutputStackTraceEx: OutputStackTraceEx::<Identity, Impl, OFFSET>,
GetContextStackTraceEx: GetContextStackTraceEx::<Identity, Impl, OFFSET>,
OutputContextStackTraceEx: OutputContextStackTraceEx::<Identity, Impl, OFFSET>,
GetBreakpointByGuid: GetBreakpointByGuid::<Identity, Impl, OFFSET>,
GetExecutionStatusEx: GetExecutionStatusEx::<Identity, Impl, OFFSET>,
GetSynchronizationStatus: GetSynchronizationStatus::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugControl6 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
pub trait IDebugControl7_Impl: Sized {
fn GetInterrupt(&self) -> ::windows::core::Result<()>;
fn SetInterrupt(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetInterruptTimeout(&self) -> ::windows::core::Result<u32>;
fn SetInterruptTimeout(&self, seconds: u32) -> ::windows::core::Result<()>;
fn GetLogFile(&self, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn OpenLogFile(&self, file: &::windows::core::PCSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn CloseLogFile(&self) -> ::windows::core::Result<()>;
fn GetLogMask(&self) -> ::windows::core::Result<u32>;
fn SetLogMask(&self, mask: u32) -> ::windows::core::Result<()>;
fn Input(&self, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::Result<()>;
fn ReturnInput(&self, buffer: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn Output(&self, mask: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputVaList(&self, mask: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn ControlledOutput(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn ControlledOutputVaList(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn OutputPrompt(&self, outputcontrol: u32, format: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputPromptVaList(&self, outputcontrol: u32, format: &::windows::core::PCSTR, args: *const i8) -> ::windows::core::Result<()>;
fn GetPromptText(&self, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()>;
fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows::core::Result<()>;
fn GetNotifyEventHandle(&self) -> ::windows::core::Result<u64>;
fn SetNotifyEventHandle(&self, handle: u64) -> ::windows::core::Result<()>;
fn Assemble(&self, offset: u64, instr: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn Disassemble(&self, offset: u64, flags: u32, buffer: ::windows::core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::Result<()>;
fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result<u64>;
fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows::core::Result<u64>;
fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows::core::Result<()>;
fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result<u64>;
fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows::core::Result<()>;
fn GetReturnOffset(&self) -> ::windows::core::Result<u64>;
fn OutputStackTrace(&self, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows::core::Result<()>;
fn GetActualProcessorType(&self) -> ::windows::core::Result<u32>;
fn GetExecutingProcessorType(&self) -> ::windows::core::Result<u32>;
fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows::core::Result<u32>;
fn GetPossibleExecutingProcessorTypes(&self, start: u32, count: u32, types: *mut u32) -> ::windows::core::Result<()>;
fn GetNumberProcessors(&self) -> ::windows::core::Result<u32>;
fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows::core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows::core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows::core::Result<()>;
fn GetPageSize(&self) -> ::windows::core::Result<u32>;
fn IsPointer64Bit(&self) -> ::windows::core::Result<()>;
fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::Result<()>;
fn GetNumberSupportedProcessorTypes(&self) -> ::windows::core::Result<u32>;
fn GetSupportedProcessorTypes(&self, start: u32, count: u32, types: *mut u32) -> ::windows::core::Result<()>;
fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetEffectiveProcessorType(&self) -> ::windows::core::Result<u32>;
fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows::core::Result<()>;
fn GetExecutionStatus(&self) -> ::windows::core::Result<u32>;
fn SetExecutionStatus(&self, status: u32) -> ::windows::core::Result<()>;
fn GetCodeLevel(&self) -> ::windows::core::Result<u32>;
fn SetCodeLevel(&self, level: u32) -> ::windows::core::Result<()>;
fn GetEngineOptions(&self) -> ::windows::core::Result<u32>;
fn AddEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetEngineOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::Result<()>;
fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()>;
fn GetTextMacro(&self, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextMacro(&self, slot: u32, r#macro: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetRadix(&self) -> ::windows::core::Result<u32>;
fn SetRadix(&self, radix: u32) -> ::windows::core::Result<()>;
fn Evaluate(&self, expression: &::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::Result<()>;
fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()>;
fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()>;
fn Execute(&self, outputcontrol: u32, command: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn ExecuteCommandFile(&self, outputcontrol: u32, commandfile: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetNumberBreakpoints(&self) -> ::windows::core::Result<u32>;
fn GetBreakpointByIndex(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn GetBreakpointById(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn GetBreakpointParameters(&self, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()>;
fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint>;
fn RemoveBreakpoint(&self, bp: ::core::option::Option<&IDebugBreakpoint>) -> ::windows::core::Result<()>;
fn AddExtension(&self, path: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<u64>;
fn RemoveExtension(&self, handle: u64) -> ::windows::core::Result<()>;
fn GetExtensionByPath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn CallExtension(&self, handle: u64, function: &::windows::core::PCSTR, arguments: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetExtensionFunction(&self, handle: u64, funcname: &::windows::core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>;
fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::Result<()>;
fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::Result<()>;
fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::Result<()>;
fn GetEventFilterText(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn GetEventFilterCommand(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetEventFilterCommand(&self, index: u32, command: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetSpecificFilterParameters(&self, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn SetSpecificFilterParameters(&self, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn GetSpecificFilterArgument(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSpecificFilterArgument(&self, index: u32, argument: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetExceptionFilterParameters(&self, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn SetExceptionFilterParameters(&self, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()>;
fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetExceptionFilterSecondCommand(&self, index: u32, command: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()>;
fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentTimeDate(&self) -> ::windows::core::Result<u32>;
fn GetCurrentSystemUpTime(&self) -> ::windows::core::Result<u32>;
fn GetDumpFormatFlags(&self) -> ::windows::core::Result<u32>;
fn GetNumberTextReplacements(&self) -> ::windows::core::Result<u32>;
fn GetTextReplacement(&self, srctext: &::windows::core::PCSTR, index: u32, srcbuffer: ::windows::core::PSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows::core::PSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextReplacement(&self, srctext: &::windows::core::PCSTR, dsttext: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn RemoveTextReplacements(&self) -> ::windows::core::Result<()>;
fn OutputTextReplacements(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetAssemblyOptions(&self) -> ::windows::core::Result<u32>;
fn AddAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn GetExpressionSyntax(&self) -> ::windows::core::Result<u32>;
fn SetExpressionSyntax(&self, flags: u32) -> ::windows::core::Result<()>;
fn SetExpressionSyntaxByName(&self, abbrevname: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetNumberExpressionSyntaxes(&self) -> ::windows::core::Result<u32>;
fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetNumberEvents(&self) -> ::windows::core::Result<u32>;
fn GetEventIndexDescription(&self, index: u32, which: u32, buffer: &::windows::core::PCSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentEventIndex(&self) -> ::windows::core::Result<u32>;
fn SetNextEventIndex(&self, relation: u32, value: u32) -> ::windows::core::Result<u32>;
fn GetLogFileWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn OpenLogFileWide(&self, file: &::windows::core::PCWSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn InputWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::Result<()>;
fn ReturnInputWide(&self, buffer: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn OutputWide(&self, mask: u32, format: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn OutputVaListWide(&self, mask: u32, format: &::windows::core::PCWSTR, args: *const i8) -> ::windows::core::Result<()>;
fn ControlledOutputWide(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn ControlledOutputVaListWide(&self, outputcontrol: u32, mask: u32, format: &::windows::core::PCWSTR, args: *const i8) -> ::windows::core::Result<()>;
fn OutputPromptWide(&self, outputcontrol: u32, format: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn OutputPromptVaListWide(&self, outputcontrol: u32, format: &::windows::core::PCWSTR, args: *const i8) -> ::windows::core::Result<()>;
fn GetPromptTextWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn AssembleWide(&self, offset: u64, instr: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn DisassembleWide(&self, offset: u64, flags: u32, buffer: ::windows::core::PWSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::Result<()>;
fn GetProcessorTypeNamesWide(&self, r#type: u32, fullnamebuffer: ::windows::core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetTextMacroWide(&self, slot: u32, buffer: ::windows::core::PWSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextMacroWide(&self, slot: u32, r#macro: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn EvaluateWide(&self, expression: &::windows::core::PCWSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::Result<()>;
fn ExecuteWide(&self, outputcontrol: u32, command: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<()>;
fn ExecuteCommandFileWide(&self, outputcontrol: u32, commandfile: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetBreakpointByIndex2(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint2>;
fn GetBreakpointById2(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint2>;
fn AddBreakpoint2(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint2>;
fn RemoveBreakpoint2(&self, bp: ::core::option::Option<&IDebugBreakpoint2>) -> ::windows::core::Result<()>;
fn AddExtensionWide(&self, path: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<u64>;
fn GetExtensionByPathWide(&self, path: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn CallExtensionWide(&self, handle: u64, function: &::windows::core::PCWSTR, arguments: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetExtensionFunctionWide(&self, handle: u64, funcname: &::windows::core::PCWSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>;
fn GetEventFilterTextWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::Result<()>;
fn GetEventFilterCommandWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetEventFilterCommandWide(&self, index: u32, command: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSpecificFilterArgumentWide(&self, index: u32, argument: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::Result<()>;
fn SetExceptionFilterSecondCommandWide(&self, index: u32, command: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetLastEventInformationWide(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PWSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::Result<()>;
fn GetTextReplacementWide(&self, srctext: &::windows::core::PCWSTR, index: u32, srcbuffer: ::windows::core::PWSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows::core::PWSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows::core::Result<()>;
fn SetTextReplacementWide(&self, srctext: &::windows::core::PCWSTR, dsttext: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn SetExpressionSyntaxByNameWide(&self, abbrevname: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: ::windows::core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetEventIndexDescriptionWide(&self, index: u32, which: u32, buffer: &::windows::core::PCWSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::Result<()>;
fn GetLogFile2(&self, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::Result<()>;
fn OpenLogFile2(&self, file: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetLogFile2Wide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::Result<()>;
fn OpenLogFile2Wide(&self, file: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetSystemVersionValues(&self, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: *mut u32, kdminor: *mut u32) -> ::windows::core::Result<()>;
fn GetSystemVersionString(&self, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSystemVersionStringWide(&self, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetContextStackTrace(&self, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows::core::Result<()>;
fn OutputContextStackTrace(&self, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetStoredEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, context: *mut ::core::ffi::c_void, contextsize: u32, contextused: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32) -> ::windows::core::Result<()>;
fn GetManagedStatus(&self, flags: *mut u32, whichstring: u32, string: ::windows::core::PSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::Result<()>;
fn GetManagedStatusWide(&self, flags: *mut u32, whichstring: u32, string: ::windows::core::PWSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::Result<()>;
fn ResetManagedStatus(&self, flags: u32) -> ::windows::core::Result<()>;
fn GetStackTraceEx(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME_EX, framessize: u32, framesfilled: *mut u32) -> ::windows::core::Result<()>;
fn OutputStackTraceEx(&self, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetContextStackTraceEx(&self, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME_EX, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows::core::Result<()>;
fn OutputContextStackTraceEx(&self, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetBreakpointByGuid(&self, guid: *const ::windows::core::GUID) -> ::windows::core::Result<IDebugBreakpoint3>;
fn GetExecutionStatusEx(&self) -> ::windows::core::Result<u32>;
fn GetSynchronizationStatus(&self, sendsattempted: *mut u32, secondssincelastresponse: *mut u32) -> ::windows::core::Result<()>;
fn GetDebuggeeType2(&self, flags: u32, class: *mut u32, qualifier: *mut u32) -> ::windows::core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::windows::core::RuntimeName for IDebugControl7 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl IDebugControl7_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>() -> IDebugControl7_Vtbl {
unsafe extern "system" fn GetInterrupt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_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.GetInterrupt().into()
}
unsafe extern "system" fn SetInterrupt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_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.SetInterrupt(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetInterruptTimeout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetInterruptTimeout() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(seconds, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetInterruptTimeout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetInterruptTimeout(::core::mem::transmute_copy(&seconds)).into()
}
unsafe extern "system" fn GetLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::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.GetLogFile(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn OpenLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, append: super::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.OpenLogFile(::core::mem::transmute(&file), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn CloseLogFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_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.CloseLogFile().into()
}
unsafe extern "system" fn GetLogMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLogMask() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetLogMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetLogMask(::core::mem::transmute_copy(&mask)).into()
}
unsafe extern "system" fn Input<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Input(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&inputsize)).into()
}
unsafe extern "system" fn ReturnInput<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReturnInput(::core::mem::transmute(&buffer)).into()
}
unsafe extern "system" fn Output<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Output(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputVaList(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn ControlledOutput<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutput(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn ControlledOutputVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutputVaList(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn OutputPrompt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPrompt(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputPromptVaList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPromptVaList(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn GetPromptText<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPromptText(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn OutputCurrentState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputCurrentState(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn OutputVersionInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputVersionInformation(::core::mem::transmute_copy(&outputcontrol)).into()
}
unsafe extern "system" fn GetNotifyEventHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNotifyEventHandle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetNotifyEventHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNotifyEventHandle(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn Assemble<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCSTR, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Assemble(::core::mem::transmute_copy(&offset), ::core::mem::transmute(&instr)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(endoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Disassemble<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows::core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Disassemble(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&disassemblysize), ::core::mem::transmute_copy(&endoffset)).into()
}
unsafe extern "system" fn GetDisassembleEffectiveOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDisassembleEffectiveOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputDisassembly<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.OutputDisassembly(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(endoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputDisassemblyLines<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputDisassemblyLines(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&previouslines), ::core::mem::transmute_copy(&totallines), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&offsetline), ::core::mem::transmute_copy(&startoffset), ::core::mem::transmute_copy(&endoffset), ::core::mem::transmute_copy(&lineoffsets)).into()
}
unsafe extern "system" fn GetNearInstruction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNearInstruction(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&delta)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(nearoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStackTrace(::core::mem::transmute_copy(&frameoffset), ::core::mem::transmute_copy(&stackoffset), ::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framesfilled)).into()
}
unsafe extern "system" fn GetReturnOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetReturnOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OutputStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputStackTrace(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetDebuggeeType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDebuggeeType(::core::mem::transmute_copy(&class), ::core::mem::transmute_copy(&qualifier)).into()
}
unsafe extern "system" fn GetActualProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetActualProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetExecutingProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExecutingProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberPossibleExecutingProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberPossibleExecutingProcessorTypes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetPossibleExecutingProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPossibleExecutingProcessorTypes(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&types)).into()
}
unsafe extern "system" fn GetNumberProcessors<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberProcessors() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSystemVersion<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows::core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows::core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemVersion(::core::mem::transmute_copy(&platformid), ::core::mem::transmute_copy(&major), ::core::mem::transmute_copy(&minor), ::core::mem::transmute_copy(&servicepackstring), ::core::mem::transmute_copy(&servicepackstringsize), ::core::mem::transmute_copy(&servicepackstringused), ::core::mem::transmute_copy(&servicepacknumber), ::core::mem::transmute_copy(&buildstring), ::core::mem::transmute_copy(&buildstringsize), ::core::mem::transmute_copy(&buildstringused))
.into()
}
unsafe extern "system" fn GetPageSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPageSize() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(size, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsPointer64Bit<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_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.IsPointer64Bit().into()
}
unsafe extern "system" fn ReadBugCheckData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadBugCheckData(::core::mem::transmute_copy(&code), ::core::mem::transmute_copy(&arg1), ::core::mem::transmute_copy(&arg2), ::core::mem::transmute_copy(&arg3), ::core::mem::transmute_copy(&arg4)).into()
}
unsafe extern "system" fn GetNumberSupportedProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberSupportedProcessorTypes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSupportedProcessorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSupportedProcessorTypes(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&types)).into()
}
unsafe extern "system" fn GetProcessorTypeNames<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetProcessorTypeNames(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&fullnamebuffer), ::core::mem::transmute_copy(&fullnamebuffersize), ::core::mem::transmute_copy(&fullnamesize), ::core::mem::transmute_copy(&abbrevnamebuffer), ::core::mem::transmute_copy(&abbrevnamebuffersize), ::core::mem::transmute_copy(&abbrevnamesize)).into()
}
unsafe extern "system" fn GetEffectiveProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEffectiveProcessorType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEffectiveProcessorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEffectiveProcessorType(::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn GetExecutionStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExecutionStatus() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(status, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetExecutionStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExecutionStatus(::core::mem::transmute_copy(&status)).into()
}
unsafe extern "system" fn GetCodeLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCodeLevel() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(level, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCodeLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, level: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCodeLevel(::core::mem::transmute_copy(&level)).into()
}
unsafe extern "system" fn GetEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEngineOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetEngineOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEngineOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn GetSystemErrorControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemErrorControl(::core::mem::transmute_copy(&outputlevel), ::core::mem::transmute_copy(&breaklevel)).into()
}
unsafe extern "system" fn SetSystemErrorControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSystemErrorControl(::core::mem::transmute_copy(&outputlevel), ::core::mem::transmute_copy(&breaklevel)).into()
}
unsafe extern "system" fn GetTextMacro<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextMacro(::core::mem::transmute_copy(&slot), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&macrosize)).into()
}
unsafe extern "system" fn SetTextMacro<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextMacro(::core::mem::transmute_copy(&slot), ::core::mem::transmute(&r#macro)).into()
}
unsafe extern "system" fn GetRadix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRadix() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(radix, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetRadix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRadix(::core::mem::transmute_copy(&radix)).into()
}
unsafe extern "system" fn Evaluate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Evaluate(::core::mem::transmute(&expression), ::core::mem::transmute_copy(&desiredtype), ::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&remainderindex)).into()
}
unsafe extern "system" fn CoerceValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CoerceValue(::core::mem::transmute_copy(&r#in), ::core::mem::transmute_copy(&outtype), ::core::mem::transmute_copy(&out)).into()
}
unsafe extern "system" fn CoerceValues<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CoerceValues(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&r#in), ::core::mem::transmute_copy(&outtypes), ::core::mem::transmute_copy(&out)).into()
}
unsafe extern "system" fn Execute<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Execute(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&command), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn ExecuteCommandFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExecuteCommandFile(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&commandfile), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetNumberBreakpoints<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberBreakpoints() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, bp: *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.GetBreakpointByIndex(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointById<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32, bp: *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.GetBreakpointById(::core::mem::transmute_copy(&id)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBreakpointParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn AddBreakpoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *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.AddBreakpoint(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&desiredid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveBreakpoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveBreakpoint(::windows::core::from_raw_borrowed(&bp)).into()
}
unsafe extern "system" fn AddExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AddExtension(::core::mem::transmute(&path), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveExtension(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn GetExtensionByPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExtensionByPath(::core::mem::transmute(&path)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CallExtension<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCSTR, arguments: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CallExtension(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&function), ::core::mem::transmute(&arguments)).into()
}
unsafe extern "system" fn GetExtensionFunction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExtensionFunction(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&funcname), ::core::mem::transmute_copy(&function)).into()
}
unsafe extern "system" fn GetWindbgExtensionApis32<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetWindbgExtensionApis32(::core::mem::transmute_copy(&api)).into()
}
unsafe extern "system" fn GetWindbgExtensionApis64<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetWindbgExtensionApis64(::core::mem::transmute_copy(&api)).into()
}
unsafe extern "system" fn GetNumberEventFilters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNumberEventFilters(::core::mem::transmute_copy(&specificevents), ::core::mem::transmute_copy(&specificexceptions), ::core::mem::transmute_copy(&arbitraryexceptions)).into()
}
unsafe extern "system" fn GetEventFilterText<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterText(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn GetEventFilterCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetEventFilterCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventFilterCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn GetSpecificFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSpecificFilterParameters(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn SetSpecificFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSpecificFilterParameters(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetSpecificFilterArgument<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSpecificFilterArgument(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&argumentsize)).into()
}
unsafe extern "system" fn SetSpecificFilterArgument<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSpecificFilterArgument(::core::mem::transmute_copy(&index), ::core::mem::transmute(&argument)).into()
}
unsafe extern "system" fn GetExceptionFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExceptionFilterParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&codes), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn SetExceptionFilterParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExceptionFilterParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetExceptionFilterSecondCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExceptionFilterSecondCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetExceptionFilterSecondCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExceptionFilterSecondCommand(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn WaitForEvent<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WaitForEvent(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&timeout)).into()
}
unsafe extern "system" fn GetLastEventInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLastEventInformation(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&extrainformation), ::core::mem::transmute_copy(&extrainformationsize), ::core::mem::transmute_copy(&extrainformationused), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&descriptionused)).into()
}
unsafe extern "system" fn GetCurrentTimeDate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timedate: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentTimeDate() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(timedate, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentSystemUpTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentSystemUpTime() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(uptime, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDumpFormatFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, formatflags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDumpFormatFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(formatflags, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberTextReplacements<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, numrepl: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberTextReplacements() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(numrepl, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTextReplacement<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCSTR, index: u32, srcbuffer: ::windows::core::PSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows::core::PSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextReplacement(::core::mem::transmute(&srctext), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&srcbuffer), ::core::mem::transmute_copy(&srcbuffersize), ::core::mem::transmute_copy(&srcsize), ::core::mem::transmute_copy(&dstbuffer), ::core::mem::transmute_copy(&dstbuffersize), ::core::mem::transmute_copy(&dstsize)).into()
}
unsafe extern "system" fn SetTextReplacement<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCSTR, dsttext: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextReplacement(::core::mem::transmute(&srctext), ::core::mem::transmute(&dsttext)).into()
}
unsafe extern "system" fn RemoveTextReplacements<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_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.RemoveTextReplacements().into()
}
unsafe extern "system" fn OutputTextReplacements<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputTextReplacements(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetAssemblyOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAssemblyOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddAssemblyOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddAssemblyOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveAssemblyOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveAssemblyOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetAssemblyOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAssemblyOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn GetExpressionSyntax<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExpressionSyntax() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(flags, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetExpressionSyntax<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_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.SetExpressionSyntax(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn SetExpressionSyntaxByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, abbrevname: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExpressionSyntaxByName(::core::mem::transmute(&abbrevname)).into()
}
unsafe extern "system" fn GetNumberExpressionSyntaxes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberExpressionSyntaxes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetExpressionSyntaxNames<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, fullnamebuffer: ::windows::core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExpressionSyntaxNames(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&fullnamebuffer), ::core::mem::transmute_copy(&fullnamebuffersize), ::core::mem::transmute_copy(&fullnamesize), ::core::mem::transmute_copy(&abbrevnamebuffer), ::core::mem::transmute_copy(&abbrevnamebuffersize), ::core::mem::transmute_copy(&abbrevnamesize)).into()
}
unsafe extern "system" fn GetNumberEvents<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, events: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberEvents() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(events, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetEventIndexDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows::core::PCSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventIndexDescription(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&which), ::core::mem::transmute(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&descsize)).into()
}
unsafe extern "system" fn GetCurrentEventIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentEventIndex() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(index, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetNextEventIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, relation: u32, value: u32, nextindex: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SetNextEventIndex(::core::mem::transmute_copy(&relation), ::core::mem::transmute_copy(&value)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(nextindex, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetLogFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, append: *mut super::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.GetLogFileWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn OpenLogFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, append: super::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.OpenLogFileWide(::core::mem::transmute(&file), ::core::mem::transmute_copy(&append)).into()
}
unsafe extern "system" fn InputWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InputWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&inputsize)).into()
}
unsafe extern "system" fn ReturnInputWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReturnInputWide(::core::mem::transmute(&buffer)).into()
}
unsafe extern "system" fn OutputWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputWide(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputVaListWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputVaListWide(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn ControlledOutputWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutputWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn ControlledOutputVaListWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlledOutputVaListWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&mask), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn OutputPromptWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPromptWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format)).into()
}
unsafe extern "system" fn OutputPromptVaListWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputPromptVaListWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&format), ::core::mem::transmute_copy(&args)).into()
}
unsafe extern "system" fn GetPromptTextWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPromptTextWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn AssembleWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCWSTR, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AssembleWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute(&instr)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(endoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DisassembleWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows::core::PWSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DisassembleWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&disassemblysize), ::core::mem::transmute_copy(&endoffset)).into()
}
unsafe extern "system" fn GetProcessorTypeNamesWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows::core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetProcessorTypeNamesWide(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&fullnamebuffer), ::core::mem::transmute_copy(&fullnamebuffersize), ::core::mem::transmute_copy(&fullnamesize), ::core::mem::transmute_copy(&abbrevnamebuffer), ::core::mem::transmute_copy(&abbrevnamebuffersize), ::core::mem::transmute_copy(&abbrevnamesize)).into()
}
unsafe extern "system" fn GetTextMacroWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PWSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextMacroWide(::core::mem::transmute_copy(&slot), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&macrosize)).into()
}
unsafe extern "system" fn SetTextMacroWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextMacroWide(::core::mem::transmute_copy(&slot), ::core::mem::transmute(&r#macro)).into()
}
unsafe extern "system" fn EvaluateWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCWSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EvaluateWide(::core::mem::transmute(&expression), ::core::mem::transmute_copy(&desiredtype), ::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&remainderindex)).into()
}
unsafe extern "system" fn ExecuteWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExecuteWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&command), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn ExecuteCommandFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExecuteCommandFileWide(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute(&commandfile), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetBreakpointByIndex2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, bp: *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.GetBreakpointByIndex2(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBreakpointById2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32, bp: *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.GetBreakpointById2(::core::mem::transmute_copy(&id)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddBreakpoint2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *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.AddBreakpoint2(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&desiredid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveBreakpoint2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveBreakpoint2(::windows::core::from_raw_borrowed(&bp)).into()
}
unsafe extern "system" fn AddExtensionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AddExtensionWide(::core::mem::transmute(&path), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetExtensionByPathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExtensionByPathWide(::core::mem::transmute(&path)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CallExtensionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCWSTR, arguments: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CallExtensionWide(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&function), ::core::mem::transmute(&arguments)).into()
}
unsafe extern "system" fn GetExtensionFunctionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCWSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExtensionFunctionWide(::core::mem::transmute_copy(&handle), ::core::mem::transmute(&funcname), ::core::mem::transmute_copy(&function)).into()
}
unsafe extern "system" fn GetEventFilterTextWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterTextWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&textsize)).into()
}
unsafe extern "system" fn GetEventFilterCommandWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventFilterCommandWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetEventFilterCommandWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEventFilterCommandWide(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn GetSpecificFilterArgumentWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSpecificFilterArgumentWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&argumentsize)).into()
}
unsafe extern "system" fn SetSpecificFilterArgumentWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSpecificFilterArgumentWide(::core::mem::transmute_copy(&index), ::core::mem::transmute(&argument)).into()
}
unsafe extern "system" fn GetExceptionFilterSecondCommandWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExceptionFilterSecondCommandWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&commandsize)).into()
}
unsafe extern "system" fn SetExceptionFilterSecondCommandWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExceptionFilterSecondCommandWide(::core::mem::transmute_copy(&index), ::core::mem::transmute(&command)).into()
}
unsafe extern "system" fn GetLastEventInformationWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows::core::PWSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLastEventInformationWide(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&extrainformation), ::core::mem::transmute_copy(&extrainformationsize), ::core::mem::transmute_copy(&extrainformationused), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descriptionsize), ::core::mem::transmute_copy(&descriptionused)).into()
}
unsafe extern "system" fn GetTextReplacementWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCWSTR, index: u32, srcbuffer: ::windows::core::PWSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows::core::PWSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTextReplacementWide(::core::mem::transmute(&srctext), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&srcbuffer), ::core::mem::transmute_copy(&srcbuffersize), ::core::mem::transmute_copy(&srcsize), ::core::mem::transmute_copy(&dstbuffer), ::core::mem::transmute_copy(&dstbuffersize), ::core::mem::transmute_copy(&dstsize)).into()
}
unsafe extern "system" fn SetTextReplacementWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCWSTR, dsttext: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTextReplacementWide(::core::mem::transmute(&srctext), ::core::mem::transmute(&dsttext)).into()
}
unsafe extern "system" fn SetExpressionSyntaxByNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, abbrevname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExpressionSyntaxByNameWide(::core::mem::transmute(&abbrevname)).into()
}
unsafe extern "system" fn GetExpressionSyntaxNamesWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, fullnamebuffer: ::windows::core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows::core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetExpressionSyntaxNamesWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&fullnamebuffer), ::core::mem::transmute_copy(&fullnamebuffersize), ::core::mem::transmute_copy(&fullnamesize), ::core::mem::transmute_copy(&abbrevnamebuffer), ::core::mem::transmute_copy(&abbrevnamebuffersize), ::core::mem::transmute_copy(&abbrevnamesize)).into()
}
unsafe extern "system" fn GetEventIndexDescriptionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows::core::PCWSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEventIndexDescriptionWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&which), ::core::mem::transmute(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&descsize)).into()
}
unsafe extern "system" fn GetLogFile2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLogFile2(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn OpenLogFile2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenLogFile2(::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetLogFile2Wide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLogFile2Wide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn OpenLogFile2Wide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenLogFile2Wide(::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetSystemVersionValues<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: *mut u32, kdminor: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemVersionValues(::core::mem::transmute_copy(&platformid), ::core::mem::transmute_copy(&win32major), ::core::mem::transmute_copy(&win32minor), ::core::mem::transmute_copy(&kdmajor), ::core::mem::transmute_copy(&kdminor)).into()
}
unsafe extern "system" fn GetSystemVersionString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemVersionString(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetSystemVersionStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemVersionStringWide(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetContextStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetContextStackTrace(::core::mem::transmute_copy(&startcontext), ::core::mem::transmute_copy(&startcontextsize), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framecontexts), ::core::mem::transmute_copy(&framecontextssize), ::core::mem::transmute_copy(&framecontextsentrysize), ::core::mem::transmute_copy(&framesfilled)).into()
}
unsafe extern "system" fn OutputContextStackTrace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputContextStackTrace(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framecontexts), ::core::mem::transmute_copy(&framecontextssize), ::core::mem::transmute_copy(&framecontextsentrysize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetStoredEventInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, context: *mut ::core::ffi::c_void, contextsize: u32, contextused: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStoredEventInformation(::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&threadid), ::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize), ::core::mem::transmute_copy(&contextused), ::core::mem::transmute_copy(&extrainformation), ::core::mem::transmute_copy(&extrainformationsize), ::core::mem::transmute_copy(&extrainformationused)).into()
}
unsafe extern "system" fn GetManagedStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows::core::PSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetManagedStatus(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&whichstring), ::core::mem::transmute_copy(&string), ::core::mem::transmute_copy(&stringsize), ::core::mem::transmute_copy(&stringneeded)).into()
}
unsafe extern "system" fn GetManagedStatusWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows::core::PWSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetManagedStatusWide(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&whichstring), ::core::mem::transmute_copy(&string), ::core::mem::transmute_copy(&stringsize), ::core::mem::transmute_copy(&stringneeded)).into()
}
unsafe extern "system" fn ResetManagedStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_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.ResetManagedStatus(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetStackTraceEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME_EX, framessize: u32, framesfilled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStackTraceEx(::core::mem::transmute_copy(&frameoffset), ::core::mem::transmute_copy(&stackoffset), ::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framesfilled)).into()
}
unsafe extern "system" fn OutputStackTraceEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputStackTraceEx(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetContextStackTraceEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME_EX, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetContextStackTraceEx(::core::mem::transmute_copy(&startcontext), ::core::mem::transmute_copy(&startcontextsize), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framecontexts), ::core::mem::transmute_copy(&framecontextssize), ::core::mem::transmute_copy(&framecontextsentrysize), ::core::mem::transmute_copy(&framesfilled)).into()
}
unsafe extern "system" fn OutputContextStackTraceEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputContextStackTraceEx(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&frames), ::core::mem::transmute_copy(&framessize), ::core::mem::transmute_copy(&framecontexts), ::core::mem::transmute_copy(&framecontextssize), ::core::mem::transmute_copy(&framecontextsentrysize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetBreakpointByGuid<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guid: *const ::windows::core::GUID, bp: *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.GetBreakpointByGuid(::core::mem::transmute_copy(&guid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(bp, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetExecutionStatusEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetExecutionStatusEx() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(status, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSynchronizationStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sendsattempted: *mut u32, secondssincelastresponse: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSynchronizationStatus(::core::mem::transmute_copy(&sendsattempted), ::core::mem::transmute_copy(&secondssincelastresponse)).into()
}
unsafe extern "system" fn GetDebuggeeType2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugControl7_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, class: *mut u32, qualifier: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDebuggeeType2(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&class), ::core::mem::transmute_copy(&qualifier)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetInterrupt: GetInterrupt::<Identity, Impl, OFFSET>,
SetInterrupt: SetInterrupt::<Identity, Impl, OFFSET>,
GetInterruptTimeout: GetInterruptTimeout::<Identity, Impl, OFFSET>,
SetInterruptTimeout: SetInterruptTimeout::<Identity, Impl, OFFSET>,
GetLogFile: GetLogFile::<Identity, Impl, OFFSET>,
OpenLogFile: OpenLogFile::<Identity, Impl, OFFSET>,
CloseLogFile: CloseLogFile::<Identity, Impl, OFFSET>,
GetLogMask: GetLogMask::<Identity, Impl, OFFSET>,
SetLogMask: SetLogMask::<Identity, Impl, OFFSET>,
Input: Input::<Identity, Impl, OFFSET>,
ReturnInput: ReturnInput::<Identity, Impl, OFFSET>,
Output: Output::<Identity, Impl, OFFSET>,
OutputVaList: OutputVaList::<Identity, Impl, OFFSET>,
ControlledOutput: ControlledOutput::<Identity, Impl, OFFSET>,
ControlledOutputVaList: ControlledOutputVaList::<Identity, Impl, OFFSET>,
OutputPrompt: OutputPrompt::<Identity, Impl, OFFSET>,
OutputPromptVaList: OutputPromptVaList::<Identity, Impl, OFFSET>,
GetPromptText: GetPromptText::<Identity, Impl, OFFSET>,
OutputCurrentState: OutputCurrentState::<Identity, Impl, OFFSET>,
OutputVersionInformation: OutputVersionInformation::<Identity, Impl, OFFSET>,
GetNotifyEventHandle: GetNotifyEventHandle::<Identity, Impl, OFFSET>,
SetNotifyEventHandle: SetNotifyEventHandle::<Identity, Impl, OFFSET>,
Assemble: Assemble::<Identity, Impl, OFFSET>,
Disassemble: Disassemble::<Identity, Impl, OFFSET>,
GetDisassembleEffectiveOffset: GetDisassembleEffectiveOffset::<Identity, Impl, OFFSET>,
OutputDisassembly: OutputDisassembly::<Identity, Impl, OFFSET>,
OutputDisassemblyLines: OutputDisassemblyLines::<Identity, Impl, OFFSET>,
GetNearInstruction: GetNearInstruction::<Identity, Impl, OFFSET>,
GetStackTrace: GetStackTrace::<Identity, Impl, OFFSET>,
GetReturnOffset: GetReturnOffset::<Identity, Impl, OFFSET>,
OutputStackTrace: OutputStackTrace::<Identity, Impl, OFFSET>,
GetDebuggeeType: GetDebuggeeType::<Identity, Impl, OFFSET>,
GetActualProcessorType: GetActualProcessorType::<Identity, Impl, OFFSET>,
GetExecutingProcessorType: GetExecutingProcessorType::<Identity, Impl, OFFSET>,
GetNumberPossibleExecutingProcessorTypes: GetNumberPossibleExecutingProcessorTypes::<Identity, Impl, OFFSET>,
GetPossibleExecutingProcessorTypes: GetPossibleExecutingProcessorTypes::<Identity, Impl, OFFSET>,
GetNumberProcessors: GetNumberProcessors::<Identity, Impl, OFFSET>,
GetSystemVersion: GetSystemVersion::<Identity, Impl, OFFSET>,
GetPageSize: GetPageSize::<Identity, Impl, OFFSET>,
IsPointer64Bit: IsPointer64Bit::<Identity, Impl, OFFSET>,
ReadBugCheckData: ReadBugCheckData::<Identity, Impl, OFFSET>,
GetNumberSupportedProcessorTypes: GetNumberSupportedProcessorTypes::<Identity, Impl, OFFSET>,
GetSupportedProcessorTypes: GetSupportedProcessorTypes::<Identity, Impl, OFFSET>,
GetProcessorTypeNames: GetProcessorTypeNames::<Identity, Impl, OFFSET>,
GetEffectiveProcessorType: GetEffectiveProcessorType::<Identity, Impl, OFFSET>,
SetEffectiveProcessorType: SetEffectiveProcessorType::<Identity, Impl, OFFSET>,
GetExecutionStatus: GetExecutionStatus::<Identity, Impl, OFFSET>,
SetExecutionStatus: SetExecutionStatus::<Identity, Impl, OFFSET>,
GetCodeLevel: GetCodeLevel::<Identity, Impl, OFFSET>,
SetCodeLevel: SetCodeLevel::<Identity, Impl, OFFSET>,
GetEngineOptions: GetEngineOptions::<Identity, Impl, OFFSET>,
AddEngineOptions: AddEngineOptions::<Identity, Impl, OFFSET>,
RemoveEngineOptions: RemoveEngineOptions::<Identity, Impl, OFFSET>,
SetEngineOptions: SetEngineOptions::<Identity, Impl, OFFSET>,
GetSystemErrorControl: GetSystemErrorControl::<Identity, Impl, OFFSET>,
SetSystemErrorControl: SetSystemErrorControl::<Identity, Impl, OFFSET>,
GetTextMacro: GetTextMacro::<Identity, Impl, OFFSET>,
SetTextMacro: SetTextMacro::<Identity, Impl, OFFSET>,
GetRadix: GetRadix::<Identity, Impl, OFFSET>,
SetRadix: SetRadix::<Identity, Impl, OFFSET>,
Evaluate: Evaluate::<Identity, Impl, OFFSET>,
CoerceValue: CoerceValue::<Identity, Impl, OFFSET>,
CoerceValues: CoerceValues::<Identity, Impl, OFFSET>,
Execute: Execute::<Identity, Impl, OFFSET>,
ExecuteCommandFile: ExecuteCommandFile::<Identity, Impl, OFFSET>,
GetNumberBreakpoints: GetNumberBreakpoints::<Identity, Impl, OFFSET>,
GetBreakpointByIndex: GetBreakpointByIndex::<Identity, Impl, OFFSET>,
GetBreakpointById: GetBreakpointById::<Identity, Impl, OFFSET>,
GetBreakpointParameters: GetBreakpointParameters::<Identity, Impl, OFFSET>,
AddBreakpoint: AddBreakpoint::<Identity, Impl, OFFSET>,
RemoveBreakpoint: RemoveBreakpoint::<Identity, Impl, OFFSET>,
AddExtension: AddExtension::<Identity, Impl, OFFSET>,
RemoveExtension: RemoveExtension::<Identity, Impl, OFFSET>,
GetExtensionByPath: GetExtensionByPath::<Identity, Impl, OFFSET>,
CallExtension: CallExtension::<Identity, Impl, OFFSET>,
GetExtensionFunction: GetExtensionFunction::<Identity, Impl, OFFSET>,
GetWindbgExtensionApis32: GetWindbgExtensionApis32::<Identity, Impl, OFFSET>,
GetWindbgExtensionApis64: GetWindbgExtensionApis64::<Identity, Impl, OFFSET>,
GetNumberEventFilters: GetNumberEventFilters::<Identity, Impl, OFFSET>,
GetEventFilterText: GetEventFilterText::<Identity, Impl, OFFSET>,
GetEventFilterCommand: GetEventFilterCommand::<Identity, Impl, OFFSET>,
SetEventFilterCommand: SetEventFilterCommand::<Identity, Impl, OFFSET>,
GetSpecificFilterParameters: GetSpecificFilterParameters::<Identity, Impl, OFFSET>,
SetSpecificFilterParameters: SetSpecificFilterParameters::<Identity, Impl, OFFSET>,
GetSpecificFilterArgument: GetSpecificFilterArgument::<Identity, Impl, OFFSET>,
SetSpecificFilterArgument: SetSpecificFilterArgument::<Identity, Impl, OFFSET>,
GetExceptionFilterParameters: GetExceptionFilterParameters::<Identity, Impl, OFFSET>,
SetExceptionFilterParameters: SetExceptionFilterParameters::<Identity, Impl, OFFSET>,
GetExceptionFilterSecondCommand: GetExceptionFilterSecondCommand::<Identity, Impl, OFFSET>,
SetExceptionFilterSecondCommand: SetExceptionFilterSecondCommand::<Identity, Impl, OFFSET>,
WaitForEvent: WaitForEvent::<Identity, Impl, OFFSET>,
GetLastEventInformation: GetLastEventInformation::<Identity, Impl, OFFSET>,
GetCurrentTimeDate: GetCurrentTimeDate::<Identity, Impl, OFFSET>,
GetCurrentSystemUpTime: GetCurrentSystemUpTime::<Identity, Impl, OFFSET>,
GetDumpFormatFlags: GetDumpFormatFlags::<Identity, Impl, OFFSET>,
GetNumberTextReplacements: GetNumberTextReplacements::<Identity, Impl, OFFSET>,
GetTextReplacement: GetTextReplacement::<Identity, Impl, OFFSET>,
SetTextReplacement: SetTextReplacement::<Identity, Impl, OFFSET>,
RemoveTextReplacements: RemoveTextReplacements::<Identity, Impl, OFFSET>,
OutputTextReplacements: OutputTextReplacements::<Identity, Impl, OFFSET>,
GetAssemblyOptions: GetAssemblyOptions::<Identity, Impl, OFFSET>,
AddAssemblyOptions: AddAssemblyOptions::<Identity, Impl, OFFSET>,
RemoveAssemblyOptions: RemoveAssemblyOptions::<Identity, Impl, OFFSET>,
SetAssemblyOptions: SetAssemblyOptions::<Identity, Impl, OFFSET>,
GetExpressionSyntax: GetExpressionSyntax::<Identity, Impl, OFFSET>,
SetExpressionSyntax: SetExpressionSyntax::<Identity, Impl, OFFSET>,
SetExpressionSyntaxByName: SetExpressionSyntaxByName::<Identity, Impl, OFFSET>,
GetNumberExpressionSyntaxes: GetNumberExpressionSyntaxes::<Identity, Impl, OFFSET>,
GetExpressionSyntaxNames: GetExpressionSyntaxNames::<Identity, Impl, OFFSET>,
GetNumberEvents: GetNumberEvents::<Identity, Impl, OFFSET>,
GetEventIndexDescription: GetEventIndexDescription::<Identity, Impl, OFFSET>,
GetCurrentEventIndex: GetCurrentEventIndex::<Identity, Impl, OFFSET>,
SetNextEventIndex: SetNextEventIndex::<Identity, Impl, OFFSET>,
GetLogFileWide: GetLogFileWide::<Identity, Impl, OFFSET>,
OpenLogFileWide: OpenLogFileWide::<Identity, Impl, OFFSET>,
InputWide: InputWide::<Identity, Impl, OFFSET>,
ReturnInputWide: ReturnInputWide::<Identity, Impl, OFFSET>,
OutputWide: OutputWide::<Identity, Impl, OFFSET>,
OutputVaListWide: OutputVaListWide::<Identity, Impl, OFFSET>,
ControlledOutputWide: ControlledOutputWide::<Identity, Impl, OFFSET>,
ControlledOutputVaListWide: ControlledOutputVaListWide::<Identity, Impl, OFFSET>,
OutputPromptWide: OutputPromptWide::<Identity, Impl, OFFSET>,
OutputPromptVaListWide: OutputPromptVaListWide::<Identity, Impl, OFFSET>,
GetPromptTextWide: GetPromptTextWide::<Identity, Impl, OFFSET>,
AssembleWide: AssembleWide::<Identity, Impl, OFFSET>,
DisassembleWide: DisassembleWide::<Identity, Impl, OFFSET>,
GetProcessorTypeNamesWide: GetProcessorTypeNamesWide::<Identity, Impl, OFFSET>,
GetTextMacroWide: GetTextMacroWide::<Identity, Impl, OFFSET>,
SetTextMacroWide: SetTextMacroWide::<Identity, Impl, OFFSET>,
EvaluateWide: EvaluateWide::<Identity, Impl, OFFSET>,
ExecuteWide: ExecuteWide::<Identity, Impl, OFFSET>,
ExecuteCommandFileWide: ExecuteCommandFileWide::<Identity, Impl, OFFSET>,
GetBreakpointByIndex2: GetBreakpointByIndex2::<Identity, Impl, OFFSET>,
GetBreakpointById2: GetBreakpointById2::<Identity, Impl, OFFSET>,
AddBreakpoint2: AddBreakpoint2::<Identity, Impl, OFFSET>,
RemoveBreakpoint2: RemoveBreakpoint2::<Identity, Impl, OFFSET>,
AddExtensionWide: AddExtensionWide::<Identity, Impl, OFFSET>,
GetExtensionByPathWide: GetExtensionByPathWide::<Identity, Impl, OFFSET>,
CallExtensionWide: CallExtensionWide::<Identity, Impl, OFFSET>,
GetExtensionFunctionWide: GetExtensionFunctionWide::<Identity, Impl, OFFSET>,
GetEventFilterTextWide: GetEventFilterTextWide::<Identity, Impl, OFFSET>,
GetEventFilterCommandWide: GetEventFilterCommandWide::<Identity, Impl, OFFSET>,
SetEventFilterCommandWide: SetEventFilterCommandWide::<Identity, Impl, OFFSET>,
GetSpecificFilterArgumentWide: GetSpecificFilterArgumentWide::<Identity, Impl, OFFSET>,
SetSpecificFilterArgumentWide: SetSpecificFilterArgumentWide::<Identity, Impl, OFFSET>,
GetExceptionFilterSecondCommandWide: GetExceptionFilterSecondCommandWide::<Identity, Impl, OFFSET>,
SetExceptionFilterSecondCommandWide: SetExceptionFilterSecondCommandWide::<Identity, Impl, OFFSET>,
GetLastEventInformationWide: GetLastEventInformationWide::<Identity, Impl, OFFSET>,
GetTextReplacementWide: GetTextReplacementWide::<Identity, Impl, OFFSET>,
SetTextReplacementWide: SetTextReplacementWide::<Identity, Impl, OFFSET>,
SetExpressionSyntaxByNameWide: SetExpressionSyntaxByNameWide::<Identity, Impl, OFFSET>,
GetExpressionSyntaxNamesWide: GetExpressionSyntaxNamesWide::<Identity, Impl, OFFSET>,
GetEventIndexDescriptionWide: GetEventIndexDescriptionWide::<Identity, Impl, OFFSET>,
GetLogFile2: GetLogFile2::<Identity, Impl, OFFSET>,
OpenLogFile2: OpenLogFile2::<Identity, Impl, OFFSET>,
GetLogFile2Wide: GetLogFile2Wide::<Identity, Impl, OFFSET>,
OpenLogFile2Wide: OpenLogFile2Wide::<Identity, Impl, OFFSET>,
GetSystemVersionValues: GetSystemVersionValues::<Identity, Impl, OFFSET>,
GetSystemVersionString: GetSystemVersionString::<Identity, Impl, OFFSET>,
GetSystemVersionStringWide: GetSystemVersionStringWide::<Identity, Impl, OFFSET>,
GetContextStackTrace: GetContextStackTrace::<Identity, Impl, OFFSET>,
OutputContextStackTrace: OutputContextStackTrace::<Identity, Impl, OFFSET>,
GetStoredEventInformation: GetStoredEventInformation::<Identity, Impl, OFFSET>,
GetManagedStatus: GetManagedStatus::<Identity, Impl, OFFSET>,
GetManagedStatusWide: GetManagedStatusWide::<Identity, Impl, OFFSET>,
ResetManagedStatus: ResetManagedStatus::<Identity, Impl, OFFSET>,
GetStackTraceEx: GetStackTraceEx::<Identity, Impl, OFFSET>,
OutputStackTraceEx: OutputStackTraceEx::<Identity, Impl, OFFSET>,
GetContextStackTraceEx: GetContextStackTraceEx::<Identity, Impl, OFFSET>,
OutputContextStackTraceEx: OutputContextStackTraceEx::<Identity, Impl, OFFSET>,
GetBreakpointByGuid: GetBreakpointByGuid::<Identity, Impl, OFFSET>,
GetExecutionStatusEx: GetExecutionStatusEx::<Identity, Impl, OFFSET>,
GetSynchronizationStatus: GetSynchronizationStatus::<Identity, Impl, OFFSET>,
GetDebuggeeType2: GetDebuggeeType2::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugControl7 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugDataSpaces_Impl: Sized {
fn ReadVirtual(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteVirtual(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn SearchVirtual(&self, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32) -> ::windows::core::Result<u64>;
fn ReadVirtualUncached(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteVirtualUncached(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn ReadPointersVirtual(&self, count: u32, offset: u64, ptrs: *mut u64) -> ::windows::core::Result<()>;
fn WritePointersVirtual(&self, count: u32, offset: u64, ptrs: *const u64) -> ::windows::core::Result<()>;
fn ReadPhysical(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WritePhysical(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn ReadControl(&self, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteControl(&self, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn ReadIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn ReadMsr(&self, msr: u32) -> ::windows::core::Result<u64>;
fn WriteMsr(&self, msr: u32, value: u64) -> ::windows::core::Result<()>;
fn ReadBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn CheckLowMemory(&self) -> ::windows::core::Result<()>;
fn ReadDebuggerData(&self, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::Result<()>;
fn ReadProcessorSystemData(&self, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugDataSpaces {}
impl IDebugDataSpaces_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_Impl, const OFFSET: isize>() -> IDebugDataSpaces_Vtbl {
unsafe extern "system" fn ReadVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn SearchVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32, matchoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SearchVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&length), ::core::mem::transmute_copy(&pattern), ::core::mem::transmute_copy(&patternsize), ::core::mem::transmute_copy(&patterngranularity)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(matchoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ReadVirtualUncached<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadVirtualUncached(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteVirtualUncached<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteVirtualUncached(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn ReadPointersVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadPointersVirtual(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&ptrs)).into()
}
unsafe extern "system" fn WritePointersVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *const u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WritePointersVirtual(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&ptrs)).into()
}
unsafe extern "system" fn ReadPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadPhysical(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WritePhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WritePhysical(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn ReadControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadControl(::core::mem::transmute_copy(&processor), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteControl(::core::mem::transmute_copy(&processor), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn ReadIo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadIo(::core::mem::transmute_copy(&interfacetype), ::core::mem::transmute_copy(&busnumber), ::core::mem::transmute_copy(&addressspace), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteIo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteIo(::core::mem::transmute_copy(&interfacetype), ::core::mem::transmute_copy(&busnumber), ::core::mem::transmute_copy(&addressspace), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn ReadMsr<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, msr: u32, value: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ReadMsr(::core::mem::transmute_copy(&msr)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn WriteMsr<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, msr: u32, value: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteMsr(::core::mem::transmute_copy(&msr), ::core::mem::transmute_copy(&value)).into()
}
unsafe extern "system" fn ReadBusData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadBusData(::core::mem::transmute_copy(&busdatatype), ::core::mem::transmute_copy(&busnumber), ::core::mem::transmute_copy(&slotnumber), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteBusData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteBusData(::core::mem::transmute_copy(&busdatatype), ::core::mem::transmute_copy(&busnumber), ::core::mem::transmute_copy(&slotnumber), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn CheckLowMemory<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_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.CheckLowMemory().into()
}
unsafe extern "system" fn ReadDebuggerData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadDebuggerData(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&datasize)).into()
}
unsafe extern "system" fn ReadProcessorSystemData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadProcessorSystemData(::core::mem::transmute_copy(&processor), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&datasize)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
ReadVirtual: ReadVirtual::<Identity, Impl, OFFSET>,
WriteVirtual: WriteVirtual::<Identity, Impl, OFFSET>,
SearchVirtual: SearchVirtual::<Identity, Impl, OFFSET>,
ReadVirtualUncached: ReadVirtualUncached::<Identity, Impl, OFFSET>,
WriteVirtualUncached: WriteVirtualUncached::<Identity, Impl, OFFSET>,
ReadPointersVirtual: ReadPointersVirtual::<Identity, Impl, OFFSET>,
WritePointersVirtual: WritePointersVirtual::<Identity, Impl, OFFSET>,
ReadPhysical: ReadPhysical::<Identity, Impl, OFFSET>,
WritePhysical: WritePhysical::<Identity, Impl, OFFSET>,
ReadControl: ReadControl::<Identity, Impl, OFFSET>,
WriteControl: WriteControl::<Identity, Impl, OFFSET>,
ReadIo: ReadIo::<Identity, Impl, OFFSET>,
WriteIo: WriteIo::<Identity, Impl, OFFSET>,
ReadMsr: ReadMsr::<Identity, Impl, OFFSET>,
WriteMsr: WriteMsr::<Identity, Impl, OFFSET>,
ReadBusData: ReadBusData::<Identity, Impl, OFFSET>,
WriteBusData: WriteBusData::<Identity, Impl, OFFSET>,
CheckLowMemory: CheckLowMemory::<Identity, Impl, OFFSET>,
ReadDebuggerData: ReadDebuggerData::<Identity, Impl, OFFSET>,
ReadProcessorSystemData: ReadProcessorSystemData::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugDataSpaces as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_System_Memory\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Memory")]
pub trait IDebugDataSpaces2_Impl: Sized {
fn ReadVirtual(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteVirtual(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn SearchVirtual(&self, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32) -> ::windows::core::Result<u64>;
fn ReadVirtualUncached(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteVirtualUncached(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn ReadPointersVirtual(&self, count: u32, offset: u64, ptrs: *mut u64) -> ::windows::core::Result<()>;
fn WritePointersVirtual(&self, count: u32, offset: u64, ptrs: *const u64) -> ::windows::core::Result<()>;
fn ReadPhysical(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WritePhysical(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn ReadControl(&self, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteControl(&self, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn ReadIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn ReadMsr(&self, msr: u32) -> ::windows::core::Result<u64>;
fn WriteMsr(&self, msr: u32, value: u64) -> ::windows::core::Result<()>;
fn ReadBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn CheckLowMemory(&self) -> ::windows::core::Result<()>;
fn ReadDebuggerData(&self, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::Result<()>;
fn ReadProcessorSystemData(&self, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::Result<()>;
fn VirtualToPhysical(&self, r#virtual: u64) -> ::windows::core::Result<u64>;
fn GetVirtualTranslationPhysicalOffsets(&self, r#virtual: u64, offsets: *mut u64, offsetssize: u32, levels: *mut u32) -> ::windows::core::Result<()>;
fn ReadHandleData(&self, handle: u64, datatype: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::Result<()>;
fn FillVirtual(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows::core::Result<()>;
fn FillPhysical(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows::core::Result<()>;
fn QueryVirtual(&self, offset: u64, info: *mut super::super::super::Memory::MEMORY_BASIC_INFORMATION64) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_System_Memory")]
impl ::windows::core::RuntimeName for IDebugDataSpaces2 {}
#[cfg(feature = "Win32_System_Memory")]
impl IDebugDataSpaces2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>() -> IDebugDataSpaces2_Vtbl {
unsafe extern "system" fn ReadVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn SearchVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32, matchoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SearchVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&length), ::core::mem::transmute_copy(&pattern), ::core::mem::transmute_copy(&patternsize), ::core::mem::transmute_copy(&patterngranularity)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(matchoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ReadVirtualUncached<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadVirtualUncached(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteVirtualUncached<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteVirtualUncached(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn ReadPointersVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadPointersVirtual(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&ptrs)).into()
}
unsafe extern "system" fn WritePointersVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *const u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WritePointersVirtual(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&ptrs)).into()
}
unsafe extern "system" fn ReadPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadPhysical(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WritePhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WritePhysical(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn ReadControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadControl(::core::mem::transmute_copy(&processor), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteControl(::core::mem::transmute_copy(&processor), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn ReadIo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadIo(::core::mem::transmute_copy(&interfacetype), ::core::mem::transmute_copy(&busnumber), ::core::mem::transmute_copy(&addressspace), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteIo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteIo(::core::mem::transmute_copy(&interfacetype), ::core::mem::transmute_copy(&busnumber), ::core::mem::transmute_copy(&addressspace), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn ReadMsr<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, msr: u32, value: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ReadMsr(::core::mem::transmute_copy(&msr)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn WriteMsr<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, msr: u32, value: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteMsr(::core::mem::transmute_copy(&msr), ::core::mem::transmute_copy(&value)).into()
}
unsafe extern "system" fn ReadBusData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadBusData(::core::mem::transmute_copy(&busdatatype), ::core::mem::transmute_copy(&busnumber), ::core::mem::transmute_copy(&slotnumber), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteBusData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteBusData(::core::mem::transmute_copy(&busdatatype), ::core::mem::transmute_copy(&busnumber), ::core::mem::transmute_copy(&slotnumber), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn CheckLowMemory<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_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.CheckLowMemory().into()
}
unsafe extern "system" fn ReadDebuggerData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadDebuggerData(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&datasize)).into()
}
unsafe extern "system" fn ReadProcessorSystemData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadProcessorSystemData(::core::mem::transmute_copy(&processor), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&datasize)).into()
}
unsafe extern "system" fn VirtualToPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#virtual: u64, physical: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.VirtualToPhysical(::core::mem::transmute_copy(&r#virtual)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(physical, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetVirtualTranslationPhysicalOffsets<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#virtual: u64, offsets: *mut u64, offsetssize: u32, levels: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetVirtualTranslationPhysicalOffsets(::core::mem::transmute_copy(&r#virtual), ::core::mem::transmute_copy(&offsets), ::core::mem::transmute_copy(&offsetssize), ::core::mem::transmute_copy(&levels)).into()
}
unsafe extern "system" fn ReadHandleData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, datatype: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadHandleData(::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&datatype), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&datasize)).into()
}
unsafe extern "system" fn FillVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FillVirtual(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&size), ::core::mem::transmute_copy(&pattern), ::core::mem::transmute_copy(&patternsize), ::core::mem::transmute_copy(&filled)).into()
}
unsafe extern "system" fn FillPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FillPhysical(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&size), ::core::mem::transmute_copy(&pattern), ::core::mem::transmute_copy(&patternsize), ::core::mem::transmute_copy(&filled)).into()
}
unsafe extern "system" fn QueryVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, info: *mut super::super::super::Memory::MEMORY_BASIC_INFORMATION64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.QueryVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&info)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
ReadVirtual: ReadVirtual::<Identity, Impl, OFFSET>,
WriteVirtual: WriteVirtual::<Identity, Impl, OFFSET>,
SearchVirtual: SearchVirtual::<Identity, Impl, OFFSET>,
ReadVirtualUncached: ReadVirtualUncached::<Identity, Impl, OFFSET>,
WriteVirtualUncached: WriteVirtualUncached::<Identity, Impl, OFFSET>,
ReadPointersVirtual: ReadPointersVirtual::<Identity, Impl, OFFSET>,
WritePointersVirtual: WritePointersVirtual::<Identity, Impl, OFFSET>,
ReadPhysical: ReadPhysical::<Identity, Impl, OFFSET>,
WritePhysical: WritePhysical::<Identity, Impl, OFFSET>,
ReadControl: ReadControl::<Identity, Impl, OFFSET>,
WriteControl: WriteControl::<Identity, Impl, OFFSET>,
ReadIo: ReadIo::<Identity, Impl, OFFSET>,
WriteIo: WriteIo::<Identity, Impl, OFFSET>,
ReadMsr: ReadMsr::<Identity, Impl, OFFSET>,
WriteMsr: WriteMsr::<Identity, Impl, OFFSET>,
ReadBusData: ReadBusData::<Identity, Impl, OFFSET>,
WriteBusData: WriteBusData::<Identity, Impl, OFFSET>,
CheckLowMemory: CheckLowMemory::<Identity, Impl, OFFSET>,
ReadDebuggerData: ReadDebuggerData::<Identity, Impl, OFFSET>,
ReadProcessorSystemData: ReadProcessorSystemData::<Identity, Impl, OFFSET>,
VirtualToPhysical: VirtualToPhysical::<Identity, Impl, OFFSET>,
GetVirtualTranslationPhysicalOffsets: GetVirtualTranslationPhysicalOffsets::<Identity, Impl, OFFSET>,
ReadHandleData: ReadHandleData::<Identity, Impl, OFFSET>,
FillVirtual: FillVirtual::<Identity, Impl, OFFSET>,
FillPhysical: FillPhysical::<Identity, Impl, OFFSET>,
QueryVirtual: QueryVirtual::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugDataSpaces2 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_System_Memory\"`, `\"Win32_System_SystemInformation\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_System_Memory", feature = "Win32_System_SystemInformation"))]
pub trait IDebugDataSpaces3_Impl: Sized {
fn ReadVirtual(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteVirtual(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn SearchVirtual(&self, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32) -> ::windows::core::Result<u64>;
fn ReadVirtualUncached(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteVirtualUncached(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn ReadPointersVirtual(&self, count: u32, offset: u64, ptrs: *mut u64) -> ::windows::core::Result<()>;
fn WritePointersVirtual(&self, count: u32, offset: u64, ptrs: *const u64) -> ::windows::core::Result<()>;
fn ReadPhysical(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WritePhysical(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn ReadControl(&self, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteControl(&self, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn ReadIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn ReadMsr(&self, msr: u32) -> ::windows::core::Result<u64>;
fn WriteMsr(&self, msr: u32, value: u64) -> ::windows::core::Result<()>;
fn ReadBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn CheckLowMemory(&self) -> ::windows::core::Result<()>;
fn ReadDebuggerData(&self, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::Result<()>;
fn ReadProcessorSystemData(&self, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::Result<()>;
fn VirtualToPhysical(&self, r#virtual: u64) -> ::windows::core::Result<u64>;
fn GetVirtualTranslationPhysicalOffsets(&self, r#virtual: u64, offsets: *mut u64, offsetssize: u32, levels: *mut u32) -> ::windows::core::Result<()>;
fn ReadHandleData(&self, handle: u64, datatype: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::Result<()>;
fn FillVirtual(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows::core::Result<()>;
fn FillPhysical(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows::core::Result<()>;
fn QueryVirtual(&self, offset: u64, info: *mut super::super::super::Memory::MEMORY_BASIC_INFORMATION64) -> ::windows::core::Result<()>;
fn ReadImageNtHeaders(&self, imagebase: u64, headers: *mut super::IMAGE_NT_HEADERS64) -> ::windows::core::Result<()>;
fn ReadTagged(&self, tag: *const ::windows::core::GUID, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, totalsize: *mut u32) -> ::windows::core::Result<()>;
fn StartEnumTagged(&self) -> ::windows::core::Result<u64>;
fn GetNextTagged(&self, handle: u64, tag: *mut ::windows::core::GUID, size: *mut u32) -> ::windows::core::Result<()>;
fn EndEnumTagged(&self, handle: u64) -> ::windows::core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Memory", feature = "Win32_System_SystemInformation"))]
impl ::windows::core::RuntimeName for IDebugDataSpaces3 {}
#[cfg(all(feature = "Win32_System_Memory", feature = "Win32_System_SystemInformation"))]
impl IDebugDataSpaces3_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>() -> IDebugDataSpaces3_Vtbl {
unsafe extern "system" fn ReadVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn SearchVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32, matchoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SearchVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&length), ::core::mem::transmute_copy(&pattern), ::core::mem::transmute_copy(&patternsize), ::core::mem::transmute_copy(&patterngranularity)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(matchoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ReadVirtualUncached<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadVirtualUncached(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteVirtualUncached<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteVirtualUncached(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn ReadPointersVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadPointersVirtual(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&ptrs)).into()
}
unsafe extern "system" fn WritePointersVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *const u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WritePointersVirtual(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&ptrs)).into()
}
unsafe extern "system" fn ReadPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadPhysical(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WritePhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WritePhysical(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn ReadControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadControl(::core::mem::transmute_copy(&processor), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteControl(::core::mem::transmute_copy(&processor), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn ReadIo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadIo(::core::mem::transmute_copy(&interfacetype), ::core::mem::transmute_copy(&busnumber), ::core::mem::transmute_copy(&addressspace), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteIo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteIo(::core::mem::transmute_copy(&interfacetype), ::core::mem::transmute_copy(&busnumber), ::core::mem::transmute_copy(&addressspace), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn ReadMsr<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, msr: u32, value: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ReadMsr(::core::mem::transmute_copy(&msr)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn WriteMsr<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, msr: u32, value: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteMsr(::core::mem::transmute_copy(&msr), ::core::mem::transmute_copy(&value)).into()
}
unsafe extern "system" fn ReadBusData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadBusData(::core::mem::transmute_copy(&busdatatype), ::core::mem::transmute_copy(&busnumber), ::core::mem::transmute_copy(&slotnumber), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteBusData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteBusData(::core::mem::transmute_copy(&busdatatype), ::core::mem::transmute_copy(&busnumber), ::core::mem::transmute_copy(&slotnumber), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn CheckLowMemory<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_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.CheckLowMemory().into()
}
unsafe extern "system" fn ReadDebuggerData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadDebuggerData(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&datasize)).into()
}
unsafe extern "system" fn ReadProcessorSystemData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadProcessorSystemData(::core::mem::transmute_copy(&processor), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&datasize)).into()
}
unsafe extern "system" fn VirtualToPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#virtual: u64, physical: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.VirtualToPhysical(::core::mem::transmute_copy(&r#virtual)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(physical, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetVirtualTranslationPhysicalOffsets<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#virtual: u64, offsets: *mut u64, offsetssize: u32, levels: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetVirtualTranslationPhysicalOffsets(::core::mem::transmute_copy(&r#virtual), ::core::mem::transmute_copy(&offsets), ::core::mem::transmute_copy(&offsetssize), ::core::mem::transmute_copy(&levels)).into()
}
unsafe extern "system" fn ReadHandleData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, datatype: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadHandleData(::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&datatype), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&datasize)).into()
}
unsafe extern "system" fn FillVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FillVirtual(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&size), ::core::mem::transmute_copy(&pattern), ::core::mem::transmute_copy(&patternsize), ::core::mem::transmute_copy(&filled)).into()
}
unsafe extern "system" fn FillPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FillPhysical(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&size), ::core::mem::transmute_copy(&pattern), ::core::mem::transmute_copy(&patternsize), ::core::mem::transmute_copy(&filled)).into()
}
unsafe extern "system" fn QueryVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, info: *mut super::super::super::Memory::MEMORY_BASIC_INFORMATION64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.QueryVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&info)).into()
}
unsafe extern "system" fn ReadImageNtHeaders<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, imagebase: u64, headers: *mut super::IMAGE_NT_HEADERS64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadImageNtHeaders(::core::mem::transmute_copy(&imagebase), ::core::mem::transmute_copy(&headers)).into()
}
unsafe extern "system" fn ReadTagged<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: *const ::windows::core::GUID, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, totalsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadTagged(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&totalsize)).into()
}
unsafe extern "system" fn StartEnumTagged<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.StartEnumTagged() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNextTagged<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, tag: *mut ::windows::core::GUID, size: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNextTagged(::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&size)).into()
}
unsafe extern "system" fn EndEnumTagged<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndEnumTagged(::core::mem::transmute_copy(&handle)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
ReadVirtual: ReadVirtual::<Identity, Impl, OFFSET>,
WriteVirtual: WriteVirtual::<Identity, Impl, OFFSET>,
SearchVirtual: SearchVirtual::<Identity, Impl, OFFSET>,
ReadVirtualUncached: ReadVirtualUncached::<Identity, Impl, OFFSET>,
WriteVirtualUncached: WriteVirtualUncached::<Identity, Impl, OFFSET>,
ReadPointersVirtual: ReadPointersVirtual::<Identity, Impl, OFFSET>,
WritePointersVirtual: WritePointersVirtual::<Identity, Impl, OFFSET>,
ReadPhysical: ReadPhysical::<Identity, Impl, OFFSET>,
WritePhysical: WritePhysical::<Identity, Impl, OFFSET>,
ReadControl: ReadControl::<Identity, Impl, OFFSET>,
WriteControl: WriteControl::<Identity, Impl, OFFSET>,
ReadIo: ReadIo::<Identity, Impl, OFFSET>,
WriteIo: WriteIo::<Identity, Impl, OFFSET>,
ReadMsr: ReadMsr::<Identity, Impl, OFFSET>,
WriteMsr: WriteMsr::<Identity, Impl, OFFSET>,
ReadBusData: ReadBusData::<Identity, Impl, OFFSET>,
WriteBusData: WriteBusData::<Identity, Impl, OFFSET>,
CheckLowMemory: CheckLowMemory::<Identity, Impl, OFFSET>,
ReadDebuggerData: ReadDebuggerData::<Identity, Impl, OFFSET>,
ReadProcessorSystemData: ReadProcessorSystemData::<Identity, Impl, OFFSET>,
VirtualToPhysical: VirtualToPhysical::<Identity, Impl, OFFSET>,
GetVirtualTranslationPhysicalOffsets: GetVirtualTranslationPhysicalOffsets::<Identity, Impl, OFFSET>,
ReadHandleData: ReadHandleData::<Identity, Impl, OFFSET>,
FillVirtual: FillVirtual::<Identity, Impl, OFFSET>,
FillPhysical: FillPhysical::<Identity, Impl, OFFSET>,
QueryVirtual: QueryVirtual::<Identity, Impl, OFFSET>,
ReadImageNtHeaders: ReadImageNtHeaders::<Identity, Impl, OFFSET>,
ReadTagged: ReadTagged::<Identity, Impl, OFFSET>,
StartEnumTagged: StartEnumTagged::<Identity, Impl, OFFSET>,
GetNextTagged: GetNextTagged::<Identity, Impl, OFFSET>,
EndEnumTagged: EndEnumTagged::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugDataSpaces3 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_System_Memory\"`, `\"Win32_System_SystemInformation\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_System_Memory", feature = "Win32_System_SystemInformation"))]
pub trait IDebugDataSpaces4_Impl: Sized {
fn ReadVirtual(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteVirtual(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn SearchVirtual(&self, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32) -> ::windows::core::Result<u64>;
fn ReadVirtualUncached(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteVirtualUncached(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn ReadPointersVirtual(&self, count: u32, offset: u64, ptrs: *mut u64) -> ::windows::core::Result<()>;
fn WritePointersVirtual(&self, count: u32, offset: u64, ptrs: *const u64) -> ::windows::core::Result<()>;
fn ReadPhysical(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WritePhysical(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn ReadControl(&self, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteControl(&self, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn ReadIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn ReadMsr(&self, msr: u32) -> ::windows::core::Result<u64>;
fn WriteMsr(&self, msr: u32, value: u64) -> ::windows::core::Result<()>;
fn ReadBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn CheckLowMemory(&self) -> ::windows::core::Result<()>;
fn ReadDebuggerData(&self, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::Result<()>;
fn ReadProcessorSystemData(&self, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::Result<()>;
fn VirtualToPhysical(&self, r#virtual: u64) -> ::windows::core::Result<u64>;
fn GetVirtualTranslationPhysicalOffsets(&self, r#virtual: u64, offsets: *mut u64, offsetssize: u32, levels: *mut u32) -> ::windows::core::Result<()>;
fn ReadHandleData(&self, handle: u64, datatype: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::Result<()>;
fn FillVirtual(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows::core::Result<()>;
fn FillPhysical(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows::core::Result<()>;
fn QueryVirtual(&self, offset: u64, info: *mut super::super::super::Memory::MEMORY_BASIC_INFORMATION64) -> ::windows::core::Result<()>;
fn ReadImageNtHeaders(&self, imagebase: u64, headers: *mut super::IMAGE_NT_HEADERS64) -> ::windows::core::Result<()>;
fn ReadTagged(&self, tag: *const ::windows::core::GUID, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, totalsize: *mut u32) -> ::windows::core::Result<()>;
fn StartEnumTagged(&self) -> ::windows::core::Result<u64>;
fn GetNextTagged(&self, handle: u64, tag: *mut ::windows::core::GUID, size: *mut u32) -> ::windows::core::Result<()>;
fn EndEnumTagged(&self, handle: u64) -> ::windows::core::Result<()>;
fn GetOffsetInformation(&self, space: u32, which: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows::core::Result<()>;
fn GetNextDifferentlyValidOffsetVirtual(&self, offset: u64) -> ::windows::core::Result<u64>;
fn GetValidRegionVirtual(&self, base: u64, size: u32, validbase: *mut u64, validsize: *mut u32) -> ::windows::core::Result<()>;
fn SearchVirtual2(&self, offset: u64, length: u64, flags: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32) -> ::windows::core::Result<u64>;
fn ReadMultiByteStringVirtual(&self, offset: u64, maxbytes: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringbytes: *mut u32) -> ::windows::core::Result<()>;
fn ReadMultiByteStringVirtualWide(&self, offset: u64, maxbytes: u32, codepage: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringbytes: *mut u32) -> ::windows::core::Result<()>;
fn ReadUnicodeStringVirtual(&self, offset: u64, maxbytes: u32, codepage: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringbytes: *mut u32) -> ::windows::core::Result<()>;
fn ReadUnicodeStringVirtualWide(&self, offset: u64, maxbytes: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringbytes: *mut u32) -> ::windows::core::Result<()>;
fn ReadPhysical2(&self, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WritePhysical2(&self, offset: u64, flags: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
}
#[cfg(all(feature = "Win32_System_Memory", feature = "Win32_System_SystemInformation"))]
impl ::windows::core::RuntimeName for IDebugDataSpaces4 {}
#[cfg(all(feature = "Win32_System_Memory", feature = "Win32_System_SystemInformation"))]
impl IDebugDataSpaces4_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>() -> IDebugDataSpaces4_Vtbl {
unsafe extern "system" fn ReadVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn SearchVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32, matchoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SearchVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&length), ::core::mem::transmute_copy(&pattern), ::core::mem::transmute_copy(&patternsize), ::core::mem::transmute_copy(&patterngranularity)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(matchoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ReadVirtualUncached<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadVirtualUncached(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteVirtualUncached<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteVirtualUncached(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn ReadPointersVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadPointersVirtual(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&ptrs)).into()
}
unsafe extern "system" fn WritePointersVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *const u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WritePointersVirtual(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&ptrs)).into()
}
unsafe extern "system" fn ReadPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadPhysical(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WritePhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WritePhysical(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn ReadControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadControl(::core::mem::transmute_copy(&processor), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteControl(::core::mem::transmute_copy(&processor), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn ReadIo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadIo(::core::mem::transmute_copy(&interfacetype), ::core::mem::transmute_copy(&busnumber), ::core::mem::transmute_copy(&addressspace), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteIo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteIo(::core::mem::transmute_copy(&interfacetype), ::core::mem::transmute_copy(&busnumber), ::core::mem::transmute_copy(&addressspace), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn ReadMsr<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, msr: u32, value: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ReadMsr(::core::mem::transmute_copy(&msr)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn WriteMsr<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, msr: u32, value: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteMsr(::core::mem::transmute_copy(&msr), ::core::mem::transmute_copy(&value)).into()
}
unsafe extern "system" fn ReadBusData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadBusData(::core::mem::transmute_copy(&busdatatype), ::core::mem::transmute_copy(&busnumber), ::core::mem::transmute_copy(&slotnumber), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteBusData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteBusData(::core::mem::transmute_copy(&busdatatype), ::core::mem::transmute_copy(&busnumber), ::core::mem::transmute_copy(&slotnumber), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn CheckLowMemory<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_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.CheckLowMemory().into()
}
unsafe extern "system" fn ReadDebuggerData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadDebuggerData(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&datasize)).into()
}
unsafe extern "system" fn ReadProcessorSystemData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadProcessorSystemData(::core::mem::transmute_copy(&processor), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&datasize)).into()
}
unsafe extern "system" fn VirtualToPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#virtual: u64, physical: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.VirtualToPhysical(::core::mem::transmute_copy(&r#virtual)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(physical, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetVirtualTranslationPhysicalOffsets<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#virtual: u64, offsets: *mut u64, offsetssize: u32, levels: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetVirtualTranslationPhysicalOffsets(::core::mem::transmute_copy(&r#virtual), ::core::mem::transmute_copy(&offsets), ::core::mem::transmute_copy(&offsetssize), ::core::mem::transmute_copy(&levels)).into()
}
unsafe extern "system" fn ReadHandleData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, datatype: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadHandleData(::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&datatype), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&datasize)).into()
}
unsafe extern "system" fn FillVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FillVirtual(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&size), ::core::mem::transmute_copy(&pattern), ::core::mem::transmute_copy(&patternsize), ::core::mem::transmute_copy(&filled)).into()
}
unsafe extern "system" fn FillPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FillPhysical(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&size), ::core::mem::transmute_copy(&pattern), ::core::mem::transmute_copy(&patternsize), ::core::mem::transmute_copy(&filled)).into()
}
unsafe extern "system" fn QueryVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, info: *mut super::super::super::Memory::MEMORY_BASIC_INFORMATION64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.QueryVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&info)).into()
}
unsafe extern "system" fn ReadImageNtHeaders<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, imagebase: u64, headers: *mut super::IMAGE_NT_HEADERS64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadImageNtHeaders(::core::mem::transmute_copy(&imagebase), ::core::mem::transmute_copy(&headers)).into()
}
unsafe extern "system" fn ReadTagged<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: *const ::windows::core::GUID, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, totalsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadTagged(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&totalsize)).into()
}
unsafe extern "system" fn StartEnumTagged<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.StartEnumTagged() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNextTagged<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, tag: *mut ::windows::core::GUID, size: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNextTagged(::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&size)).into()
}
unsafe extern "system" fn EndEnumTagged<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndEnumTagged(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn GetOffsetInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, space: u32, which: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOffsetInformation(::core::mem::transmute_copy(&space), ::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&infosize)).into()
}
unsafe extern "system" fn GetNextDifferentlyValidOffsetVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, nextoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNextDifferentlyValidOffsetVirtual(::core::mem::transmute_copy(&offset)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(nextoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetValidRegionVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, base: u64, size: u32, validbase: *mut u64, validsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetValidRegionVirtual(::core::mem::transmute_copy(&base), ::core::mem::transmute_copy(&size), ::core::mem::transmute_copy(&validbase), ::core::mem::transmute_copy(&validsize)).into()
}
unsafe extern "system" fn SearchVirtual2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, length: u64, flags: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32, matchoffset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SearchVirtual2(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&length), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&pattern), ::core::mem::transmute_copy(&patternsize), ::core::mem::transmute_copy(&patterngranularity)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(matchoffset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ReadMultiByteStringVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, maxbytes: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringbytes: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadMultiByteStringVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&maxbytes), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringbytes)).into()
}
unsafe extern "system" fn ReadMultiByteStringVirtualWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, maxbytes: u32, codepage: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringbytes: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadMultiByteStringVirtualWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&maxbytes), ::core::mem::transmute_copy(&codepage), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringbytes)).into()
}
unsafe extern "system" fn ReadUnicodeStringVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, maxbytes: u32, codepage: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringbytes: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadUnicodeStringVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&maxbytes), ::core::mem::transmute_copy(&codepage), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringbytes)).into()
}
unsafe extern "system" fn ReadUnicodeStringVirtualWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, maxbytes: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringbytes: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadUnicodeStringVirtualWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&maxbytes), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringbytes)).into()
}
unsafe extern "system" fn ReadPhysical2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadPhysical2(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WritePhysical2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugDataSpaces4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WritePhysical2(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
ReadVirtual: ReadVirtual::<Identity, Impl, OFFSET>,
WriteVirtual: WriteVirtual::<Identity, Impl, OFFSET>,
SearchVirtual: SearchVirtual::<Identity, Impl, OFFSET>,
ReadVirtualUncached: ReadVirtualUncached::<Identity, Impl, OFFSET>,
WriteVirtualUncached: WriteVirtualUncached::<Identity, Impl, OFFSET>,
ReadPointersVirtual: ReadPointersVirtual::<Identity, Impl, OFFSET>,
WritePointersVirtual: WritePointersVirtual::<Identity, Impl, OFFSET>,
ReadPhysical: ReadPhysical::<Identity, Impl, OFFSET>,
WritePhysical: WritePhysical::<Identity, Impl, OFFSET>,
ReadControl: ReadControl::<Identity, Impl, OFFSET>,
WriteControl: WriteControl::<Identity, Impl, OFFSET>,
ReadIo: ReadIo::<Identity, Impl, OFFSET>,
WriteIo: WriteIo::<Identity, Impl, OFFSET>,
ReadMsr: ReadMsr::<Identity, Impl, OFFSET>,
WriteMsr: WriteMsr::<Identity, Impl, OFFSET>,
ReadBusData: ReadBusData::<Identity, Impl, OFFSET>,
WriteBusData: WriteBusData::<Identity, Impl, OFFSET>,
CheckLowMemory: CheckLowMemory::<Identity, Impl, OFFSET>,
ReadDebuggerData: ReadDebuggerData::<Identity, Impl, OFFSET>,
ReadProcessorSystemData: ReadProcessorSystemData::<Identity, Impl, OFFSET>,
VirtualToPhysical: VirtualToPhysical::<Identity, Impl, OFFSET>,
GetVirtualTranslationPhysicalOffsets: GetVirtualTranslationPhysicalOffsets::<Identity, Impl, OFFSET>,
ReadHandleData: ReadHandleData::<Identity, Impl, OFFSET>,
FillVirtual: FillVirtual::<Identity, Impl, OFFSET>,
FillPhysical: FillPhysical::<Identity, Impl, OFFSET>,
QueryVirtual: QueryVirtual::<Identity, Impl, OFFSET>,
ReadImageNtHeaders: ReadImageNtHeaders::<Identity, Impl, OFFSET>,
ReadTagged: ReadTagged::<Identity, Impl, OFFSET>,
StartEnumTagged: StartEnumTagged::<Identity, Impl, OFFSET>,
GetNextTagged: GetNextTagged::<Identity, Impl, OFFSET>,
EndEnumTagged: EndEnumTagged::<Identity, Impl, OFFSET>,
GetOffsetInformation: GetOffsetInformation::<Identity, Impl, OFFSET>,
GetNextDifferentlyValidOffsetVirtual: GetNextDifferentlyValidOffsetVirtual::<Identity, Impl, OFFSET>,
GetValidRegionVirtual: GetValidRegionVirtual::<Identity, Impl, OFFSET>,
SearchVirtual2: SearchVirtual2::<Identity, Impl, OFFSET>,
ReadMultiByteStringVirtual: ReadMultiByteStringVirtual::<Identity, Impl, OFFSET>,
ReadMultiByteStringVirtualWide: ReadMultiByteStringVirtualWide::<Identity, Impl, OFFSET>,
ReadUnicodeStringVirtual: ReadUnicodeStringVirtual::<Identity, Impl, OFFSET>,
ReadUnicodeStringVirtualWide: ReadUnicodeStringVirtualWide::<Identity, Impl, OFFSET>,
ReadPhysical2: ReadPhysical2::<Identity, Impl, OFFSET>,
WritePhysical2: WritePhysical2::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugDataSpaces4 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDebugEventCallbacks_Impl: Sized {
fn GetInterestMask(&self) -> ::windows::core::Result<u32>;
fn Breakpoint(&self, bp: ::core::option::Option<&IDebugBreakpoint>) -> ::windows::core::Result<()>;
fn Exception(&self, exception: *const super::EXCEPTION_RECORD64, firstchance: u32) -> ::windows::core::Result<()>;
fn CreateThread(&self, handle: u64, dataoffset: u64, startoffset: u64) -> ::windows::core::Result<()>;
fn ExitThread(&self, exitcode: u32) -> ::windows::core::Result<()>;
fn CreateProcessA(&self, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: &::windows::core::PCSTR, imagename: &::windows::core::PCSTR, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64) -> ::windows::core::Result<()>;
fn ExitProcess(&self, exitcode: u32) -> ::windows::core::Result<()>;
fn LoadModule(&self, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: &::windows::core::PCSTR, imagename: &::windows::core::PCSTR, checksum: u32, timedatestamp: u32) -> ::windows::core::Result<()>;
fn UnloadModule(&self, imagebasename: &::windows::core::PCSTR, baseoffset: u64) -> ::windows::core::Result<()>;
fn SystemError(&self, error: u32, level: u32) -> ::windows::core::Result<()>;
fn SessionStatus(&self, status: u32) -> ::windows::core::Result<()>;
fn ChangeDebuggeeState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()>;
fn ChangeEngineState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()>;
fn ChangeSymbolState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for IDebugEventCallbacks {}
#[cfg(feature = "Win32_Foundation")]
impl IDebugEventCallbacks_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacks_Impl, const OFFSET: isize>() -> IDebugEventCallbacks_Vtbl {
unsafe extern "system" fn GetInterestMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetInterestMask() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Breakpoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Breakpoint(::windows::core::from_raw_borrowed(&bp)).into()
}
unsafe extern "system" fn Exception<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, exception: *const super::EXCEPTION_RECORD64, firstchance: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Exception(::core::mem::transmute_copy(&exception), ::core::mem::transmute_copy(&firstchance)).into()
}
unsafe extern "system" fn CreateThread<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, dataoffset: u64, startoffset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateThread(::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&dataoffset), ::core::mem::transmute_copy(&startoffset)).into()
}
unsafe extern "system" fn ExitThread<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, exitcode: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExitThread(::core::mem::transmute_copy(&exitcode)).into()
}
unsafe extern "system" fn CreateProcessA<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: ::windows::core::PCSTR, imagename: ::windows::core::PCSTR, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessA(::core::mem::transmute_copy(&imagefilehandle), ::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&baseoffset), ::core::mem::transmute_copy(&modulesize), ::core::mem::transmute(&modulename), ::core::mem::transmute(&imagename), ::core::mem::transmute_copy(&checksum), ::core::mem::transmute_copy(&timedatestamp), ::core::mem::transmute_copy(&initialthreadhandle), ::core::mem::transmute_copy(&threaddataoffset), ::core::mem::transmute_copy(&startoffset))
.into()
}
unsafe extern "system" fn ExitProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, exitcode: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExitProcess(::core::mem::transmute_copy(&exitcode)).into()
}
unsafe extern "system" fn LoadModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: ::windows::core::PCSTR, imagename: ::windows::core::PCSTR, checksum: u32, timedatestamp: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LoadModule(::core::mem::transmute_copy(&imagefilehandle), ::core::mem::transmute_copy(&baseoffset), ::core::mem::transmute_copy(&modulesize), ::core::mem::transmute(&modulename), ::core::mem::transmute(&imagename), ::core::mem::transmute_copy(&checksum), ::core::mem::transmute_copy(&timedatestamp)).into()
}
unsafe extern "system" fn UnloadModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, imagebasename: ::windows::core::PCSTR, baseoffset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnloadModule(::core::mem::transmute(&imagebasename), ::core::mem::transmute_copy(&baseoffset)).into()
}
unsafe extern "system" fn SystemError<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, error: u32, level: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SystemError(::core::mem::transmute_copy(&error), ::core::mem::transmute_copy(&level)).into()
}
unsafe extern "system" fn SessionStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SessionStatus(::core::mem::transmute_copy(&status)).into()
}
unsafe extern "system" fn ChangeDebuggeeState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ChangeDebuggeeState(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&argument)).into()
}
unsafe extern "system" fn ChangeEngineState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ChangeEngineState(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&argument)).into()
}
unsafe extern "system" fn ChangeSymbolState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ChangeSymbolState(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&argument)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetInterestMask: GetInterestMask::<Identity, Impl, OFFSET>,
Breakpoint: Breakpoint::<Identity, Impl, OFFSET>,
Exception: Exception::<Identity, Impl, OFFSET>,
CreateThread: CreateThread::<Identity, Impl, OFFSET>,
ExitThread: ExitThread::<Identity, Impl, OFFSET>,
CreateProcessA: CreateProcessA::<Identity, Impl, OFFSET>,
ExitProcess: ExitProcess::<Identity, Impl, OFFSET>,
LoadModule: LoadModule::<Identity, Impl, OFFSET>,
UnloadModule: UnloadModule::<Identity, Impl, OFFSET>,
SystemError: SystemError::<Identity, Impl, OFFSET>,
SessionStatus: SessionStatus::<Identity, Impl, OFFSET>,
ChangeDebuggeeState: ChangeDebuggeeState::<Identity, Impl, OFFSET>,
ChangeEngineState: ChangeEngineState::<Identity, Impl, OFFSET>,
ChangeSymbolState: ChangeSymbolState::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugEventCallbacks as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDebugEventCallbacksWide_Impl: Sized {
fn GetInterestMask(&self) -> ::windows::core::Result<u32>;
fn Breakpoint(&self, bp: ::core::option::Option<&IDebugBreakpoint2>) -> ::windows::core::Result<()>;
fn Exception(&self, exception: *const super::EXCEPTION_RECORD64, firstchance: u32) -> ::windows::core::Result<()>;
fn CreateThread(&self, handle: u64, dataoffset: u64, startoffset: u64) -> ::windows::core::Result<()>;
fn ExitThread(&self, exitcode: u32) -> ::windows::core::Result<()>;
fn CreateProcessA(&self, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: &::windows::core::PCWSTR, imagename: &::windows::core::PCWSTR, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64) -> ::windows::core::Result<()>;
fn ExitProcess(&self, exitcode: u32) -> ::windows::core::Result<()>;
fn LoadModule(&self, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: &::windows::core::PCWSTR, imagename: &::windows::core::PCWSTR, checksum: u32, timedatestamp: u32) -> ::windows::core::Result<()>;
fn UnloadModule(&self, imagebasename: &::windows::core::PCWSTR, baseoffset: u64) -> ::windows::core::Result<()>;
fn SystemError(&self, error: u32, level: u32) -> ::windows::core::Result<()>;
fn SessionStatus(&self, status: u32) -> ::windows::core::Result<()>;
fn ChangeDebuggeeState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()>;
fn ChangeEngineState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()>;
fn ChangeSymbolState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for IDebugEventCallbacksWide {}
#[cfg(feature = "Win32_Foundation")]
impl IDebugEventCallbacksWide_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacksWide_Impl, const OFFSET: isize>() -> IDebugEventCallbacksWide_Vtbl {
unsafe extern "system" fn GetInterestMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacksWide_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetInterestMask() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Breakpoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacksWide_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Breakpoint(::windows::core::from_raw_borrowed(&bp)).into()
}
unsafe extern "system" fn Exception<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacksWide_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, exception: *const super::EXCEPTION_RECORD64, firstchance: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Exception(::core::mem::transmute_copy(&exception), ::core::mem::transmute_copy(&firstchance)).into()
}
unsafe extern "system" fn CreateThread<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacksWide_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, dataoffset: u64, startoffset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateThread(::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&dataoffset), ::core::mem::transmute_copy(&startoffset)).into()
}
unsafe extern "system" fn ExitThread<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacksWide_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, exitcode: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExitThread(::core::mem::transmute_copy(&exitcode)).into()
}
unsafe extern "system" fn CreateProcessA<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacksWide_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: ::windows::core::PCWSTR, imagename: ::windows::core::PCWSTR, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessA(::core::mem::transmute_copy(&imagefilehandle), ::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&baseoffset), ::core::mem::transmute_copy(&modulesize), ::core::mem::transmute(&modulename), ::core::mem::transmute(&imagename), ::core::mem::transmute_copy(&checksum), ::core::mem::transmute_copy(&timedatestamp), ::core::mem::transmute_copy(&initialthreadhandle), ::core::mem::transmute_copy(&threaddataoffset), ::core::mem::transmute_copy(&startoffset))
.into()
}
unsafe extern "system" fn ExitProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacksWide_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, exitcode: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExitProcess(::core::mem::transmute_copy(&exitcode)).into()
}
unsafe extern "system" fn LoadModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacksWide_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: ::windows::core::PCWSTR, imagename: ::windows::core::PCWSTR, checksum: u32, timedatestamp: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LoadModule(::core::mem::transmute_copy(&imagefilehandle), ::core::mem::transmute_copy(&baseoffset), ::core::mem::transmute_copy(&modulesize), ::core::mem::transmute(&modulename), ::core::mem::transmute(&imagename), ::core::mem::transmute_copy(&checksum), ::core::mem::transmute_copy(&timedatestamp)).into()
}
unsafe extern "system" fn UnloadModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacksWide_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, imagebasename: ::windows::core::PCWSTR, baseoffset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnloadModule(::core::mem::transmute(&imagebasename), ::core::mem::transmute_copy(&baseoffset)).into()
}
unsafe extern "system" fn SystemError<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacksWide_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, error: u32, level: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SystemError(::core::mem::transmute_copy(&error), ::core::mem::transmute_copy(&level)).into()
}
unsafe extern "system" fn SessionStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacksWide_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SessionStatus(::core::mem::transmute_copy(&status)).into()
}
unsafe extern "system" fn ChangeDebuggeeState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacksWide_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ChangeDebuggeeState(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&argument)).into()
}
unsafe extern "system" fn ChangeEngineState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacksWide_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ChangeEngineState(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&argument)).into()
}
unsafe extern "system" fn ChangeSymbolState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventCallbacksWide_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ChangeSymbolState(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&argument)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetInterestMask: GetInterestMask::<Identity, Impl, OFFSET>,
Breakpoint: Breakpoint::<Identity, Impl, OFFSET>,
Exception: Exception::<Identity, Impl, OFFSET>,
CreateThread: CreateThread::<Identity, Impl, OFFSET>,
ExitThread: ExitThread::<Identity, Impl, OFFSET>,
CreateProcessA: CreateProcessA::<Identity, Impl, OFFSET>,
ExitProcess: ExitProcess::<Identity, Impl, OFFSET>,
LoadModule: LoadModule::<Identity, Impl, OFFSET>,
UnloadModule: UnloadModule::<Identity, Impl, OFFSET>,
SystemError: SystemError::<Identity, Impl, OFFSET>,
SessionStatus: SessionStatus::<Identity, Impl, OFFSET>,
ChangeDebuggeeState: ChangeDebuggeeState::<Identity, Impl, OFFSET>,
ChangeEngineState: ChangeEngineState::<Identity, Impl, OFFSET>,
ChangeSymbolState: ChangeSymbolState::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugEventCallbacksWide as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDebugEventContextCallbacks_Impl: Sized {
fn GetInterestMask(&self) -> ::windows::core::Result<u32>;
fn Breakpoint(&self, bp: ::core::option::Option<&IDebugBreakpoint2>, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
fn Exception(&self, exception: *const super::EXCEPTION_RECORD64, firstchance: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
fn CreateThread(&self, handle: u64, dataoffset: u64, startoffset: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
fn ExitThread(&self, exitcode: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
fn CreateProcessA(&self, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: &::windows::core::PCWSTR, imagename: &::windows::core::PCWSTR, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
fn ExitProcess(&self, exitcode: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
fn LoadModule(&self, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: &::windows::core::PCWSTR, imagename: &::windows::core::PCWSTR, checksum: u32, timedatestamp: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
fn UnloadModule(&self, imagebasename: &::windows::core::PCWSTR, baseoffset: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
fn SystemError(&self, error: u32, level: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
fn SessionStatus(&self, status: u32) -> ::windows::core::Result<()>;
fn ChangeDebuggeeState(&self, flags: u32, argument: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
fn ChangeEngineState(&self, flags: u32, argument: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>;
fn ChangeSymbolState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for IDebugEventContextCallbacks {}
#[cfg(feature = "Win32_Foundation")]
impl IDebugEventContextCallbacks_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventContextCallbacks_Impl, const OFFSET: isize>() -> IDebugEventContextCallbacks_Vtbl {
unsafe extern "system" fn GetInterestMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventContextCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetInterestMask() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Breakpoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventContextCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Breakpoint(::windows::core::from_raw_borrowed(&bp), ::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
unsafe extern "system" fn Exception<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventContextCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, exception: *const super::EXCEPTION_RECORD64, firstchance: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Exception(::core::mem::transmute_copy(&exception), ::core::mem::transmute_copy(&firstchance), ::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
unsafe extern "system" fn CreateThread<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventContextCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, dataoffset: u64, startoffset: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateThread(::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&dataoffset), ::core::mem::transmute_copy(&startoffset), ::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
unsafe extern "system" fn ExitThread<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventContextCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, exitcode: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExitThread(::core::mem::transmute_copy(&exitcode), ::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
unsafe extern "system" fn CreateProcessA<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventContextCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: ::windows::core::PCWSTR, imagename: ::windows::core::PCWSTR, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateProcessA(
::core::mem::transmute_copy(&imagefilehandle),
::core::mem::transmute_copy(&handle),
::core::mem::transmute_copy(&baseoffset),
::core::mem::transmute_copy(&modulesize),
::core::mem::transmute(&modulename),
::core::mem::transmute(&imagename),
::core::mem::transmute_copy(&checksum),
::core::mem::transmute_copy(&timedatestamp),
::core::mem::transmute_copy(&initialthreadhandle),
::core::mem::transmute_copy(&threaddataoffset),
::core::mem::transmute_copy(&startoffset),
::core::mem::transmute_copy(&context),
::core::mem::transmute_copy(&contextsize),
)
.into()
}
unsafe extern "system" fn ExitProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventContextCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, exitcode: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExitProcess(::core::mem::transmute_copy(&exitcode), ::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
unsafe extern "system" fn LoadModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventContextCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: ::windows::core::PCWSTR, imagename: ::windows::core::PCWSTR, checksum: u32, timedatestamp: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LoadModule(::core::mem::transmute_copy(&imagefilehandle), ::core::mem::transmute_copy(&baseoffset), ::core::mem::transmute_copy(&modulesize), ::core::mem::transmute(&modulename), ::core::mem::transmute(&imagename), ::core::mem::transmute_copy(&checksum), ::core::mem::transmute_copy(&timedatestamp), ::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
unsafe extern "system" fn UnloadModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventContextCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, imagebasename: ::windows::core::PCWSTR, baseoffset: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnloadModule(::core::mem::transmute(&imagebasename), ::core::mem::transmute_copy(&baseoffset), ::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
unsafe extern "system" fn SystemError<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventContextCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, error: u32, level: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SystemError(::core::mem::transmute_copy(&error), ::core::mem::transmute_copy(&level), ::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
unsafe extern "system" fn SessionStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventContextCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SessionStatus(::core::mem::transmute_copy(&status)).into()
}
unsafe extern "system" fn ChangeDebuggeeState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventContextCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, argument: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ChangeDebuggeeState(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&argument), ::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
unsafe extern "system" fn ChangeEngineState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventContextCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, argument: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ChangeEngineState(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&argument), ::core::mem::transmute_copy(&context), ::core::mem::transmute_copy(&contextsize)).into()
}
unsafe extern "system" fn ChangeSymbolState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugEventContextCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ChangeSymbolState(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&argument)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetInterestMask: GetInterestMask::<Identity, Impl, OFFSET>,
Breakpoint: Breakpoint::<Identity, Impl, OFFSET>,
Exception: Exception::<Identity, Impl, OFFSET>,
CreateThread: CreateThread::<Identity, Impl, OFFSET>,
ExitThread: ExitThread::<Identity, Impl, OFFSET>,
CreateProcessA: CreateProcessA::<Identity, Impl, OFFSET>,
ExitProcess: ExitProcess::<Identity, Impl, OFFSET>,
LoadModule: LoadModule::<Identity, Impl, OFFSET>,
UnloadModule: UnloadModule::<Identity, Impl, OFFSET>,
SystemError: SystemError::<Identity, Impl, OFFSET>,
SessionStatus: SessionStatus::<Identity, Impl, OFFSET>,
ChangeDebuggeeState: ChangeDebuggeeState::<Identity, Impl, OFFSET>,
ChangeEngineState: ChangeEngineState::<Identity, Impl, OFFSET>,
ChangeSymbolState: ChangeSymbolState::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugEventContextCallbacks as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDebugFAEntryTags_Impl: Sized {
fn GetType(&self, tag: DEBUG_FLR_PARAM_TYPE) -> FA_ENTRY_TYPE;
fn SetType(&self, tag: DEBUG_FLR_PARAM_TYPE, entrytype: FA_ENTRY_TYPE) -> ::windows::core::Result<()>;
fn GetProperties(&self, tag: DEBUG_FLR_PARAM_TYPE, name: ::windows::core::PSTR, namesize: *mut u32, description: ::windows::core::PSTR, descsize: *mut u32, flags: *mut u32) -> ::windows::core::Result<()>;
fn SetProperties(&self, tag: DEBUG_FLR_PARAM_TYPE, name: &::windows::core::PCSTR, description: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn GetTagByName(&self, pluginid: &::windows::core::PCSTR, tagname: &::windows::core::PCSTR) -> ::windows::core::Result<DEBUG_FLR_PARAM_TYPE>;
fn IsValidTagToSet(&self, tag: DEBUG_FLR_PARAM_TYPE) -> super::super::super::super::Foundation::BOOL;
}
#[cfg(feature = "Win32_Foundation")]
impl IDebugFAEntryTags_Vtbl {
pub const fn new<Impl: IDebugFAEntryTags_Impl>() -> IDebugFAEntryTags_Vtbl {
unsafe extern "system" fn GetType<Impl: IDebugFAEntryTags_Impl>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE) -> FA_ENTRY_TYPE {
let this = (this as *mut *mut ::core::ffi::c_void) as *const ::windows::core::ScopedHeap;
let this = &*((*this).this as *const Impl);
this.GetType(::core::mem::transmute_copy(&tag))
}
unsafe extern "system" fn SetType<Impl: IDebugFAEntryTags_Impl>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, entrytype: FA_ENTRY_TYPE) -> ::windows::core::HRESULT {
let this = (this as *mut *mut ::core::ffi::c_void) as *const ::windows::core::ScopedHeap;
let this = &*((*this).this as *const Impl);
this.SetType(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&entrytype)).into()
}
unsafe extern "system" fn GetProperties<Impl: IDebugFAEntryTags_Impl>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, name: ::windows::core::PSTR, namesize: *mut u32, description: ::windows::core::PSTR, descsize: *mut u32, flags: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *mut *mut ::core::ffi::c_void) as *const ::windows::core::ScopedHeap;
let this = &*((*this).this as *const Impl);
this.GetProperties(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&name), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&description), ::core::mem::transmute_copy(&descsize), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn SetProperties<Impl: IDebugFAEntryTags_Impl>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, name: ::windows::core::PCSTR, description: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *mut *mut ::core::ffi::c_void) as *const ::windows::core::ScopedHeap;
let this = &*((*this).this as *const Impl);
this.SetProperties(::core::mem::transmute_copy(&tag), ::core::mem::transmute(&name), ::core::mem::transmute(&description), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetTagByName<Impl: IDebugFAEntryTags_Impl>(this: *mut ::core::ffi::c_void, pluginid: ::windows::core::PCSTR, tagname: ::windows::core::PCSTR, tag: *mut DEBUG_FLR_PARAM_TYPE) -> ::windows::core::HRESULT {
let this = (this as *mut *mut ::core::ffi::c_void) as *const ::windows::core::ScopedHeap;
let this = &*((*this).this as *const Impl);
match this.GetTagByName(::core::mem::transmute(&pluginid), ::core::mem::transmute(&tagname)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(tag, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsValidTagToSet<Impl: IDebugFAEntryTags_Impl>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE) -> super::super::super::super::Foundation::BOOL {
let this = (this as *mut *mut ::core::ffi::c_void) as *const ::windows::core::ScopedHeap;
let this = &*((*this).this as *const Impl);
this.IsValidTagToSet(::core::mem::transmute_copy(&tag))
}
Self {
GetType: GetType::<Impl>,
SetType: SetType::<Impl>,
GetProperties: GetProperties::<Impl>,
SetProperties: SetProperties::<Impl>,
GetTagByName: GetTagByName::<Impl>,
IsValidTagToSet: IsValidTagToSet::<Impl>,
}
}
}
#[doc(hidden)]
#[cfg(feature = "Win32_Foundation")]
struct IDebugFAEntryTags_ImplVtbl<T: IDebugFAEntryTags_Impl>(::std::marker::PhantomData<T>);
#[cfg(feature = "Win32_Foundation")]
impl<T: IDebugFAEntryTags_Impl> IDebugFAEntryTags_ImplVtbl<T> {
const VTABLE: IDebugFAEntryTags_Vtbl = IDebugFAEntryTags_Vtbl::new::<T>();
}
#[cfg(feature = "Win32_Foundation")]
impl IDebugFAEntryTags {
pub fn new<'a, T: IDebugFAEntryTags_Impl>(this: &'a T) -> ::windows::core::ScopedInterface<'a, Self> {
let this = ::windows::core::ScopedHeap { vtable: &IDebugFAEntryTags_ImplVtbl::<T>::VTABLE as *const _ as *const _, this: this as *const _ as *const _ };
let this = ::std::mem::ManuallyDrop::new(::std::boxed::Box::new(this));
unsafe { ::windows::core::ScopedInterface::new(::std::mem::transmute(&this.vtable)) }
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugFailureAnalysis_Impl: Sized {
fn GetFailureClass(&self) -> u32;
fn GetFailureType(&self) -> DEBUG_FAILURE_TYPE;
fn GetFailureCode(&self) -> u32;
fn Get(&self, tag: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY;
fn GetNext(&self, entry: *mut FA_ENTRY, tag: DEBUG_FLR_PARAM_TYPE, tagmask: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY;
fn GetString(&self, tag: DEBUG_FLR_PARAM_TYPE, str: ::windows::core::PSTR, maxsize: u32) -> *mut FA_ENTRY;
fn GetBuffer(&self, tag: DEBUG_FLR_PARAM_TYPE, buf: *mut ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY;
fn GetUlong(&self, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u32) -> *mut FA_ENTRY;
fn GetUlong64(&self, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u64) -> *mut FA_ENTRY;
fn NextEntry(&self, entry: *const FA_ENTRY) -> *mut FA_ENTRY;
}
impl ::windows::core::RuntimeName for IDebugFailureAnalysis {}
impl IDebugFailureAnalysis_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis_Impl, const OFFSET: isize>() -> IDebugFailureAnalysis_Vtbl {
unsafe extern "system" fn GetFailureClass<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> u32 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFailureClass()
}
unsafe extern "system" fn GetFailureType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> DEBUG_FAILURE_TYPE {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFailureType()
}
unsafe extern "system" fn GetFailureCode<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> u32 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFailureCode()
}
unsafe extern "system" fn Get<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Get(::core::mem::transmute_copy(&tag))
}
unsafe extern "system" fn GetNext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, entry: *mut FA_ENTRY, tag: DEBUG_FLR_PARAM_TYPE, tagmask: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNext(::core::mem::transmute_copy(&entry), ::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&tagmask))
}
unsafe extern "system" fn GetString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, str: ::windows::core::PSTR, maxsize: u32) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetString(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&str), ::core::mem::transmute_copy(&maxsize))
}
unsafe extern "system" fn GetBuffer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, buf: *mut ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBuffer(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&buf), ::core::mem::transmute_copy(&size))
}
unsafe extern "system" fn GetUlong<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u32) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetUlong(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&value))
}
unsafe extern "system" fn GetUlong64<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u64) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetUlong64(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&value))
}
unsafe extern "system" fn NextEntry<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, entry: *const FA_ENTRY) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NextEntry(::core::mem::transmute_copy(&entry))
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetFailureClass: GetFailureClass::<Identity, Impl, OFFSET>,
GetFailureType: GetFailureType::<Identity, Impl, OFFSET>,
GetFailureCode: GetFailureCode::<Identity, Impl, OFFSET>,
Get: Get::<Identity, Impl, OFFSET>,
GetNext: GetNext::<Identity, Impl, OFFSET>,
GetString: GetString::<Identity, Impl, OFFSET>,
GetBuffer: GetBuffer::<Identity, Impl, OFFSET>,
GetUlong: GetUlong::<Identity, Impl, OFFSET>,
GetUlong64: GetUlong64::<Identity, Impl, OFFSET>,
NextEntry: NextEntry::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugFailureAnalysis as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Data_Xml_MsXml\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_System_Com"))]
pub trait IDebugFailureAnalysis2_Impl: Sized {
fn GetFailureClass(&self) -> u32;
fn GetFailureType(&self) -> DEBUG_FAILURE_TYPE;
fn GetFailureCode(&self) -> u32;
fn Get(&self, tag: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY;
fn GetNext(&self, entry: *const FA_ENTRY, tag: DEBUG_FLR_PARAM_TYPE, tagmask: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY;
fn GetString(&self, tag: DEBUG_FLR_PARAM_TYPE, str: ::windows::core::PSTR, maxsize: u32) -> *mut FA_ENTRY;
fn GetBuffer(&self, tag: DEBUG_FLR_PARAM_TYPE, buf: *mut ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY;
fn GetUlong(&self, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u32) -> *mut FA_ENTRY;
fn GetUlong64(&self, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u64) -> *mut FA_ENTRY;
fn NextEntry(&self, entry: *const FA_ENTRY) -> *mut FA_ENTRY;
fn SetString(&self, tag: DEBUG_FLR_PARAM_TYPE, str: &::windows::core::PCSTR) -> *mut FA_ENTRY;
fn SetExtensionCommand(&self, tag: DEBUG_FLR_PARAM_TYPE, extension: &::windows::core::PCSTR) -> *mut FA_ENTRY;
fn SetUlong(&self, tag: DEBUG_FLR_PARAM_TYPE, value: u32) -> *mut FA_ENTRY;
fn SetUlong64(&self, tag: DEBUG_FLR_PARAM_TYPE, value: u64) -> *mut FA_ENTRY;
fn SetBuffer(&self, tag: DEBUG_FLR_PARAM_TYPE, entrytype: FA_ENTRY_TYPE, buf: *const ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY;
fn AddString(&self, tag: DEBUG_FLR_PARAM_TYPE, str: &::windows::core::PCSTR) -> *mut FA_ENTRY;
fn AddExtensionCommand(&self, tag: DEBUG_FLR_PARAM_TYPE, extension: &::windows::core::PCSTR) -> *mut FA_ENTRY;
fn AddUlong(&self, tag: DEBUG_FLR_PARAM_TYPE, value: u32) -> *mut FA_ENTRY;
fn AddUlong64(&self, tag: DEBUG_FLR_PARAM_TYPE, value: u64) -> *mut FA_ENTRY;
fn AddBuffer(&self, tag: DEBUG_FLR_PARAM_TYPE, entrytype: FA_ENTRY_TYPE, buf: *const ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY;
fn GetDebugFATagControl(&self) -> ::windows::core::Result<IDebugFAEntryTags>;
fn GetAnalysisXml(&self) -> ::windows::core::Result<super::super::super::super::Data::Xml::MsXml::IXMLDOMElement>;
fn AddStructuredAnalysisData(&self, tag: DEBUG_FLR_PARAM_TYPE, analysis: ::core::option::Option<&IDebugFailureAnalysis2>) -> ::windows::core::Result<()>;
}
#[cfg(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_System_Com"))]
impl ::windows::core::RuntimeName for IDebugFailureAnalysis2 {}
#[cfg(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_System_Com"))]
impl IDebugFailureAnalysis2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>() -> IDebugFailureAnalysis2_Vtbl {
unsafe extern "system" fn GetFailureClass<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> u32 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFailureClass()
}
unsafe extern "system" fn GetFailureType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> DEBUG_FAILURE_TYPE {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFailureType()
}
unsafe extern "system" fn GetFailureCode<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> u32 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFailureCode()
}
unsafe extern "system" fn Get<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Get(::core::mem::transmute_copy(&tag))
}
unsafe extern "system" fn GetNext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, entry: *const FA_ENTRY, tag: DEBUG_FLR_PARAM_TYPE, tagmask: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNext(::core::mem::transmute_copy(&entry), ::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&tagmask))
}
unsafe extern "system" fn GetString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, str: ::windows::core::PSTR, maxsize: u32) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetString(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&str), ::core::mem::transmute_copy(&maxsize))
}
unsafe extern "system" fn GetBuffer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, buf: *mut ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBuffer(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&buf), ::core::mem::transmute_copy(&size))
}
unsafe extern "system" fn GetUlong<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u32) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetUlong(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&value))
}
unsafe extern "system" fn GetUlong64<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u64) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetUlong64(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&value))
}
unsafe extern "system" fn NextEntry<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, entry: *const FA_ENTRY) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NextEntry(::core::mem::transmute_copy(&entry))
}
unsafe extern "system" fn SetString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, str: ::windows::core::PCSTR) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetString(::core::mem::transmute_copy(&tag), ::core::mem::transmute(&str))
}
unsafe extern "system" fn SetExtensionCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, extension: ::windows::core::PCSTR) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExtensionCommand(::core::mem::transmute_copy(&tag), ::core::mem::transmute(&extension))
}
unsafe extern "system" fn SetUlong<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: u32) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetUlong(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&value))
}
unsafe extern "system" fn SetUlong64<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: u64) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetUlong64(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&value))
}
unsafe extern "system" fn SetBuffer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, entrytype: FA_ENTRY_TYPE, buf: *const ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBuffer(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&entrytype), ::core::mem::transmute_copy(&buf), ::core::mem::transmute_copy(&size))
}
unsafe extern "system" fn AddString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, str: ::windows::core::PCSTR) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddString(::core::mem::transmute_copy(&tag), ::core::mem::transmute(&str))
}
unsafe extern "system" fn AddExtensionCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, extension: ::windows::core::PCSTR) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddExtensionCommand(::core::mem::transmute_copy(&tag), ::core::mem::transmute(&extension))
}
unsafe extern "system" fn AddUlong<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: u32) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddUlong(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&value))
}
unsafe extern "system" fn AddUlong64<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: u64) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddUlong64(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&value))
}
unsafe extern "system" fn AddBuffer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, entrytype: FA_ENTRY_TYPE, buf: *const ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddBuffer(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&entrytype), ::core::mem::transmute_copy(&buf), ::core::mem::transmute_copy(&size))
}
unsafe extern "system" fn GetDebugFATagControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fatagcontrol: *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.GetDebugFATagControl() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(fatagcontrol, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetAnalysisXml<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppxmldomelement: *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.GetAnalysisXml() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppxmldomelement, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddStructuredAnalysisData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, analysis: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddStructuredAnalysisData(::core::mem::transmute_copy(&tag), ::windows::core::from_raw_borrowed(&analysis)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetFailureClass: GetFailureClass::<Identity, Impl, OFFSET>,
GetFailureType: GetFailureType::<Identity, Impl, OFFSET>,
GetFailureCode: GetFailureCode::<Identity, Impl, OFFSET>,
Get: Get::<Identity, Impl, OFFSET>,
GetNext: GetNext::<Identity, Impl, OFFSET>,
GetString: GetString::<Identity, Impl, OFFSET>,
GetBuffer: GetBuffer::<Identity, Impl, OFFSET>,
GetUlong: GetUlong::<Identity, Impl, OFFSET>,
GetUlong64: GetUlong64::<Identity, Impl, OFFSET>,
NextEntry: NextEntry::<Identity, Impl, OFFSET>,
SetString: SetString::<Identity, Impl, OFFSET>,
SetExtensionCommand: SetExtensionCommand::<Identity, Impl, OFFSET>,
SetUlong: SetUlong::<Identity, Impl, OFFSET>,
SetUlong64: SetUlong64::<Identity, Impl, OFFSET>,
SetBuffer: SetBuffer::<Identity, Impl, OFFSET>,
AddString: AddString::<Identity, Impl, OFFSET>,
AddExtensionCommand: AddExtensionCommand::<Identity, Impl, OFFSET>,
AddUlong: AddUlong::<Identity, Impl, OFFSET>,
AddUlong64: AddUlong64::<Identity, Impl, OFFSET>,
AddBuffer: AddBuffer::<Identity, Impl, OFFSET>,
GetDebugFATagControl: GetDebugFATagControl::<Identity, Impl, OFFSET>,
GetAnalysisXml: GetAnalysisXml::<Identity, Impl, OFFSET>,
AddStructuredAnalysisData: AddStructuredAnalysisData::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugFailureAnalysis2 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Data_Xml_MsXml\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
pub trait IDebugFailureAnalysis3_Impl: Sized {
fn GetFailureClass(&self) -> u32;
fn GetFailureType(&self) -> DEBUG_FAILURE_TYPE;
fn GetFailureCode(&self) -> u32;
fn Get(&self, tag: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY;
fn GetNext(&self, entry: *const FA_ENTRY, tag: DEBUG_FLR_PARAM_TYPE, tagmask: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY;
fn GetString(&self, tag: DEBUG_FLR_PARAM_TYPE, str: ::windows::core::PSTR, maxsize: u32) -> *mut FA_ENTRY;
fn GetBuffer(&self, tag: DEBUG_FLR_PARAM_TYPE, buf: *mut ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY;
fn GetUlong(&self, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u32) -> *mut FA_ENTRY;
fn GetUlong64(&self, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u64) -> *mut FA_ENTRY;
fn NextEntry(&self, entry: *const FA_ENTRY) -> *mut FA_ENTRY;
fn SetString(&self, tag: DEBUG_FLR_PARAM_TYPE, str: &::windows::core::PCSTR) -> *mut FA_ENTRY;
fn SetExtensionCommand(&self, tag: DEBUG_FLR_PARAM_TYPE, extension: &::windows::core::PCSTR) -> *mut FA_ENTRY;
fn SetUlong(&self, tag: DEBUG_FLR_PARAM_TYPE, value: u32) -> *mut FA_ENTRY;
fn SetUlong64(&self, tag: DEBUG_FLR_PARAM_TYPE, value: u64) -> *mut FA_ENTRY;
fn SetBuffer(&self, tag: DEBUG_FLR_PARAM_TYPE, entrytype: FA_ENTRY_TYPE, buf: *const ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY;
fn AddString(&self, tag: DEBUG_FLR_PARAM_TYPE, str: &::windows::core::PCSTR) -> *mut FA_ENTRY;
fn AddExtensionCommand(&self, tag: DEBUG_FLR_PARAM_TYPE, extension: &::windows::core::PCSTR) -> *mut FA_ENTRY;
fn AddUlong(&self, tag: DEBUG_FLR_PARAM_TYPE, value: u32) -> *mut FA_ENTRY;
fn AddUlong64(&self, tag: DEBUG_FLR_PARAM_TYPE, value: u64) -> *mut FA_ENTRY;
fn AddBuffer(&self, tag: DEBUG_FLR_PARAM_TYPE, entrytype: FA_ENTRY_TYPE, buf: *const ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY;
fn GetDebugFATagControl(&self) -> ::windows::core::Result<IDebugFAEntryTags>;
fn GetAnalysisXml(&self) -> ::windows::core::Result<super::super::super::super::Data::Xml::MsXml::IXMLDOMElement>;
fn AddStructuredAnalysisData(&self, tag: DEBUG_FLR_PARAM_TYPE, analysis: ::core::option::Option<&IDebugFailureAnalysis2>) -> ::windows::core::Result<()>;
fn AddThreads(&self, pdebugfailurethreadenum: ::core::option::Option<&::windows::core::IUnknown>) -> ::windows::core::Result<()>;
fn AttributeGet(&self, nindex: u32) -> ::windows::core::Result<super::super::super::Com::VARIANT>;
fn AttributeGetName(&self, nindex: u32) -> ::windows::core::Result<::windows::core::BSTR>;
fn AttributeSet(&self, nindex: u32, value: &super::super::super::Com::VARIANT) -> ::windows::core::Result<()>;
fn BlameApplication(&self, postfix: &::windows::core::BSTR) -> ::windows::core::Result<()>;
fn BlameProcess(&self, postfix: &::windows::core::BSTR) -> ::windows::core::Result<()>;
fn BlameThread(&self, pthread: ::core::option::Option<&::windows::core::IUnknown>) -> ::windows::core::Result<()>;
fn BlameStitch(&self, pthread: ::core::option::Option<&::windows::core::IUnknown>, stitch: &::windows::core::BSTR) -> ::windows::core::Result<()>;
fn BlameTEB(&self, address: u64) -> ::windows::core::Result<()>;
fn BlameETHREAD(&self, address: u64) -> ::windows::core::Result<()>;
fn ProblemClassIsSet(&self, nindex: u32) -> ::windows::core::Result<super::super::super::super::Foundation::VARIANT_BOOL>;
fn ProblemClassDelete(&self, nindex: u32) -> ::windows::core::Result<()>;
fn ProblemClassSet(&self, nindex: u32) -> ::windows::core::Result<()>;
fn ProblemClassSetBSTR(&self, nindex: u32, value: &::windows::core::BSTR) -> ::windows::core::Result<()>;
fn SetAdditionalXML(&self, key: &::windows::core::BSTR, pxmldomelement: ::core::option::Option<&::windows::core::IUnknown>) -> ::windows::core::Result<()>;
fn GetAdditionalXML(&self, key: &::windows::core::BSTR) -> ::windows::core::Result<::windows::core::IUnknown>;
fn DeleteAdditionalXML(&self, key: &::windows::core::BSTR) -> ::windows::core::Result<()>;
}
#[cfg(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
impl ::windows::core::RuntimeName for IDebugFailureAnalysis3 {}
#[cfg(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
impl IDebugFailureAnalysis3_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>() -> IDebugFailureAnalysis3_Vtbl {
unsafe extern "system" fn GetFailureClass<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> u32 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFailureClass()
}
unsafe extern "system" fn GetFailureType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> DEBUG_FAILURE_TYPE {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFailureType()
}
unsafe extern "system" fn GetFailureCode<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> u32 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFailureCode()
}
unsafe extern "system" fn Get<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Get(::core::mem::transmute_copy(&tag))
}
unsafe extern "system" fn GetNext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, entry: *const FA_ENTRY, tag: DEBUG_FLR_PARAM_TYPE, tagmask: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNext(::core::mem::transmute_copy(&entry), ::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&tagmask))
}
unsafe extern "system" fn GetString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, str: ::windows::core::PSTR, maxsize: u32) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetString(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&str), ::core::mem::transmute_copy(&maxsize))
}
unsafe extern "system" fn GetBuffer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, buf: *mut ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBuffer(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&buf), ::core::mem::transmute_copy(&size))
}
unsafe extern "system" fn GetUlong<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u32) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetUlong(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&value))
}
unsafe extern "system" fn GetUlong64<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u64) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetUlong64(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&value))
}
unsafe extern "system" fn NextEntry<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, entry: *const FA_ENTRY) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NextEntry(::core::mem::transmute_copy(&entry))
}
unsafe extern "system" fn SetString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, str: ::windows::core::PCSTR) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetString(::core::mem::transmute_copy(&tag), ::core::mem::transmute(&str))
}
unsafe extern "system" fn SetExtensionCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, extension: ::windows::core::PCSTR) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetExtensionCommand(::core::mem::transmute_copy(&tag), ::core::mem::transmute(&extension))
}
unsafe extern "system" fn SetUlong<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: u32) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetUlong(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&value))
}
unsafe extern "system" fn SetUlong64<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: u64) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetUlong64(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&value))
}
unsafe extern "system" fn SetBuffer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, entrytype: FA_ENTRY_TYPE, buf: *const ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBuffer(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&entrytype), ::core::mem::transmute_copy(&buf), ::core::mem::transmute_copy(&size))
}
unsafe extern "system" fn AddString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, str: ::windows::core::PCSTR) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddString(::core::mem::transmute_copy(&tag), ::core::mem::transmute(&str))
}
unsafe extern "system" fn AddExtensionCommand<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, extension: ::windows::core::PCSTR) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddExtensionCommand(::core::mem::transmute_copy(&tag), ::core::mem::transmute(&extension))
}
unsafe extern "system" fn AddUlong<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: u32) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddUlong(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&value))
}
unsafe extern "system" fn AddUlong64<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: u64) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddUlong64(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&value))
}
unsafe extern "system" fn AddBuffer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, entrytype: FA_ENTRY_TYPE, buf: *const ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddBuffer(::core::mem::transmute_copy(&tag), ::core::mem::transmute_copy(&entrytype), ::core::mem::transmute_copy(&buf), ::core::mem::transmute_copy(&size))
}
unsafe extern "system" fn GetDebugFATagControl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fatagcontrol: *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.GetDebugFATagControl() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(fatagcontrol, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetAnalysisXml<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppxmldomelement: *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.GetAnalysisXml() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppxmldomelement, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddStructuredAnalysisData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, analysis: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddStructuredAnalysisData(::core::mem::transmute_copy(&tag), ::windows::core::from_raw_borrowed(&analysis)).into()
}
unsafe extern "system" fn AddThreads<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdebugfailurethreadenum: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddThreads(::windows::core::from_raw_borrowed(&pdebugfailurethreadenum)).into()
}
unsafe extern "system" fn AttributeGet<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nindex: u32, pvalue: *mut super::super::super::Com::VARIANT) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AttributeGet(::core::mem::transmute_copy(&nindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvalue, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AttributeGetName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nindex: u32, pname: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AttributeGetName(::core::mem::transmute_copy(&nindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pname, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AttributeSet<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nindex: u32, value: super::super::super::Com::VARIANT) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AttributeSet(::core::mem::transmute_copy(&nindex), ::core::mem::transmute(&value)).into()
}
unsafe extern "system" fn BlameApplication<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, postfix: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.BlameApplication(::core::mem::transmute(&postfix)).into()
}
unsafe extern "system" fn BlameProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, postfix: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.BlameProcess(::core::mem::transmute(&postfix)).into()
}
unsafe extern "system" fn BlameThread<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pthread: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.BlameThread(::windows::core::from_raw_borrowed(&pthread)).into()
}
unsafe extern "system" fn BlameStitch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pthread: *mut ::core::ffi::c_void, stitch: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.BlameStitch(::windows::core::from_raw_borrowed(&pthread), ::core::mem::transmute(&stitch)).into()
}
unsafe extern "system" fn BlameTEB<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, address: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.BlameTEB(::core::mem::transmute_copy(&address)).into()
}
unsafe extern "system" fn BlameETHREAD<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, address: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.BlameETHREAD(::core::mem::transmute_copy(&address)).into()
}
unsafe extern "system" fn ProblemClassIsSet<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nindex: u32, pset: *mut super::super::super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ProblemClassIsSet(::core::mem::transmute_copy(&nindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ProblemClassDelete<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nindex: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ProblemClassDelete(::core::mem::transmute_copy(&nindex)).into()
}
unsafe extern "system" fn ProblemClassSet<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nindex: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ProblemClassSet(::core::mem::transmute_copy(&nindex)).into()
}
unsafe extern "system" fn ProblemClassSetBSTR<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nindex: u32, value: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ProblemClassSetBSTR(::core::mem::transmute_copy(&nindex), ::core::mem::transmute(&value)).into()
}
unsafe extern "system" fn SetAdditionalXML<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: ::std::mem::MaybeUninit<::windows::core::BSTR>, pxmldomelement: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAdditionalXML(::core::mem::transmute(&key), ::windows::core::from_raw_borrowed(&pxmldomelement)).into()
}
unsafe extern "system" fn GetAdditionalXML<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: ::std::mem::MaybeUninit<::windows::core::BSTR>, ppxmldomelement: *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.GetAdditionalXML(::core::mem::transmute(&key)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppxmldomelement, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DeleteAdditionalXML<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugFailureAnalysis3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DeleteAdditionalXML(::core::mem::transmute(&key)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetFailureClass: GetFailureClass::<Identity, Impl, OFFSET>,
GetFailureType: GetFailureType::<Identity, Impl, OFFSET>,
GetFailureCode: GetFailureCode::<Identity, Impl, OFFSET>,
Get: Get::<Identity, Impl, OFFSET>,
GetNext: GetNext::<Identity, Impl, OFFSET>,
GetString: GetString::<Identity, Impl, OFFSET>,
GetBuffer: GetBuffer::<Identity, Impl, OFFSET>,
GetUlong: GetUlong::<Identity, Impl, OFFSET>,
GetUlong64: GetUlong64::<Identity, Impl, OFFSET>,
NextEntry: NextEntry::<Identity, Impl, OFFSET>,
SetString: SetString::<Identity, Impl, OFFSET>,
SetExtensionCommand: SetExtensionCommand::<Identity, Impl, OFFSET>,
SetUlong: SetUlong::<Identity, Impl, OFFSET>,
SetUlong64: SetUlong64::<Identity, Impl, OFFSET>,
SetBuffer: SetBuffer::<Identity, Impl, OFFSET>,
AddString: AddString::<Identity, Impl, OFFSET>,
AddExtensionCommand: AddExtensionCommand::<Identity, Impl, OFFSET>,
AddUlong: AddUlong::<Identity, Impl, OFFSET>,
AddUlong64: AddUlong64::<Identity, Impl, OFFSET>,
AddBuffer: AddBuffer::<Identity, Impl, OFFSET>,
GetDebugFATagControl: GetDebugFATagControl::<Identity, Impl, OFFSET>,
GetAnalysisXml: GetAnalysisXml::<Identity, Impl, OFFSET>,
AddStructuredAnalysisData: AddStructuredAnalysisData::<Identity, Impl, OFFSET>,
AddThreads: AddThreads::<Identity, Impl, OFFSET>,
AttributeGet: AttributeGet::<Identity, Impl, OFFSET>,
AttributeGetName: AttributeGetName::<Identity, Impl, OFFSET>,
AttributeSet: AttributeSet::<Identity, Impl, OFFSET>,
BlameApplication: BlameApplication::<Identity, Impl, OFFSET>,
BlameProcess: BlameProcess::<Identity, Impl, OFFSET>,
BlameThread: BlameThread::<Identity, Impl, OFFSET>,
BlameStitch: BlameStitch::<Identity, Impl, OFFSET>,
BlameTEB: BlameTEB::<Identity, Impl, OFFSET>,
BlameETHREAD: BlameETHREAD::<Identity, Impl, OFFSET>,
ProblemClassIsSet: ProblemClassIsSet::<Identity, Impl, OFFSET>,
ProblemClassDelete: ProblemClassDelete::<Identity, Impl, OFFSET>,
ProblemClassSet: ProblemClassSet::<Identity, Impl, OFFSET>,
ProblemClassSetBSTR: ProblemClassSetBSTR::<Identity, Impl, OFFSET>,
SetAdditionalXML: SetAdditionalXML::<Identity, Impl, OFFSET>,
GetAdditionalXML: GetAdditionalXML::<Identity, Impl, OFFSET>,
DeleteAdditionalXML: DeleteAdditionalXML::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugFailureAnalysis3 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHost_Impl: Sized {
fn GetHostDefinedInterface(&self) -> ::windows::core::Result<::windows::core::IUnknown>;
fn GetCurrentContext(&self) -> ::windows::core::Result<IDebugHostContext>;
fn GetDefaultMetadata(&self) -> ::windows::core::Result<IKeyStore>;
}
impl ::windows::core::RuntimeName for IDebugHost {}
impl IDebugHost_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHost_Impl, const OFFSET: isize>() -> IDebugHost_Vtbl {
unsafe extern "system" fn GetHostDefinedInterface<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHost_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hostunk: *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.GetHostDefinedInterface() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(hostunk, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHost_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *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.GetCurrentContext() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(context, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDefaultMetadata<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHost_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, defaultmetadatastore: *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.GetDefaultMetadata() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(defaultmetadatastore, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetHostDefinedInterface: GetHostDefinedInterface::<Identity, Impl, OFFSET>,
GetCurrentContext: GetCurrentContext::<Identity, Impl, OFFSET>,
GetDefaultMetadata: GetDefaultMetadata::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHost as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostBaseClass_Impl: Sized + IDebugHostSymbol_Impl {
fn GetOffset(&self) -> ::windows::core::Result<u64>;
}
impl ::windows::core::RuntimeName for IDebugHostBaseClass {}
impl IDebugHostBaseClass_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostBaseClass_Impl, const OFFSET: isize>() -> IDebugHostBaseClass_Vtbl {
unsafe extern "system" fn GetOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostBaseClass_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: IDebugHostSymbol_Vtbl::new::<Identity, Impl, OFFSET>(), GetOffset: GetOffset::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostBaseClass as ::windows::core::ComInterface>::IID || iid == &<IDebugHostSymbol as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
pub trait IDebugHostConstant_Impl: Sized + IDebugHostSymbol_Impl {
fn GetValue(&self) -> ::windows::core::Result<super::super::super::Com::VARIANT>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
impl ::windows::core::RuntimeName for IDebugHostConstant {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
impl IDebugHostConstant_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostConstant_Impl, const OFFSET: isize>() -> IDebugHostConstant_Vtbl {
unsafe extern "system" fn GetValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostConstant_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::super::Com::VARIANT) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetValue() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: IDebugHostSymbol_Vtbl::new::<Identity, Impl, OFFSET>(), GetValue: GetValue::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostConstant as ::windows::core::ComInterface>::IID || iid == &<IDebugHostSymbol as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostContext_Impl: Sized {
fn IsEqualTo(&self, pcontext: ::core::option::Option<&IDebugHostContext>) -> ::windows::core::Result<bool>;
}
impl ::windows::core::RuntimeName for IDebugHostContext {}
impl IDebugHostContext_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostContext_Impl, const OFFSET: isize>() -> IDebugHostContext_Vtbl {
unsafe extern "system" fn IsEqualTo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcontext: *mut ::core::ffi::c_void, pisequal: *mut bool) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsEqualTo(::windows::core::from_raw_borrowed(&pcontext)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pisequal, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), IsEqualTo: IsEqualTo::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostContext as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
pub trait IDebugHostData_Impl: Sized + IDebugHostSymbol_Impl {
fn GetLocationKind(&self) -> ::windows::core::Result<LocationKind>;
fn GetLocation(&self) -> ::windows::core::Result<Location>;
fn GetValue(&self) -> ::windows::core::Result<super::super::super::Com::VARIANT>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
impl ::windows::core::RuntimeName for IDebugHostData {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
impl IDebugHostData_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostData_Impl, const OFFSET: isize>() -> IDebugHostData_Vtbl {
unsafe extern "system" fn GetLocationKind<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, locationkind: *mut LocationKind) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLocationKind() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(locationkind, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetLocation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, location: *mut Location) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLocation() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(location, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::super::Com::VARIANT) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetValue() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IDebugHostSymbol_Vtbl::new::<Identity, Impl, OFFSET>(),
GetLocationKind: GetLocationKind::<Identity, Impl, OFFSET>,
GetLocation: GetLocation::<Identity, Impl, OFFSET>,
GetValue: GetValue::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostData as ::windows::core::ComInterface>::IID || iid == &<IDebugHostSymbol as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostErrorSink_Impl: Sized {
fn ReportError(&self, errclass: ErrorClass, hrerror: ::windows::core::HRESULT, message: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugHostErrorSink {}
impl IDebugHostErrorSink_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostErrorSink_Impl, const OFFSET: isize>() -> IDebugHostErrorSink_Vtbl {
unsafe extern "system" fn ReportError<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostErrorSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, errclass: ErrorClass, hrerror: ::windows::core::HRESULT, message: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReportError(::core::mem::transmute_copy(&errclass), ::core::mem::transmute_copy(&hrerror), ::core::mem::transmute(&message)).into()
}
Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), ReportError: ReportError::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostErrorSink as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostEvaluator_Impl: Sized {
fn EvaluateExpression(&self, context: ::core::option::Option<&IDebugHostContext>, expression: &::windows::core::PCWSTR, bindingcontext: ::core::option::Option<&IModelObject>, result: *mut ::core::option::Option<IModelObject>, metadata: *mut ::core::option::Option<IKeyStore>) -> ::windows::core::Result<()>;
fn EvaluateExtendedExpression(&self, context: ::core::option::Option<&IDebugHostContext>, expression: &::windows::core::PCWSTR, bindingcontext: ::core::option::Option<&IModelObject>, result: *mut ::core::option::Option<IModelObject>, metadata: *mut ::core::option::Option<IKeyStore>) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugHostEvaluator {}
impl IDebugHostEvaluator_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostEvaluator_Impl, const OFFSET: isize>() -> IDebugHostEvaluator_Vtbl {
unsafe extern "system" fn EvaluateExpression<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostEvaluator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, expression: ::windows::core::PCWSTR, bindingcontext: *mut ::core::ffi::c_void, result: *mut *mut ::core::ffi::c_void, metadata: *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.EvaluateExpression(::windows::core::from_raw_borrowed(&context), ::core::mem::transmute(&expression), ::windows::core::from_raw_borrowed(&bindingcontext), ::core::mem::transmute_copy(&result), ::core::mem::transmute_copy(&metadata)).into()
}
unsafe extern "system" fn EvaluateExtendedExpression<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostEvaluator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, expression: ::windows::core::PCWSTR, bindingcontext: *mut ::core::ffi::c_void, result: *mut *mut ::core::ffi::c_void, metadata: *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.EvaluateExtendedExpression(::windows::core::from_raw_borrowed(&context), ::core::mem::transmute(&expression), ::windows::core::from_raw_borrowed(&bindingcontext), ::core::mem::transmute_copy(&result), ::core::mem::transmute_copy(&metadata)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
EvaluateExpression: EvaluateExpression::<Identity, Impl, OFFSET>,
EvaluateExtendedExpression: EvaluateExtendedExpression::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostEvaluator as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostEvaluator2_Impl: Sized + IDebugHostEvaluator_Impl {
fn AssignTo(&self, assignmentreference: ::core::option::Option<&IModelObject>, assignmentvalue: ::core::option::Option<&IModelObject>, assignmentresult: *mut ::core::option::Option<IModelObject>, assignmentmetadata: *mut ::core::option::Option<IKeyStore>) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugHostEvaluator2 {}
impl IDebugHostEvaluator2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostEvaluator2_Impl, const OFFSET: isize>() -> IDebugHostEvaluator2_Vtbl {
unsafe extern "system" fn AssignTo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostEvaluator2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, assignmentreference: *mut ::core::ffi::c_void, assignmentvalue: *mut ::core::ffi::c_void, assignmentresult: *mut *mut ::core::ffi::c_void, assignmentmetadata: *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.AssignTo(::windows::core::from_raw_borrowed(&assignmentreference), ::windows::core::from_raw_borrowed(&assignmentvalue), ::core::mem::transmute_copy(&assignmentresult), ::core::mem::transmute_copy(&assignmentmetadata)).into()
}
Self { base__: IDebugHostEvaluator_Vtbl::new::<Identity, Impl, OFFSET>(), AssignTo: AssignTo::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostEvaluator2 as ::windows::core::ComInterface>::IID || iid == &<IDebugHostEvaluator as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostExtensibility_Impl: Sized {
fn CreateFunctionAlias(&self, aliasname: &::windows::core::PCWSTR, functionobject: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<()>;
fn DestroyFunctionAlias(&self, aliasname: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugHostExtensibility {}
impl IDebugHostExtensibility_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostExtensibility_Impl, const OFFSET: isize>() -> IDebugHostExtensibility_Vtbl {
unsafe extern "system" fn CreateFunctionAlias<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostExtensibility_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, aliasname: ::windows::core::PCWSTR, functionobject: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateFunctionAlias(::core::mem::transmute(&aliasname), ::windows::core::from_raw_borrowed(&functionobject)).into()
}
unsafe extern "system" fn DestroyFunctionAlias<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostExtensibility_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, aliasname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DestroyFunctionAlias(::core::mem::transmute(&aliasname)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
CreateFunctionAlias: CreateFunctionAlias::<Identity, Impl, OFFSET>,
DestroyFunctionAlias: DestroyFunctionAlias::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostExtensibility as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
pub trait IDebugHostField_Impl: Sized + IDebugHostSymbol_Impl {
fn GetLocationKind(&self) -> ::windows::core::Result<LocationKind>;
fn GetOffset(&self) -> ::windows::core::Result<u64>;
fn GetLocation(&self) -> ::windows::core::Result<Location>;
fn GetValue(&self) -> ::windows::core::Result<super::super::super::Com::VARIANT>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
impl ::windows::core::RuntimeName for IDebugHostField {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
impl IDebugHostField_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostField_Impl, const OFFSET: isize>() -> IDebugHostField_Vtbl {
unsafe extern "system" fn GetLocationKind<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostField_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, locationkind: *mut LocationKind) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLocationKind() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(locationkind, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostField_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetLocation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostField_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, location: *mut Location) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLocation() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(location, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostField_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::super::Com::VARIANT) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetValue() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IDebugHostSymbol_Vtbl::new::<Identity, Impl, OFFSET>(),
GetLocationKind: GetLocationKind::<Identity, Impl, OFFSET>,
GetOffset: GetOffset::<Identity, Impl, OFFSET>,
GetLocation: GetLocation::<Identity, Impl, OFFSET>,
GetValue: GetValue::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostField as ::windows::core::ComInterface>::IID || iid == &<IDebugHostSymbol as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostMemory_Impl: Sized {
fn ReadBytes(&self, context: ::core::option::Option<&IDebugHostContext>, location: &Location, buffer: *mut ::core::ffi::c_void, buffersize: u64, bytesread: *mut u64) -> ::windows::core::Result<()>;
fn WriteBytes(&self, context: ::core::option::Option<&IDebugHostContext>, location: &Location, buffer: *const ::core::ffi::c_void, buffersize: u64, byteswritten: *mut u64) -> ::windows::core::Result<()>;
fn ReadPointers(&self, context: ::core::option::Option<&IDebugHostContext>, location: &Location, count: u64, pointers: *mut u64) -> ::windows::core::Result<()>;
fn WritePointers(&self, context: ::core::option::Option<&IDebugHostContext>, location: &Location, count: u64, pointers: *const u64) -> ::windows::core::Result<()>;
fn GetDisplayStringForLocation(&self, context: ::core::option::Option<&IDebugHostContext>, location: &Location, verbose: u8) -> ::windows::core::Result<::windows::core::BSTR>;
}
impl ::windows::core::RuntimeName for IDebugHostMemory {}
impl IDebugHostMemory_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostMemory_Impl, const OFFSET: isize>() -> IDebugHostMemory_Vtbl {
unsafe extern "system" fn ReadBytes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostMemory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, location: Location, buffer: *mut ::core::ffi::c_void, buffersize: u64, bytesread: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadBytes(::windows::core::from_raw_borrowed(&context), ::core::mem::transmute(&location), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteBytes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostMemory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, location: Location, buffer: *const ::core::ffi::c_void, buffersize: u64, byteswritten: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteBytes(::windows::core::from_raw_borrowed(&context), ::core::mem::transmute(&location), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn ReadPointers<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostMemory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, location: Location, count: u64, pointers: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadPointers(::windows::core::from_raw_borrowed(&context), ::core::mem::transmute(&location), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&pointers)).into()
}
unsafe extern "system" fn WritePointers<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostMemory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, location: Location, count: u64, pointers: *const u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WritePointers(::windows::core::from_raw_borrowed(&context), ::core::mem::transmute(&location), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&pointers)).into()
}
unsafe extern "system" fn GetDisplayStringForLocation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostMemory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, location: Location, verbose: u8, locationname: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDisplayStringForLocation(::windows::core::from_raw_borrowed(&context), ::core::mem::transmute(&location), ::core::mem::transmute_copy(&verbose)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(locationname, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
ReadBytes: ReadBytes::<Identity, Impl, OFFSET>,
WriteBytes: WriteBytes::<Identity, Impl, OFFSET>,
ReadPointers: ReadPointers::<Identity, Impl, OFFSET>,
WritePointers: WritePointers::<Identity, Impl, OFFSET>,
GetDisplayStringForLocation: GetDisplayStringForLocation::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostMemory as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostMemory2_Impl: Sized + IDebugHostMemory_Impl {
fn LinearizeLocation(&self, context: ::core::option::Option<&IDebugHostContext>, location: &Location) -> ::windows::core::Result<Location>;
}
impl ::windows::core::RuntimeName for IDebugHostMemory2 {}
impl IDebugHostMemory2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostMemory2_Impl, const OFFSET: isize>() -> IDebugHostMemory2_Vtbl {
unsafe extern "system" fn LinearizeLocation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostMemory2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, location: Location, plinearizedlocation: *mut Location) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.LinearizeLocation(::windows::core::from_raw_borrowed(&context), ::core::mem::transmute(&location)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plinearizedlocation, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: IDebugHostMemory_Vtbl::new::<Identity, Impl, OFFSET>(), LinearizeLocation: LinearizeLocation::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostMemory2 as ::windows::core::ComInterface>::IID || iid == &<IDebugHostMemory as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostModule_Impl: Sized + IDebugHostSymbol_Impl {
fn GetImageName(&self, allowpath: u8) -> ::windows::core::Result<::windows::core::BSTR>;
fn GetBaseLocation(&self) -> ::windows::core::Result<Location>;
fn GetVersion(&self, fileversion: *mut u64, productversion: *mut u64) -> ::windows::core::Result<()>;
fn FindTypeByName(&self, typename: &::windows::core::PCWSTR) -> ::windows::core::Result<IDebugHostType>;
fn FindSymbolByRVA(&self, rva: u64) -> ::windows::core::Result<IDebugHostSymbol>;
fn FindSymbolByName(&self, symbolname: &::windows::core::PCWSTR) -> ::windows::core::Result<IDebugHostSymbol>;
}
impl ::windows::core::RuntimeName for IDebugHostModule {}
impl IDebugHostModule_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostModule_Impl, const OFFSET: isize>() -> IDebugHostModule_Vtbl {
unsafe extern "system" fn GetImageName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostModule_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, allowpath: u8, imagename: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetImageName(::core::mem::transmute_copy(&allowpath)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(imagename, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBaseLocation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostModule_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, modulebaselocation: *mut Location) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetBaseLocation() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(modulebaselocation, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetVersion<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostModule_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fileversion: *mut u64, productversion: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetVersion(::core::mem::transmute_copy(&fileversion), ::core::mem::transmute_copy(&productversion)).into()
}
unsafe extern "system" fn FindTypeByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostModule_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, typename: ::windows::core::PCWSTR, r#type: *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.FindTypeByName(::core::mem::transmute(&typename)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindSymbolByRVA<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostModule_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rva: u64, symbol: *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.FindSymbolByRVA(::core::mem::transmute_copy(&rva)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(symbol, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindSymbolByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostModule_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbolname: ::windows::core::PCWSTR, symbol: *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.FindSymbolByName(::core::mem::transmute(&symbolname)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(symbol, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IDebugHostSymbol_Vtbl::new::<Identity, Impl, OFFSET>(),
GetImageName: GetImageName::<Identity, Impl, OFFSET>,
GetBaseLocation: GetBaseLocation::<Identity, Impl, OFFSET>,
GetVersion: GetVersion::<Identity, Impl, OFFSET>,
FindTypeByName: FindTypeByName::<Identity, Impl, OFFSET>,
FindSymbolByRVA: FindSymbolByRVA::<Identity, Impl, OFFSET>,
FindSymbolByName: FindSymbolByName::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostModule as ::windows::core::ComInterface>::IID || iid == &<IDebugHostSymbol as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostModule2_Impl: Sized + IDebugHostModule_Impl {
fn FindContainingSymbolByRVA(&self, rva: u64, symbol: *mut ::core::option::Option<IDebugHostSymbol>, offset: *mut u64) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugHostModule2 {}
impl IDebugHostModule2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostModule2_Impl, const OFFSET: isize>() -> IDebugHostModule2_Vtbl {
unsafe extern "system" fn FindContainingSymbolByRVA<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostModule2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rva: u64, symbol: *mut *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FindContainingSymbolByRVA(::core::mem::transmute_copy(&rva), ::core::mem::transmute_copy(&symbol), ::core::mem::transmute_copy(&offset)).into()
}
Self { base__: IDebugHostModule_Vtbl::new::<Identity, Impl, OFFSET>(), FindContainingSymbolByRVA: FindContainingSymbolByRVA::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostModule2 as ::windows::core::ComInterface>::IID || iid == &<IDebugHostSymbol as ::windows::core::ComInterface>::IID || iid == &<IDebugHostModule as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostModuleSignature_Impl: Sized {
fn IsMatch(&self, pmodule: ::core::option::Option<&IDebugHostModule>) -> ::windows::core::Result<bool>;
}
impl ::windows::core::RuntimeName for IDebugHostModuleSignature {}
impl IDebugHostModuleSignature_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostModuleSignature_Impl, const OFFSET: isize>() -> IDebugHostModuleSignature_Vtbl {
unsafe extern "system" fn IsMatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostModuleSignature_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmodule: *mut ::core::ffi::c_void, ismatch: *mut bool) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsMatch(::windows::core::from_raw_borrowed(&pmodule)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ismatch, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), IsMatch: IsMatch::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostModuleSignature as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostPublic_Impl: Sized + IDebugHostSymbol_Impl {
fn GetLocationKind(&self) -> ::windows::core::Result<LocationKind>;
fn GetLocation(&self) -> ::windows::core::Result<Location>;
}
impl ::windows::core::RuntimeName for IDebugHostPublic {}
impl IDebugHostPublic_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostPublic_Impl, const OFFSET: isize>() -> IDebugHostPublic_Vtbl {
unsafe extern "system" fn GetLocationKind<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostPublic_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, locationkind: *mut LocationKind) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLocationKind() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(locationkind, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetLocation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostPublic_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, location: *mut Location) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLocation() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(location, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IDebugHostSymbol_Vtbl::new::<Identity, Impl, OFFSET>(),
GetLocationKind: GetLocationKind::<Identity, Impl, OFFSET>,
GetLocation: GetLocation::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostPublic as ::windows::core::ComInterface>::IID || iid == &<IDebugHostSymbol as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostScriptHost_Impl: Sized {
fn CreateContext(&self, script: ::core::option::Option<&IDataModelScript>) -> ::windows::core::Result<IDataModelScriptHostContext>;
}
impl ::windows::core::RuntimeName for IDebugHostScriptHost {}
impl IDebugHostScriptHost_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostScriptHost_Impl, const OFFSET: isize>() -> IDebugHostScriptHost_Vtbl {
unsafe extern "system" fn CreateContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostScriptHost_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, script: *mut ::core::ffi::c_void, scriptcontext: *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.CreateContext(::windows::core::from_raw_borrowed(&script)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(scriptcontext, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), CreateContext: CreateContext::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostScriptHost as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostStatus_Impl: Sized {
fn PollUserInterrupt(&self) -> ::windows::core::Result<bool>;
}
impl ::windows::core::RuntimeName for IDebugHostStatus {}
impl IDebugHostStatus_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostStatus_Impl, const OFFSET: isize>() -> IDebugHostStatus_Vtbl {
unsafe extern "system" fn PollUserInterrupt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostStatus_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, interruptrequested: *mut bool) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PollUserInterrupt() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(interruptrequested, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), PollUserInterrupt: PollUserInterrupt::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostStatus as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostSymbol_Impl: Sized {
fn GetContext(&self) -> ::windows::core::Result<IDebugHostContext>;
fn EnumerateChildren(&self, kind: SymbolKind, name: &::windows::core::PCWSTR) -> ::windows::core::Result<IDebugHostSymbolEnumerator>;
fn GetSymbolKind(&self) -> ::windows::core::Result<SymbolKind>;
fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR>;
fn GetType(&self) -> ::windows::core::Result<IDebugHostType>;
fn GetContainingModule(&self) -> ::windows::core::Result<IDebugHostModule>;
fn CompareAgainst(&self, pcomparisonsymbol: ::core::option::Option<&IDebugHostSymbol>, comparisonflags: u32) -> ::windows::core::Result<bool>;
}
impl ::windows::core::RuntimeName for IDebugHostSymbol {}
impl IDebugHostSymbol_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbol_Impl, const OFFSET: isize>() -> IDebugHostSymbol_Vtbl {
unsafe extern "system" fn GetContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbol_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *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.GetContext() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(context, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumerateChildren<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbol_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, kind: SymbolKind, name: ::windows::core::PCWSTR, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.EnumerateChildren(::core::mem::transmute_copy(&kind), ::core::mem::transmute(&name)) {
::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 GetSymbolKind<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbol_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, kind: *mut SymbolKind) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolKind() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(kind, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbol_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbolname: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetName() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(symbolname, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbol_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *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.GetType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetContainingModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbol_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, containingmodule: *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.GetContainingModule() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(containingmodule, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CompareAgainst<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbol_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcomparisonsymbol: *mut ::core::ffi::c_void, comparisonflags: u32, pmatches: *mut bool) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CompareAgainst(::windows::core::from_raw_borrowed(&pcomparisonsymbol), ::core::mem::transmute_copy(&comparisonflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pmatches, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetContext: GetContext::<Identity, Impl, OFFSET>,
EnumerateChildren: EnumerateChildren::<Identity, Impl, OFFSET>,
GetSymbolKind: GetSymbolKind::<Identity, Impl, OFFSET>,
GetName: GetName::<Identity, Impl, OFFSET>,
GetType: GetType::<Identity, Impl, OFFSET>,
GetContainingModule: GetContainingModule::<Identity, Impl, OFFSET>,
CompareAgainst: CompareAgainst::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostSymbol as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostSymbol2_Impl: Sized + IDebugHostSymbol_Impl {
fn GetLanguage(&self) -> ::windows::core::Result<LanguageKind>;
}
impl ::windows::core::RuntimeName for IDebugHostSymbol2 {}
impl IDebugHostSymbol2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbol2_Impl, const OFFSET: isize>() -> IDebugHostSymbol2_Vtbl {
unsafe extern "system" fn GetLanguage<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbol2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pkind: *mut LanguageKind) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLanguage() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pkind, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: IDebugHostSymbol_Vtbl::new::<Identity, Impl, OFFSET>(), GetLanguage: GetLanguage::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostSymbol2 as ::windows::core::ComInterface>::IID || iid == &<IDebugHostSymbol as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostSymbolEnumerator_Impl: Sized {
fn Reset(&self) -> ::windows::core::Result<()>;
fn GetNext(&self) -> ::windows::core::Result<IDebugHostSymbol>;
}
impl ::windows::core::RuntimeName for IDebugHostSymbolEnumerator {}
impl IDebugHostSymbolEnumerator_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbolEnumerator_Impl, const OFFSET: isize>() -> IDebugHostSymbolEnumerator_Vtbl {
unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbolEnumerator_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 GetNext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbolEnumerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: *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.GetNext() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(symbol, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Reset: Reset::<Identity, Impl, OFFSET>,
GetNext: GetNext::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostSymbolEnumerator as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostSymbols_Impl: Sized {
fn CreateModuleSignature(&self, pwszmodulename: &::windows::core::PCWSTR, pwszminversion: &::windows::core::PCWSTR, pwszmaxversion: &::windows::core::PCWSTR) -> ::windows::core::Result<IDebugHostModuleSignature>;
fn CreateTypeSignature(&self, signaturespecification: &::windows::core::PCWSTR, module: ::core::option::Option<&IDebugHostModule>) -> ::windows::core::Result<IDebugHostTypeSignature>;
fn CreateTypeSignatureForModuleRange(&self, signaturespecification: &::windows::core::PCWSTR, modulename: &::windows::core::PCWSTR, minversion: &::windows::core::PCWSTR, maxversion: &::windows::core::PCWSTR) -> ::windows::core::Result<IDebugHostTypeSignature>;
fn EnumerateModules(&self, context: ::core::option::Option<&IDebugHostContext>) -> ::windows::core::Result<IDebugHostSymbolEnumerator>;
fn FindModuleByName(&self, context: ::core::option::Option<&IDebugHostContext>, modulename: &::windows::core::PCWSTR) -> ::windows::core::Result<IDebugHostModule>;
fn FindModuleByLocation(&self, context: ::core::option::Option<&IDebugHostContext>, modulelocation: &Location) -> ::windows::core::Result<IDebugHostModule>;
fn GetMostDerivedObject(&self, pcontext: ::core::option::Option<&IDebugHostContext>, location: &Location, objecttype: ::core::option::Option<&IDebugHostType>, derivedlocation: *mut Location, derivedtype: *mut ::core::option::Option<IDebugHostType>) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugHostSymbols {}
impl IDebugHostSymbols_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbols_Impl, const OFFSET: isize>() -> IDebugHostSymbols_Vtbl {
unsafe extern "system" fn CreateModuleSignature<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwszmodulename: ::windows::core::PCWSTR, pwszminversion: ::windows::core::PCWSTR, pwszmaxversion: ::windows::core::PCWSTR, ppmodulesignature: *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.CreateModuleSignature(::core::mem::transmute(&pwszmodulename), ::core::mem::transmute(&pwszminversion), ::core::mem::transmute(&pwszmaxversion)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppmodulesignature, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateTypeSignature<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, signaturespecification: ::windows::core::PCWSTR, module: *mut ::core::ffi::c_void, typesignature: *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.CreateTypeSignature(::core::mem::transmute(&signaturespecification), ::windows::core::from_raw_borrowed(&module)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(typesignature, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateTypeSignatureForModuleRange<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, signaturespecification: ::windows::core::PCWSTR, modulename: ::windows::core::PCWSTR, minversion: ::windows::core::PCWSTR, maxversion: ::windows::core::PCWSTR, typesignature: *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.CreateTypeSignatureForModuleRange(::core::mem::transmute(&signaturespecification), ::core::mem::transmute(&modulename), ::core::mem::transmute(&minversion), ::core::mem::transmute(&maxversion)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(typesignature, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumerateModules<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, moduleenum: *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.EnumerateModules(::windows::core::from_raw_borrowed(&context)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(moduleenum, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindModuleByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, modulename: ::windows::core::PCWSTR, module: *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.FindModuleByName(::windows::core::from_raw_borrowed(&context), ::core::mem::transmute(&modulename)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(module, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindModuleByLocation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, modulelocation: Location, module: *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.FindModuleByLocation(::windows::core::from_raw_borrowed(&context), ::core::mem::transmute(&modulelocation)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(module, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetMostDerivedObject<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcontext: *mut ::core::ffi::c_void, location: Location, objecttype: *mut ::core::ffi::c_void, derivedlocation: *mut Location, derivedtype: *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.GetMostDerivedObject(::windows::core::from_raw_borrowed(&pcontext), ::core::mem::transmute(&location), ::windows::core::from_raw_borrowed(&objecttype), ::core::mem::transmute_copy(&derivedlocation), ::core::mem::transmute_copy(&derivedtype)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
CreateModuleSignature: CreateModuleSignature::<Identity, Impl, OFFSET>,
CreateTypeSignature: CreateTypeSignature::<Identity, Impl, OFFSET>,
CreateTypeSignatureForModuleRange: CreateTypeSignatureForModuleRange::<Identity, Impl, OFFSET>,
EnumerateModules: EnumerateModules::<Identity, Impl, OFFSET>,
FindModuleByName: FindModuleByName::<Identity, Impl, OFFSET>,
FindModuleByLocation: FindModuleByLocation::<Identity, Impl, OFFSET>,
GetMostDerivedObject: GetMostDerivedObject::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostSymbols as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostType_Impl: Sized + IDebugHostSymbol_Impl {
fn GetTypeKind(&self) -> ::windows::core::Result<TypeKind>;
fn GetSize(&self) -> ::windows::core::Result<u64>;
fn GetBaseType(&self) -> ::windows::core::Result<IDebugHostType>;
fn GetHashCode(&self) -> ::windows::core::Result<u32>;
fn GetIntrinsicType(&self, intrinsickind: *mut IntrinsicKind, carriertype: *mut u16) -> ::windows::core::Result<()>;
fn GetBitField(&self, lsboffield: *mut u32, lengthoffield: *mut u32) -> ::windows::core::Result<()>;
fn GetPointerKind(&self) -> ::windows::core::Result<PointerKind>;
fn GetMemberType(&self) -> ::windows::core::Result<IDebugHostType>;
fn CreatePointerTo(&self, kind: PointerKind) -> ::windows::core::Result<IDebugHostType>;
fn GetArrayDimensionality(&self) -> ::windows::core::Result<u64>;
fn GetArrayDimensions(&self, dimensions: u64, pdimensions: *mut ArrayDimension) -> ::windows::core::Result<()>;
fn CreateArrayOf(&self, dimensions: u64, pdimensions: *const ArrayDimension) -> ::windows::core::Result<IDebugHostType>;
fn GetFunctionCallingConvention(&self) -> ::windows::core::Result<CallingConventionKind>;
fn GetFunctionReturnType(&self) -> ::windows::core::Result<IDebugHostType>;
fn GetFunctionParameterTypeCount(&self) -> ::windows::core::Result<u64>;
fn GetFunctionParameterTypeAt(&self, i: u64) -> ::windows::core::Result<IDebugHostType>;
fn IsGeneric(&self) -> ::windows::core::Result<bool>;
fn GetGenericArgumentCount(&self) -> ::windows::core::Result<u64>;
fn GetGenericArgumentAt(&self, i: u64) -> ::windows::core::Result<IDebugHostSymbol>;
}
impl ::windows::core::RuntimeName for IDebugHostType {}
impl IDebugHostType_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType_Impl, const OFFSET: isize>() -> IDebugHostType_Vtbl {
unsafe extern "system" fn GetTypeKind<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, kind: *mut TypeKind) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTypeKind() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(kind, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, size: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSize() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(size, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetBaseType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, basetype: *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.GetBaseType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(basetype, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetHashCode<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hashcode: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetHashCode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(hashcode, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetIntrinsicType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, intrinsickind: *mut IntrinsicKind, carriertype: *mut u16) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetIntrinsicType(::core::mem::transmute_copy(&intrinsickind), ::core::mem::transmute_copy(&carriertype)).into()
}
unsafe extern "system" fn GetBitField<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lsboffield: *mut u32, lengthoffield: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBitField(::core::mem::transmute_copy(&lsboffield), ::core::mem::transmute_copy(&lengthoffield)).into()
}
unsafe extern "system" fn GetPointerKind<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pointerkind: *mut PointerKind) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPointerKind() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pointerkind, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetMemberType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, membertype: *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.GetMemberType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(membertype, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreatePointerTo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, kind: PointerKind, newtype: *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.CreatePointerTo(::core::mem::transmute_copy(&kind)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(newtype, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetArrayDimensionality<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, arraydimensionality: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetArrayDimensionality() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(arraydimensionality, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetArrayDimensions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dimensions: u64, pdimensions: *mut ArrayDimension) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetArrayDimensions(::core::mem::transmute_copy(&dimensions), ::core::mem::transmute_copy(&pdimensions)).into()
}
unsafe extern "system" fn CreateArrayOf<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dimensions: u64, pdimensions: *const ArrayDimension, newtype: *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.CreateArrayOf(::core::mem::transmute_copy(&dimensions), ::core::mem::transmute_copy(&pdimensions)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(newtype, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFunctionCallingConvention<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, conventionkind: *mut CallingConventionKind) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFunctionCallingConvention() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(conventionkind, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFunctionReturnType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, returntype: *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.GetFunctionReturnType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(returntype, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFunctionParameterTypeCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFunctionParameterTypeCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(count, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFunctionParameterTypeAt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, i: u64, parametertype: *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.GetFunctionParameterTypeAt(::core::mem::transmute_copy(&i)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(parametertype, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsGeneric<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, isgeneric: *mut bool) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsGeneric() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(isgeneric, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetGenericArgumentCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, argcount: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetGenericArgumentCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(argcount, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetGenericArgumentAt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, i: u64, argument: *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.GetGenericArgumentAt(::core::mem::transmute_copy(&i)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(argument, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IDebugHostSymbol_Vtbl::new::<Identity, Impl, OFFSET>(),
GetTypeKind: GetTypeKind::<Identity, Impl, OFFSET>,
GetSize: GetSize::<Identity, Impl, OFFSET>,
GetBaseType: GetBaseType::<Identity, Impl, OFFSET>,
GetHashCode: GetHashCode::<Identity, Impl, OFFSET>,
GetIntrinsicType: GetIntrinsicType::<Identity, Impl, OFFSET>,
GetBitField: GetBitField::<Identity, Impl, OFFSET>,
GetPointerKind: GetPointerKind::<Identity, Impl, OFFSET>,
GetMemberType: GetMemberType::<Identity, Impl, OFFSET>,
CreatePointerTo: CreatePointerTo::<Identity, Impl, OFFSET>,
GetArrayDimensionality: GetArrayDimensionality::<Identity, Impl, OFFSET>,
GetArrayDimensions: GetArrayDimensions::<Identity, Impl, OFFSET>,
CreateArrayOf: CreateArrayOf::<Identity, Impl, OFFSET>,
GetFunctionCallingConvention: GetFunctionCallingConvention::<Identity, Impl, OFFSET>,
GetFunctionReturnType: GetFunctionReturnType::<Identity, Impl, OFFSET>,
GetFunctionParameterTypeCount: GetFunctionParameterTypeCount::<Identity, Impl, OFFSET>,
GetFunctionParameterTypeAt: GetFunctionParameterTypeAt::<Identity, Impl, OFFSET>,
IsGeneric: IsGeneric::<Identity, Impl, OFFSET>,
GetGenericArgumentCount: GetGenericArgumentCount::<Identity, Impl, OFFSET>,
GetGenericArgumentAt: GetGenericArgumentAt::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostType as ::windows::core::ComInterface>::IID || iid == &<IDebugHostSymbol as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostType2_Impl: Sized + IDebugHostType_Impl {
fn IsTypedef(&self) -> ::windows::core::Result<bool>;
fn GetTypedefBaseType(&self) -> ::windows::core::Result<IDebugHostType2>;
fn GetTypedefFinalBaseType(&self) -> ::windows::core::Result<IDebugHostType2>;
fn GetFunctionVarArgsKind(&self) -> ::windows::core::Result<VarArgsKind>;
fn GetFunctionInstancePointerType(&self) -> ::windows::core::Result<IDebugHostType2>;
}
impl ::windows::core::RuntimeName for IDebugHostType2 {}
impl IDebugHostType2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType2_Impl, const OFFSET: isize>() -> IDebugHostType2_Vtbl {
unsafe extern "system" fn IsTypedef<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, istypedef: *mut bool) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsTypedef() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(istypedef, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTypedefBaseType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, basetype: *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.GetTypedefBaseType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(basetype, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTypedefFinalBaseType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, finalbasetype: *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.GetTypedefFinalBaseType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(finalbasetype, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFunctionVarArgsKind<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, varargskind: *mut VarArgsKind) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFunctionVarArgsKind() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(varargskind, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFunctionInstancePointerType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostType2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, instancepointertype: *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.GetFunctionInstancePointerType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(instancepointertype, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IDebugHostType_Vtbl::new::<Identity, Impl, OFFSET>(),
IsTypedef: IsTypedef::<Identity, Impl, OFFSET>,
GetTypedefBaseType: GetTypedefBaseType::<Identity, Impl, OFFSET>,
GetTypedefFinalBaseType: GetTypedefFinalBaseType::<Identity, Impl, OFFSET>,
GetFunctionVarArgsKind: GetFunctionVarArgsKind::<Identity, Impl, OFFSET>,
GetFunctionInstancePointerType: GetFunctionInstancePointerType::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostType2 as ::windows::core::ComInterface>::IID || iid == &<IDebugHostSymbol as ::windows::core::ComInterface>::IID || iid == &<IDebugHostType as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugHostTypeSignature_Impl: Sized {
fn GetHashCode(&self) -> ::windows::core::Result<u32>;
fn IsMatch(&self, r#type: ::core::option::Option<&IDebugHostType>, ismatch: *mut bool, wildcardmatches: *mut ::core::option::Option<IDebugHostSymbolEnumerator>) -> ::windows::core::Result<()>;
fn CompareAgainst(&self, typesignature: ::core::option::Option<&IDebugHostTypeSignature>) -> ::windows::core::Result<SignatureComparison>;
}
impl ::windows::core::RuntimeName for IDebugHostTypeSignature {}
impl IDebugHostTypeSignature_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostTypeSignature_Impl, const OFFSET: isize>() -> IDebugHostTypeSignature_Vtbl {
unsafe extern "system" fn GetHashCode<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostTypeSignature_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hashcode: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetHashCode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(hashcode, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsMatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostTypeSignature_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *mut ::core::ffi::c_void, ismatch: *mut bool, wildcardmatches: *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.IsMatch(::windows::core::from_raw_borrowed(&r#type), ::core::mem::transmute_copy(&ismatch), ::core::mem::transmute_copy(&wildcardmatches)).into()
}
unsafe extern "system" fn CompareAgainst<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugHostTypeSignature_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, typesignature: *mut ::core::ffi::c_void, result: *mut SignatureComparison) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CompareAgainst(::windows::core::from_raw_borrowed(&typesignature)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(result, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetHashCode: GetHashCode::<Identity, Impl, OFFSET>,
IsMatch: IsMatch::<Identity, Impl, OFFSET>,
CompareAgainst: CompareAgainst::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugHostTypeSignature as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugInputCallbacks_Impl: Sized {
fn StartInput(&self, buffersize: u32) -> ::windows::core::Result<()>;
fn EndInput(&self) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugInputCallbacks {}
impl IDebugInputCallbacks_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugInputCallbacks_Impl, const OFFSET: isize>() -> IDebugInputCallbacks_Vtbl {
unsafe extern "system" fn StartInput<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugInputCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffersize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartInput(::core::mem::transmute_copy(&buffersize)).into()
}
unsafe extern "system" fn EndInput<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugInputCallbacks_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.EndInput().into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
StartInput: StartInput::<Identity, Impl, OFFSET>,
EndInput: EndInput::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugInputCallbacks as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugOutputCallbacks_Impl: Sized {
fn Output(&self, mask: u32, text: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugOutputCallbacks {}
impl IDebugOutputCallbacks_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugOutputCallbacks_Impl, const OFFSET: isize>() -> IDebugOutputCallbacks_Vtbl {
unsafe extern "system" fn Output<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugOutputCallbacks_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, text: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Output(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&text)).into()
}
Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Output: Output::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugOutputCallbacks as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugOutputCallbacks2_Impl: Sized {
fn Output(&self, mask: u32, text: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetInterestMask(&self) -> ::windows::core::Result<u32>;
fn Output2(&self, which: u32, flags: u32, arg: u64, text: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugOutputCallbacks2 {}
impl IDebugOutputCallbacks2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugOutputCallbacks2_Impl, const OFFSET: isize>() -> IDebugOutputCallbacks2_Vtbl {
unsafe extern "system" fn Output<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugOutputCallbacks2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, text: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Output(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&text)).into()
}
unsafe extern "system" fn GetInterestMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugOutputCallbacks2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetInterestMask() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mask, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Output2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugOutputCallbacks2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, flags: u32, arg: u64, text: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Output2(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&arg), ::core::mem::transmute(&text)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Output: Output::<Identity, Impl, OFFSET>,
GetInterestMask: GetInterestMask::<Identity, Impl, OFFSET>,
Output2: Output2::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugOutputCallbacks2 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugOutputCallbacksWide_Impl: Sized {
fn Output(&self, mask: u32, text: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugOutputCallbacksWide {}
impl IDebugOutputCallbacksWide_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugOutputCallbacksWide_Impl, const OFFSET: isize>() -> IDebugOutputCallbacksWide_Vtbl {
unsafe extern "system" fn Output<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugOutputCallbacksWide_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mask: u32, text: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Output(::core::mem::transmute_copy(&mask), ::core::mem::transmute(&text)).into()
}
Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Output: Output::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugOutputCallbacksWide as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugOutputStream_Impl: Sized {
fn Write(&self, psz: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugOutputStream {}
impl IDebugOutputStream_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugOutputStream_Impl, const OFFSET: isize>() -> IDebugOutputStream_Vtbl {
unsafe extern "system" fn Write<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugOutputStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psz: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Write(::core::mem::transmute(&psz)).into()
}
Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Write: Write::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugOutputStream as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugPlmClient_Impl: Sized {
fn LaunchPlmPackageForDebugWide(&self, server: u64, timeout: u32, packagefullname: &::windows::core::PCWSTR, appname: &::windows::core::PCWSTR, arguments: &::windows::core::PCWSTR, processid: *mut u32, threadid: *mut u32) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugPlmClient {}
impl IDebugPlmClient_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugPlmClient_Impl, const OFFSET: isize>() -> IDebugPlmClient_Vtbl {
unsafe extern "system" fn LaunchPlmPackageForDebugWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugPlmClient_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, timeout: u32, packagefullname: ::windows::core::PCWSTR, appname: ::windows::core::PCWSTR, arguments: ::windows::core::PCWSTR, processid: *mut u32, threadid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LaunchPlmPackageForDebugWide(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&timeout), ::core::mem::transmute(&packagefullname), ::core::mem::transmute(&appname), ::core::mem::transmute(&arguments), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&threadid)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
LaunchPlmPackageForDebugWide: LaunchPlmPackageForDebugWide::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugPlmClient as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugPlmClient2_Impl: Sized {
fn LaunchPlmPackageForDebugWide(&self, server: u64, timeout: u32, packagefullname: &::windows::core::PCWSTR, appname: &::windows::core::PCWSTR, arguments: &::windows::core::PCWSTR, processid: *mut u32, threadid: *mut u32) -> ::windows::core::Result<()>;
fn LaunchPlmBgTaskForDebugWide(&self, server: u64, timeout: u32, packagefullname: &::windows::core::PCWSTR, backgroundtaskid: &::windows::core::PCWSTR, processid: *mut u32, threadid: *mut u32) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugPlmClient2 {}
impl IDebugPlmClient2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugPlmClient2_Impl, const OFFSET: isize>() -> IDebugPlmClient2_Vtbl {
unsafe extern "system" fn LaunchPlmPackageForDebugWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugPlmClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, timeout: u32, packagefullname: ::windows::core::PCWSTR, appname: ::windows::core::PCWSTR, arguments: ::windows::core::PCWSTR, processid: *mut u32, threadid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LaunchPlmPackageForDebugWide(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&timeout), ::core::mem::transmute(&packagefullname), ::core::mem::transmute(&appname), ::core::mem::transmute(&arguments), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&threadid)).into()
}
unsafe extern "system" fn LaunchPlmBgTaskForDebugWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugPlmClient2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, timeout: u32, packagefullname: ::windows::core::PCWSTR, backgroundtaskid: ::windows::core::PCWSTR, processid: *mut u32, threadid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LaunchPlmBgTaskForDebugWide(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&timeout), ::core::mem::transmute(&packagefullname), ::core::mem::transmute(&backgroundtaskid), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&threadid)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
LaunchPlmPackageForDebugWide: LaunchPlmPackageForDebugWide::<Identity, Impl, OFFSET>,
LaunchPlmBgTaskForDebugWide: LaunchPlmBgTaskForDebugWide::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugPlmClient2 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugPlmClient3_Impl: Sized {
fn LaunchPlmPackageForDebugWide(&self, server: u64, timeout: u32, packagefullname: &::windows::core::PCWSTR, appname: &::windows::core::PCWSTR, arguments: &::windows::core::PCWSTR, processid: *mut u32, threadid: *mut u32) -> ::windows::core::Result<()>;
fn LaunchPlmBgTaskForDebugWide(&self, server: u64, timeout: u32, packagefullname: &::windows::core::PCWSTR, backgroundtaskid: &::windows::core::PCWSTR, processid: *mut u32, threadid: *mut u32) -> ::windows::core::Result<()>;
fn QueryPlmPackageWide(&self, server: u64, packagefullname: &::windows::core::PCWSTR, stream: ::core::option::Option<&IDebugOutputStream>) -> ::windows::core::Result<()>;
fn QueryPlmPackageList(&self, server: u64, stream: ::core::option::Option<&IDebugOutputStream>) -> ::windows::core::Result<()>;
fn EnablePlmPackageDebugWide(&self, server: u64, packagefullname: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn DisablePlmPackageDebugWide(&self, server: u64, packagefullname: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn SuspendPlmPackageWide(&self, server: u64, packagefullname: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn ResumePlmPackageWide(&self, server: u64, packagefullname: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn TerminatePlmPackageWide(&self, server: u64, packagefullname: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn LaunchAndDebugPlmAppWide(&self, server: u64, packagefullname: &::windows::core::PCWSTR, appname: &::windows::core::PCWSTR, arguments: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn ActivateAndDebugPlmBgTaskWide(&self, server: u64, packagefullname: &::windows::core::PCWSTR, backgroundtaskid: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugPlmClient3 {}
impl IDebugPlmClient3_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugPlmClient3_Impl, const OFFSET: isize>() -> IDebugPlmClient3_Vtbl {
unsafe extern "system" fn LaunchPlmPackageForDebugWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugPlmClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, timeout: u32, packagefullname: ::windows::core::PCWSTR, appname: ::windows::core::PCWSTR, arguments: ::windows::core::PCWSTR, processid: *mut u32, threadid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LaunchPlmPackageForDebugWide(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&timeout), ::core::mem::transmute(&packagefullname), ::core::mem::transmute(&appname), ::core::mem::transmute(&arguments), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&threadid)).into()
}
unsafe extern "system" fn LaunchPlmBgTaskForDebugWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugPlmClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, timeout: u32, packagefullname: ::windows::core::PCWSTR, backgroundtaskid: ::windows::core::PCWSTR, processid: *mut u32, threadid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LaunchPlmBgTaskForDebugWide(::core::mem::transmute_copy(&server), ::core::mem::transmute_copy(&timeout), ::core::mem::transmute(&packagefullname), ::core::mem::transmute(&backgroundtaskid), ::core::mem::transmute_copy(&processid), ::core::mem::transmute_copy(&threadid)).into()
}
unsafe extern "system" fn QueryPlmPackageWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugPlmClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows::core::PCWSTR, stream: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.QueryPlmPackageWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&packagefullname), ::windows::core::from_raw_borrowed(&stream)).into()
}
unsafe extern "system" fn QueryPlmPackageList<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugPlmClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, stream: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.QueryPlmPackageList(::core::mem::transmute_copy(&server), ::windows::core::from_raw_borrowed(&stream)).into()
}
unsafe extern "system" fn EnablePlmPackageDebugWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugPlmClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnablePlmPackageDebugWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&packagefullname)).into()
}
unsafe extern "system" fn DisablePlmPackageDebugWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugPlmClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DisablePlmPackageDebugWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&packagefullname)).into()
}
unsafe extern "system" fn SuspendPlmPackageWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugPlmClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SuspendPlmPackageWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&packagefullname)).into()
}
unsafe extern "system" fn ResumePlmPackageWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugPlmClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ResumePlmPackageWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&packagefullname)).into()
}
unsafe extern "system" fn TerminatePlmPackageWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugPlmClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TerminatePlmPackageWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&packagefullname)).into()
}
unsafe extern "system" fn LaunchAndDebugPlmAppWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugPlmClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows::core::PCWSTR, appname: ::windows::core::PCWSTR, arguments: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LaunchAndDebugPlmAppWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&packagefullname), ::core::mem::transmute(&appname), ::core::mem::transmute(&arguments)).into()
}
unsafe extern "system" fn ActivateAndDebugPlmBgTaskWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugPlmClient3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows::core::PCWSTR, backgroundtaskid: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ActivateAndDebugPlmBgTaskWide(::core::mem::transmute_copy(&server), ::core::mem::transmute(&packagefullname), ::core::mem::transmute(&backgroundtaskid)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
LaunchPlmPackageForDebugWide: LaunchPlmPackageForDebugWide::<Identity, Impl, OFFSET>,
LaunchPlmBgTaskForDebugWide: LaunchPlmBgTaskForDebugWide::<Identity, Impl, OFFSET>,
QueryPlmPackageWide: QueryPlmPackageWide::<Identity, Impl, OFFSET>,
QueryPlmPackageList: QueryPlmPackageList::<Identity, Impl, OFFSET>,
EnablePlmPackageDebugWide: EnablePlmPackageDebugWide::<Identity, Impl, OFFSET>,
DisablePlmPackageDebugWide: DisablePlmPackageDebugWide::<Identity, Impl, OFFSET>,
SuspendPlmPackageWide: SuspendPlmPackageWide::<Identity, Impl, OFFSET>,
ResumePlmPackageWide: ResumePlmPackageWide::<Identity, Impl, OFFSET>,
TerminatePlmPackageWide: TerminatePlmPackageWide::<Identity, Impl, OFFSET>,
LaunchAndDebugPlmAppWide: LaunchAndDebugPlmAppWide::<Identity, Impl, OFFSET>,
ActivateAndDebugPlmBgTaskWide: ActivateAndDebugPlmBgTaskWide::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugPlmClient3 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDebugRegisters_Impl: Sized {
fn GetNumberRegisters(&self) -> ::windows::core::Result<u32>;
fn GetDescription(&self, register: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, desc: *mut DEBUG_REGISTER_DESCRIPTION) -> ::windows::core::Result<()>;
fn GetIndexByName(&self, name: &::windows::core::PCSTR) -> ::windows::core::Result<u32>;
fn GetValue(&self, register: u32, value: *mut DEBUG_VALUE) -> ::windows::core::Result<()>;
fn SetValue(&self, register: u32, value: *const DEBUG_VALUE) -> ::windows::core::Result<()>;
fn GetValues(&self, count: u32, indices: *const u32, start: u32, values: *mut DEBUG_VALUE) -> ::windows::core::Result<()>;
fn SetValues(&self, count: u32, indices: *const u32, start: u32, values: *const DEBUG_VALUE) -> ::windows::core::Result<()>;
fn OutputRegisters(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetInstructionOffset(&self) -> ::windows::core::Result<u64>;
fn GetStackOffset(&self) -> ::windows::core::Result<u64>;
fn GetFrameOffset(&self) -> ::windows::core::Result<u64>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for IDebugRegisters {}
#[cfg(feature = "Win32_Foundation")]
impl IDebugRegisters_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters_Impl, const OFFSET: isize>() -> IDebugRegisters_Vtbl {
unsafe extern "system" fn GetNumberRegisters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberRegisters() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, register: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, desc: *mut DEBUG_REGISTER_DESCRIPTION) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDescription(::core::mem::transmute_copy(&register), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&desc)).into()
}
unsafe extern "system" fn GetIndexByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, index: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetIndexByName(::core::mem::transmute(&name)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(index, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, register: u32, value: *mut DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetValue(::core::mem::transmute_copy(&register), ::core::mem::transmute_copy(&value)).into()
}
unsafe extern "system" fn SetValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, register: u32, value: *const DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetValue(::core::mem::transmute_copy(&register), ::core::mem::transmute_copy(&value)).into()
}
unsafe extern "system" fn GetValues<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, indices: *const u32, start: u32, values: *mut DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetValues(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&indices), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&values)).into()
}
unsafe extern "system" fn SetValues<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, indices: *const u32, start: u32, values: *const DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetValues(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&indices), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&values)).into()
}
unsafe extern "system" fn OutputRegisters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputRegisters(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetInstructionOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetInstructionOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetStackOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetStackOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFrameOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFrameOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetNumberRegisters: GetNumberRegisters::<Identity, Impl, OFFSET>,
GetDescription: GetDescription::<Identity, Impl, OFFSET>,
GetIndexByName: GetIndexByName::<Identity, Impl, OFFSET>,
GetValue: GetValue::<Identity, Impl, OFFSET>,
SetValue: SetValue::<Identity, Impl, OFFSET>,
GetValues: GetValues::<Identity, Impl, OFFSET>,
SetValues: SetValues::<Identity, Impl, OFFSET>,
OutputRegisters: OutputRegisters::<Identity, Impl, OFFSET>,
GetInstructionOffset: GetInstructionOffset::<Identity, Impl, OFFSET>,
GetStackOffset: GetStackOffset::<Identity, Impl, OFFSET>,
GetFrameOffset: GetFrameOffset::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugRegisters as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDebugRegisters2_Impl: Sized {
fn GetNumberRegisters(&self) -> ::windows::core::Result<u32>;
fn GetDescription(&self, register: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, desc: *mut DEBUG_REGISTER_DESCRIPTION) -> ::windows::core::Result<()>;
fn GetIndexByName(&self, name: &::windows::core::PCSTR) -> ::windows::core::Result<u32>;
fn GetValue(&self, register: u32, value: *mut DEBUG_VALUE) -> ::windows::core::Result<()>;
fn SetValue(&self, register: u32, value: *const DEBUG_VALUE) -> ::windows::core::Result<()>;
fn GetValues(&self, count: u32, indices: *const u32, start: u32, values: *mut DEBUG_VALUE) -> ::windows::core::Result<()>;
fn SetValues(&self, count: u32, indices: *const u32, start: u32, values: *const DEBUG_VALUE) -> ::windows::core::Result<()>;
fn OutputRegisters(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetInstructionOffset(&self) -> ::windows::core::Result<u64>;
fn GetStackOffset(&self) -> ::windows::core::Result<u64>;
fn GetFrameOffset(&self) -> ::windows::core::Result<u64>;
fn GetDescriptionWide(&self, register: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, desc: *mut DEBUG_REGISTER_DESCRIPTION) -> ::windows::core::Result<()>;
fn GetIndexByNameWide(&self, name: &::windows::core::PCWSTR) -> ::windows::core::Result<u32>;
fn GetNumberPseudoRegisters(&self) -> ::windows::core::Result<u32>;
fn GetPseudoDescription(&self, register: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, typemodule: *mut u64, typeid: *mut u32) -> ::windows::core::Result<()>;
fn GetPseudoDescriptionWide(&self, register: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, typemodule: *mut u64, typeid: *mut u32) -> ::windows::core::Result<()>;
fn GetPseudoIndexByName(&self, name: &::windows::core::PCSTR) -> ::windows::core::Result<u32>;
fn GetPseudoIndexByNameWide(&self, name: &::windows::core::PCWSTR) -> ::windows::core::Result<u32>;
fn GetPseudoValues(&self, source: u32, count: u32, indices: *const u32, start: u32, values: *mut DEBUG_VALUE) -> ::windows::core::Result<()>;
fn SetPseudoValues(&self, source: u32, count: u32, indices: *const u32, start: u32, values: *const DEBUG_VALUE) -> ::windows::core::Result<()>;
fn GetValues2(&self, source: u32, count: u32, indices: *const u32, start: u32, values: *mut DEBUG_VALUE) -> ::windows::core::Result<()>;
fn SetValues2(&self, source: u32, count: u32, indices: *const u32, start: u32, values: *const DEBUG_VALUE) -> ::windows::core::Result<()>;
fn OutputRegisters2(&self, outputcontrol: u32, source: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetInstructionOffset2(&self, source: u32) -> ::windows::core::Result<u64>;
fn GetStackOffset2(&self, source: u32) -> ::windows::core::Result<u64>;
fn GetFrameOffset2(&self, source: u32) -> ::windows::core::Result<u64>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for IDebugRegisters2 {}
#[cfg(feature = "Win32_Foundation")]
impl IDebugRegisters2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>() -> IDebugRegisters2_Vtbl {
unsafe extern "system" fn GetNumberRegisters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberRegisters() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, register: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, desc: *mut DEBUG_REGISTER_DESCRIPTION) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDescription(::core::mem::transmute_copy(&register), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&desc)).into()
}
unsafe extern "system" fn GetIndexByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, index: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetIndexByName(::core::mem::transmute(&name)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(index, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, register: u32, value: *mut DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetValue(::core::mem::transmute_copy(&register), ::core::mem::transmute_copy(&value)).into()
}
unsafe extern "system" fn SetValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, register: u32, value: *const DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetValue(::core::mem::transmute_copy(&register), ::core::mem::transmute_copy(&value)).into()
}
unsafe extern "system" fn GetValues<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, indices: *const u32, start: u32, values: *mut DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetValues(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&indices), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&values)).into()
}
unsafe extern "system" fn SetValues<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, indices: *const u32, start: u32, values: *const DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetValues(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&indices), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&values)).into()
}
unsafe extern "system" fn OutputRegisters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputRegisters(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetInstructionOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetInstructionOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetStackOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetStackOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFrameOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFrameOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDescriptionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, register: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, desc: *mut DEBUG_REGISTER_DESCRIPTION) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDescriptionWide(::core::mem::transmute_copy(&register), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&desc)).into()
}
unsafe extern "system" fn GetIndexByNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, index: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetIndexByNameWide(::core::mem::transmute(&name)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(index, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberPseudoRegisters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberPseudoRegisters() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetPseudoDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, register: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, typemodule: *mut u64, typeid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPseudoDescription(::core::mem::transmute_copy(&register), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&typemodule), ::core::mem::transmute_copy(&typeid)).into()
}
unsafe extern "system" fn GetPseudoDescriptionWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, register: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, typemodule: *mut u64, typeid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPseudoDescriptionWide(::core::mem::transmute_copy(&register), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&typemodule), ::core::mem::transmute_copy(&typeid)).into()
}
unsafe extern "system" fn GetPseudoIndexByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, index: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPseudoIndexByName(::core::mem::transmute(&name)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(index, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetPseudoIndexByNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, index: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPseudoIndexByNameWide(::core::mem::transmute(&name)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(index, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetPseudoValues<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, source: u32, count: u32, indices: *const u32, start: u32, values: *mut DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPseudoValues(::core::mem::transmute_copy(&source), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&indices), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&values)).into()
}
unsafe extern "system" fn SetPseudoValues<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, source: u32, count: u32, indices: *const u32, start: u32, values: *const DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPseudoValues(::core::mem::transmute_copy(&source), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&indices), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&values)).into()
}
unsafe extern "system" fn GetValues2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, source: u32, count: u32, indices: *const u32, start: u32, values: *mut DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetValues2(::core::mem::transmute_copy(&source), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&indices), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&values)).into()
}
unsafe extern "system" fn SetValues2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, source: u32, count: u32, indices: *const u32, start: u32, values: *const DEBUG_VALUE) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetValues2(::core::mem::transmute_copy(&source), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&indices), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&values)).into()
}
unsafe extern "system" fn OutputRegisters2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, source: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputRegisters2(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&source), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetInstructionOffset2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, source: u32, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetInstructionOffset2(::core::mem::transmute_copy(&source)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetStackOffset2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, source: u32, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetStackOffset2(::core::mem::transmute_copy(&source)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFrameOffset2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugRegisters2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, source: u32, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFrameOffset2(::core::mem::transmute_copy(&source)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetNumberRegisters: GetNumberRegisters::<Identity, Impl, OFFSET>,
GetDescription: GetDescription::<Identity, Impl, OFFSET>,
GetIndexByName: GetIndexByName::<Identity, Impl, OFFSET>,
GetValue: GetValue::<Identity, Impl, OFFSET>,
SetValue: SetValue::<Identity, Impl, OFFSET>,
GetValues: GetValues::<Identity, Impl, OFFSET>,
SetValues: SetValues::<Identity, Impl, OFFSET>,
OutputRegisters: OutputRegisters::<Identity, Impl, OFFSET>,
GetInstructionOffset: GetInstructionOffset::<Identity, Impl, OFFSET>,
GetStackOffset: GetStackOffset::<Identity, Impl, OFFSET>,
GetFrameOffset: GetFrameOffset::<Identity, Impl, OFFSET>,
GetDescriptionWide: GetDescriptionWide::<Identity, Impl, OFFSET>,
GetIndexByNameWide: GetIndexByNameWide::<Identity, Impl, OFFSET>,
GetNumberPseudoRegisters: GetNumberPseudoRegisters::<Identity, Impl, OFFSET>,
GetPseudoDescription: GetPseudoDescription::<Identity, Impl, OFFSET>,
GetPseudoDescriptionWide: GetPseudoDescriptionWide::<Identity, Impl, OFFSET>,
GetPseudoIndexByName: GetPseudoIndexByName::<Identity, Impl, OFFSET>,
GetPseudoIndexByNameWide: GetPseudoIndexByNameWide::<Identity, Impl, OFFSET>,
GetPseudoValues: GetPseudoValues::<Identity, Impl, OFFSET>,
SetPseudoValues: SetPseudoValues::<Identity, Impl, OFFSET>,
GetValues2: GetValues2::<Identity, Impl, OFFSET>,
SetValues2: SetValues2::<Identity, Impl, OFFSET>,
OutputRegisters2: OutputRegisters2::<Identity, Impl, OFFSET>,
GetInstructionOffset2: GetInstructionOffset2::<Identity, Impl, OFFSET>,
GetStackOffset2: GetStackOffset2::<Identity, Impl, OFFSET>,
GetFrameOffset2: GetFrameOffset2::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugRegisters2 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDebugSymbolGroup_Impl: Sized {
fn GetNumberSymbols(&self) -> ::windows::core::Result<u32>;
fn AddSymbol(&self, name: &::windows::core::PCSTR, index: *mut u32) -> ::windows::core::Result<()>;
fn RemoveSymbolByName(&self, name: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn RemoveSymbolByIndex(&self, index: u32) -> ::windows::core::Result<()>;
fn GetSymbolName(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolParameters(&self, start: u32, count: u32, params: *mut DEBUG_SYMBOL_PARAMETERS) -> ::windows::core::Result<()>;
fn ExpandSymbol(&self, index: u32, expand: super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn OutputSymbols(&self, outputcontrol: u32, flags: u32, start: u32, count: u32) -> ::windows::core::Result<()>;
fn WriteSymbol(&self, index: u32, value: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputAsType(&self, index: u32, r#type: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for IDebugSymbolGroup {}
#[cfg(feature = "Win32_Foundation")]
impl IDebugSymbolGroup_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup_Impl, const OFFSET: isize>() -> IDebugSymbolGroup_Vtbl {
unsafe extern "system" fn GetNumberSymbols<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberSymbols() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddSymbol<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, index: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSymbol(::core::mem::transmute(&name), ::core::mem::transmute_copy(&index)).into()
}
unsafe extern "system" fn RemoveSymbolByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveSymbolByName(::core::mem::transmute(&name)).into()
}
unsafe extern "system" fn RemoveSymbolByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveSymbolByIndex(::core::mem::transmute_copy(&index)).into()
}
unsafe extern "system" fn GetSymbolName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolName(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetSymbolParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SYMBOL_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolParameters(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn ExpandSymbol<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, expand: super::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.ExpandSymbol(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&expand)).into()
}
unsafe extern "system" fn OutputSymbols<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, start: u32, count: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputSymbols(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count)).into()
}
unsafe extern "system" fn WriteSymbol<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, value: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteSymbol(::core::mem::transmute_copy(&index), ::core::mem::transmute(&value)).into()
}
unsafe extern "system" fn OutputAsType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, r#type: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputAsType(::core::mem::transmute_copy(&index), ::core::mem::transmute(&r#type)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetNumberSymbols: GetNumberSymbols::<Identity, Impl, OFFSET>,
AddSymbol: AddSymbol::<Identity, Impl, OFFSET>,
RemoveSymbolByName: RemoveSymbolByName::<Identity, Impl, OFFSET>,
RemoveSymbolByIndex: RemoveSymbolByIndex::<Identity, Impl, OFFSET>,
GetSymbolName: GetSymbolName::<Identity, Impl, OFFSET>,
GetSymbolParameters: GetSymbolParameters::<Identity, Impl, OFFSET>,
ExpandSymbol: ExpandSymbol::<Identity, Impl, OFFSET>,
OutputSymbols: OutputSymbols::<Identity, Impl, OFFSET>,
WriteSymbol: WriteSymbol::<Identity, Impl, OFFSET>,
OutputAsType: OutputAsType::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugSymbolGroup as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDebugSymbolGroup2_Impl: Sized {
fn GetNumberSymbols(&self) -> ::windows::core::Result<u32>;
fn AddSymbol(&self, name: &::windows::core::PCSTR, index: *mut u32) -> ::windows::core::Result<()>;
fn RemoveSymbolByName(&self, name: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn RemoveSymbolByIndex(&self, index: u32) -> ::windows::core::Result<()>;
fn GetSymbolName(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolParameters(&self, start: u32, count: u32, params: *mut DEBUG_SYMBOL_PARAMETERS) -> ::windows::core::Result<()>;
fn ExpandSymbol(&self, index: u32, expand: super::super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
fn OutputSymbols(&self, outputcontrol: u32, flags: u32, start: u32, count: u32) -> ::windows::core::Result<()>;
fn WriteSymbol(&self, index: u32, value: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn OutputAsType(&self, index: u32, r#type: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AddSymbolWide(&self, name: &::windows::core::PCWSTR, index: *mut u32) -> ::windows::core::Result<()>;
fn RemoveSymbolByNameWide(&self, name: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetSymbolNameWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn WriteSymbolWide(&self, index: u32, value: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn OutputAsTypeWide(&self, index: u32, r#type: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetSymbolTypeName(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolTypeNameWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolSize(&self, index: u32) -> ::windows::core::Result<u32>;
fn GetSymbolOffset(&self, index: u32) -> ::windows::core::Result<u64>;
fn GetSymbolRegister(&self, index: u32) -> ::windows::core::Result<u32>;
fn GetSymbolValueText(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolValueTextWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolEntryInformation(&self, index: u32, entry: *mut DEBUG_SYMBOL_ENTRY) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for IDebugSymbolGroup2 {}
#[cfg(feature = "Win32_Foundation")]
impl IDebugSymbolGroup2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>() -> IDebugSymbolGroup2_Vtbl {
unsafe extern "system" fn GetNumberSymbols<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberSymbols() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddSymbol<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, index: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSymbol(::core::mem::transmute(&name), ::core::mem::transmute_copy(&index)).into()
}
unsafe extern "system" fn RemoveSymbolByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveSymbolByName(::core::mem::transmute(&name)).into()
}
unsafe extern "system" fn RemoveSymbolByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveSymbolByIndex(::core::mem::transmute_copy(&index)).into()
}
unsafe extern "system" fn GetSymbolName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolName(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetSymbolParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SYMBOL_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolParameters(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn ExpandSymbol<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, expand: super::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.ExpandSymbol(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&expand)).into()
}
unsafe extern "system" fn OutputSymbols<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, start: u32, count: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputSymbols(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count)).into()
}
unsafe extern "system" fn WriteSymbol<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, value: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteSymbol(::core::mem::transmute_copy(&index), ::core::mem::transmute(&value)).into()
}
unsafe extern "system" fn OutputAsType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, r#type: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputAsType(::core::mem::transmute_copy(&index), ::core::mem::transmute(&r#type)).into()
}
unsafe extern "system" fn AddSymbolWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, index: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSymbolWide(::core::mem::transmute(&name), ::core::mem::transmute_copy(&index)).into()
}
unsafe extern "system" fn RemoveSymbolByNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveSymbolByNameWide(::core::mem::transmute(&name)).into()
}
unsafe extern "system" fn GetSymbolNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolNameWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn WriteSymbolWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, value: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteSymbolWide(::core::mem::transmute_copy(&index), ::core::mem::transmute(&value)).into()
}
unsafe extern "system" fn OutputAsTypeWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, r#type: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputAsTypeWide(::core::mem::transmute_copy(&index), ::core::mem::transmute(&r#type)).into()
}
unsafe extern "system" fn GetSymbolTypeName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolTypeName(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetSymbolTypeNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolTypeNameWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetSymbolSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, size: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolSize(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(size, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSymbolOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolOffset(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSymbolRegister<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, register: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolRegister(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(register, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSymbolValueText<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolValueText(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetSymbolValueTextWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolValueTextWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetSymbolEntryInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbolGroup2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, entry: *mut DEBUG_SYMBOL_ENTRY) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntryInformation(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&entry)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetNumberSymbols: GetNumberSymbols::<Identity, Impl, OFFSET>,
AddSymbol: AddSymbol::<Identity, Impl, OFFSET>,
RemoveSymbolByName: RemoveSymbolByName::<Identity, Impl, OFFSET>,
RemoveSymbolByIndex: RemoveSymbolByIndex::<Identity, Impl, OFFSET>,
GetSymbolName: GetSymbolName::<Identity, Impl, OFFSET>,
GetSymbolParameters: GetSymbolParameters::<Identity, Impl, OFFSET>,
ExpandSymbol: ExpandSymbol::<Identity, Impl, OFFSET>,
OutputSymbols: OutputSymbols::<Identity, Impl, OFFSET>,
WriteSymbol: WriteSymbol::<Identity, Impl, OFFSET>,
OutputAsType: OutputAsType::<Identity, Impl, OFFSET>,
AddSymbolWide: AddSymbolWide::<Identity, Impl, OFFSET>,
RemoveSymbolByNameWide: RemoveSymbolByNameWide::<Identity, Impl, OFFSET>,
GetSymbolNameWide: GetSymbolNameWide::<Identity, Impl, OFFSET>,
WriteSymbolWide: WriteSymbolWide::<Identity, Impl, OFFSET>,
OutputAsTypeWide: OutputAsTypeWide::<Identity, Impl, OFFSET>,
GetSymbolTypeName: GetSymbolTypeName::<Identity, Impl, OFFSET>,
GetSymbolTypeNameWide: GetSymbolTypeNameWide::<Identity, Impl, OFFSET>,
GetSymbolSize: GetSymbolSize::<Identity, Impl, OFFSET>,
GetSymbolOffset: GetSymbolOffset::<Identity, Impl, OFFSET>,
GetSymbolRegister: GetSymbolRegister::<Identity, Impl, OFFSET>,
GetSymbolValueText: GetSymbolValueText::<Identity, Impl, OFFSET>,
GetSymbolValueTextWide: GetSymbolValueTextWide::<Identity, Impl, OFFSET>,
GetSymbolEntryInformation: GetSymbolEntryInformation::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugSymbolGroup2 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDebugSymbols_Impl: Sized {
fn GetSymbolOptions(&self) -> ::windows::core::Result<u32>;
fn AddSymbolOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveSymbolOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetSymbolOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn GetNameByOffset(&self, offset: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetByName(&self, symbol: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetLineByOffset(&self, offset: u64, line: *mut u32, filebuffer: ::windows::core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetByLine(&self, line: u32, file: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn GetNumberModules(&self, loaded: *mut u32, unloaded: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleByIndex(&self, index: u32) -> ::windows::core::Result<u64>;
fn GetModuleByModuleName(&self, name: &::windows::core::PCSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn GetModuleByOffset(&self, offset: u64, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: ::windows::core::PSTR, imagenamebuffersize: u32, imagenamesize: *mut u32, modulenamebuffer: ::windows::core::PSTR, modulenamebuffersize: u32, modulenamesize: *mut u32, loadedimagenamebuffer: ::windows::core::PSTR, loadedimagenamebuffersize: u32, loadedimagenamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleParameters(&self, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::Result<()>;
fn GetSymbolModule(&self, symbol: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetTypeId(&self, module: u64, name: &::windows::core::PCSTR) -> ::windows::core::Result<u32>;
fn GetTypeSize(&self, module: u64, typeid: u32) -> ::windows::core::Result<u32>;
fn GetFieldOffset(&self, module: u64, typeid: u32, field: &::windows::core::PCSTR) -> ::windows::core::Result<u32>;
fn GetSymbolTypeId(&self, symbol: &::windows::core::PCSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetTypeId(&self, offset: u64, typeid: *mut u32, module: *mut u64) -> ::windows::core::Result<()>;
fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn OutputTypedDataVirtual(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()>;
fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn OutputTypedDataPhysical(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetScope(&self, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()>;
fn SetScope(&self, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()>;
fn ResetScope(&self) -> ::windows::core::Result<()>;
fn GetScopeSymbolGroup(&self, flags: u32, update: ::core::option::Option<&IDebugSymbolGroup>) -> ::windows::core::Result<IDebugSymbolGroup>;
fn CreateSymbolGroup(&self) -> ::windows::core::Result<IDebugSymbolGroup>;
fn StartSymbolMatch(&self, pattern: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn GetNextSymbolMatch(&self, handle: u64, buffer: ::windows::core::PSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::Result<()>;
fn EndSymbolMatch(&self, handle: u64) -> ::windows::core::Result<()>;
fn Reload(&self, module: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetSymbolPath(&self, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSymbolPath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AppendSymbolPath(&self, addition: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetImagePath(&self, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn SetImagePath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AppendImagePath(&self, addition: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetSourcePath(&self, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourcePathElement(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSourcePath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AppendSourcePath(&self, addition: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn FindSourceFile(&self, startelement: u32, file: &::windows::core::PCSTR, flags: u32, foundelement: *mut u32, buffer: ::windows::core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceFileLineOffsets(&self, file: &::windows::core::PCSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for IDebugSymbols {}
#[cfg(feature = "Win32_Foundation")]
impl IDebugSymbols_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>() -> IDebugSymbols_Vtbl {
unsafe extern "system" fn GetSymbolOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddSymbolOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSymbolOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveSymbolOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveSymbolOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetSymbolOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSymbolOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn GetNameByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNameByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetOffsetByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffsetByName(::core::mem::transmute(&symbol)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNearNameByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNearNameByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&delta), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetLineByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, line: *mut u32, filebuffer: ::windows::core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLineByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&line), ::core::mem::transmute_copy(&filebuffer), ::core::mem::transmute_copy(&filebuffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetOffsetByLine<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCSTR, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffsetByLine(::core::mem::transmute_copy(&line), ::core::mem::transmute(&file)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberModules<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, loaded: *mut u32, unloaded: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNumberModules(::core::mem::transmute_copy(&loaded), ::core::mem::transmute_copy(&unloaded)).into()
}
unsafe extern "system" fn GetModuleByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetModuleByIndex(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(base, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetModuleByModuleName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByModuleName(::core::mem::transmute(&name), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetModuleByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetModuleNames<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, base: u64, imagenamebuffer: ::windows::core::PSTR, imagenamebuffersize: u32, imagenamesize: *mut u32, modulenamebuffer: ::windows::core::PSTR, modulenamebuffersize: u32, modulenamesize: *mut u32, loadedimagenamebuffer: ::windows::core::PSTR, loadedimagenamebuffersize: u32, loadedimagenamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleNames(
::core::mem::transmute_copy(&index),
::core::mem::transmute_copy(&base),
::core::mem::transmute_copy(&imagenamebuffer),
::core::mem::transmute_copy(&imagenamebuffersize),
::core::mem::transmute_copy(&imagenamesize),
::core::mem::transmute_copy(&modulenamebuffer),
::core::mem::transmute_copy(&modulenamebuffersize),
::core::mem::transmute_copy(&modulenamesize),
::core::mem::transmute_copy(&loadedimagenamebuffer),
::core::mem::transmute_copy(&loadedimagenamebuffersize),
::core::mem::transmute_copy(&loadedimagenamesize),
)
.into()
}
unsafe extern "system" fn GetModuleParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&bases), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetSymbolModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolModule(::core::mem::transmute(&symbol)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(base, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTypeName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTypeName(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetTypeId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, name: ::windows::core::PCSTR, typeid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTypeId(::core::mem::transmute_copy(&module), ::core::mem::transmute(&name)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(typeid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTypeSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, size: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTypeSize(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(size, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFieldOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows::core::PCSTR, offset: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFieldOffset(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute(&field)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSymbolTypeId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolTypeId(::core::mem::transmute(&symbol), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&module)).into()
}
unsafe extern "system" fn GetOffsetTypeId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOffsetTypeId(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&module)).into()
}
unsafe extern "system" fn ReadTypedDataVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadTypedDataVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteTypedDataVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteTypedDataVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn OutputTypedDataVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputTypedDataVirtual(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn ReadTypedDataPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadTypedDataPhysical(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteTypedDataPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteTypedDataPhysical(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn OutputTypedDataPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputTypedDataPhysical(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetScope<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetScope(::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&scopeframe), ::core::mem::transmute_copy(&scopecontext), ::core::mem::transmute_copy(&scopecontextsize)).into()
}
unsafe extern "system" fn SetScope<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetScope(::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&scopeframe), ::core::mem::transmute_copy(&scopecontext), ::core::mem::transmute_copy(&scopecontextsize)).into()
}
unsafe extern "system" fn ResetScope<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_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.ResetScope().into()
}
unsafe extern "system" fn GetScopeSymbolGroup<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *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.GetScopeSymbolGroup(::core::mem::transmute_copy(&flags), ::windows::core::from_raw_borrowed(&update)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(symbols, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateSymbolGroup<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, group: *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.CreateSymbolGroup() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(group, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn StartSymbolMatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pattern: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.StartSymbolMatch(::core::mem::transmute(&pattern)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNextSymbolMatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows::core::PSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNextSymbolMatch(::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&matchsize), ::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn EndSymbolMatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndSymbolMatch(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn Reload<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Reload(::core::mem::transmute(&module)).into()
}
unsafe extern "system" fn GetSymbolPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolPath(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn SetSymbolPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSymbolPath(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendSymbolPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendSymbolPath(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn GetImagePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetImagePath(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn SetImagePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetImagePath(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendImagePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendImagePath(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn GetSourcePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourcePath(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn GetSourcePathElement<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourcePathElement(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&elementsize)).into()
}
unsafe extern "system" fn SetSourcePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSourcePath(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendSourcePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendSourcePath(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn FindSourceFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startelement: u32, file: ::windows::core::PCSTR, flags: u32, foundelement: *mut u32, buffer: ::windows::core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FindSourceFile(::core::mem::transmute_copy(&startelement), ::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&foundelement), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&foundsize)).into()
}
unsafe extern "system" fn GetSourceFileLineOffsets<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceFileLineOffsets(::core::mem::transmute(&file), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&bufferlines), ::core::mem::transmute_copy(&filelines)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetSymbolOptions: GetSymbolOptions::<Identity, Impl, OFFSET>,
AddSymbolOptions: AddSymbolOptions::<Identity, Impl, OFFSET>,
RemoveSymbolOptions: RemoveSymbolOptions::<Identity, Impl, OFFSET>,
SetSymbolOptions: SetSymbolOptions::<Identity, Impl, OFFSET>,
GetNameByOffset: GetNameByOffset::<Identity, Impl, OFFSET>,
GetOffsetByName: GetOffsetByName::<Identity, Impl, OFFSET>,
GetNearNameByOffset: GetNearNameByOffset::<Identity, Impl, OFFSET>,
GetLineByOffset: GetLineByOffset::<Identity, Impl, OFFSET>,
GetOffsetByLine: GetOffsetByLine::<Identity, Impl, OFFSET>,
GetNumberModules: GetNumberModules::<Identity, Impl, OFFSET>,
GetModuleByIndex: GetModuleByIndex::<Identity, Impl, OFFSET>,
GetModuleByModuleName: GetModuleByModuleName::<Identity, Impl, OFFSET>,
GetModuleByOffset: GetModuleByOffset::<Identity, Impl, OFFSET>,
GetModuleNames: GetModuleNames::<Identity, Impl, OFFSET>,
GetModuleParameters: GetModuleParameters::<Identity, Impl, OFFSET>,
GetSymbolModule: GetSymbolModule::<Identity, Impl, OFFSET>,
GetTypeName: GetTypeName::<Identity, Impl, OFFSET>,
GetTypeId: GetTypeId::<Identity, Impl, OFFSET>,
GetTypeSize: GetTypeSize::<Identity, Impl, OFFSET>,
GetFieldOffset: GetFieldOffset::<Identity, Impl, OFFSET>,
GetSymbolTypeId: GetSymbolTypeId::<Identity, Impl, OFFSET>,
GetOffsetTypeId: GetOffsetTypeId::<Identity, Impl, OFFSET>,
ReadTypedDataVirtual: ReadTypedDataVirtual::<Identity, Impl, OFFSET>,
WriteTypedDataVirtual: WriteTypedDataVirtual::<Identity, Impl, OFFSET>,
OutputTypedDataVirtual: OutputTypedDataVirtual::<Identity, Impl, OFFSET>,
ReadTypedDataPhysical: ReadTypedDataPhysical::<Identity, Impl, OFFSET>,
WriteTypedDataPhysical: WriteTypedDataPhysical::<Identity, Impl, OFFSET>,
OutputTypedDataPhysical: OutputTypedDataPhysical::<Identity, Impl, OFFSET>,
GetScope: GetScope::<Identity, Impl, OFFSET>,
SetScope: SetScope::<Identity, Impl, OFFSET>,
ResetScope: ResetScope::<Identity, Impl, OFFSET>,
GetScopeSymbolGroup: GetScopeSymbolGroup::<Identity, Impl, OFFSET>,
CreateSymbolGroup: CreateSymbolGroup::<Identity, Impl, OFFSET>,
StartSymbolMatch: StartSymbolMatch::<Identity, Impl, OFFSET>,
GetNextSymbolMatch: GetNextSymbolMatch::<Identity, Impl, OFFSET>,
EndSymbolMatch: EndSymbolMatch::<Identity, Impl, OFFSET>,
Reload: Reload::<Identity, Impl, OFFSET>,
GetSymbolPath: GetSymbolPath::<Identity, Impl, OFFSET>,
SetSymbolPath: SetSymbolPath::<Identity, Impl, OFFSET>,
AppendSymbolPath: AppendSymbolPath::<Identity, Impl, OFFSET>,
GetImagePath: GetImagePath::<Identity, Impl, OFFSET>,
SetImagePath: SetImagePath::<Identity, Impl, OFFSET>,
AppendImagePath: AppendImagePath::<Identity, Impl, OFFSET>,
GetSourcePath: GetSourcePath::<Identity, Impl, OFFSET>,
GetSourcePathElement: GetSourcePathElement::<Identity, Impl, OFFSET>,
SetSourcePath: SetSourcePath::<Identity, Impl, OFFSET>,
AppendSourcePath: AppendSourcePath::<Identity, Impl, OFFSET>,
FindSourceFile: FindSourceFile::<Identity, Impl, OFFSET>,
GetSourceFileLineOffsets: GetSourceFileLineOffsets::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugSymbols as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDebugSymbols2_Impl: Sized {
fn GetSymbolOptions(&self) -> ::windows::core::Result<u32>;
fn AddSymbolOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveSymbolOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetSymbolOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn GetNameByOffset(&self, offset: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetByName(&self, symbol: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetLineByOffset(&self, offset: u64, line: *mut u32, filebuffer: ::windows::core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetByLine(&self, line: u32, file: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn GetNumberModules(&self, loaded: *mut u32, unloaded: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleByIndex(&self, index: u32) -> ::windows::core::Result<u64>;
fn GetModuleByModuleName(&self, name: &::windows::core::PCSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn GetModuleByOffset(&self, offset: u64, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: ::windows::core::PSTR, imagenamebuffersize: u32, imagenamesize: *mut u32, modulenamebuffer: ::windows::core::PSTR, modulenamebuffersize: u32, modulenamesize: *mut u32, loadedimagenamebuffer: ::windows::core::PSTR, loadedimagenamebuffersize: u32, loadedimagenamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleParameters(&self, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::Result<()>;
fn GetSymbolModule(&self, symbol: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetTypeId(&self, module: u64, name: &::windows::core::PCSTR) -> ::windows::core::Result<u32>;
fn GetTypeSize(&self, module: u64, typeid: u32) -> ::windows::core::Result<u32>;
fn GetFieldOffset(&self, module: u64, typeid: u32, field: &::windows::core::PCSTR) -> ::windows::core::Result<u32>;
fn GetSymbolTypeId(&self, symbol: &::windows::core::PCSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetTypeId(&self, offset: u64, typeid: *mut u32, module: *mut u64) -> ::windows::core::Result<()>;
fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn OutputTypedDataVirtual(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()>;
fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn OutputTypedDataPhysical(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetScope(&self, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()>;
fn SetScope(&self, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()>;
fn ResetScope(&self) -> ::windows::core::Result<()>;
fn GetScopeSymbolGroup(&self, flags: u32, update: ::core::option::Option<&IDebugSymbolGroup>) -> ::windows::core::Result<IDebugSymbolGroup>;
fn CreateSymbolGroup(&self) -> ::windows::core::Result<IDebugSymbolGroup>;
fn StartSymbolMatch(&self, pattern: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn GetNextSymbolMatch(&self, handle: u64, buffer: ::windows::core::PSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::Result<()>;
fn EndSymbolMatch(&self, handle: u64) -> ::windows::core::Result<()>;
fn Reload(&self, module: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetSymbolPath(&self, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSymbolPath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AppendSymbolPath(&self, addition: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetImagePath(&self, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn SetImagePath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AppendImagePath(&self, addition: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetSourcePath(&self, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourcePathElement(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSourcePath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AppendSourcePath(&self, addition: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn FindSourceFile(&self, startelement: u32, file: &::windows::core::PCSTR, flags: u32, foundelement: *mut u32, buffer: ::windows::core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceFileLineOffsets(&self, file: &::windows::core::PCSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleVersionInformation(&self, index: u32, base: u64, item: &::windows::core::PCSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleNameString(&self, which: u32, index: u32, base: u64, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetConstantName(&self, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetFieldName(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetTypeOptions(&self) -> ::windows::core::Result<u32>;
fn AddTypeOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveTypeOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetTypeOptions(&self, options: u32) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for IDebugSymbols2 {}
#[cfg(feature = "Win32_Foundation")]
impl IDebugSymbols2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>() -> IDebugSymbols2_Vtbl {
unsafe extern "system" fn GetSymbolOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddSymbolOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSymbolOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveSymbolOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveSymbolOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetSymbolOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSymbolOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn GetNameByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNameByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetOffsetByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffsetByName(::core::mem::transmute(&symbol)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNearNameByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNearNameByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&delta), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetLineByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, line: *mut u32, filebuffer: ::windows::core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLineByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&line), ::core::mem::transmute_copy(&filebuffer), ::core::mem::transmute_copy(&filebuffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetOffsetByLine<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCSTR, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffsetByLine(::core::mem::transmute_copy(&line), ::core::mem::transmute(&file)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberModules<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, loaded: *mut u32, unloaded: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNumberModules(::core::mem::transmute_copy(&loaded), ::core::mem::transmute_copy(&unloaded)).into()
}
unsafe extern "system" fn GetModuleByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetModuleByIndex(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(base, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetModuleByModuleName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByModuleName(::core::mem::transmute(&name), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetModuleByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetModuleNames<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, base: u64, imagenamebuffer: ::windows::core::PSTR, imagenamebuffersize: u32, imagenamesize: *mut u32, modulenamebuffer: ::windows::core::PSTR, modulenamebuffersize: u32, modulenamesize: *mut u32, loadedimagenamebuffer: ::windows::core::PSTR, loadedimagenamebuffersize: u32, loadedimagenamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleNames(
::core::mem::transmute_copy(&index),
::core::mem::transmute_copy(&base),
::core::mem::transmute_copy(&imagenamebuffer),
::core::mem::transmute_copy(&imagenamebuffersize),
::core::mem::transmute_copy(&imagenamesize),
::core::mem::transmute_copy(&modulenamebuffer),
::core::mem::transmute_copy(&modulenamebuffersize),
::core::mem::transmute_copy(&modulenamesize),
::core::mem::transmute_copy(&loadedimagenamebuffer),
::core::mem::transmute_copy(&loadedimagenamebuffersize),
::core::mem::transmute_copy(&loadedimagenamesize),
)
.into()
}
unsafe extern "system" fn GetModuleParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&bases), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetSymbolModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolModule(::core::mem::transmute(&symbol)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(base, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTypeName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTypeName(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetTypeId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, name: ::windows::core::PCSTR, typeid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTypeId(::core::mem::transmute_copy(&module), ::core::mem::transmute(&name)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(typeid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTypeSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, size: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTypeSize(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(size, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFieldOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows::core::PCSTR, offset: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFieldOffset(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute(&field)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSymbolTypeId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolTypeId(::core::mem::transmute(&symbol), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&module)).into()
}
unsafe extern "system" fn GetOffsetTypeId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOffsetTypeId(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&module)).into()
}
unsafe extern "system" fn ReadTypedDataVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadTypedDataVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteTypedDataVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteTypedDataVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn OutputTypedDataVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputTypedDataVirtual(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn ReadTypedDataPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadTypedDataPhysical(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteTypedDataPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteTypedDataPhysical(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn OutputTypedDataPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputTypedDataPhysical(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetScope<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetScope(::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&scopeframe), ::core::mem::transmute_copy(&scopecontext), ::core::mem::transmute_copy(&scopecontextsize)).into()
}
unsafe extern "system" fn SetScope<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetScope(::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&scopeframe), ::core::mem::transmute_copy(&scopecontext), ::core::mem::transmute_copy(&scopecontextsize)).into()
}
unsafe extern "system" fn ResetScope<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_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.ResetScope().into()
}
unsafe extern "system" fn GetScopeSymbolGroup<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *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.GetScopeSymbolGroup(::core::mem::transmute_copy(&flags), ::windows::core::from_raw_borrowed(&update)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(symbols, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateSymbolGroup<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, group: *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.CreateSymbolGroup() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(group, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn StartSymbolMatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pattern: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.StartSymbolMatch(::core::mem::transmute(&pattern)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNextSymbolMatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows::core::PSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNextSymbolMatch(::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&matchsize), ::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn EndSymbolMatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndSymbolMatch(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn Reload<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Reload(::core::mem::transmute(&module)).into()
}
unsafe extern "system" fn GetSymbolPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolPath(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn SetSymbolPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSymbolPath(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendSymbolPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendSymbolPath(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn GetImagePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetImagePath(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn SetImagePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetImagePath(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendImagePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendImagePath(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn GetSourcePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourcePath(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn GetSourcePathElement<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourcePathElement(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&elementsize)).into()
}
unsafe extern "system" fn SetSourcePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSourcePath(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendSourcePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendSourcePath(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn FindSourceFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startelement: u32, file: ::windows::core::PCSTR, flags: u32, foundelement: *mut u32, buffer: ::windows::core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FindSourceFile(::core::mem::transmute_copy(&startelement), ::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&foundelement), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&foundsize)).into()
}
unsafe extern "system" fn GetSourceFileLineOffsets<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceFileLineOffsets(::core::mem::transmute(&file), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&bufferlines), ::core::mem::transmute_copy(&filelines)).into()
}
unsafe extern "system" fn GetModuleVersionInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, base: u64, item: ::windows::core::PCSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleVersionInformation(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base), ::core::mem::transmute(&item), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&verinfosize)).into()
}
unsafe extern "system" fn GetModuleNameString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleNameString(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetConstantName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetConstantName(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetFieldName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFieldName(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&fieldindex), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetTypeOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTypeOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddTypeOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddTypeOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveTypeOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveTypeOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetTypeOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTypeOptions(::core::mem::transmute_copy(&options)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetSymbolOptions: GetSymbolOptions::<Identity, Impl, OFFSET>,
AddSymbolOptions: AddSymbolOptions::<Identity, Impl, OFFSET>,
RemoveSymbolOptions: RemoveSymbolOptions::<Identity, Impl, OFFSET>,
SetSymbolOptions: SetSymbolOptions::<Identity, Impl, OFFSET>,
GetNameByOffset: GetNameByOffset::<Identity, Impl, OFFSET>,
GetOffsetByName: GetOffsetByName::<Identity, Impl, OFFSET>,
GetNearNameByOffset: GetNearNameByOffset::<Identity, Impl, OFFSET>,
GetLineByOffset: GetLineByOffset::<Identity, Impl, OFFSET>,
GetOffsetByLine: GetOffsetByLine::<Identity, Impl, OFFSET>,
GetNumberModules: GetNumberModules::<Identity, Impl, OFFSET>,
GetModuleByIndex: GetModuleByIndex::<Identity, Impl, OFFSET>,
GetModuleByModuleName: GetModuleByModuleName::<Identity, Impl, OFFSET>,
GetModuleByOffset: GetModuleByOffset::<Identity, Impl, OFFSET>,
GetModuleNames: GetModuleNames::<Identity, Impl, OFFSET>,
GetModuleParameters: GetModuleParameters::<Identity, Impl, OFFSET>,
GetSymbolModule: GetSymbolModule::<Identity, Impl, OFFSET>,
GetTypeName: GetTypeName::<Identity, Impl, OFFSET>,
GetTypeId: GetTypeId::<Identity, Impl, OFFSET>,
GetTypeSize: GetTypeSize::<Identity, Impl, OFFSET>,
GetFieldOffset: GetFieldOffset::<Identity, Impl, OFFSET>,
GetSymbolTypeId: GetSymbolTypeId::<Identity, Impl, OFFSET>,
GetOffsetTypeId: GetOffsetTypeId::<Identity, Impl, OFFSET>,
ReadTypedDataVirtual: ReadTypedDataVirtual::<Identity, Impl, OFFSET>,
WriteTypedDataVirtual: WriteTypedDataVirtual::<Identity, Impl, OFFSET>,
OutputTypedDataVirtual: OutputTypedDataVirtual::<Identity, Impl, OFFSET>,
ReadTypedDataPhysical: ReadTypedDataPhysical::<Identity, Impl, OFFSET>,
WriteTypedDataPhysical: WriteTypedDataPhysical::<Identity, Impl, OFFSET>,
OutputTypedDataPhysical: OutputTypedDataPhysical::<Identity, Impl, OFFSET>,
GetScope: GetScope::<Identity, Impl, OFFSET>,
SetScope: SetScope::<Identity, Impl, OFFSET>,
ResetScope: ResetScope::<Identity, Impl, OFFSET>,
GetScopeSymbolGroup: GetScopeSymbolGroup::<Identity, Impl, OFFSET>,
CreateSymbolGroup: CreateSymbolGroup::<Identity, Impl, OFFSET>,
StartSymbolMatch: StartSymbolMatch::<Identity, Impl, OFFSET>,
GetNextSymbolMatch: GetNextSymbolMatch::<Identity, Impl, OFFSET>,
EndSymbolMatch: EndSymbolMatch::<Identity, Impl, OFFSET>,
Reload: Reload::<Identity, Impl, OFFSET>,
GetSymbolPath: GetSymbolPath::<Identity, Impl, OFFSET>,
SetSymbolPath: SetSymbolPath::<Identity, Impl, OFFSET>,
AppendSymbolPath: AppendSymbolPath::<Identity, Impl, OFFSET>,
GetImagePath: GetImagePath::<Identity, Impl, OFFSET>,
SetImagePath: SetImagePath::<Identity, Impl, OFFSET>,
AppendImagePath: AppendImagePath::<Identity, Impl, OFFSET>,
GetSourcePath: GetSourcePath::<Identity, Impl, OFFSET>,
GetSourcePathElement: GetSourcePathElement::<Identity, Impl, OFFSET>,
SetSourcePath: SetSourcePath::<Identity, Impl, OFFSET>,
AppendSourcePath: AppendSourcePath::<Identity, Impl, OFFSET>,
FindSourceFile: FindSourceFile::<Identity, Impl, OFFSET>,
GetSourceFileLineOffsets: GetSourceFileLineOffsets::<Identity, Impl, OFFSET>,
GetModuleVersionInformation: GetModuleVersionInformation::<Identity, Impl, OFFSET>,
GetModuleNameString: GetModuleNameString::<Identity, Impl, OFFSET>,
GetConstantName: GetConstantName::<Identity, Impl, OFFSET>,
GetFieldName: GetFieldName::<Identity, Impl, OFFSET>,
GetTypeOptions: GetTypeOptions::<Identity, Impl, OFFSET>,
AddTypeOptions: AddTypeOptions::<Identity, Impl, OFFSET>,
RemoveTypeOptions: RemoveTypeOptions::<Identity, Impl, OFFSET>,
SetTypeOptions: SetTypeOptions::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugSymbols2 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDebugSymbols3_Impl: Sized {
fn GetSymbolOptions(&self) -> ::windows::core::Result<u32>;
fn AddSymbolOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveSymbolOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetSymbolOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn GetNameByOffset(&self, offset: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetByName(&self, symbol: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetLineByOffset(&self, offset: u64, line: *mut u32, filebuffer: ::windows::core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetByLine(&self, line: u32, file: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn GetNumberModules(&self, loaded: *mut u32, unloaded: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleByIndex(&self, index: u32) -> ::windows::core::Result<u64>;
fn GetModuleByModuleName(&self, name: &::windows::core::PCSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn GetModuleByOffset(&self, offset: u64, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: ::windows::core::PSTR, imagenamebuffersize: u32, imagenamesize: *mut u32, modulenamebuffer: ::windows::core::PSTR, modulenamebuffersize: u32, modulenamesize: *mut u32, loadedimagenamebuffer: ::windows::core::PSTR, loadedimagenamebuffersize: u32, loadedimagenamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleParameters(&self, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::Result<()>;
fn GetSymbolModule(&self, symbol: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetTypeId(&self, module: u64, name: &::windows::core::PCSTR) -> ::windows::core::Result<u32>;
fn GetTypeSize(&self, module: u64, typeid: u32) -> ::windows::core::Result<u32>;
fn GetFieldOffset(&self, module: u64, typeid: u32, field: &::windows::core::PCSTR) -> ::windows::core::Result<u32>;
fn GetSymbolTypeId(&self, symbol: &::windows::core::PCSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetTypeId(&self, offset: u64, typeid: *mut u32, module: *mut u64) -> ::windows::core::Result<()>;
fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn OutputTypedDataVirtual(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()>;
fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn OutputTypedDataPhysical(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetScope(&self, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()>;
fn SetScope(&self, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()>;
fn ResetScope(&self) -> ::windows::core::Result<()>;
fn GetScopeSymbolGroup(&self, flags: u32, update: ::core::option::Option<&IDebugSymbolGroup>) -> ::windows::core::Result<IDebugSymbolGroup>;
fn CreateSymbolGroup(&self) -> ::windows::core::Result<IDebugSymbolGroup>;
fn StartSymbolMatch(&self, pattern: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn GetNextSymbolMatch(&self, handle: u64, buffer: ::windows::core::PSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::Result<()>;
fn EndSymbolMatch(&self, handle: u64) -> ::windows::core::Result<()>;
fn Reload(&self, module: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetSymbolPath(&self, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSymbolPath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AppendSymbolPath(&self, addition: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetImagePath(&self, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn SetImagePath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AppendImagePath(&self, addition: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetSourcePath(&self, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourcePathElement(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSourcePath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AppendSourcePath(&self, addition: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn FindSourceFile(&self, startelement: u32, file: &::windows::core::PCSTR, flags: u32, foundelement: *mut u32, buffer: ::windows::core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceFileLineOffsets(&self, file: &::windows::core::PCSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleVersionInformation(&self, index: u32, base: u64, item: &::windows::core::PCSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleNameString(&self, which: u32, index: u32, base: u64, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetConstantName(&self, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetFieldName(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetTypeOptions(&self) -> ::windows::core::Result<u32>;
fn AddTypeOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveTypeOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetTypeOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn GetNameByOffsetWide(&self, offset: u64, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetByNameWide(&self, symbol: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn GetNearNameByOffsetWide(&self, offset: u64, delta: i32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetLineByOffsetWide(&self, offset: u64, line: *mut u32, filebuffer: ::windows::core::PWSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetByLineWide(&self, line: u32, file: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn GetModuleByModuleNameWide(&self, name: &::windows::core::PCWSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn GetSymbolModuleWide(&self, symbol: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn GetTypeNameWide(&self, module: u64, typeid: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetTypeIdWide(&self, module: u64, name: &::windows::core::PCWSTR) -> ::windows::core::Result<u32>;
fn GetFieldOffsetWide(&self, module: u64, typeid: u32, field: &::windows::core::PCWSTR) -> ::windows::core::Result<u32>;
fn GetSymbolTypeIdWide(&self, symbol: &::windows::core::PCWSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::Result<()>;
fn GetScopeSymbolGroup2(&self, flags: u32, update: ::core::option::Option<&IDebugSymbolGroup2>) -> ::windows::core::Result<IDebugSymbolGroup2>;
fn CreateSymbolGroup2(&self) -> ::windows::core::Result<IDebugSymbolGroup2>;
fn StartSymbolMatchWide(&self, pattern: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn GetNextSymbolMatchWide(&self, handle: u64, buffer: ::windows::core::PWSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::Result<()>;
fn ReloadWide(&self, module: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetSymbolPathWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSymbolPathWide(&self, path: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn AppendSymbolPathWide(&self, addition: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetImagePathWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn SetImagePathWide(&self, path: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn AppendImagePathWide(&self, addition: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetSourcePathWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourcePathElementWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSourcePathWide(&self, path: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn AppendSourcePathWide(&self, addition: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn FindSourceFileWide(&self, startelement: u32, file: &::windows::core::PCWSTR, flags: u32, foundelement: *mut u32, buffer: ::windows::core::PWSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceFileLineOffsetsWide(&self, file: &::windows::core::PCWSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleVersionInformationWide(&self, index: u32, base: u64, item: &::windows::core::PCWSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleNameStringWide(&self, which: u32, index: u32, base: u64, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetConstantNameWide(&self, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetFieldNameWide(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn IsManagedModule(&self, index: u32, base: u64) -> ::windows::core::Result<()>;
fn GetModuleByModuleName2(&self, name: &::windows::core::PCSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn GetModuleByModuleName2Wide(&self, name: &::windows::core::PCWSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn GetModuleByOffset2(&self, offset: u64, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn AddSyntheticModule(&self, base: u64, size: u32, imagepath: &::windows::core::PCSTR, modulename: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn AddSyntheticModuleWide(&self, base: u64, size: u32, imagepath: &::windows::core::PCWSTR, modulename: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<()>;
fn RemoveSyntheticModule(&self, base: u64) -> ::windows::core::Result<()>;
fn GetCurrentScopeFrameIndex(&self) -> ::windows::core::Result<u32>;
fn SetScopeFrameByIndex(&self, index: u32) -> ::windows::core::Result<()>;
fn SetScopeFromJitDebugInfo(&self, outputcontrol: u32, infooffset: u64) -> ::windows::core::Result<()>;
fn SetScopeFromStoredEvent(&self) -> ::windows::core::Result<()>;
fn OutputSymbolByOffset(&self, outputcontrol: u32, flags: u32, offset: u64) -> ::windows::core::Result<()>;
fn GetFunctionEntryByOffset(&self, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bufferneeded: *mut u32) -> ::windows::core::Result<()>;
fn GetFieldTypeAndOffset(&self, module: u64, containertypeid: u32, field: &::windows::core::PCSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows::core::Result<()>;
fn GetFieldTypeAndOffsetWide(&self, module: u64, containertypeid: u32, field: &::windows::core::PCWSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows::core::Result<()>;
fn AddSyntheticSymbol(&self, offset: u64, size: u32, name: &::windows::core::PCSTR, flags: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::Result<()>;
fn AddSyntheticSymbolWide(&self, offset: u64, size: u32, name: &::windows::core::PCWSTR, flags: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::Result<()>;
fn RemoveSyntheticSymbol(&self, id: *const DEBUG_MODULE_AND_ID) -> ::windows::core::Result<()>;
fn GetSymbolEntriesByOffset(&self, offset: u64, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, displacements: *mut u64, idscount: u32, entries: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolEntriesByName(&self, symbol: &::windows::core::PCSTR, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, idscount: u32, entries: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolEntriesByNameWide(&self, symbol: &::windows::core::PCWSTR, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, idscount: u32, entries: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolEntryByToken(&self, modulebase: u64, token: u32) -> ::windows::core::Result<DEBUG_MODULE_AND_ID>;
fn GetSymbolEntryInformation(&self, id: *const DEBUG_MODULE_AND_ID, info: *mut DEBUG_SYMBOL_ENTRY) -> ::windows::core::Result<()>;
fn GetSymbolEntryString(&self, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolEntryStringWide(&self, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolEntryOffsetRegions(&self, id: *const DEBUG_MODULE_AND_ID, flags: u32, regions: *mut DEBUG_OFFSET_REGION, regionscount: u32, regionsavail: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolEntryBySymbolEntry(&self, fromid: *const DEBUG_MODULE_AND_ID, flags: u32) -> ::windows::core::Result<DEBUG_MODULE_AND_ID>;
fn GetSourceEntriesByOffset(&self, offset: u64, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceEntriesByLine(&self, line: u32, file: &::windows::core::PCSTR, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceEntriesByLineWide(&self, line: u32, file: &::windows::core::PCWSTR, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceEntryString(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceEntryStringWide(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceEntryOffsetRegions(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: *mut DEBUG_OFFSET_REGION, regionscount: u32, regionsavail: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceEntryBySourceEntry(&self, fromentry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, toentry: *mut DEBUG_SYMBOL_SOURCE_ENTRY) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for IDebugSymbols3 {}
#[cfg(feature = "Win32_Foundation")]
impl IDebugSymbols3_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>() -> IDebugSymbols3_Vtbl {
unsafe extern "system" fn GetSymbolOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddSymbolOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSymbolOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveSymbolOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveSymbolOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetSymbolOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSymbolOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn GetNameByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNameByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetOffsetByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffsetByName(::core::mem::transmute(&symbol)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNearNameByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNearNameByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&delta), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetLineByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, line: *mut u32, filebuffer: ::windows::core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLineByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&line), ::core::mem::transmute_copy(&filebuffer), ::core::mem::transmute_copy(&filebuffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetOffsetByLine<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCSTR, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffsetByLine(::core::mem::transmute_copy(&line), ::core::mem::transmute(&file)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberModules<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, loaded: *mut u32, unloaded: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNumberModules(::core::mem::transmute_copy(&loaded), ::core::mem::transmute_copy(&unloaded)).into()
}
unsafe extern "system" fn GetModuleByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetModuleByIndex(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(base, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetModuleByModuleName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByModuleName(::core::mem::transmute(&name), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetModuleByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetModuleNames<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, base: u64, imagenamebuffer: ::windows::core::PSTR, imagenamebuffersize: u32, imagenamesize: *mut u32, modulenamebuffer: ::windows::core::PSTR, modulenamebuffersize: u32, modulenamesize: *mut u32, loadedimagenamebuffer: ::windows::core::PSTR, loadedimagenamebuffersize: u32, loadedimagenamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleNames(
::core::mem::transmute_copy(&index),
::core::mem::transmute_copy(&base),
::core::mem::transmute_copy(&imagenamebuffer),
::core::mem::transmute_copy(&imagenamebuffersize),
::core::mem::transmute_copy(&imagenamesize),
::core::mem::transmute_copy(&modulenamebuffer),
::core::mem::transmute_copy(&modulenamebuffersize),
::core::mem::transmute_copy(&modulenamesize),
::core::mem::transmute_copy(&loadedimagenamebuffer),
::core::mem::transmute_copy(&loadedimagenamebuffersize),
::core::mem::transmute_copy(&loadedimagenamesize),
)
.into()
}
unsafe extern "system" fn GetModuleParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&bases), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetSymbolModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolModule(::core::mem::transmute(&symbol)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(base, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTypeName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTypeName(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetTypeId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, name: ::windows::core::PCSTR, typeid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTypeId(::core::mem::transmute_copy(&module), ::core::mem::transmute(&name)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(typeid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTypeSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, size: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTypeSize(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(size, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFieldOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows::core::PCSTR, offset: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFieldOffset(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute(&field)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSymbolTypeId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolTypeId(::core::mem::transmute(&symbol), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&module)).into()
}
unsafe extern "system" fn GetOffsetTypeId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOffsetTypeId(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&module)).into()
}
unsafe extern "system" fn ReadTypedDataVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadTypedDataVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteTypedDataVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteTypedDataVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn OutputTypedDataVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputTypedDataVirtual(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn ReadTypedDataPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadTypedDataPhysical(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteTypedDataPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteTypedDataPhysical(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn OutputTypedDataPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputTypedDataPhysical(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetScope<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetScope(::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&scopeframe), ::core::mem::transmute_copy(&scopecontext), ::core::mem::transmute_copy(&scopecontextsize)).into()
}
unsafe extern "system" fn SetScope<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetScope(::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&scopeframe), ::core::mem::transmute_copy(&scopecontext), ::core::mem::transmute_copy(&scopecontextsize)).into()
}
unsafe extern "system" fn ResetScope<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_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.ResetScope().into()
}
unsafe extern "system" fn GetScopeSymbolGroup<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *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.GetScopeSymbolGroup(::core::mem::transmute_copy(&flags), ::windows::core::from_raw_borrowed(&update)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(symbols, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateSymbolGroup<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, group: *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.CreateSymbolGroup() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(group, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn StartSymbolMatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pattern: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.StartSymbolMatch(::core::mem::transmute(&pattern)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNextSymbolMatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows::core::PSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNextSymbolMatch(::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&matchsize), ::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn EndSymbolMatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndSymbolMatch(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn Reload<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Reload(::core::mem::transmute(&module)).into()
}
unsafe extern "system" fn GetSymbolPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolPath(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn SetSymbolPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSymbolPath(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendSymbolPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendSymbolPath(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn GetImagePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetImagePath(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn SetImagePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetImagePath(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendImagePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendImagePath(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn GetSourcePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourcePath(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn GetSourcePathElement<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourcePathElement(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&elementsize)).into()
}
unsafe extern "system" fn SetSourcePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSourcePath(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendSourcePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendSourcePath(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn FindSourceFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startelement: u32, file: ::windows::core::PCSTR, flags: u32, foundelement: *mut u32, buffer: ::windows::core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FindSourceFile(::core::mem::transmute_copy(&startelement), ::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&foundelement), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&foundsize)).into()
}
unsafe extern "system" fn GetSourceFileLineOffsets<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceFileLineOffsets(::core::mem::transmute(&file), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&bufferlines), ::core::mem::transmute_copy(&filelines)).into()
}
unsafe extern "system" fn GetModuleVersionInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, base: u64, item: ::windows::core::PCSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleVersionInformation(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base), ::core::mem::transmute(&item), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&verinfosize)).into()
}
unsafe extern "system" fn GetModuleNameString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleNameString(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetConstantName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetConstantName(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetFieldName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFieldName(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&fieldindex), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetTypeOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTypeOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddTypeOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddTypeOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveTypeOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveTypeOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetTypeOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTypeOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn GetNameByOffsetWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNameByOffsetWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetOffsetByNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffsetByNameWide(::core::mem::transmute(&symbol)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNearNameByOffsetWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNearNameByOffsetWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&delta), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetLineByOffsetWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, line: *mut u32, filebuffer: ::windows::core::PWSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLineByOffsetWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&line), ::core::mem::transmute_copy(&filebuffer), ::core::mem::transmute_copy(&filebuffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetOffsetByLineWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCWSTR, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffsetByLineWide(::core::mem::transmute_copy(&line), ::core::mem::transmute(&file)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetModuleByModuleNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByModuleNameWide(::core::mem::transmute(&name), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetSymbolModuleWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolModuleWide(::core::mem::transmute(&symbol)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(base, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTypeNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTypeNameWide(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetTypeIdWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, name: ::windows::core::PCWSTR, typeid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTypeIdWide(::core::mem::transmute_copy(&module), ::core::mem::transmute(&name)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(typeid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFieldOffsetWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows::core::PCWSTR, offset: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFieldOffsetWide(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute(&field)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSymbolTypeIdWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolTypeIdWide(::core::mem::transmute(&symbol), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&module)).into()
}
unsafe extern "system" fn GetScopeSymbolGroup2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *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.GetScopeSymbolGroup2(::core::mem::transmute_copy(&flags), ::windows::core::from_raw_borrowed(&update)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(symbols, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateSymbolGroup2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, group: *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.CreateSymbolGroup2() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(group, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn StartSymbolMatchWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pattern: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.StartSymbolMatchWide(::core::mem::transmute(&pattern)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNextSymbolMatchWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows::core::PWSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNextSymbolMatchWide(::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&matchsize), ::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn ReloadWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReloadWide(::core::mem::transmute(&module)).into()
}
unsafe extern "system" fn GetSymbolPathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolPathWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn SetSymbolPathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSymbolPathWide(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendSymbolPathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendSymbolPathWide(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn GetImagePathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetImagePathWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn SetImagePathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetImagePathWide(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendImagePathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendImagePathWide(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn GetSourcePathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourcePathWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn GetSourcePathElementWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourcePathElementWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&elementsize)).into()
}
unsafe extern "system" fn SetSourcePathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSourcePathWide(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendSourcePathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendSourcePathWide(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn FindSourceFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startelement: u32, file: ::windows::core::PCWSTR, flags: u32, foundelement: *mut u32, buffer: ::windows::core::PWSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FindSourceFileWide(::core::mem::transmute_copy(&startelement), ::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&foundelement), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&foundsize)).into()
}
unsafe extern "system" fn GetSourceFileLineOffsetsWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceFileLineOffsetsWide(::core::mem::transmute(&file), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&bufferlines), ::core::mem::transmute_copy(&filelines)).into()
}
unsafe extern "system" fn GetModuleVersionInformationWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, base: u64, item: ::windows::core::PCWSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleVersionInformationWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base), ::core::mem::transmute(&item), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&verinfosize)).into()
}
unsafe extern "system" fn GetModuleNameStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleNameStringWide(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetConstantNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetConstantNameWide(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetFieldNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFieldNameWide(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&fieldindex), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn IsManagedModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, base: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsManagedModule(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetModuleByModuleName2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByModuleName2(::core::mem::transmute(&name), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetModuleByModuleName2Wide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByModuleName2Wide(::core::mem::transmute(&name), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetModuleByOffset2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByOffset2(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn AddSyntheticModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, base: u64, size: u32, imagepath: ::windows::core::PCSTR, modulename: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSyntheticModule(::core::mem::transmute_copy(&base), ::core::mem::transmute_copy(&size), ::core::mem::transmute(&imagepath), ::core::mem::transmute(&modulename), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn AddSyntheticModuleWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, base: u64, size: u32, imagepath: ::windows::core::PCWSTR, modulename: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSyntheticModuleWide(::core::mem::transmute_copy(&base), ::core::mem::transmute_copy(&size), ::core::mem::transmute(&imagepath), ::core::mem::transmute(&modulename), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn RemoveSyntheticModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, base: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveSyntheticModule(::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetCurrentScopeFrameIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentScopeFrameIndex() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(index, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetScopeFrameByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetScopeFrameByIndex(::core::mem::transmute_copy(&index)).into()
}
unsafe extern "system" fn SetScopeFromJitDebugInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, infooffset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetScopeFromJitDebugInfo(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&infooffset)).into()
}
unsafe extern "system" fn SetScopeFromStoredEvent<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_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.SetScopeFromStoredEvent().into()
}
unsafe extern "system" fn OutputSymbolByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, offset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputSymbolByOffset(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn GetFunctionEntryByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bufferneeded: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFunctionEntryByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bufferneeded)).into()
}
unsafe extern "system" fn GetFieldTypeAndOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, containertypeid: u32, field: ::windows::core::PCSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFieldTypeAndOffset(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&containertypeid), ::core::mem::transmute(&field), ::core::mem::transmute_copy(&fieldtypeid), ::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn GetFieldTypeAndOffsetWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, containertypeid: u32, field: ::windows::core::PCWSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFieldTypeAndOffsetWide(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&containertypeid), ::core::mem::transmute(&field), ::core::mem::transmute_copy(&fieldtypeid), ::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn AddSyntheticSymbol<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, size: u32, name: ::windows::core::PCSTR, flags: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSyntheticSymbol(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&size), ::core::mem::transmute(&name), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&id)).into()
}
unsafe extern "system" fn AddSyntheticSymbolWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, size: u32, name: ::windows::core::PCWSTR, flags: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSyntheticSymbolWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&size), ::core::mem::transmute(&name), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&id)).into()
}
unsafe extern "system" fn RemoveSyntheticSymbol<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveSyntheticSymbol(::core::mem::transmute_copy(&id)).into()
}
unsafe extern "system" fn GetSymbolEntriesByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, displacements: *mut u64, idscount: u32, entries: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntriesByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&displacements), ::core::mem::transmute_copy(&idscount), ::core::mem::transmute_copy(&entries)).into()
}
unsafe extern "system" fn GetSymbolEntriesByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, idscount: u32, entries: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntriesByName(::core::mem::transmute(&symbol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&idscount), ::core::mem::transmute_copy(&entries)).into()
}
unsafe extern "system" fn GetSymbolEntriesByNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, idscount: u32, entries: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntriesByNameWide(::core::mem::transmute(&symbol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&idscount), ::core::mem::transmute_copy(&entries)).into()
}
unsafe extern "system" fn GetSymbolEntryByToken<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, modulebase: u64, token: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolEntryByToken(::core::mem::transmute_copy(&modulebase), ::core::mem::transmute_copy(&token)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSymbolEntryInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, info: *mut DEBUG_SYMBOL_ENTRY) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntryInformation(::core::mem::transmute_copy(&id), ::core::mem::transmute_copy(&info)).into()
}
unsafe extern "system" fn GetSymbolEntryString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntryString(::core::mem::transmute_copy(&id), ::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetSymbolEntryStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntryStringWide(::core::mem::transmute_copy(&id), ::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetSymbolEntryOffsetRegions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, flags: u32, regions: *mut DEBUG_OFFSET_REGION, regionscount: u32, regionsavail: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntryOffsetRegions(::core::mem::transmute_copy(&id), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&regions), ::core::mem::transmute_copy(&regionscount), ::core::mem::transmute_copy(&regionsavail)).into()
}
unsafe extern "system" fn GetSymbolEntryBySymbolEntry<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fromid: *const DEBUG_MODULE_AND_ID, flags: u32, toid: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolEntryBySymbolEntry(::core::mem::transmute_copy(&fromid), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(toid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSourceEntriesByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntriesByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&entries), ::core::mem::transmute_copy(&entriescount), ::core::mem::transmute_copy(&entriesavail)).into()
}
unsafe extern "system" fn GetSourceEntriesByLine<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCSTR, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntriesByLine(::core::mem::transmute_copy(&line), ::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&entries), ::core::mem::transmute_copy(&entriescount), ::core::mem::transmute_copy(&entriesavail)).into()
}
unsafe extern "system" fn GetSourceEntriesByLineWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCWSTR, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntriesByLineWide(::core::mem::transmute_copy(&line), ::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&entries), ::core::mem::transmute_copy(&entriescount), ::core::mem::transmute_copy(&entriesavail)).into()
}
unsafe extern "system" fn GetSourceEntryString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntryString(::core::mem::transmute_copy(&entry), ::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetSourceEntryStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntryStringWide(::core::mem::transmute_copy(&entry), ::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetSourceEntryOffsetRegions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: *mut DEBUG_OFFSET_REGION, regionscount: u32, regionsavail: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntryOffsetRegions(::core::mem::transmute_copy(&entry), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&regions), ::core::mem::transmute_copy(&regionscount), ::core::mem::transmute_copy(&regionsavail)).into()
}
unsafe extern "system" fn GetSourceEntryBySourceEntry<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fromentry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, toentry: *mut DEBUG_SYMBOL_SOURCE_ENTRY) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntryBySourceEntry(::core::mem::transmute_copy(&fromentry), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&toentry)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetSymbolOptions: GetSymbolOptions::<Identity, Impl, OFFSET>,
AddSymbolOptions: AddSymbolOptions::<Identity, Impl, OFFSET>,
RemoveSymbolOptions: RemoveSymbolOptions::<Identity, Impl, OFFSET>,
SetSymbolOptions: SetSymbolOptions::<Identity, Impl, OFFSET>,
GetNameByOffset: GetNameByOffset::<Identity, Impl, OFFSET>,
GetOffsetByName: GetOffsetByName::<Identity, Impl, OFFSET>,
GetNearNameByOffset: GetNearNameByOffset::<Identity, Impl, OFFSET>,
GetLineByOffset: GetLineByOffset::<Identity, Impl, OFFSET>,
GetOffsetByLine: GetOffsetByLine::<Identity, Impl, OFFSET>,
GetNumberModules: GetNumberModules::<Identity, Impl, OFFSET>,
GetModuleByIndex: GetModuleByIndex::<Identity, Impl, OFFSET>,
GetModuleByModuleName: GetModuleByModuleName::<Identity, Impl, OFFSET>,
GetModuleByOffset: GetModuleByOffset::<Identity, Impl, OFFSET>,
GetModuleNames: GetModuleNames::<Identity, Impl, OFFSET>,
GetModuleParameters: GetModuleParameters::<Identity, Impl, OFFSET>,
GetSymbolModule: GetSymbolModule::<Identity, Impl, OFFSET>,
GetTypeName: GetTypeName::<Identity, Impl, OFFSET>,
GetTypeId: GetTypeId::<Identity, Impl, OFFSET>,
GetTypeSize: GetTypeSize::<Identity, Impl, OFFSET>,
GetFieldOffset: GetFieldOffset::<Identity, Impl, OFFSET>,
GetSymbolTypeId: GetSymbolTypeId::<Identity, Impl, OFFSET>,
GetOffsetTypeId: GetOffsetTypeId::<Identity, Impl, OFFSET>,
ReadTypedDataVirtual: ReadTypedDataVirtual::<Identity, Impl, OFFSET>,
WriteTypedDataVirtual: WriteTypedDataVirtual::<Identity, Impl, OFFSET>,
OutputTypedDataVirtual: OutputTypedDataVirtual::<Identity, Impl, OFFSET>,
ReadTypedDataPhysical: ReadTypedDataPhysical::<Identity, Impl, OFFSET>,
WriteTypedDataPhysical: WriteTypedDataPhysical::<Identity, Impl, OFFSET>,
OutputTypedDataPhysical: OutputTypedDataPhysical::<Identity, Impl, OFFSET>,
GetScope: GetScope::<Identity, Impl, OFFSET>,
SetScope: SetScope::<Identity, Impl, OFFSET>,
ResetScope: ResetScope::<Identity, Impl, OFFSET>,
GetScopeSymbolGroup: GetScopeSymbolGroup::<Identity, Impl, OFFSET>,
CreateSymbolGroup: CreateSymbolGroup::<Identity, Impl, OFFSET>,
StartSymbolMatch: StartSymbolMatch::<Identity, Impl, OFFSET>,
GetNextSymbolMatch: GetNextSymbolMatch::<Identity, Impl, OFFSET>,
EndSymbolMatch: EndSymbolMatch::<Identity, Impl, OFFSET>,
Reload: Reload::<Identity, Impl, OFFSET>,
GetSymbolPath: GetSymbolPath::<Identity, Impl, OFFSET>,
SetSymbolPath: SetSymbolPath::<Identity, Impl, OFFSET>,
AppendSymbolPath: AppendSymbolPath::<Identity, Impl, OFFSET>,
GetImagePath: GetImagePath::<Identity, Impl, OFFSET>,
SetImagePath: SetImagePath::<Identity, Impl, OFFSET>,
AppendImagePath: AppendImagePath::<Identity, Impl, OFFSET>,
GetSourcePath: GetSourcePath::<Identity, Impl, OFFSET>,
GetSourcePathElement: GetSourcePathElement::<Identity, Impl, OFFSET>,
SetSourcePath: SetSourcePath::<Identity, Impl, OFFSET>,
AppendSourcePath: AppendSourcePath::<Identity, Impl, OFFSET>,
FindSourceFile: FindSourceFile::<Identity, Impl, OFFSET>,
GetSourceFileLineOffsets: GetSourceFileLineOffsets::<Identity, Impl, OFFSET>,
GetModuleVersionInformation: GetModuleVersionInformation::<Identity, Impl, OFFSET>,
GetModuleNameString: GetModuleNameString::<Identity, Impl, OFFSET>,
GetConstantName: GetConstantName::<Identity, Impl, OFFSET>,
GetFieldName: GetFieldName::<Identity, Impl, OFFSET>,
GetTypeOptions: GetTypeOptions::<Identity, Impl, OFFSET>,
AddTypeOptions: AddTypeOptions::<Identity, Impl, OFFSET>,
RemoveTypeOptions: RemoveTypeOptions::<Identity, Impl, OFFSET>,
SetTypeOptions: SetTypeOptions::<Identity, Impl, OFFSET>,
GetNameByOffsetWide: GetNameByOffsetWide::<Identity, Impl, OFFSET>,
GetOffsetByNameWide: GetOffsetByNameWide::<Identity, Impl, OFFSET>,
GetNearNameByOffsetWide: GetNearNameByOffsetWide::<Identity, Impl, OFFSET>,
GetLineByOffsetWide: GetLineByOffsetWide::<Identity, Impl, OFFSET>,
GetOffsetByLineWide: GetOffsetByLineWide::<Identity, Impl, OFFSET>,
GetModuleByModuleNameWide: GetModuleByModuleNameWide::<Identity, Impl, OFFSET>,
GetSymbolModuleWide: GetSymbolModuleWide::<Identity, Impl, OFFSET>,
GetTypeNameWide: GetTypeNameWide::<Identity, Impl, OFFSET>,
GetTypeIdWide: GetTypeIdWide::<Identity, Impl, OFFSET>,
GetFieldOffsetWide: GetFieldOffsetWide::<Identity, Impl, OFFSET>,
GetSymbolTypeIdWide: GetSymbolTypeIdWide::<Identity, Impl, OFFSET>,
GetScopeSymbolGroup2: GetScopeSymbolGroup2::<Identity, Impl, OFFSET>,
CreateSymbolGroup2: CreateSymbolGroup2::<Identity, Impl, OFFSET>,
StartSymbolMatchWide: StartSymbolMatchWide::<Identity, Impl, OFFSET>,
GetNextSymbolMatchWide: GetNextSymbolMatchWide::<Identity, Impl, OFFSET>,
ReloadWide: ReloadWide::<Identity, Impl, OFFSET>,
GetSymbolPathWide: GetSymbolPathWide::<Identity, Impl, OFFSET>,
SetSymbolPathWide: SetSymbolPathWide::<Identity, Impl, OFFSET>,
AppendSymbolPathWide: AppendSymbolPathWide::<Identity, Impl, OFFSET>,
GetImagePathWide: GetImagePathWide::<Identity, Impl, OFFSET>,
SetImagePathWide: SetImagePathWide::<Identity, Impl, OFFSET>,
AppendImagePathWide: AppendImagePathWide::<Identity, Impl, OFFSET>,
GetSourcePathWide: GetSourcePathWide::<Identity, Impl, OFFSET>,
GetSourcePathElementWide: GetSourcePathElementWide::<Identity, Impl, OFFSET>,
SetSourcePathWide: SetSourcePathWide::<Identity, Impl, OFFSET>,
AppendSourcePathWide: AppendSourcePathWide::<Identity, Impl, OFFSET>,
FindSourceFileWide: FindSourceFileWide::<Identity, Impl, OFFSET>,
GetSourceFileLineOffsetsWide: GetSourceFileLineOffsetsWide::<Identity, Impl, OFFSET>,
GetModuleVersionInformationWide: GetModuleVersionInformationWide::<Identity, Impl, OFFSET>,
GetModuleNameStringWide: GetModuleNameStringWide::<Identity, Impl, OFFSET>,
GetConstantNameWide: GetConstantNameWide::<Identity, Impl, OFFSET>,
GetFieldNameWide: GetFieldNameWide::<Identity, Impl, OFFSET>,
IsManagedModule: IsManagedModule::<Identity, Impl, OFFSET>,
GetModuleByModuleName2: GetModuleByModuleName2::<Identity, Impl, OFFSET>,
GetModuleByModuleName2Wide: GetModuleByModuleName2Wide::<Identity, Impl, OFFSET>,
GetModuleByOffset2: GetModuleByOffset2::<Identity, Impl, OFFSET>,
AddSyntheticModule: AddSyntheticModule::<Identity, Impl, OFFSET>,
AddSyntheticModuleWide: AddSyntheticModuleWide::<Identity, Impl, OFFSET>,
RemoveSyntheticModule: RemoveSyntheticModule::<Identity, Impl, OFFSET>,
GetCurrentScopeFrameIndex: GetCurrentScopeFrameIndex::<Identity, Impl, OFFSET>,
SetScopeFrameByIndex: SetScopeFrameByIndex::<Identity, Impl, OFFSET>,
SetScopeFromJitDebugInfo: SetScopeFromJitDebugInfo::<Identity, Impl, OFFSET>,
SetScopeFromStoredEvent: SetScopeFromStoredEvent::<Identity, Impl, OFFSET>,
OutputSymbolByOffset: OutputSymbolByOffset::<Identity, Impl, OFFSET>,
GetFunctionEntryByOffset: GetFunctionEntryByOffset::<Identity, Impl, OFFSET>,
GetFieldTypeAndOffset: GetFieldTypeAndOffset::<Identity, Impl, OFFSET>,
GetFieldTypeAndOffsetWide: GetFieldTypeAndOffsetWide::<Identity, Impl, OFFSET>,
AddSyntheticSymbol: AddSyntheticSymbol::<Identity, Impl, OFFSET>,
AddSyntheticSymbolWide: AddSyntheticSymbolWide::<Identity, Impl, OFFSET>,
RemoveSyntheticSymbol: RemoveSyntheticSymbol::<Identity, Impl, OFFSET>,
GetSymbolEntriesByOffset: GetSymbolEntriesByOffset::<Identity, Impl, OFFSET>,
GetSymbolEntriesByName: GetSymbolEntriesByName::<Identity, Impl, OFFSET>,
GetSymbolEntriesByNameWide: GetSymbolEntriesByNameWide::<Identity, Impl, OFFSET>,
GetSymbolEntryByToken: GetSymbolEntryByToken::<Identity, Impl, OFFSET>,
GetSymbolEntryInformation: GetSymbolEntryInformation::<Identity, Impl, OFFSET>,
GetSymbolEntryString: GetSymbolEntryString::<Identity, Impl, OFFSET>,
GetSymbolEntryStringWide: GetSymbolEntryStringWide::<Identity, Impl, OFFSET>,
GetSymbolEntryOffsetRegions: GetSymbolEntryOffsetRegions::<Identity, Impl, OFFSET>,
GetSymbolEntryBySymbolEntry: GetSymbolEntryBySymbolEntry::<Identity, Impl, OFFSET>,
GetSourceEntriesByOffset: GetSourceEntriesByOffset::<Identity, Impl, OFFSET>,
GetSourceEntriesByLine: GetSourceEntriesByLine::<Identity, Impl, OFFSET>,
GetSourceEntriesByLineWide: GetSourceEntriesByLineWide::<Identity, Impl, OFFSET>,
GetSourceEntryString: GetSourceEntryString::<Identity, Impl, OFFSET>,
GetSourceEntryStringWide: GetSourceEntryStringWide::<Identity, Impl, OFFSET>,
GetSourceEntryOffsetRegions: GetSourceEntryOffsetRegions::<Identity, Impl, OFFSET>,
GetSourceEntryBySourceEntry: GetSourceEntryBySourceEntry::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugSymbols3 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDebugSymbols4_Impl: Sized {
fn GetSymbolOptions(&self) -> ::windows::core::Result<u32>;
fn AddSymbolOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveSymbolOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetSymbolOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn GetNameByOffset(&self, offset: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetByName(&self, symbol: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetLineByOffset(&self, offset: u64, line: *mut u32, filebuffer: ::windows::core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetByLine(&self, line: u32, file: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn GetNumberModules(&self, loaded: *mut u32, unloaded: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleByIndex(&self, index: u32) -> ::windows::core::Result<u64>;
fn GetModuleByModuleName(&self, name: &::windows::core::PCSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn GetModuleByOffset(&self, offset: u64, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: ::windows::core::PSTR, imagenamebuffersize: u32, imagenamesize: *mut u32, modulenamebuffer: ::windows::core::PSTR, modulenamebuffersize: u32, modulenamesize: *mut u32, loadedimagenamebuffer: ::windows::core::PSTR, loadedimagenamebuffersize: u32, loadedimagenamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleParameters(&self, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::Result<()>;
fn GetSymbolModule(&self, symbol: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetTypeId(&self, module: u64, name: &::windows::core::PCSTR) -> ::windows::core::Result<u32>;
fn GetTypeSize(&self, module: u64, typeid: u32) -> ::windows::core::Result<u32>;
fn GetFieldOffset(&self, module: u64, typeid: u32, field: &::windows::core::PCSTR) -> ::windows::core::Result<u32>;
fn GetSymbolTypeId(&self, symbol: &::windows::core::PCSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetTypeId(&self, offset: u64, typeid: *mut u32, module: *mut u64) -> ::windows::core::Result<()>;
fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn OutputTypedDataVirtual(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()>;
fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn OutputTypedDataPhysical(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetScope(&self, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()>;
fn SetScope(&self, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()>;
fn ResetScope(&self) -> ::windows::core::Result<()>;
fn GetScopeSymbolGroup(&self, flags: u32, update: ::core::option::Option<&IDebugSymbolGroup>) -> ::windows::core::Result<IDebugSymbolGroup>;
fn CreateSymbolGroup(&self) -> ::windows::core::Result<IDebugSymbolGroup>;
fn StartSymbolMatch(&self, pattern: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn GetNextSymbolMatch(&self, handle: u64, buffer: ::windows::core::PSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::Result<()>;
fn EndSymbolMatch(&self, handle: u64) -> ::windows::core::Result<()>;
fn Reload(&self, module: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetSymbolPath(&self, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSymbolPath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AppendSymbolPath(&self, addition: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetImagePath(&self, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn SetImagePath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AppendImagePath(&self, addition: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetSourcePath(&self, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourcePathElement(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSourcePath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AppendSourcePath(&self, addition: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn FindSourceFile(&self, startelement: u32, file: &::windows::core::PCSTR, flags: u32, foundelement: *mut u32, buffer: ::windows::core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceFileLineOffsets(&self, file: &::windows::core::PCSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleVersionInformation(&self, index: u32, base: u64, item: &::windows::core::PCSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleNameString(&self, which: u32, index: u32, base: u64, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetConstantName(&self, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetFieldName(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetTypeOptions(&self) -> ::windows::core::Result<u32>;
fn AddTypeOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveTypeOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetTypeOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn GetNameByOffsetWide(&self, offset: u64, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetByNameWide(&self, symbol: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn GetNearNameByOffsetWide(&self, offset: u64, delta: i32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetLineByOffsetWide(&self, offset: u64, line: *mut u32, filebuffer: ::windows::core::PWSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetByLineWide(&self, line: u32, file: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn GetModuleByModuleNameWide(&self, name: &::windows::core::PCWSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn GetSymbolModuleWide(&self, symbol: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn GetTypeNameWide(&self, module: u64, typeid: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetTypeIdWide(&self, module: u64, name: &::windows::core::PCWSTR) -> ::windows::core::Result<u32>;
fn GetFieldOffsetWide(&self, module: u64, typeid: u32, field: &::windows::core::PCWSTR) -> ::windows::core::Result<u32>;
fn GetSymbolTypeIdWide(&self, symbol: &::windows::core::PCWSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::Result<()>;
fn GetScopeSymbolGroup2(&self, flags: u32, update: ::core::option::Option<&IDebugSymbolGroup2>) -> ::windows::core::Result<IDebugSymbolGroup2>;
fn CreateSymbolGroup2(&self) -> ::windows::core::Result<IDebugSymbolGroup2>;
fn StartSymbolMatchWide(&self, pattern: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn GetNextSymbolMatchWide(&self, handle: u64, buffer: ::windows::core::PWSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::Result<()>;
fn ReloadWide(&self, module: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetSymbolPathWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSymbolPathWide(&self, path: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn AppendSymbolPathWide(&self, addition: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetImagePathWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn SetImagePathWide(&self, path: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn AppendImagePathWide(&self, addition: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetSourcePathWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourcePathElementWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSourcePathWide(&self, path: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn AppendSourcePathWide(&self, addition: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn FindSourceFileWide(&self, startelement: u32, file: &::windows::core::PCWSTR, flags: u32, foundelement: *mut u32, buffer: ::windows::core::PWSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceFileLineOffsetsWide(&self, file: &::windows::core::PCWSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleVersionInformationWide(&self, index: u32, base: u64, item: &::windows::core::PCWSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleNameStringWide(&self, which: u32, index: u32, base: u64, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetConstantNameWide(&self, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetFieldNameWide(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn IsManagedModule(&self, index: u32, base: u64) -> ::windows::core::Result<()>;
fn GetModuleByModuleName2(&self, name: &::windows::core::PCSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn GetModuleByModuleName2Wide(&self, name: &::windows::core::PCWSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn GetModuleByOffset2(&self, offset: u64, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn AddSyntheticModule(&self, base: u64, size: u32, imagepath: &::windows::core::PCSTR, modulename: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn AddSyntheticModuleWide(&self, base: u64, size: u32, imagepath: &::windows::core::PCWSTR, modulename: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<()>;
fn RemoveSyntheticModule(&self, base: u64) -> ::windows::core::Result<()>;
fn GetCurrentScopeFrameIndex(&self) -> ::windows::core::Result<u32>;
fn SetScopeFrameByIndex(&self, index: u32) -> ::windows::core::Result<()>;
fn SetScopeFromJitDebugInfo(&self, outputcontrol: u32, infooffset: u64) -> ::windows::core::Result<()>;
fn SetScopeFromStoredEvent(&self) -> ::windows::core::Result<()>;
fn OutputSymbolByOffset(&self, outputcontrol: u32, flags: u32, offset: u64) -> ::windows::core::Result<()>;
fn GetFunctionEntryByOffset(&self, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bufferneeded: *mut u32) -> ::windows::core::Result<()>;
fn GetFieldTypeAndOffset(&self, module: u64, containertypeid: u32, field: &::windows::core::PCSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows::core::Result<()>;
fn GetFieldTypeAndOffsetWide(&self, module: u64, containertypeid: u32, field: &::windows::core::PCWSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows::core::Result<()>;
fn AddSyntheticSymbol(&self, offset: u64, size: u32, name: &::windows::core::PCSTR, flags: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::Result<()>;
fn AddSyntheticSymbolWide(&self, offset: u64, size: u32, name: &::windows::core::PCWSTR, flags: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::Result<()>;
fn RemoveSyntheticSymbol(&self, id: *const DEBUG_MODULE_AND_ID) -> ::windows::core::Result<()>;
fn GetSymbolEntriesByOffset(&self, offset: u64, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, displacements: *mut u64, idscount: u32, entries: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolEntriesByName(&self, symbol: &::windows::core::PCSTR, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, idscount: u32, entries: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolEntriesByNameWide(&self, symbol: &::windows::core::PCWSTR, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, idscount: u32, entries: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolEntryByToken(&self, modulebase: u64, token: u32) -> ::windows::core::Result<DEBUG_MODULE_AND_ID>;
fn GetSymbolEntryInformation(&self, id: *const DEBUG_MODULE_AND_ID, info: *mut DEBUG_SYMBOL_ENTRY) -> ::windows::core::Result<()>;
fn GetSymbolEntryString(&self, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolEntryStringWide(&self, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolEntryOffsetRegions(&self, id: *const DEBUG_MODULE_AND_ID, flags: u32, regions: *mut DEBUG_OFFSET_REGION, regionscount: u32, regionsavail: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolEntryBySymbolEntry(&self, fromid: *const DEBUG_MODULE_AND_ID, flags: u32) -> ::windows::core::Result<DEBUG_MODULE_AND_ID>;
fn GetSourceEntriesByOffset(&self, offset: u64, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceEntriesByLine(&self, line: u32, file: &::windows::core::PCSTR, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceEntriesByLineWide(&self, line: u32, file: &::windows::core::PCWSTR, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceEntryString(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceEntryStringWide(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceEntryOffsetRegions(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: *mut DEBUG_OFFSET_REGION, regionscount: u32, regionsavail: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceEntryBySourceEntry(&self, fromentry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, toentry: *mut DEBUG_SYMBOL_SOURCE_ENTRY) -> ::windows::core::Result<()>;
fn GetScopeEx(&self, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME_EX, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()>;
fn SetScopeEx(&self, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME_EX, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()>;
fn GetNameByInlineContext(&self, offset: u64, inlinecontext: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetNameByInlineContextWide(&self, offset: u64, inlinecontext: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetLineByInlineContext(&self, offset: u64, inlinecontext: u32, line: *mut u32, filebuffer: ::windows::core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetLineByInlineContextWide(&self, offset: u64, inlinecontext: u32, line: *mut u32, filebuffer: ::windows::core::PWSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn OutputSymbolByInlineContext(&self, outputcontrol: u32, flags: u32, offset: u64, inlinecontext: u32) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for IDebugSymbols4 {}
#[cfg(feature = "Win32_Foundation")]
impl IDebugSymbols4_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>() -> IDebugSymbols4_Vtbl {
unsafe extern "system" fn GetSymbolOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddSymbolOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSymbolOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveSymbolOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveSymbolOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetSymbolOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSymbolOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn GetNameByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNameByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetOffsetByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffsetByName(::core::mem::transmute(&symbol)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNearNameByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNearNameByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&delta), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetLineByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, line: *mut u32, filebuffer: ::windows::core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLineByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&line), ::core::mem::transmute_copy(&filebuffer), ::core::mem::transmute_copy(&filebuffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetOffsetByLine<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCSTR, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffsetByLine(::core::mem::transmute_copy(&line), ::core::mem::transmute(&file)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberModules<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, loaded: *mut u32, unloaded: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNumberModules(::core::mem::transmute_copy(&loaded), ::core::mem::transmute_copy(&unloaded)).into()
}
unsafe extern "system" fn GetModuleByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetModuleByIndex(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(base, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetModuleByModuleName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByModuleName(::core::mem::transmute(&name), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetModuleByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetModuleNames<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, base: u64, imagenamebuffer: ::windows::core::PSTR, imagenamebuffersize: u32, imagenamesize: *mut u32, modulenamebuffer: ::windows::core::PSTR, modulenamebuffersize: u32, modulenamesize: *mut u32, loadedimagenamebuffer: ::windows::core::PSTR, loadedimagenamebuffersize: u32, loadedimagenamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleNames(
::core::mem::transmute_copy(&index),
::core::mem::transmute_copy(&base),
::core::mem::transmute_copy(&imagenamebuffer),
::core::mem::transmute_copy(&imagenamebuffersize),
::core::mem::transmute_copy(&imagenamesize),
::core::mem::transmute_copy(&modulenamebuffer),
::core::mem::transmute_copy(&modulenamebuffersize),
::core::mem::transmute_copy(&modulenamesize),
::core::mem::transmute_copy(&loadedimagenamebuffer),
::core::mem::transmute_copy(&loadedimagenamebuffersize),
::core::mem::transmute_copy(&loadedimagenamesize),
)
.into()
}
unsafe extern "system" fn GetModuleParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&bases), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetSymbolModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolModule(::core::mem::transmute(&symbol)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(base, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTypeName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTypeName(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetTypeId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, name: ::windows::core::PCSTR, typeid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTypeId(::core::mem::transmute_copy(&module), ::core::mem::transmute(&name)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(typeid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTypeSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, size: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTypeSize(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(size, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFieldOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows::core::PCSTR, offset: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFieldOffset(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute(&field)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSymbolTypeId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolTypeId(::core::mem::transmute(&symbol), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&module)).into()
}
unsafe extern "system" fn GetOffsetTypeId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOffsetTypeId(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&module)).into()
}
unsafe extern "system" fn ReadTypedDataVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadTypedDataVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteTypedDataVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteTypedDataVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn OutputTypedDataVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputTypedDataVirtual(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn ReadTypedDataPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadTypedDataPhysical(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteTypedDataPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteTypedDataPhysical(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn OutputTypedDataPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputTypedDataPhysical(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetScope<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetScope(::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&scopeframe), ::core::mem::transmute_copy(&scopecontext), ::core::mem::transmute_copy(&scopecontextsize)).into()
}
unsafe extern "system" fn SetScope<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetScope(::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&scopeframe), ::core::mem::transmute_copy(&scopecontext), ::core::mem::transmute_copy(&scopecontextsize)).into()
}
unsafe extern "system" fn ResetScope<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_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.ResetScope().into()
}
unsafe extern "system" fn GetScopeSymbolGroup<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *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.GetScopeSymbolGroup(::core::mem::transmute_copy(&flags), ::windows::core::from_raw_borrowed(&update)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(symbols, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateSymbolGroup<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, group: *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.CreateSymbolGroup() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(group, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn StartSymbolMatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pattern: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.StartSymbolMatch(::core::mem::transmute(&pattern)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNextSymbolMatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows::core::PSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNextSymbolMatch(::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&matchsize), ::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn EndSymbolMatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndSymbolMatch(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn Reload<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Reload(::core::mem::transmute(&module)).into()
}
unsafe extern "system" fn GetSymbolPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolPath(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn SetSymbolPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSymbolPath(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendSymbolPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendSymbolPath(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn GetImagePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetImagePath(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn SetImagePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetImagePath(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendImagePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendImagePath(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn GetSourcePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourcePath(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn GetSourcePathElement<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourcePathElement(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&elementsize)).into()
}
unsafe extern "system" fn SetSourcePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSourcePath(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendSourcePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendSourcePath(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn FindSourceFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startelement: u32, file: ::windows::core::PCSTR, flags: u32, foundelement: *mut u32, buffer: ::windows::core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FindSourceFile(::core::mem::transmute_copy(&startelement), ::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&foundelement), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&foundsize)).into()
}
unsafe extern "system" fn GetSourceFileLineOffsets<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceFileLineOffsets(::core::mem::transmute(&file), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&bufferlines), ::core::mem::transmute_copy(&filelines)).into()
}
unsafe extern "system" fn GetModuleVersionInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, base: u64, item: ::windows::core::PCSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleVersionInformation(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base), ::core::mem::transmute(&item), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&verinfosize)).into()
}
unsafe extern "system" fn GetModuleNameString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleNameString(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetConstantName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetConstantName(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetFieldName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFieldName(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&fieldindex), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetTypeOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTypeOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddTypeOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddTypeOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveTypeOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveTypeOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetTypeOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTypeOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn GetNameByOffsetWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNameByOffsetWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetOffsetByNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffsetByNameWide(::core::mem::transmute(&symbol)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNearNameByOffsetWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNearNameByOffsetWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&delta), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetLineByOffsetWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, line: *mut u32, filebuffer: ::windows::core::PWSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLineByOffsetWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&line), ::core::mem::transmute_copy(&filebuffer), ::core::mem::transmute_copy(&filebuffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetOffsetByLineWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCWSTR, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffsetByLineWide(::core::mem::transmute_copy(&line), ::core::mem::transmute(&file)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetModuleByModuleNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByModuleNameWide(::core::mem::transmute(&name), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetSymbolModuleWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolModuleWide(::core::mem::transmute(&symbol)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(base, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTypeNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTypeNameWide(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetTypeIdWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, name: ::windows::core::PCWSTR, typeid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTypeIdWide(::core::mem::transmute_copy(&module), ::core::mem::transmute(&name)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(typeid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFieldOffsetWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows::core::PCWSTR, offset: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFieldOffsetWide(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute(&field)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSymbolTypeIdWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolTypeIdWide(::core::mem::transmute(&symbol), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&module)).into()
}
unsafe extern "system" fn GetScopeSymbolGroup2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *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.GetScopeSymbolGroup2(::core::mem::transmute_copy(&flags), ::windows::core::from_raw_borrowed(&update)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(symbols, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateSymbolGroup2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, group: *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.CreateSymbolGroup2() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(group, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn StartSymbolMatchWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pattern: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.StartSymbolMatchWide(::core::mem::transmute(&pattern)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNextSymbolMatchWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows::core::PWSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNextSymbolMatchWide(::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&matchsize), ::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn ReloadWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReloadWide(::core::mem::transmute(&module)).into()
}
unsafe extern "system" fn GetSymbolPathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolPathWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn SetSymbolPathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSymbolPathWide(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendSymbolPathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendSymbolPathWide(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn GetImagePathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetImagePathWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn SetImagePathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetImagePathWide(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendImagePathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendImagePathWide(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn GetSourcePathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourcePathWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn GetSourcePathElementWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourcePathElementWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&elementsize)).into()
}
unsafe extern "system" fn SetSourcePathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSourcePathWide(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendSourcePathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendSourcePathWide(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn FindSourceFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startelement: u32, file: ::windows::core::PCWSTR, flags: u32, foundelement: *mut u32, buffer: ::windows::core::PWSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FindSourceFileWide(::core::mem::transmute_copy(&startelement), ::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&foundelement), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&foundsize)).into()
}
unsafe extern "system" fn GetSourceFileLineOffsetsWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceFileLineOffsetsWide(::core::mem::transmute(&file), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&bufferlines), ::core::mem::transmute_copy(&filelines)).into()
}
unsafe extern "system" fn GetModuleVersionInformationWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, base: u64, item: ::windows::core::PCWSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleVersionInformationWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base), ::core::mem::transmute(&item), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&verinfosize)).into()
}
unsafe extern "system" fn GetModuleNameStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleNameStringWide(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetConstantNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetConstantNameWide(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetFieldNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFieldNameWide(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&fieldindex), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn IsManagedModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, base: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsManagedModule(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetModuleByModuleName2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByModuleName2(::core::mem::transmute(&name), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetModuleByModuleName2Wide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByModuleName2Wide(::core::mem::transmute(&name), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetModuleByOffset2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByOffset2(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn AddSyntheticModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, base: u64, size: u32, imagepath: ::windows::core::PCSTR, modulename: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSyntheticModule(::core::mem::transmute_copy(&base), ::core::mem::transmute_copy(&size), ::core::mem::transmute(&imagepath), ::core::mem::transmute(&modulename), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn AddSyntheticModuleWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, base: u64, size: u32, imagepath: ::windows::core::PCWSTR, modulename: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSyntheticModuleWide(::core::mem::transmute_copy(&base), ::core::mem::transmute_copy(&size), ::core::mem::transmute(&imagepath), ::core::mem::transmute(&modulename), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn RemoveSyntheticModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, base: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveSyntheticModule(::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetCurrentScopeFrameIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentScopeFrameIndex() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(index, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetScopeFrameByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetScopeFrameByIndex(::core::mem::transmute_copy(&index)).into()
}
unsafe extern "system" fn SetScopeFromJitDebugInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, infooffset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetScopeFromJitDebugInfo(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&infooffset)).into()
}
unsafe extern "system" fn SetScopeFromStoredEvent<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_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.SetScopeFromStoredEvent().into()
}
unsafe extern "system" fn OutputSymbolByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, offset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputSymbolByOffset(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn GetFunctionEntryByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bufferneeded: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFunctionEntryByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bufferneeded)).into()
}
unsafe extern "system" fn GetFieldTypeAndOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, containertypeid: u32, field: ::windows::core::PCSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFieldTypeAndOffset(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&containertypeid), ::core::mem::transmute(&field), ::core::mem::transmute_copy(&fieldtypeid), ::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn GetFieldTypeAndOffsetWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, containertypeid: u32, field: ::windows::core::PCWSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFieldTypeAndOffsetWide(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&containertypeid), ::core::mem::transmute(&field), ::core::mem::transmute_copy(&fieldtypeid), ::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn AddSyntheticSymbol<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, size: u32, name: ::windows::core::PCSTR, flags: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSyntheticSymbol(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&size), ::core::mem::transmute(&name), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&id)).into()
}
unsafe extern "system" fn AddSyntheticSymbolWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, size: u32, name: ::windows::core::PCWSTR, flags: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSyntheticSymbolWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&size), ::core::mem::transmute(&name), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&id)).into()
}
unsafe extern "system" fn RemoveSyntheticSymbol<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveSyntheticSymbol(::core::mem::transmute_copy(&id)).into()
}
unsafe extern "system" fn GetSymbolEntriesByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, displacements: *mut u64, idscount: u32, entries: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntriesByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&displacements), ::core::mem::transmute_copy(&idscount), ::core::mem::transmute_copy(&entries)).into()
}
unsafe extern "system" fn GetSymbolEntriesByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, idscount: u32, entries: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntriesByName(::core::mem::transmute(&symbol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&idscount), ::core::mem::transmute_copy(&entries)).into()
}
unsafe extern "system" fn GetSymbolEntriesByNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, idscount: u32, entries: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntriesByNameWide(::core::mem::transmute(&symbol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&idscount), ::core::mem::transmute_copy(&entries)).into()
}
unsafe extern "system" fn GetSymbolEntryByToken<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, modulebase: u64, token: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolEntryByToken(::core::mem::transmute_copy(&modulebase), ::core::mem::transmute_copy(&token)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSymbolEntryInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, info: *mut DEBUG_SYMBOL_ENTRY) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntryInformation(::core::mem::transmute_copy(&id), ::core::mem::transmute_copy(&info)).into()
}
unsafe extern "system" fn GetSymbolEntryString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntryString(::core::mem::transmute_copy(&id), ::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetSymbolEntryStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntryStringWide(::core::mem::transmute_copy(&id), ::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetSymbolEntryOffsetRegions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, flags: u32, regions: *mut DEBUG_OFFSET_REGION, regionscount: u32, regionsavail: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntryOffsetRegions(::core::mem::transmute_copy(&id), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&regions), ::core::mem::transmute_copy(&regionscount), ::core::mem::transmute_copy(&regionsavail)).into()
}
unsafe extern "system" fn GetSymbolEntryBySymbolEntry<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fromid: *const DEBUG_MODULE_AND_ID, flags: u32, toid: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolEntryBySymbolEntry(::core::mem::transmute_copy(&fromid), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(toid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSourceEntriesByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntriesByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&entries), ::core::mem::transmute_copy(&entriescount), ::core::mem::transmute_copy(&entriesavail)).into()
}
unsafe extern "system" fn GetSourceEntriesByLine<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCSTR, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntriesByLine(::core::mem::transmute_copy(&line), ::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&entries), ::core::mem::transmute_copy(&entriescount), ::core::mem::transmute_copy(&entriesavail)).into()
}
unsafe extern "system" fn GetSourceEntriesByLineWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCWSTR, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntriesByLineWide(::core::mem::transmute_copy(&line), ::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&entries), ::core::mem::transmute_copy(&entriescount), ::core::mem::transmute_copy(&entriesavail)).into()
}
unsafe extern "system" fn GetSourceEntryString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntryString(::core::mem::transmute_copy(&entry), ::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetSourceEntryStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntryStringWide(::core::mem::transmute_copy(&entry), ::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetSourceEntryOffsetRegions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: *mut DEBUG_OFFSET_REGION, regionscount: u32, regionsavail: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntryOffsetRegions(::core::mem::transmute_copy(&entry), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&regions), ::core::mem::transmute_copy(&regionscount), ::core::mem::transmute_copy(&regionsavail)).into()
}
unsafe extern "system" fn GetSourceEntryBySourceEntry<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fromentry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, toentry: *mut DEBUG_SYMBOL_SOURCE_ENTRY) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntryBySourceEntry(::core::mem::transmute_copy(&fromentry), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&toentry)).into()
}
unsafe extern "system" fn GetScopeEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME_EX, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetScopeEx(::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&scopeframe), ::core::mem::transmute_copy(&scopecontext), ::core::mem::transmute_copy(&scopecontextsize)).into()
}
unsafe extern "system" fn SetScopeEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME_EX, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetScopeEx(::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&scopeframe), ::core::mem::transmute_copy(&scopecontext), ::core::mem::transmute_copy(&scopecontextsize)).into()
}
unsafe extern "system" fn GetNameByInlineContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, inlinecontext: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNameByInlineContext(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&inlinecontext), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetNameByInlineContextWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, inlinecontext: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNameByInlineContextWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&inlinecontext), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetLineByInlineContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, inlinecontext: u32, line: *mut u32, filebuffer: ::windows::core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLineByInlineContext(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&inlinecontext), ::core::mem::transmute_copy(&line), ::core::mem::transmute_copy(&filebuffer), ::core::mem::transmute_copy(&filebuffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetLineByInlineContextWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, inlinecontext: u32, line: *mut u32, filebuffer: ::windows::core::PWSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLineByInlineContextWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&inlinecontext), ::core::mem::transmute_copy(&line), ::core::mem::transmute_copy(&filebuffer), ::core::mem::transmute_copy(&filebuffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn OutputSymbolByInlineContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, offset: u64, inlinecontext: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputSymbolByInlineContext(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&inlinecontext)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetSymbolOptions: GetSymbolOptions::<Identity, Impl, OFFSET>,
AddSymbolOptions: AddSymbolOptions::<Identity, Impl, OFFSET>,
RemoveSymbolOptions: RemoveSymbolOptions::<Identity, Impl, OFFSET>,
SetSymbolOptions: SetSymbolOptions::<Identity, Impl, OFFSET>,
GetNameByOffset: GetNameByOffset::<Identity, Impl, OFFSET>,
GetOffsetByName: GetOffsetByName::<Identity, Impl, OFFSET>,
GetNearNameByOffset: GetNearNameByOffset::<Identity, Impl, OFFSET>,
GetLineByOffset: GetLineByOffset::<Identity, Impl, OFFSET>,
GetOffsetByLine: GetOffsetByLine::<Identity, Impl, OFFSET>,
GetNumberModules: GetNumberModules::<Identity, Impl, OFFSET>,
GetModuleByIndex: GetModuleByIndex::<Identity, Impl, OFFSET>,
GetModuleByModuleName: GetModuleByModuleName::<Identity, Impl, OFFSET>,
GetModuleByOffset: GetModuleByOffset::<Identity, Impl, OFFSET>,
GetModuleNames: GetModuleNames::<Identity, Impl, OFFSET>,
GetModuleParameters: GetModuleParameters::<Identity, Impl, OFFSET>,
GetSymbolModule: GetSymbolModule::<Identity, Impl, OFFSET>,
GetTypeName: GetTypeName::<Identity, Impl, OFFSET>,
GetTypeId: GetTypeId::<Identity, Impl, OFFSET>,
GetTypeSize: GetTypeSize::<Identity, Impl, OFFSET>,
GetFieldOffset: GetFieldOffset::<Identity, Impl, OFFSET>,
GetSymbolTypeId: GetSymbolTypeId::<Identity, Impl, OFFSET>,
GetOffsetTypeId: GetOffsetTypeId::<Identity, Impl, OFFSET>,
ReadTypedDataVirtual: ReadTypedDataVirtual::<Identity, Impl, OFFSET>,
WriteTypedDataVirtual: WriteTypedDataVirtual::<Identity, Impl, OFFSET>,
OutputTypedDataVirtual: OutputTypedDataVirtual::<Identity, Impl, OFFSET>,
ReadTypedDataPhysical: ReadTypedDataPhysical::<Identity, Impl, OFFSET>,
WriteTypedDataPhysical: WriteTypedDataPhysical::<Identity, Impl, OFFSET>,
OutputTypedDataPhysical: OutputTypedDataPhysical::<Identity, Impl, OFFSET>,
GetScope: GetScope::<Identity, Impl, OFFSET>,
SetScope: SetScope::<Identity, Impl, OFFSET>,
ResetScope: ResetScope::<Identity, Impl, OFFSET>,
GetScopeSymbolGroup: GetScopeSymbolGroup::<Identity, Impl, OFFSET>,
CreateSymbolGroup: CreateSymbolGroup::<Identity, Impl, OFFSET>,
StartSymbolMatch: StartSymbolMatch::<Identity, Impl, OFFSET>,
GetNextSymbolMatch: GetNextSymbolMatch::<Identity, Impl, OFFSET>,
EndSymbolMatch: EndSymbolMatch::<Identity, Impl, OFFSET>,
Reload: Reload::<Identity, Impl, OFFSET>,
GetSymbolPath: GetSymbolPath::<Identity, Impl, OFFSET>,
SetSymbolPath: SetSymbolPath::<Identity, Impl, OFFSET>,
AppendSymbolPath: AppendSymbolPath::<Identity, Impl, OFFSET>,
GetImagePath: GetImagePath::<Identity, Impl, OFFSET>,
SetImagePath: SetImagePath::<Identity, Impl, OFFSET>,
AppendImagePath: AppendImagePath::<Identity, Impl, OFFSET>,
GetSourcePath: GetSourcePath::<Identity, Impl, OFFSET>,
GetSourcePathElement: GetSourcePathElement::<Identity, Impl, OFFSET>,
SetSourcePath: SetSourcePath::<Identity, Impl, OFFSET>,
AppendSourcePath: AppendSourcePath::<Identity, Impl, OFFSET>,
FindSourceFile: FindSourceFile::<Identity, Impl, OFFSET>,
GetSourceFileLineOffsets: GetSourceFileLineOffsets::<Identity, Impl, OFFSET>,
GetModuleVersionInformation: GetModuleVersionInformation::<Identity, Impl, OFFSET>,
GetModuleNameString: GetModuleNameString::<Identity, Impl, OFFSET>,
GetConstantName: GetConstantName::<Identity, Impl, OFFSET>,
GetFieldName: GetFieldName::<Identity, Impl, OFFSET>,
GetTypeOptions: GetTypeOptions::<Identity, Impl, OFFSET>,
AddTypeOptions: AddTypeOptions::<Identity, Impl, OFFSET>,
RemoveTypeOptions: RemoveTypeOptions::<Identity, Impl, OFFSET>,
SetTypeOptions: SetTypeOptions::<Identity, Impl, OFFSET>,
GetNameByOffsetWide: GetNameByOffsetWide::<Identity, Impl, OFFSET>,
GetOffsetByNameWide: GetOffsetByNameWide::<Identity, Impl, OFFSET>,
GetNearNameByOffsetWide: GetNearNameByOffsetWide::<Identity, Impl, OFFSET>,
GetLineByOffsetWide: GetLineByOffsetWide::<Identity, Impl, OFFSET>,
GetOffsetByLineWide: GetOffsetByLineWide::<Identity, Impl, OFFSET>,
GetModuleByModuleNameWide: GetModuleByModuleNameWide::<Identity, Impl, OFFSET>,
GetSymbolModuleWide: GetSymbolModuleWide::<Identity, Impl, OFFSET>,
GetTypeNameWide: GetTypeNameWide::<Identity, Impl, OFFSET>,
GetTypeIdWide: GetTypeIdWide::<Identity, Impl, OFFSET>,
GetFieldOffsetWide: GetFieldOffsetWide::<Identity, Impl, OFFSET>,
GetSymbolTypeIdWide: GetSymbolTypeIdWide::<Identity, Impl, OFFSET>,
GetScopeSymbolGroup2: GetScopeSymbolGroup2::<Identity, Impl, OFFSET>,
CreateSymbolGroup2: CreateSymbolGroup2::<Identity, Impl, OFFSET>,
StartSymbolMatchWide: StartSymbolMatchWide::<Identity, Impl, OFFSET>,
GetNextSymbolMatchWide: GetNextSymbolMatchWide::<Identity, Impl, OFFSET>,
ReloadWide: ReloadWide::<Identity, Impl, OFFSET>,
GetSymbolPathWide: GetSymbolPathWide::<Identity, Impl, OFFSET>,
SetSymbolPathWide: SetSymbolPathWide::<Identity, Impl, OFFSET>,
AppendSymbolPathWide: AppendSymbolPathWide::<Identity, Impl, OFFSET>,
GetImagePathWide: GetImagePathWide::<Identity, Impl, OFFSET>,
SetImagePathWide: SetImagePathWide::<Identity, Impl, OFFSET>,
AppendImagePathWide: AppendImagePathWide::<Identity, Impl, OFFSET>,
GetSourcePathWide: GetSourcePathWide::<Identity, Impl, OFFSET>,
GetSourcePathElementWide: GetSourcePathElementWide::<Identity, Impl, OFFSET>,
SetSourcePathWide: SetSourcePathWide::<Identity, Impl, OFFSET>,
AppendSourcePathWide: AppendSourcePathWide::<Identity, Impl, OFFSET>,
FindSourceFileWide: FindSourceFileWide::<Identity, Impl, OFFSET>,
GetSourceFileLineOffsetsWide: GetSourceFileLineOffsetsWide::<Identity, Impl, OFFSET>,
GetModuleVersionInformationWide: GetModuleVersionInformationWide::<Identity, Impl, OFFSET>,
GetModuleNameStringWide: GetModuleNameStringWide::<Identity, Impl, OFFSET>,
GetConstantNameWide: GetConstantNameWide::<Identity, Impl, OFFSET>,
GetFieldNameWide: GetFieldNameWide::<Identity, Impl, OFFSET>,
IsManagedModule: IsManagedModule::<Identity, Impl, OFFSET>,
GetModuleByModuleName2: GetModuleByModuleName2::<Identity, Impl, OFFSET>,
GetModuleByModuleName2Wide: GetModuleByModuleName2Wide::<Identity, Impl, OFFSET>,
GetModuleByOffset2: GetModuleByOffset2::<Identity, Impl, OFFSET>,
AddSyntheticModule: AddSyntheticModule::<Identity, Impl, OFFSET>,
AddSyntheticModuleWide: AddSyntheticModuleWide::<Identity, Impl, OFFSET>,
RemoveSyntheticModule: RemoveSyntheticModule::<Identity, Impl, OFFSET>,
GetCurrentScopeFrameIndex: GetCurrentScopeFrameIndex::<Identity, Impl, OFFSET>,
SetScopeFrameByIndex: SetScopeFrameByIndex::<Identity, Impl, OFFSET>,
SetScopeFromJitDebugInfo: SetScopeFromJitDebugInfo::<Identity, Impl, OFFSET>,
SetScopeFromStoredEvent: SetScopeFromStoredEvent::<Identity, Impl, OFFSET>,
OutputSymbolByOffset: OutputSymbolByOffset::<Identity, Impl, OFFSET>,
GetFunctionEntryByOffset: GetFunctionEntryByOffset::<Identity, Impl, OFFSET>,
GetFieldTypeAndOffset: GetFieldTypeAndOffset::<Identity, Impl, OFFSET>,
GetFieldTypeAndOffsetWide: GetFieldTypeAndOffsetWide::<Identity, Impl, OFFSET>,
AddSyntheticSymbol: AddSyntheticSymbol::<Identity, Impl, OFFSET>,
AddSyntheticSymbolWide: AddSyntheticSymbolWide::<Identity, Impl, OFFSET>,
RemoveSyntheticSymbol: RemoveSyntheticSymbol::<Identity, Impl, OFFSET>,
GetSymbolEntriesByOffset: GetSymbolEntriesByOffset::<Identity, Impl, OFFSET>,
GetSymbolEntriesByName: GetSymbolEntriesByName::<Identity, Impl, OFFSET>,
GetSymbolEntriesByNameWide: GetSymbolEntriesByNameWide::<Identity, Impl, OFFSET>,
GetSymbolEntryByToken: GetSymbolEntryByToken::<Identity, Impl, OFFSET>,
GetSymbolEntryInformation: GetSymbolEntryInformation::<Identity, Impl, OFFSET>,
GetSymbolEntryString: GetSymbolEntryString::<Identity, Impl, OFFSET>,
GetSymbolEntryStringWide: GetSymbolEntryStringWide::<Identity, Impl, OFFSET>,
GetSymbolEntryOffsetRegions: GetSymbolEntryOffsetRegions::<Identity, Impl, OFFSET>,
GetSymbolEntryBySymbolEntry: GetSymbolEntryBySymbolEntry::<Identity, Impl, OFFSET>,
GetSourceEntriesByOffset: GetSourceEntriesByOffset::<Identity, Impl, OFFSET>,
GetSourceEntriesByLine: GetSourceEntriesByLine::<Identity, Impl, OFFSET>,
GetSourceEntriesByLineWide: GetSourceEntriesByLineWide::<Identity, Impl, OFFSET>,
GetSourceEntryString: GetSourceEntryString::<Identity, Impl, OFFSET>,
GetSourceEntryStringWide: GetSourceEntryStringWide::<Identity, Impl, OFFSET>,
GetSourceEntryOffsetRegions: GetSourceEntryOffsetRegions::<Identity, Impl, OFFSET>,
GetSourceEntryBySourceEntry: GetSourceEntryBySourceEntry::<Identity, Impl, OFFSET>,
GetScopeEx: GetScopeEx::<Identity, Impl, OFFSET>,
SetScopeEx: SetScopeEx::<Identity, Impl, OFFSET>,
GetNameByInlineContext: GetNameByInlineContext::<Identity, Impl, OFFSET>,
GetNameByInlineContextWide: GetNameByInlineContextWide::<Identity, Impl, OFFSET>,
GetLineByInlineContext: GetLineByInlineContext::<Identity, Impl, OFFSET>,
GetLineByInlineContextWide: GetLineByInlineContextWide::<Identity, Impl, OFFSET>,
OutputSymbolByInlineContext: OutputSymbolByInlineContext::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugSymbols4 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDebugSymbols5_Impl: Sized {
fn GetSymbolOptions(&self) -> ::windows::core::Result<u32>;
fn AddSymbolOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveSymbolOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetSymbolOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn GetNameByOffset(&self, offset: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetByName(&self, symbol: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetLineByOffset(&self, offset: u64, line: *mut u32, filebuffer: ::windows::core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetByLine(&self, line: u32, file: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn GetNumberModules(&self, loaded: *mut u32, unloaded: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleByIndex(&self, index: u32) -> ::windows::core::Result<u64>;
fn GetModuleByModuleName(&self, name: &::windows::core::PCSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn GetModuleByOffset(&self, offset: u64, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: ::windows::core::PSTR, imagenamebuffersize: u32, imagenamesize: *mut u32, modulenamebuffer: ::windows::core::PSTR, modulenamebuffersize: u32, modulenamesize: *mut u32, loadedimagenamebuffer: ::windows::core::PSTR, loadedimagenamebuffersize: u32, loadedimagenamesize: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleParameters(&self, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::Result<()>;
fn GetSymbolModule(&self, symbol: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetTypeId(&self, module: u64, name: &::windows::core::PCSTR) -> ::windows::core::Result<u32>;
fn GetTypeSize(&self, module: u64, typeid: u32) -> ::windows::core::Result<u32>;
fn GetFieldOffset(&self, module: u64, typeid: u32, field: &::windows::core::PCSTR) -> ::windows::core::Result<u32>;
fn GetSymbolTypeId(&self, symbol: &::windows::core::PCSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetTypeId(&self, offset: u64, typeid: *mut u32, module: *mut u64) -> ::windows::core::Result<()>;
fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn OutputTypedDataVirtual(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()>;
fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::Result<()>;
fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::Result<()>;
fn OutputTypedDataPhysical(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()>;
fn GetScope(&self, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()>;
fn SetScope(&self, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()>;
fn ResetScope(&self) -> ::windows::core::Result<()>;
fn GetScopeSymbolGroup(&self, flags: u32, update: ::core::option::Option<&IDebugSymbolGroup>) -> ::windows::core::Result<IDebugSymbolGroup>;
fn CreateSymbolGroup(&self) -> ::windows::core::Result<IDebugSymbolGroup>;
fn StartSymbolMatch(&self, pattern: &::windows::core::PCSTR) -> ::windows::core::Result<u64>;
fn GetNextSymbolMatch(&self, handle: u64, buffer: ::windows::core::PSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::Result<()>;
fn EndSymbolMatch(&self, handle: u64) -> ::windows::core::Result<()>;
fn Reload(&self, module: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetSymbolPath(&self, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSymbolPath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AppendSymbolPath(&self, addition: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetImagePath(&self, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn SetImagePath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AppendImagePath(&self, addition: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn GetSourcePath(&self, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourcePathElement(&self, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSourcePath(&self, path: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn AppendSourcePath(&self, addition: &::windows::core::PCSTR) -> ::windows::core::Result<()>;
fn FindSourceFile(&self, startelement: u32, file: &::windows::core::PCSTR, flags: u32, foundelement: *mut u32, buffer: ::windows::core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceFileLineOffsets(&self, file: &::windows::core::PCSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleVersionInformation(&self, index: u32, base: u64, item: &::windows::core::PCSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleNameString(&self, which: u32, index: u32, base: u64, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetConstantName(&self, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetFieldName(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetTypeOptions(&self) -> ::windows::core::Result<u32>;
fn AddTypeOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn RemoveTypeOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn SetTypeOptions(&self, options: u32) -> ::windows::core::Result<()>;
fn GetNameByOffsetWide(&self, offset: u64, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetByNameWide(&self, symbol: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn GetNearNameByOffsetWide(&self, offset: u64, delta: i32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetLineByOffsetWide(&self, offset: u64, line: *mut u32, filebuffer: ::windows::core::PWSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetOffsetByLineWide(&self, line: u32, file: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn GetModuleByModuleNameWide(&self, name: &::windows::core::PCWSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn GetSymbolModuleWide(&self, symbol: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn GetTypeNameWide(&self, module: u64, typeid: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetTypeIdWide(&self, module: u64, name: &::windows::core::PCWSTR) -> ::windows::core::Result<u32>;
fn GetFieldOffsetWide(&self, module: u64, typeid: u32, field: &::windows::core::PCWSTR) -> ::windows::core::Result<u32>;
fn GetSymbolTypeIdWide(&self, symbol: &::windows::core::PCWSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::Result<()>;
fn GetScopeSymbolGroup2(&self, flags: u32, update: ::core::option::Option<&IDebugSymbolGroup2>) -> ::windows::core::Result<IDebugSymbolGroup2>;
fn CreateSymbolGroup2(&self) -> ::windows::core::Result<IDebugSymbolGroup2>;
fn StartSymbolMatchWide(&self, pattern: &::windows::core::PCWSTR) -> ::windows::core::Result<u64>;
fn GetNextSymbolMatchWide(&self, handle: u64, buffer: ::windows::core::PWSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::Result<()>;
fn ReloadWide(&self, module: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetSymbolPathWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSymbolPathWide(&self, path: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn AppendSymbolPathWide(&self, addition: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetImagePathWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn SetImagePathWide(&self, path: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn AppendImagePathWide(&self, addition: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn GetSourcePathWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourcePathElementWide(&self, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::Result<()>;
fn SetSourcePathWide(&self, path: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn AppendSourcePathWide(&self, addition: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
fn FindSourceFileWide(&self, startelement: u32, file: &::windows::core::PCWSTR, flags: u32, foundelement: *mut u32, buffer: ::windows::core::PWSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceFileLineOffsetsWide(&self, file: &::windows::core::PCWSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleVersionInformationWide(&self, index: u32, base: u64, item: &::windows::core::PCWSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows::core::Result<()>;
fn GetModuleNameStringWide(&self, which: u32, index: u32, base: u64, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetConstantNameWide(&self, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetFieldNameWide(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn IsManagedModule(&self, index: u32, base: u64) -> ::windows::core::Result<()>;
fn GetModuleByModuleName2(&self, name: &::windows::core::PCSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn GetModuleByModuleName2Wide(&self, name: &::windows::core::PCWSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn GetModuleByOffset2(&self, offset: u64, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::Result<()>;
fn AddSyntheticModule(&self, base: u64, size: u32, imagepath: &::windows::core::PCSTR, modulename: &::windows::core::PCSTR, flags: u32) -> ::windows::core::Result<()>;
fn AddSyntheticModuleWide(&self, base: u64, size: u32, imagepath: &::windows::core::PCWSTR, modulename: &::windows::core::PCWSTR, flags: u32) -> ::windows::core::Result<()>;
fn RemoveSyntheticModule(&self, base: u64) -> ::windows::core::Result<()>;
fn GetCurrentScopeFrameIndex(&self) -> ::windows::core::Result<u32>;
fn SetScopeFrameByIndex(&self, index: u32) -> ::windows::core::Result<()>;
fn SetScopeFromJitDebugInfo(&self, outputcontrol: u32, infooffset: u64) -> ::windows::core::Result<()>;
fn SetScopeFromStoredEvent(&self) -> ::windows::core::Result<()>;
fn OutputSymbolByOffset(&self, outputcontrol: u32, flags: u32, offset: u64) -> ::windows::core::Result<()>;
fn GetFunctionEntryByOffset(&self, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bufferneeded: *mut u32) -> ::windows::core::Result<()>;
fn GetFieldTypeAndOffset(&self, module: u64, containertypeid: u32, field: &::windows::core::PCSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows::core::Result<()>;
fn GetFieldTypeAndOffsetWide(&self, module: u64, containertypeid: u32, field: &::windows::core::PCWSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows::core::Result<()>;
fn AddSyntheticSymbol(&self, offset: u64, size: u32, name: &::windows::core::PCSTR, flags: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::Result<()>;
fn AddSyntheticSymbolWide(&self, offset: u64, size: u32, name: &::windows::core::PCWSTR, flags: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::Result<()>;
fn RemoveSyntheticSymbol(&self, id: *const DEBUG_MODULE_AND_ID) -> ::windows::core::Result<()>;
fn GetSymbolEntriesByOffset(&self, offset: u64, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, displacements: *mut u64, idscount: u32, entries: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolEntriesByName(&self, symbol: &::windows::core::PCSTR, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, idscount: u32, entries: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolEntriesByNameWide(&self, symbol: &::windows::core::PCWSTR, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, idscount: u32, entries: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolEntryByToken(&self, modulebase: u64, token: u32) -> ::windows::core::Result<DEBUG_MODULE_AND_ID>;
fn GetSymbolEntryInformation(&self, id: *const DEBUG_MODULE_AND_ID, info: *mut DEBUG_SYMBOL_ENTRY) -> ::windows::core::Result<()>;
fn GetSymbolEntryString(&self, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolEntryStringWide(&self, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolEntryOffsetRegions(&self, id: *const DEBUG_MODULE_AND_ID, flags: u32, regions: *mut DEBUG_OFFSET_REGION, regionscount: u32, regionsavail: *mut u32) -> ::windows::core::Result<()>;
fn GetSymbolEntryBySymbolEntry(&self, fromid: *const DEBUG_MODULE_AND_ID, flags: u32) -> ::windows::core::Result<DEBUG_MODULE_AND_ID>;
fn GetSourceEntriesByOffset(&self, offset: u64, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceEntriesByLine(&self, line: u32, file: &::windows::core::PCSTR, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceEntriesByLineWide(&self, line: u32, file: &::windows::core::PCWSTR, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceEntryString(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceEntryStringWide(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceEntryOffsetRegions(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: *mut DEBUG_OFFSET_REGION, regionscount: u32, regionsavail: *mut u32) -> ::windows::core::Result<()>;
fn GetSourceEntryBySourceEntry(&self, fromentry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, toentry: *mut DEBUG_SYMBOL_SOURCE_ENTRY) -> ::windows::core::Result<()>;
fn GetScopeEx(&self, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME_EX, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()>;
fn SetScopeEx(&self, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME_EX, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()>;
fn GetNameByInlineContext(&self, offset: u64, inlinecontext: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetNameByInlineContextWide(&self, offset: u64, inlinecontext: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetLineByInlineContext(&self, offset: u64, inlinecontext: u32, line: *mut u32, filebuffer: ::windows::core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn GetLineByInlineContextWide(&self, offset: u64, inlinecontext: u32, line: *mut u32, filebuffer: ::windows::core::PWSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::Result<()>;
fn OutputSymbolByInlineContext(&self, outputcontrol: u32, flags: u32, offset: u64, inlinecontext: u32) -> ::windows::core::Result<()>;
fn GetCurrentScopeFrameIndexEx(&self, flags: u32) -> ::windows::core::Result<u32>;
fn SetScopeFrameByIndexEx(&self, flags: u32, index: u32) -> ::windows::core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::RuntimeName for IDebugSymbols5 {}
#[cfg(feature = "Win32_Foundation")]
impl IDebugSymbols5_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>() -> IDebugSymbols5_Vtbl {
unsafe extern "system" fn GetSymbolOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddSymbolOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSymbolOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveSymbolOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveSymbolOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetSymbolOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSymbolOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn GetNameByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNameByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetOffsetByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffsetByName(::core::mem::transmute(&symbol)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNearNameByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNearNameByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&delta), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetLineByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, line: *mut u32, filebuffer: ::windows::core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLineByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&line), ::core::mem::transmute_copy(&filebuffer), ::core::mem::transmute_copy(&filebuffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetOffsetByLine<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCSTR, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffsetByLine(::core::mem::transmute_copy(&line), ::core::mem::transmute(&file)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberModules<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, loaded: *mut u32, unloaded: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNumberModules(::core::mem::transmute_copy(&loaded), ::core::mem::transmute_copy(&unloaded)).into()
}
unsafe extern "system" fn GetModuleByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetModuleByIndex(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(base, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetModuleByModuleName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByModuleName(::core::mem::transmute(&name), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetModuleByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetModuleNames<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, base: u64, imagenamebuffer: ::windows::core::PSTR, imagenamebuffersize: u32, imagenamesize: *mut u32, modulenamebuffer: ::windows::core::PSTR, modulenamebuffersize: u32, modulenamesize: *mut u32, loadedimagenamebuffer: ::windows::core::PSTR, loadedimagenamebuffersize: u32, loadedimagenamesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleNames(
::core::mem::transmute_copy(&index),
::core::mem::transmute_copy(&base),
::core::mem::transmute_copy(&imagenamebuffer),
::core::mem::transmute_copy(&imagenamebuffersize),
::core::mem::transmute_copy(&imagenamesize),
::core::mem::transmute_copy(&modulenamebuffer),
::core::mem::transmute_copy(&modulenamebuffersize),
::core::mem::transmute_copy(&modulenamesize),
::core::mem::transmute_copy(&loadedimagenamebuffer),
::core::mem::transmute_copy(&loadedimagenamebuffersize),
::core::mem::transmute_copy(&loadedimagenamesize),
)
.into()
}
unsafe extern "system" fn GetModuleParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleParameters(::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&bases), ::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&params)).into()
}
unsafe extern "system" fn GetSymbolModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolModule(::core::mem::transmute(&symbol)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(base, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTypeName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTypeName(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetTypeId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, name: ::windows::core::PCSTR, typeid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTypeId(::core::mem::transmute_copy(&module), ::core::mem::transmute(&name)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(typeid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTypeSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, size: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTypeSize(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(size, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFieldOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows::core::PCSTR, offset: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFieldOffset(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute(&field)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSymbolTypeId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolTypeId(::core::mem::transmute(&symbol), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&module)).into()
}
unsafe extern "system" fn GetOffsetTypeId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOffsetTypeId(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&module)).into()
}
unsafe extern "system" fn ReadTypedDataVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadTypedDataVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteTypedDataVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteTypedDataVirtual(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn OutputTypedDataVirtual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputTypedDataVirtual(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn ReadTypedDataPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReadTypedDataPhysical(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bytesread)).into()
}
unsafe extern "system" fn WriteTypedDataPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteTypedDataPhysical(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&byteswritten)).into()
}
unsafe extern "system" fn OutputTypedDataPhysical<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputTypedDataPhysical(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn GetScope<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetScope(::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&scopeframe), ::core::mem::transmute_copy(&scopecontext), ::core::mem::transmute_copy(&scopecontextsize)).into()
}
unsafe extern "system" fn SetScope<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetScope(::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&scopeframe), ::core::mem::transmute_copy(&scopecontext), ::core::mem::transmute_copy(&scopecontextsize)).into()
}
unsafe extern "system" fn ResetScope<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_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.ResetScope().into()
}
unsafe extern "system" fn GetScopeSymbolGroup<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *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.GetScopeSymbolGroup(::core::mem::transmute_copy(&flags), ::windows::core::from_raw_borrowed(&update)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(symbols, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateSymbolGroup<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, group: *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.CreateSymbolGroup() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(group, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn StartSymbolMatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pattern: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.StartSymbolMatch(::core::mem::transmute(&pattern)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNextSymbolMatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows::core::PSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNextSymbolMatch(::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&matchsize), ::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn EndSymbolMatch<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndSymbolMatch(::core::mem::transmute_copy(&handle)).into()
}
unsafe extern "system" fn Reload<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Reload(::core::mem::transmute(&module)).into()
}
unsafe extern "system" fn GetSymbolPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolPath(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn SetSymbolPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSymbolPath(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendSymbolPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendSymbolPath(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn GetImagePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetImagePath(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn SetImagePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetImagePath(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendImagePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendImagePath(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn GetSourcePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourcePath(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn GetSourcePathElement<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourcePathElement(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&elementsize)).into()
}
unsafe extern "system" fn SetSourcePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSourcePath(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendSourcePath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendSourcePath(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn FindSourceFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startelement: u32, file: ::windows::core::PCSTR, flags: u32, foundelement: *mut u32, buffer: ::windows::core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FindSourceFile(::core::mem::transmute_copy(&startelement), ::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&foundelement), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&foundsize)).into()
}
unsafe extern "system" fn GetSourceFileLineOffsets<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceFileLineOffsets(::core::mem::transmute(&file), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&bufferlines), ::core::mem::transmute_copy(&filelines)).into()
}
unsafe extern "system" fn GetModuleVersionInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, base: u64, item: ::windows::core::PCSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleVersionInformation(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base), ::core::mem::transmute(&item), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&verinfosize)).into()
}
unsafe extern "system" fn GetModuleNameString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleNameString(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetConstantName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetConstantName(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetFieldName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFieldName(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&fieldindex), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetTypeOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTypeOptions() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(options, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddTypeOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddTypeOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn RemoveTypeOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveTypeOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn SetTypeOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTypeOptions(::core::mem::transmute_copy(&options)).into()
}
unsafe extern "system" fn GetNameByOffsetWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNameByOffsetWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetOffsetByNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffsetByNameWide(::core::mem::transmute(&symbol)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNearNameByOffsetWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNearNameByOffsetWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&delta), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetLineByOffsetWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, line: *mut u32, filebuffer: ::windows::core::PWSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLineByOffsetWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&line), ::core::mem::transmute_copy(&filebuffer), ::core::mem::transmute_copy(&filebuffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetOffsetByLineWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCWSTR, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOffsetByLineWide(::core::mem::transmute_copy(&line), ::core::mem::transmute(&file)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetModuleByModuleNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByModuleNameWide(::core::mem::transmute(&name), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetSymbolModuleWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolModuleWide(::core::mem::transmute(&symbol)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(base, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTypeNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTypeNameWide(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetTypeIdWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, name: ::windows::core::PCWSTR, typeid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTypeIdWide(::core::mem::transmute_copy(&module), ::core::mem::transmute(&name)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(typeid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFieldOffsetWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows::core::PCWSTR, offset: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFieldOffsetWide(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute(&field)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSymbolTypeIdWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolTypeIdWide(::core::mem::transmute(&symbol), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&module)).into()
}
unsafe extern "system" fn GetScopeSymbolGroup2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *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.GetScopeSymbolGroup2(::core::mem::transmute_copy(&flags), ::windows::core::from_raw_borrowed(&update)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(symbols, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateSymbolGroup2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, group: *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.CreateSymbolGroup2() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(group, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn StartSymbolMatchWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pattern: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.StartSymbolMatchWide(::core::mem::transmute(&pattern)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNextSymbolMatchWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows::core::PWSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNextSymbolMatchWide(::core::mem::transmute_copy(&handle), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&matchsize), ::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn ReloadWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReloadWide(::core::mem::transmute(&module)).into()
}
unsafe extern "system" fn GetSymbolPathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolPathWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn SetSymbolPathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSymbolPathWide(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendSymbolPathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendSymbolPathWide(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn GetImagePathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetImagePathWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn SetImagePathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetImagePathWide(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendImagePathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendImagePathWide(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn GetSourcePathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourcePathWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&pathsize)).into()
}
unsafe extern "system" fn GetSourcePathElementWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourcePathElementWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&elementsize)).into()
}
unsafe extern "system" fn SetSourcePathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSourcePathWide(::core::mem::transmute(&path)).into()
}
unsafe extern "system" fn AppendSourcePathWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AppendSourcePathWide(::core::mem::transmute(&addition)).into()
}
unsafe extern "system" fn FindSourceFileWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startelement: u32, file: ::windows::core::PCWSTR, flags: u32, foundelement: *mut u32, buffer: ::windows::core::PWSTR, buffersize: u32, foundsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FindSourceFileWide(::core::mem::transmute_copy(&startelement), ::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&foundelement), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&foundsize)).into()
}
unsafe extern "system" fn GetSourceFileLineOffsetsWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceFileLineOffsetsWide(::core::mem::transmute(&file), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&bufferlines), ::core::mem::transmute_copy(&filelines)).into()
}
unsafe extern "system" fn GetModuleVersionInformationWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, base: u64, item: ::windows::core::PCWSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleVersionInformationWide(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base), ::core::mem::transmute(&item), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&verinfosize)).into()
}
unsafe extern "system" fn GetModuleNameStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleNameStringWide(::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetConstantNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetConstantNameWide(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetFieldNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFieldNameWide(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&typeid), ::core::mem::transmute_copy(&fieldindex), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn IsManagedModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, base: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsManagedModule(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetModuleByModuleName2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByModuleName2(::core::mem::transmute(&name), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetModuleByModuleName2Wide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByModuleName2Wide(::core::mem::transmute(&name), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetModuleByOffset2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModuleByOffset2(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn AddSyntheticModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, base: u64, size: u32, imagepath: ::windows::core::PCSTR, modulename: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSyntheticModule(::core::mem::transmute_copy(&base), ::core::mem::transmute_copy(&size), ::core::mem::transmute(&imagepath), ::core::mem::transmute(&modulename), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn AddSyntheticModuleWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, base: u64, size: u32, imagepath: ::windows::core::PCWSTR, modulename: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSyntheticModuleWide(::core::mem::transmute_copy(&base), ::core::mem::transmute_copy(&size), ::core::mem::transmute(&imagepath), ::core::mem::transmute(&modulename), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn RemoveSyntheticModule<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, base: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveSyntheticModule(::core::mem::transmute_copy(&base)).into()
}
unsafe extern "system" fn GetCurrentScopeFrameIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentScopeFrameIndex() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(index, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetScopeFrameByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetScopeFrameByIndex(::core::mem::transmute_copy(&index)).into()
}
unsafe extern "system" fn SetScopeFromJitDebugInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, infooffset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetScopeFromJitDebugInfo(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&infooffset)).into()
}
unsafe extern "system" fn SetScopeFromStoredEvent<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_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.SetScopeFromStoredEvent().into()
}
unsafe extern "system" fn OutputSymbolByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, offset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputSymbolByOffset(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn GetFunctionEntryByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bufferneeded: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFunctionEntryByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bufferneeded)).into()
}
unsafe extern "system" fn GetFieldTypeAndOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, containertypeid: u32, field: ::windows::core::PCSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFieldTypeAndOffset(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&containertypeid), ::core::mem::transmute(&field), ::core::mem::transmute_copy(&fieldtypeid), ::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn GetFieldTypeAndOffsetWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, module: u64, containertypeid: u32, field: ::windows::core::PCWSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFieldTypeAndOffsetWide(::core::mem::transmute_copy(&module), ::core::mem::transmute_copy(&containertypeid), ::core::mem::transmute(&field), ::core::mem::transmute_copy(&fieldtypeid), ::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn AddSyntheticSymbol<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, size: u32, name: ::windows::core::PCSTR, flags: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSyntheticSymbol(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&size), ::core::mem::transmute(&name), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&id)).into()
}
unsafe extern "system" fn AddSyntheticSymbolWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, size: u32, name: ::windows::core::PCWSTR, flags: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddSyntheticSymbolWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&size), ::core::mem::transmute(&name), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&id)).into()
}
unsafe extern "system" fn RemoveSyntheticSymbol<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveSyntheticSymbol(::core::mem::transmute_copy(&id)).into()
}
unsafe extern "system" fn GetSymbolEntriesByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, displacements: *mut u64, idscount: u32, entries: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntriesByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&displacements), ::core::mem::transmute_copy(&idscount), ::core::mem::transmute_copy(&entries)).into()
}
unsafe extern "system" fn GetSymbolEntriesByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, idscount: u32, entries: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntriesByName(::core::mem::transmute(&symbol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&idscount), ::core::mem::transmute_copy(&entries)).into()
}
unsafe extern "system" fn GetSymbolEntriesByNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, idscount: u32, entries: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntriesByNameWide(::core::mem::transmute(&symbol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&idscount), ::core::mem::transmute_copy(&entries)).into()
}
unsafe extern "system" fn GetSymbolEntryByToken<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, modulebase: u64, token: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolEntryByToken(::core::mem::transmute_copy(&modulebase), ::core::mem::transmute_copy(&token)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSymbolEntryInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, info: *mut DEBUG_SYMBOL_ENTRY) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntryInformation(::core::mem::transmute_copy(&id), ::core::mem::transmute_copy(&info)).into()
}
unsafe extern "system" fn GetSymbolEntryString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntryString(::core::mem::transmute_copy(&id), ::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetSymbolEntryStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntryStringWide(::core::mem::transmute_copy(&id), ::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetSymbolEntryOffsetRegions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, flags: u32, regions: *mut DEBUG_OFFSET_REGION, regionscount: u32, regionsavail: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSymbolEntryOffsetRegions(::core::mem::transmute_copy(&id), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&regions), ::core::mem::transmute_copy(&regionscount), ::core::mem::transmute_copy(&regionsavail)).into()
}
unsafe extern "system" fn GetSymbolEntryBySymbolEntry<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fromid: *const DEBUG_MODULE_AND_ID, flags: u32, toid: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSymbolEntryBySymbolEntry(::core::mem::transmute_copy(&fromid), ::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(toid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSourceEntriesByOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntriesByOffset(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&entries), ::core::mem::transmute_copy(&entriescount), ::core::mem::transmute_copy(&entriesavail)).into()
}
unsafe extern "system" fn GetSourceEntriesByLine<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCSTR, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntriesByLine(::core::mem::transmute_copy(&line), ::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&entries), ::core::mem::transmute_copy(&entriescount), ::core::mem::transmute_copy(&entriesavail)).into()
}
unsafe extern "system" fn GetSourceEntriesByLineWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCWSTR, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntriesByLineWide(::core::mem::transmute_copy(&line), ::core::mem::transmute(&file), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&entries), ::core::mem::transmute_copy(&entriescount), ::core::mem::transmute_copy(&entriesavail)).into()
}
unsafe extern "system" fn GetSourceEntryString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntryString(::core::mem::transmute_copy(&entry), ::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetSourceEntryStringWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntryStringWide(::core::mem::transmute_copy(&entry), ::core::mem::transmute_copy(&which), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&stringsize)).into()
}
unsafe extern "system" fn GetSourceEntryOffsetRegions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: *mut DEBUG_OFFSET_REGION, regionscount: u32, regionsavail: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntryOffsetRegions(::core::mem::transmute_copy(&entry), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&regions), ::core::mem::transmute_copy(&regionscount), ::core::mem::transmute_copy(&regionsavail)).into()
}
unsafe extern "system" fn GetSourceEntryBySourceEntry<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fromentry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, toentry: *mut DEBUG_SYMBOL_SOURCE_ENTRY) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourceEntryBySourceEntry(::core::mem::transmute_copy(&fromentry), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&toentry)).into()
}
unsafe extern "system" fn GetScopeEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME_EX, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetScopeEx(::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&scopeframe), ::core::mem::transmute_copy(&scopecontext), ::core::mem::transmute_copy(&scopecontextsize)).into()
}
unsafe extern "system" fn SetScopeEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME_EX, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetScopeEx(::core::mem::transmute_copy(&instructionoffset), ::core::mem::transmute_copy(&scopeframe), ::core::mem::transmute_copy(&scopecontext), ::core::mem::transmute_copy(&scopecontextsize)).into()
}
unsafe extern "system" fn GetNameByInlineContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, inlinecontext: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNameByInlineContext(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&inlinecontext), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetNameByInlineContextWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, inlinecontext: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNameByInlineContextWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&inlinecontext), ::core::mem::transmute_copy(&namebuffer), ::core::mem::transmute_copy(&namebuffersize), ::core::mem::transmute_copy(&namesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetLineByInlineContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, inlinecontext: u32, line: *mut u32, filebuffer: ::windows::core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLineByInlineContext(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&inlinecontext), ::core::mem::transmute_copy(&line), ::core::mem::transmute_copy(&filebuffer), ::core::mem::transmute_copy(&filebuffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn GetLineByInlineContextWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, inlinecontext: u32, line: *mut u32, filebuffer: ::windows::core::PWSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLineByInlineContextWide(::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&inlinecontext), ::core::mem::transmute_copy(&line), ::core::mem::transmute_copy(&filebuffer), ::core::mem::transmute_copy(&filebuffersize), ::core::mem::transmute_copy(&filesize), ::core::mem::transmute_copy(&displacement)).into()
}
unsafe extern "system" fn OutputSymbolByInlineContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, offset: u64, inlinecontext: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OutputSymbolByInlineContext(::core::mem::transmute_copy(&outputcontrol), ::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&inlinecontext)).into()
}
unsafe extern "system" fn GetCurrentScopeFrameIndexEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, index: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentScopeFrameIndexEx(::core::mem::transmute_copy(&flags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(index, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetScopeFrameByIndexEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSymbols5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32, index: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetScopeFrameByIndexEx(::core::mem::transmute_copy(&flags), ::core::mem::transmute_copy(&index)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetSymbolOptions: GetSymbolOptions::<Identity, Impl, OFFSET>,
AddSymbolOptions: AddSymbolOptions::<Identity, Impl, OFFSET>,
RemoveSymbolOptions: RemoveSymbolOptions::<Identity, Impl, OFFSET>,
SetSymbolOptions: SetSymbolOptions::<Identity, Impl, OFFSET>,
GetNameByOffset: GetNameByOffset::<Identity, Impl, OFFSET>,
GetOffsetByName: GetOffsetByName::<Identity, Impl, OFFSET>,
GetNearNameByOffset: GetNearNameByOffset::<Identity, Impl, OFFSET>,
GetLineByOffset: GetLineByOffset::<Identity, Impl, OFFSET>,
GetOffsetByLine: GetOffsetByLine::<Identity, Impl, OFFSET>,
GetNumberModules: GetNumberModules::<Identity, Impl, OFFSET>,
GetModuleByIndex: GetModuleByIndex::<Identity, Impl, OFFSET>,
GetModuleByModuleName: GetModuleByModuleName::<Identity, Impl, OFFSET>,
GetModuleByOffset: GetModuleByOffset::<Identity, Impl, OFFSET>,
GetModuleNames: GetModuleNames::<Identity, Impl, OFFSET>,
GetModuleParameters: GetModuleParameters::<Identity, Impl, OFFSET>,
GetSymbolModule: GetSymbolModule::<Identity, Impl, OFFSET>,
GetTypeName: GetTypeName::<Identity, Impl, OFFSET>,
GetTypeId: GetTypeId::<Identity, Impl, OFFSET>,
GetTypeSize: GetTypeSize::<Identity, Impl, OFFSET>,
GetFieldOffset: GetFieldOffset::<Identity, Impl, OFFSET>,
GetSymbolTypeId: GetSymbolTypeId::<Identity, Impl, OFFSET>,
GetOffsetTypeId: GetOffsetTypeId::<Identity, Impl, OFFSET>,
ReadTypedDataVirtual: ReadTypedDataVirtual::<Identity, Impl, OFFSET>,
WriteTypedDataVirtual: WriteTypedDataVirtual::<Identity, Impl, OFFSET>,
OutputTypedDataVirtual: OutputTypedDataVirtual::<Identity, Impl, OFFSET>,
ReadTypedDataPhysical: ReadTypedDataPhysical::<Identity, Impl, OFFSET>,
WriteTypedDataPhysical: WriteTypedDataPhysical::<Identity, Impl, OFFSET>,
OutputTypedDataPhysical: OutputTypedDataPhysical::<Identity, Impl, OFFSET>,
GetScope: GetScope::<Identity, Impl, OFFSET>,
SetScope: SetScope::<Identity, Impl, OFFSET>,
ResetScope: ResetScope::<Identity, Impl, OFFSET>,
GetScopeSymbolGroup: GetScopeSymbolGroup::<Identity, Impl, OFFSET>,
CreateSymbolGroup: CreateSymbolGroup::<Identity, Impl, OFFSET>,
StartSymbolMatch: StartSymbolMatch::<Identity, Impl, OFFSET>,
GetNextSymbolMatch: GetNextSymbolMatch::<Identity, Impl, OFFSET>,
EndSymbolMatch: EndSymbolMatch::<Identity, Impl, OFFSET>,
Reload: Reload::<Identity, Impl, OFFSET>,
GetSymbolPath: GetSymbolPath::<Identity, Impl, OFFSET>,
SetSymbolPath: SetSymbolPath::<Identity, Impl, OFFSET>,
AppendSymbolPath: AppendSymbolPath::<Identity, Impl, OFFSET>,
GetImagePath: GetImagePath::<Identity, Impl, OFFSET>,
SetImagePath: SetImagePath::<Identity, Impl, OFFSET>,
AppendImagePath: AppendImagePath::<Identity, Impl, OFFSET>,
GetSourcePath: GetSourcePath::<Identity, Impl, OFFSET>,
GetSourcePathElement: GetSourcePathElement::<Identity, Impl, OFFSET>,
SetSourcePath: SetSourcePath::<Identity, Impl, OFFSET>,
AppendSourcePath: AppendSourcePath::<Identity, Impl, OFFSET>,
FindSourceFile: FindSourceFile::<Identity, Impl, OFFSET>,
GetSourceFileLineOffsets: GetSourceFileLineOffsets::<Identity, Impl, OFFSET>,
GetModuleVersionInformation: GetModuleVersionInformation::<Identity, Impl, OFFSET>,
GetModuleNameString: GetModuleNameString::<Identity, Impl, OFFSET>,
GetConstantName: GetConstantName::<Identity, Impl, OFFSET>,
GetFieldName: GetFieldName::<Identity, Impl, OFFSET>,
GetTypeOptions: GetTypeOptions::<Identity, Impl, OFFSET>,
AddTypeOptions: AddTypeOptions::<Identity, Impl, OFFSET>,
RemoveTypeOptions: RemoveTypeOptions::<Identity, Impl, OFFSET>,
SetTypeOptions: SetTypeOptions::<Identity, Impl, OFFSET>,
GetNameByOffsetWide: GetNameByOffsetWide::<Identity, Impl, OFFSET>,
GetOffsetByNameWide: GetOffsetByNameWide::<Identity, Impl, OFFSET>,
GetNearNameByOffsetWide: GetNearNameByOffsetWide::<Identity, Impl, OFFSET>,
GetLineByOffsetWide: GetLineByOffsetWide::<Identity, Impl, OFFSET>,
GetOffsetByLineWide: GetOffsetByLineWide::<Identity, Impl, OFFSET>,
GetModuleByModuleNameWide: GetModuleByModuleNameWide::<Identity, Impl, OFFSET>,
GetSymbolModuleWide: GetSymbolModuleWide::<Identity, Impl, OFFSET>,
GetTypeNameWide: GetTypeNameWide::<Identity, Impl, OFFSET>,
GetTypeIdWide: GetTypeIdWide::<Identity, Impl, OFFSET>,
GetFieldOffsetWide: GetFieldOffsetWide::<Identity, Impl, OFFSET>,
GetSymbolTypeIdWide: GetSymbolTypeIdWide::<Identity, Impl, OFFSET>,
GetScopeSymbolGroup2: GetScopeSymbolGroup2::<Identity, Impl, OFFSET>,
CreateSymbolGroup2: CreateSymbolGroup2::<Identity, Impl, OFFSET>,
StartSymbolMatchWide: StartSymbolMatchWide::<Identity, Impl, OFFSET>,
GetNextSymbolMatchWide: GetNextSymbolMatchWide::<Identity, Impl, OFFSET>,
ReloadWide: ReloadWide::<Identity, Impl, OFFSET>,
GetSymbolPathWide: GetSymbolPathWide::<Identity, Impl, OFFSET>,
SetSymbolPathWide: SetSymbolPathWide::<Identity, Impl, OFFSET>,
AppendSymbolPathWide: AppendSymbolPathWide::<Identity, Impl, OFFSET>,
GetImagePathWide: GetImagePathWide::<Identity, Impl, OFFSET>,
SetImagePathWide: SetImagePathWide::<Identity, Impl, OFFSET>,
AppendImagePathWide: AppendImagePathWide::<Identity, Impl, OFFSET>,
GetSourcePathWide: GetSourcePathWide::<Identity, Impl, OFFSET>,
GetSourcePathElementWide: GetSourcePathElementWide::<Identity, Impl, OFFSET>,
SetSourcePathWide: SetSourcePathWide::<Identity, Impl, OFFSET>,
AppendSourcePathWide: AppendSourcePathWide::<Identity, Impl, OFFSET>,
FindSourceFileWide: FindSourceFileWide::<Identity, Impl, OFFSET>,
GetSourceFileLineOffsetsWide: GetSourceFileLineOffsetsWide::<Identity, Impl, OFFSET>,
GetModuleVersionInformationWide: GetModuleVersionInformationWide::<Identity, Impl, OFFSET>,
GetModuleNameStringWide: GetModuleNameStringWide::<Identity, Impl, OFFSET>,
GetConstantNameWide: GetConstantNameWide::<Identity, Impl, OFFSET>,
GetFieldNameWide: GetFieldNameWide::<Identity, Impl, OFFSET>,
IsManagedModule: IsManagedModule::<Identity, Impl, OFFSET>,
GetModuleByModuleName2: GetModuleByModuleName2::<Identity, Impl, OFFSET>,
GetModuleByModuleName2Wide: GetModuleByModuleName2Wide::<Identity, Impl, OFFSET>,
GetModuleByOffset2: GetModuleByOffset2::<Identity, Impl, OFFSET>,
AddSyntheticModule: AddSyntheticModule::<Identity, Impl, OFFSET>,
AddSyntheticModuleWide: AddSyntheticModuleWide::<Identity, Impl, OFFSET>,
RemoveSyntheticModule: RemoveSyntheticModule::<Identity, Impl, OFFSET>,
GetCurrentScopeFrameIndex: GetCurrentScopeFrameIndex::<Identity, Impl, OFFSET>,
SetScopeFrameByIndex: SetScopeFrameByIndex::<Identity, Impl, OFFSET>,
SetScopeFromJitDebugInfo: SetScopeFromJitDebugInfo::<Identity, Impl, OFFSET>,
SetScopeFromStoredEvent: SetScopeFromStoredEvent::<Identity, Impl, OFFSET>,
OutputSymbolByOffset: OutputSymbolByOffset::<Identity, Impl, OFFSET>,
GetFunctionEntryByOffset: GetFunctionEntryByOffset::<Identity, Impl, OFFSET>,
GetFieldTypeAndOffset: GetFieldTypeAndOffset::<Identity, Impl, OFFSET>,
GetFieldTypeAndOffsetWide: GetFieldTypeAndOffsetWide::<Identity, Impl, OFFSET>,
AddSyntheticSymbol: AddSyntheticSymbol::<Identity, Impl, OFFSET>,
AddSyntheticSymbolWide: AddSyntheticSymbolWide::<Identity, Impl, OFFSET>,
RemoveSyntheticSymbol: RemoveSyntheticSymbol::<Identity, Impl, OFFSET>,
GetSymbolEntriesByOffset: GetSymbolEntriesByOffset::<Identity, Impl, OFFSET>,
GetSymbolEntriesByName: GetSymbolEntriesByName::<Identity, Impl, OFFSET>,
GetSymbolEntriesByNameWide: GetSymbolEntriesByNameWide::<Identity, Impl, OFFSET>,
GetSymbolEntryByToken: GetSymbolEntryByToken::<Identity, Impl, OFFSET>,
GetSymbolEntryInformation: GetSymbolEntryInformation::<Identity, Impl, OFFSET>,
GetSymbolEntryString: GetSymbolEntryString::<Identity, Impl, OFFSET>,
GetSymbolEntryStringWide: GetSymbolEntryStringWide::<Identity, Impl, OFFSET>,
GetSymbolEntryOffsetRegions: GetSymbolEntryOffsetRegions::<Identity, Impl, OFFSET>,
GetSymbolEntryBySymbolEntry: GetSymbolEntryBySymbolEntry::<Identity, Impl, OFFSET>,
GetSourceEntriesByOffset: GetSourceEntriesByOffset::<Identity, Impl, OFFSET>,
GetSourceEntriesByLine: GetSourceEntriesByLine::<Identity, Impl, OFFSET>,
GetSourceEntriesByLineWide: GetSourceEntriesByLineWide::<Identity, Impl, OFFSET>,
GetSourceEntryString: GetSourceEntryString::<Identity, Impl, OFFSET>,
GetSourceEntryStringWide: GetSourceEntryStringWide::<Identity, Impl, OFFSET>,
GetSourceEntryOffsetRegions: GetSourceEntryOffsetRegions::<Identity, Impl, OFFSET>,
GetSourceEntryBySourceEntry: GetSourceEntryBySourceEntry::<Identity, Impl, OFFSET>,
GetScopeEx: GetScopeEx::<Identity, Impl, OFFSET>,
SetScopeEx: SetScopeEx::<Identity, Impl, OFFSET>,
GetNameByInlineContext: GetNameByInlineContext::<Identity, Impl, OFFSET>,
GetNameByInlineContextWide: GetNameByInlineContextWide::<Identity, Impl, OFFSET>,
GetLineByInlineContext: GetLineByInlineContext::<Identity, Impl, OFFSET>,
GetLineByInlineContextWide: GetLineByInlineContextWide::<Identity, Impl, OFFSET>,
OutputSymbolByInlineContext: OutputSymbolByInlineContext::<Identity, Impl, OFFSET>,
GetCurrentScopeFrameIndexEx: GetCurrentScopeFrameIndexEx::<Identity, Impl, OFFSET>,
SetScopeFrameByIndexEx: SetScopeFrameByIndexEx::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugSymbols5 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugSystemObjects_Impl: Sized {
fn GetEventThread(&self) -> ::windows::core::Result<u32>;
fn GetEventProcess(&self) -> ::windows::core::Result<u32>;
fn GetCurrentThreadId(&self) -> ::windows::core::Result<u32>;
fn SetCurrentThreadId(&self, id: u32) -> ::windows::core::Result<()>;
fn GetCurrentProcessId(&self) -> ::windows::core::Result<u32>;
fn SetCurrentProcessId(&self, id: u32) -> ::windows::core::Result<()>;
fn GetNumberThreads(&self) -> ::windows::core::Result<u32>;
fn GetTotalNumberThreads(&self, total: *mut u32, largestprocess: *mut u32) -> ::windows::core::Result<()>;
fn GetThreadIdsByIndex(&self, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::Result<()>;
fn GetThreadIdByProcessor(&self, processor: u32) -> ::windows::core::Result<u32>;
fn GetCurrentThreadDataOffset(&self) -> ::windows::core::Result<u64>;
fn GetThreadIdByDataOffset(&self, offset: u64) -> ::windows::core::Result<u32>;
fn GetCurrentThreadTeb(&self) -> ::windows::core::Result<u64>;
fn GetThreadIdByTeb(&self, offset: u64) -> ::windows::core::Result<u32>;
fn GetCurrentThreadSystemId(&self) -> ::windows::core::Result<u32>;
fn GetThreadIdBySystemId(&self, sysid: u32) -> ::windows::core::Result<u32>;
fn GetCurrentThreadHandle(&self) -> ::windows::core::Result<u64>;
fn GetThreadIdByHandle(&self, handle: u64) -> ::windows::core::Result<u32>;
fn GetNumberProcesses(&self) -> ::windows::core::Result<u32>;
fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentProcessDataOffset(&self) -> ::windows::core::Result<u64>;
fn GetProcessIdByDataOffset(&self, offset: u64) -> ::windows::core::Result<u32>;
fn GetCurrentProcessPeb(&self) -> ::windows::core::Result<u64>;
fn GetProcessIdByPeb(&self, offset: u64) -> ::windows::core::Result<u32>;
fn GetCurrentProcessSystemId(&self) -> ::windows::core::Result<u32>;
fn GetProcessIdBySystemId(&self, sysid: u32) -> ::windows::core::Result<u32>;
fn GetCurrentProcessHandle(&self) -> ::windows::core::Result<u64>;
fn GetProcessIdByHandle(&self, handle: u64) -> ::windows::core::Result<u32>;
fn GetCurrentProcessExecutableName(&self, buffer: ::windows::core::PSTR, buffersize: u32, exesize: *mut u32) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugSystemObjects {}
impl IDebugSystemObjects_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>() -> IDebugSystemObjects_Vtbl {
unsafe extern "system" fn GetEventThread<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEventThread() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetEventProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEventProcess() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentThreadId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentThreadId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCurrentThreadId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCurrentThreadId(::core::mem::transmute_copy(&id)).into()
}
unsafe extern "system" fn GetCurrentProcessId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCurrentProcessId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCurrentProcessId(::core::mem::transmute_copy(&id)).into()
}
unsafe extern "system" fn GetNumberThreads<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberThreads() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTotalNumberThreads<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, total: *mut u32, largestprocess: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTotalNumberThreads(::core::mem::transmute_copy(&total), ::core::mem::transmute_copy(&largestprocess)).into()
}
unsafe extern "system" fn GetThreadIdsByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetThreadIdsByIndex(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&sysids)).into()
}
unsafe extern "system" fn GetThreadIdByProcessor<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, processor: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetThreadIdByProcessor(::core::mem::transmute_copy(&processor)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentThreadDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentThreadDataOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetThreadIdByDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetThreadIdByDataOffset(::core::mem::transmute_copy(&offset)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentThreadTeb<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentThreadTeb() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetThreadIdByTeb<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetThreadIdByTeb(::core::mem::transmute_copy(&offset)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentThreadSystemId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentThreadSystemId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(sysid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetThreadIdBySystemId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetThreadIdBySystemId(::core::mem::transmute_copy(&sysid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentThreadHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentThreadHandle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetThreadIdByHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetThreadIdByHandle(::core::mem::transmute_copy(&handle)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberProcesses() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProcessIdsByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetProcessIdsByIndex(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&sysids)).into()
}
unsafe extern "system" fn GetCurrentProcessDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessDataOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProcessIdByDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessIdByDataOffset(::core::mem::transmute_copy(&offset)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentProcessPeb<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessPeb() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProcessIdByPeb<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessIdByPeb(::core::mem::transmute_copy(&offset)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentProcessSystemId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessSystemId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(sysid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProcessIdBySystemId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessIdBySystemId(::core::mem::transmute_copy(&sysid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentProcessHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessHandle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProcessIdByHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessIdByHandle(::core::mem::transmute_copy(&handle)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentProcessExecutableName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, exesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentProcessExecutableName(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&exesize)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetEventThread: GetEventThread::<Identity, Impl, OFFSET>,
GetEventProcess: GetEventProcess::<Identity, Impl, OFFSET>,
GetCurrentThreadId: GetCurrentThreadId::<Identity, Impl, OFFSET>,
SetCurrentThreadId: SetCurrentThreadId::<Identity, Impl, OFFSET>,
GetCurrentProcessId: GetCurrentProcessId::<Identity, Impl, OFFSET>,
SetCurrentProcessId: SetCurrentProcessId::<Identity, Impl, OFFSET>,
GetNumberThreads: GetNumberThreads::<Identity, Impl, OFFSET>,
GetTotalNumberThreads: GetTotalNumberThreads::<Identity, Impl, OFFSET>,
GetThreadIdsByIndex: GetThreadIdsByIndex::<Identity, Impl, OFFSET>,
GetThreadIdByProcessor: GetThreadIdByProcessor::<Identity, Impl, OFFSET>,
GetCurrentThreadDataOffset: GetCurrentThreadDataOffset::<Identity, Impl, OFFSET>,
GetThreadIdByDataOffset: GetThreadIdByDataOffset::<Identity, Impl, OFFSET>,
GetCurrentThreadTeb: GetCurrentThreadTeb::<Identity, Impl, OFFSET>,
GetThreadIdByTeb: GetThreadIdByTeb::<Identity, Impl, OFFSET>,
GetCurrentThreadSystemId: GetCurrentThreadSystemId::<Identity, Impl, OFFSET>,
GetThreadIdBySystemId: GetThreadIdBySystemId::<Identity, Impl, OFFSET>,
GetCurrentThreadHandle: GetCurrentThreadHandle::<Identity, Impl, OFFSET>,
GetThreadIdByHandle: GetThreadIdByHandle::<Identity, Impl, OFFSET>,
GetNumberProcesses: GetNumberProcesses::<Identity, Impl, OFFSET>,
GetProcessIdsByIndex: GetProcessIdsByIndex::<Identity, Impl, OFFSET>,
GetCurrentProcessDataOffset: GetCurrentProcessDataOffset::<Identity, Impl, OFFSET>,
GetProcessIdByDataOffset: GetProcessIdByDataOffset::<Identity, Impl, OFFSET>,
GetCurrentProcessPeb: GetCurrentProcessPeb::<Identity, Impl, OFFSET>,
GetProcessIdByPeb: GetProcessIdByPeb::<Identity, Impl, OFFSET>,
GetCurrentProcessSystemId: GetCurrentProcessSystemId::<Identity, Impl, OFFSET>,
GetProcessIdBySystemId: GetProcessIdBySystemId::<Identity, Impl, OFFSET>,
GetCurrentProcessHandle: GetCurrentProcessHandle::<Identity, Impl, OFFSET>,
GetProcessIdByHandle: GetProcessIdByHandle::<Identity, Impl, OFFSET>,
GetCurrentProcessExecutableName: GetCurrentProcessExecutableName::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugSystemObjects as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugSystemObjects2_Impl: Sized {
fn GetEventThread(&self) -> ::windows::core::Result<u32>;
fn GetEventProcess(&self) -> ::windows::core::Result<u32>;
fn GetCurrentThreadId(&self) -> ::windows::core::Result<u32>;
fn SetCurrentThreadId(&self, id: u32) -> ::windows::core::Result<()>;
fn GetCurrentProcessId(&self) -> ::windows::core::Result<u32>;
fn SetCurrentProcessId(&self, id: u32) -> ::windows::core::Result<()>;
fn GetNumberThreads(&self) -> ::windows::core::Result<u32>;
fn GetTotalNumberThreads(&self, total: *mut u32, largestprocess: *mut u32) -> ::windows::core::Result<()>;
fn GetThreadIdsByIndex(&self, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::Result<()>;
fn GetThreadIdByProcessor(&self, processor: u32) -> ::windows::core::Result<u32>;
fn GetCurrentThreadDataOffset(&self) -> ::windows::core::Result<u64>;
fn GetThreadIdByDataOffset(&self, offset: u64) -> ::windows::core::Result<u32>;
fn GetCurrentThreadTeb(&self) -> ::windows::core::Result<u64>;
fn GetThreadIdByTeb(&self, offset: u64) -> ::windows::core::Result<u32>;
fn GetCurrentThreadSystemId(&self) -> ::windows::core::Result<u32>;
fn GetThreadIdBySystemId(&self, sysid: u32) -> ::windows::core::Result<u32>;
fn GetCurrentThreadHandle(&self) -> ::windows::core::Result<u64>;
fn GetThreadIdByHandle(&self, handle: u64) -> ::windows::core::Result<u32>;
fn GetNumberProcesses(&self) -> ::windows::core::Result<u32>;
fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentProcessDataOffset(&self) -> ::windows::core::Result<u64>;
fn GetProcessIdByDataOffset(&self, offset: u64) -> ::windows::core::Result<u32>;
fn GetCurrentProcessPeb(&self) -> ::windows::core::Result<u64>;
fn GetProcessIdByPeb(&self, offset: u64) -> ::windows::core::Result<u32>;
fn GetCurrentProcessSystemId(&self) -> ::windows::core::Result<u32>;
fn GetProcessIdBySystemId(&self, sysid: u32) -> ::windows::core::Result<u32>;
fn GetCurrentProcessHandle(&self) -> ::windows::core::Result<u64>;
fn GetProcessIdByHandle(&self, handle: u64) -> ::windows::core::Result<u32>;
fn GetCurrentProcessExecutableName(&self, buffer: ::windows::core::PSTR, buffersize: u32, exesize: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentProcessUpTime(&self) -> ::windows::core::Result<u32>;
fn GetImplicitThreadDataOffset(&self) -> ::windows::core::Result<u64>;
fn SetImplicitThreadDataOffset(&self, offset: u64) -> ::windows::core::Result<()>;
fn GetImplicitProcessDataOffset(&self) -> ::windows::core::Result<u64>;
fn SetImplicitProcessDataOffset(&self, offset: u64) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugSystemObjects2 {}
impl IDebugSystemObjects2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>() -> IDebugSystemObjects2_Vtbl {
unsafe extern "system" fn GetEventThread<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEventThread() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetEventProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEventProcess() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentThreadId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentThreadId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCurrentThreadId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCurrentThreadId(::core::mem::transmute_copy(&id)).into()
}
unsafe extern "system" fn GetCurrentProcessId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCurrentProcessId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCurrentProcessId(::core::mem::transmute_copy(&id)).into()
}
unsafe extern "system" fn GetNumberThreads<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberThreads() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTotalNumberThreads<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, total: *mut u32, largestprocess: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTotalNumberThreads(::core::mem::transmute_copy(&total), ::core::mem::transmute_copy(&largestprocess)).into()
}
unsafe extern "system" fn GetThreadIdsByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetThreadIdsByIndex(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&sysids)).into()
}
unsafe extern "system" fn GetThreadIdByProcessor<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, processor: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetThreadIdByProcessor(::core::mem::transmute_copy(&processor)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentThreadDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentThreadDataOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetThreadIdByDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetThreadIdByDataOffset(::core::mem::transmute_copy(&offset)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentThreadTeb<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentThreadTeb() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetThreadIdByTeb<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetThreadIdByTeb(::core::mem::transmute_copy(&offset)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentThreadSystemId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentThreadSystemId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(sysid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetThreadIdBySystemId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetThreadIdBySystemId(::core::mem::transmute_copy(&sysid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentThreadHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentThreadHandle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetThreadIdByHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetThreadIdByHandle(::core::mem::transmute_copy(&handle)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberProcesses() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProcessIdsByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetProcessIdsByIndex(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&sysids)).into()
}
unsafe extern "system" fn GetCurrentProcessDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessDataOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProcessIdByDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessIdByDataOffset(::core::mem::transmute_copy(&offset)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentProcessPeb<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessPeb() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProcessIdByPeb<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessIdByPeb(::core::mem::transmute_copy(&offset)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentProcessSystemId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessSystemId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(sysid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProcessIdBySystemId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessIdBySystemId(::core::mem::transmute_copy(&sysid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentProcessHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessHandle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProcessIdByHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessIdByHandle(::core::mem::transmute_copy(&handle)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentProcessExecutableName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, exesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentProcessExecutableName(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&exesize)).into()
}
unsafe extern "system" fn GetCurrentProcessUpTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessUpTime() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(uptime, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetImplicitThreadDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetImplicitThreadDataOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetImplicitThreadDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetImplicitThreadDataOffset(::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn GetImplicitProcessDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetImplicitProcessDataOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetImplicitProcessDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetImplicitProcessDataOffset(::core::mem::transmute_copy(&offset)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetEventThread: GetEventThread::<Identity, Impl, OFFSET>,
GetEventProcess: GetEventProcess::<Identity, Impl, OFFSET>,
GetCurrentThreadId: GetCurrentThreadId::<Identity, Impl, OFFSET>,
SetCurrentThreadId: SetCurrentThreadId::<Identity, Impl, OFFSET>,
GetCurrentProcessId: GetCurrentProcessId::<Identity, Impl, OFFSET>,
SetCurrentProcessId: SetCurrentProcessId::<Identity, Impl, OFFSET>,
GetNumberThreads: GetNumberThreads::<Identity, Impl, OFFSET>,
GetTotalNumberThreads: GetTotalNumberThreads::<Identity, Impl, OFFSET>,
GetThreadIdsByIndex: GetThreadIdsByIndex::<Identity, Impl, OFFSET>,
GetThreadIdByProcessor: GetThreadIdByProcessor::<Identity, Impl, OFFSET>,
GetCurrentThreadDataOffset: GetCurrentThreadDataOffset::<Identity, Impl, OFFSET>,
GetThreadIdByDataOffset: GetThreadIdByDataOffset::<Identity, Impl, OFFSET>,
GetCurrentThreadTeb: GetCurrentThreadTeb::<Identity, Impl, OFFSET>,
GetThreadIdByTeb: GetThreadIdByTeb::<Identity, Impl, OFFSET>,
GetCurrentThreadSystemId: GetCurrentThreadSystemId::<Identity, Impl, OFFSET>,
GetThreadIdBySystemId: GetThreadIdBySystemId::<Identity, Impl, OFFSET>,
GetCurrentThreadHandle: GetCurrentThreadHandle::<Identity, Impl, OFFSET>,
GetThreadIdByHandle: GetThreadIdByHandle::<Identity, Impl, OFFSET>,
GetNumberProcesses: GetNumberProcesses::<Identity, Impl, OFFSET>,
GetProcessIdsByIndex: GetProcessIdsByIndex::<Identity, Impl, OFFSET>,
GetCurrentProcessDataOffset: GetCurrentProcessDataOffset::<Identity, Impl, OFFSET>,
GetProcessIdByDataOffset: GetProcessIdByDataOffset::<Identity, Impl, OFFSET>,
GetCurrentProcessPeb: GetCurrentProcessPeb::<Identity, Impl, OFFSET>,
GetProcessIdByPeb: GetProcessIdByPeb::<Identity, Impl, OFFSET>,
GetCurrentProcessSystemId: GetCurrentProcessSystemId::<Identity, Impl, OFFSET>,
GetProcessIdBySystemId: GetProcessIdBySystemId::<Identity, Impl, OFFSET>,
GetCurrentProcessHandle: GetCurrentProcessHandle::<Identity, Impl, OFFSET>,
GetProcessIdByHandle: GetProcessIdByHandle::<Identity, Impl, OFFSET>,
GetCurrentProcessExecutableName: GetCurrentProcessExecutableName::<Identity, Impl, OFFSET>,
GetCurrentProcessUpTime: GetCurrentProcessUpTime::<Identity, Impl, OFFSET>,
GetImplicitThreadDataOffset: GetImplicitThreadDataOffset::<Identity, Impl, OFFSET>,
SetImplicitThreadDataOffset: SetImplicitThreadDataOffset::<Identity, Impl, OFFSET>,
GetImplicitProcessDataOffset: GetImplicitProcessDataOffset::<Identity, Impl, OFFSET>,
SetImplicitProcessDataOffset: SetImplicitProcessDataOffset::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugSystemObjects2 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugSystemObjects3_Impl: Sized {
fn GetEventThread(&self) -> ::windows::core::Result<u32>;
fn GetEventProcess(&self) -> ::windows::core::Result<u32>;
fn GetCurrentThreadId(&self) -> ::windows::core::Result<u32>;
fn SetCurrentThreadId(&self, id: u32) -> ::windows::core::Result<()>;
fn GetCurrentProcessId(&self) -> ::windows::core::Result<u32>;
fn SetCurrentProcessId(&self, id: u32) -> ::windows::core::Result<()>;
fn GetNumberThreads(&self) -> ::windows::core::Result<u32>;
fn GetTotalNumberThreads(&self, total: *mut u32, largestprocess: *mut u32) -> ::windows::core::Result<()>;
fn GetThreadIdsByIndex(&self, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::Result<()>;
fn GetThreadIdByProcessor(&self, processor: u32) -> ::windows::core::Result<u32>;
fn GetCurrentThreadDataOffset(&self) -> ::windows::core::Result<u64>;
fn GetThreadIdByDataOffset(&self, offset: u64) -> ::windows::core::Result<u32>;
fn GetCurrentThreadTeb(&self) -> ::windows::core::Result<u64>;
fn GetThreadIdByTeb(&self, offset: u64) -> ::windows::core::Result<u32>;
fn GetCurrentThreadSystemId(&self) -> ::windows::core::Result<u32>;
fn GetThreadIdBySystemId(&self, sysid: u32) -> ::windows::core::Result<u32>;
fn GetCurrentThreadHandle(&self) -> ::windows::core::Result<u64>;
fn GetThreadIdByHandle(&self, handle: u64) -> ::windows::core::Result<u32>;
fn GetNumberProcesses(&self) -> ::windows::core::Result<u32>;
fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentProcessDataOffset(&self) -> ::windows::core::Result<u64>;
fn GetProcessIdByDataOffset(&self, offset: u64) -> ::windows::core::Result<u32>;
fn GetCurrentProcessPeb(&self) -> ::windows::core::Result<u64>;
fn GetProcessIdByPeb(&self, offset: u64) -> ::windows::core::Result<u32>;
fn GetCurrentProcessSystemId(&self) -> ::windows::core::Result<u32>;
fn GetProcessIdBySystemId(&self, sysid: u32) -> ::windows::core::Result<u32>;
fn GetCurrentProcessHandle(&self) -> ::windows::core::Result<u64>;
fn GetProcessIdByHandle(&self, handle: u64) -> ::windows::core::Result<u32>;
fn GetCurrentProcessExecutableName(&self, buffer: ::windows::core::PSTR, buffersize: u32, exesize: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentProcessUpTime(&self) -> ::windows::core::Result<u32>;
fn GetImplicitThreadDataOffset(&self) -> ::windows::core::Result<u64>;
fn SetImplicitThreadDataOffset(&self, offset: u64) -> ::windows::core::Result<()>;
fn GetImplicitProcessDataOffset(&self) -> ::windows::core::Result<u64>;
fn SetImplicitProcessDataOffset(&self, offset: u64) -> ::windows::core::Result<()>;
fn GetEventSystem(&self) -> ::windows::core::Result<u32>;
fn GetCurrentSystemId(&self) -> ::windows::core::Result<u32>;
fn SetCurrentSystemId(&self, id: u32) -> ::windows::core::Result<()>;
fn GetNumberSystems(&self) -> ::windows::core::Result<u32>;
fn GetSystemIdsByIndex(&self, start: u32, count: u32, ids: *mut u32) -> ::windows::core::Result<()>;
fn GetTotalNumberThreadsAndProcesses(&self, totalthreads: *mut u32, totalprocesses: *mut u32, largestprocessthreads: *mut u32, largestsystemthreads: *mut u32, largestsystemprocesses: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentSystemServer(&self) -> ::windows::core::Result<u64>;
fn GetSystemByServer(&self, server: u64) -> ::windows::core::Result<u32>;
fn GetCurrentSystemServerName(&self, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugSystemObjects3 {}
impl IDebugSystemObjects3_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>() -> IDebugSystemObjects3_Vtbl {
unsafe extern "system" fn GetEventThread<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEventThread() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetEventProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEventProcess() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentThreadId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentThreadId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCurrentThreadId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCurrentThreadId(::core::mem::transmute_copy(&id)).into()
}
unsafe extern "system" fn GetCurrentProcessId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCurrentProcessId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCurrentProcessId(::core::mem::transmute_copy(&id)).into()
}
unsafe extern "system" fn GetNumberThreads<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberThreads() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTotalNumberThreads<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, total: *mut u32, largestprocess: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTotalNumberThreads(::core::mem::transmute_copy(&total), ::core::mem::transmute_copy(&largestprocess)).into()
}
unsafe extern "system" fn GetThreadIdsByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetThreadIdsByIndex(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&sysids)).into()
}
unsafe extern "system" fn GetThreadIdByProcessor<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, processor: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetThreadIdByProcessor(::core::mem::transmute_copy(&processor)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentThreadDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentThreadDataOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetThreadIdByDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetThreadIdByDataOffset(::core::mem::transmute_copy(&offset)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentThreadTeb<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentThreadTeb() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetThreadIdByTeb<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetThreadIdByTeb(::core::mem::transmute_copy(&offset)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentThreadSystemId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentThreadSystemId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(sysid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetThreadIdBySystemId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetThreadIdBySystemId(::core::mem::transmute_copy(&sysid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentThreadHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentThreadHandle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetThreadIdByHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetThreadIdByHandle(::core::mem::transmute_copy(&handle)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberProcesses() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProcessIdsByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetProcessIdsByIndex(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&sysids)).into()
}
unsafe extern "system" fn GetCurrentProcessDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessDataOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProcessIdByDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessIdByDataOffset(::core::mem::transmute_copy(&offset)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentProcessPeb<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessPeb() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProcessIdByPeb<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessIdByPeb(::core::mem::transmute_copy(&offset)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentProcessSystemId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessSystemId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(sysid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProcessIdBySystemId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessIdBySystemId(::core::mem::transmute_copy(&sysid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentProcessHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessHandle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProcessIdByHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessIdByHandle(::core::mem::transmute_copy(&handle)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentProcessExecutableName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, exesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentProcessExecutableName(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&exesize)).into()
}
unsafe extern "system" fn GetCurrentProcessUpTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessUpTime() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(uptime, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetImplicitThreadDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetImplicitThreadDataOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetImplicitThreadDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetImplicitThreadDataOffset(::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn GetImplicitProcessDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetImplicitProcessDataOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetImplicitProcessDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetImplicitProcessDataOffset(::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn GetEventSystem<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEventSystem() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentSystemId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentSystemId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCurrentSystemId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCurrentSystemId(::core::mem::transmute_copy(&id)).into()
}
unsafe extern "system" fn GetNumberSystems<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberSystems() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSystemIdsByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemIdsByIndex(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&ids)).into()
}
unsafe extern "system" fn GetTotalNumberThreadsAndProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, totalthreads: *mut u32, totalprocesses: *mut u32, largestprocessthreads: *mut u32, largestsystemthreads: *mut u32, largestsystemprocesses: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTotalNumberThreadsAndProcesses(::core::mem::transmute_copy(&totalthreads), ::core::mem::transmute_copy(&totalprocesses), ::core::mem::transmute_copy(&largestprocessthreads), ::core::mem::transmute_copy(&largestsystemthreads), ::core::mem::transmute_copy(&largestsystemprocesses)).into()
}
unsafe extern "system" fn GetCurrentSystemServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentSystemServer() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(server, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSystemByServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSystemByServer(::core::mem::transmute_copy(&server)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentSystemServerName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentSystemServerName(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetEventThread: GetEventThread::<Identity, Impl, OFFSET>,
GetEventProcess: GetEventProcess::<Identity, Impl, OFFSET>,
GetCurrentThreadId: GetCurrentThreadId::<Identity, Impl, OFFSET>,
SetCurrentThreadId: SetCurrentThreadId::<Identity, Impl, OFFSET>,
GetCurrentProcessId: GetCurrentProcessId::<Identity, Impl, OFFSET>,
SetCurrentProcessId: SetCurrentProcessId::<Identity, Impl, OFFSET>,
GetNumberThreads: GetNumberThreads::<Identity, Impl, OFFSET>,
GetTotalNumberThreads: GetTotalNumberThreads::<Identity, Impl, OFFSET>,
GetThreadIdsByIndex: GetThreadIdsByIndex::<Identity, Impl, OFFSET>,
GetThreadIdByProcessor: GetThreadIdByProcessor::<Identity, Impl, OFFSET>,
GetCurrentThreadDataOffset: GetCurrentThreadDataOffset::<Identity, Impl, OFFSET>,
GetThreadIdByDataOffset: GetThreadIdByDataOffset::<Identity, Impl, OFFSET>,
GetCurrentThreadTeb: GetCurrentThreadTeb::<Identity, Impl, OFFSET>,
GetThreadIdByTeb: GetThreadIdByTeb::<Identity, Impl, OFFSET>,
GetCurrentThreadSystemId: GetCurrentThreadSystemId::<Identity, Impl, OFFSET>,
GetThreadIdBySystemId: GetThreadIdBySystemId::<Identity, Impl, OFFSET>,
GetCurrentThreadHandle: GetCurrentThreadHandle::<Identity, Impl, OFFSET>,
GetThreadIdByHandle: GetThreadIdByHandle::<Identity, Impl, OFFSET>,
GetNumberProcesses: GetNumberProcesses::<Identity, Impl, OFFSET>,
GetProcessIdsByIndex: GetProcessIdsByIndex::<Identity, Impl, OFFSET>,
GetCurrentProcessDataOffset: GetCurrentProcessDataOffset::<Identity, Impl, OFFSET>,
GetProcessIdByDataOffset: GetProcessIdByDataOffset::<Identity, Impl, OFFSET>,
GetCurrentProcessPeb: GetCurrentProcessPeb::<Identity, Impl, OFFSET>,
GetProcessIdByPeb: GetProcessIdByPeb::<Identity, Impl, OFFSET>,
GetCurrentProcessSystemId: GetCurrentProcessSystemId::<Identity, Impl, OFFSET>,
GetProcessIdBySystemId: GetProcessIdBySystemId::<Identity, Impl, OFFSET>,
GetCurrentProcessHandle: GetCurrentProcessHandle::<Identity, Impl, OFFSET>,
GetProcessIdByHandle: GetProcessIdByHandle::<Identity, Impl, OFFSET>,
GetCurrentProcessExecutableName: GetCurrentProcessExecutableName::<Identity, Impl, OFFSET>,
GetCurrentProcessUpTime: GetCurrentProcessUpTime::<Identity, Impl, OFFSET>,
GetImplicitThreadDataOffset: GetImplicitThreadDataOffset::<Identity, Impl, OFFSET>,
SetImplicitThreadDataOffset: SetImplicitThreadDataOffset::<Identity, Impl, OFFSET>,
GetImplicitProcessDataOffset: GetImplicitProcessDataOffset::<Identity, Impl, OFFSET>,
SetImplicitProcessDataOffset: SetImplicitProcessDataOffset::<Identity, Impl, OFFSET>,
GetEventSystem: GetEventSystem::<Identity, Impl, OFFSET>,
GetCurrentSystemId: GetCurrentSystemId::<Identity, Impl, OFFSET>,
SetCurrentSystemId: SetCurrentSystemId::<Identity, Impl, OFFSET>,
GetNumberSystems: GetNumberSystems::<Identity, Impl, OFFSET>,
GetSystemIdsByIndex: GetSystemIdsByIndex::<Identity, Impl, OFFSET>,
GetTotalNumberThreadsAndProcesses: GetTotalNumberThreadsAndProcesses::<Identity, Impl, OFFSET>,
GetCurrentSystemServer: GetCurrentSystemServer::<Identity, Impl, OFFSET>,
GetSystemByServer: GetSystemByServer::<Identity, Impl, OFFSET>,
GetCurrentSystemServerName: GetCurrentSystemServerName::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugSystemObjects3 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDebugSystemObjects4_Impl: Sized {
fn GetEventThread(&self) -> ::windows::core::Result<u32>;
fn GetEventProcess(&self) -> ::windows::core::Result<u32>;
fn GetCurrentThreadId(&self) -> ::windows::core::Result<u32>;
fn SetCurrentThreadId(&self, id: u32) -> ::windows::core::Result<()>;
fn GetCurrentProcessId(&self) -> ::windows::core::Result<u32>;
fn SetCurrentProcessId(&self, id: u32) -> ::windows::core::Result<()>;
fn GetNumberThreads(&self) -> ::windows::core::Result<u32>;
fn GetTotalNumberThreads(&self, total: *mut u32, largestprocess: *mut u32) -> ::windows::core::Result<()>;
fn GetThreadIdsByIndex(&self, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::Result<()>;
fn GetThreadIdByProcessor(&self, processor: u32) -> ::windows::core::Result<u32>;
fn GetCurrentThreadDataOffset(&self) -> ::windows::core::Result<u64>;
fn GetThreadIdByDataOffset(&self, offset: u64) -> ::windows::core::Result<u32>;
fn GetCurrentThreadTeb(&self) -> ::windows::core::Result<u64>;
fn GetThreadIdByTeb(&self, offset: u64) -> ::windows::core::Result<u32>;
fn GetCurrentThreadSystemId(&self) -> ::windows::core::Result<u32>;
fn GetThreadIdBySystemId(&self, sysid: u32) -> ::windows::core::Result<u32>;
fn GetCurrentThreadHandle(&self) -> ::windows::core::Result<u64>;
fn GetThreadIdByHandle(&self, handle: u64) -> ::windows::core::Result<u32>;
fn GetNumberProcesses(&self) -> ::windows::core::Result<u32>;
fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentProcessDataOffset(&self) -> ::windows::core::Result<u64>;
fn GetProcessIdByDataOffset(&self, offset: u64) -> ::windows::core::Result<u32>;
fn GetCurrentProcessPeb(&self) -> ::windows::core::Result<u64>;
fn GetProcessIdByPeb(&self, offset: u64) -> ::windows::core::Result<u32>;
fn GetCurrentProcessSystemId(&self) -> ::windows::core::Result<u32>;
fn GetProcessIdBySystemId(&self, sysid: u32) -> ::windows::core::Result<u32>;
fn GetCurrentProcessHandle(&self) -> ::windows::core::Result<u64>;
fn GetProcessIdByHandle(&self, handle: u64) -> ::windows::core::Result<u32>;
fn GetCurrentProcessExecutableName(&self, buffer: ::windows::core::PSTR, buffersize: u32, exesize: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentProcessUpTime(&self) -> ::windows::core::Result<u32>;
fn GetImplicitThreadDataOffset(&self) -> ::windows::core::Result<u64>;
fn SetImplicitThreadDataOffset(&self, offset: u64) -> ::windows::core::Result<()>;
fn GetImplicitProcessDataOffset(&self) -> ::windows::core::Result<u64>;
fn SetImplicitProcessDataOffset(&self, offset: u64) -> ::windows::core::Result<()>;
fn GetEventSystem(&self) -> ::windows::core::Result<u32>;
fn GetCurrentSystemId(&self) -> ::windows::core::Result<u32>;
fn SetCurrentSystemId(&self, id: u32) -> ::windows::core::Result<()>;
fn GetNumberSystems(&self) -> ::windows::core::Result<u32>;
fn GetSystemIdsByIndex(&self, start: u32, count: u32, ids: *mut u32) -> ::windows::core::Result<()>;
fn GetTotalNumberThreadsAndProcesses(&self, totalthreads: *mut u32, totalprocesses: *mut u32, largestprocessthreads: *mut u32, largestsystemthreads: *mut u32, largestsystemprocesses: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentSystemServer(&self) -> ::windows::core::Result<u64>;
fn GetSystemByServer(&self, server: u64) -> ::windows::core::Result<u32>;
fn GetCurrentSystemServerName(&self, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentProcessExecutableNameWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, exesize: *mut u32) -> ::windows::core::Result<()>;
fn GetCurrentSystemServerNameWide(&self, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDebugSystemObjects4 {}
impl IDebugSystemObjects4_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>() -> IDebugSystemObjects4_Vtbl {
unsafe extern "system" fn GetEventThread<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEventThread() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetEventProcess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEventProcess() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentThreadId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentThreadId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCurrentThreadId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCurrentThreadId(::core::mem::transmute_copy(&id)).into()
}
unsafe extern "system" fn GetCurrentProcessId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCurrentProcessId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCurrentProcessId(::core::mem::transmute_copy(&id)).into()
}
unsafe extern "system" fn GetNumberThreads<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberThreads() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTotalNumberThreads<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, total: *mut u32, largestprocess: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTotalNumberThreads(::core::mem::transmute_copy(&total), ::core::mem::transmute_copy(&largestprocess)).into()
}
unsafe extern "system" fn GetThreadIdsByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetThreadIdsByIndex(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&sysids)).into()
}
unsafe extern "system" fn GetThreadIdByProcessor<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, processor: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetThreadIdByProcessor(::core::mem::transmute_copy(&processor)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentThreadDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentThreadDataOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetThreadIdByDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetThreadIdByDataOffset(::core::mem::transmute_copy(&offset)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentThreadTeb<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentThreadTeb() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetThreadIdByTeb<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetThreadIdByTeb(::core::mem::transmute_copy(&offset)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentThreadSystemId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentThreadSystemId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(sysid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetThreadIdBySystemId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetThreadIdBySystemId(::core::mem::transmute_copy(&sysid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentThreadHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentThreadHandle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetThreadIdByHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetThreadIdByHandle(::core::mem::transmute_copy(&handle)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberProcesses() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProcessIdsByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetProcessIdsByIndex(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&ids), ::core::mem::transmute_copy(&sysids)).into()
}
unsafe extern "system" fn GetCurrentProcessDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessDataOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProcessIdByDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessIdByDataOffset(::core::mem::transmute_copy(&offset)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentProcessPeb<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessPeb() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProcessIdByPeb<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessIdByPeb(::core::mem::transmute_copy(&offset)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentProcessSystemId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessSystemId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(sysid, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProcessIdBySystemId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessIdBySystemId(::core::mem::transmute_copy(&sysid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentProcessHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessHandle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(handle, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProcessIdByHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProcessIdByHandle(::core::mem::transmute_copy(&handle)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentProcessExecutableName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, exesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentProcessExecutableName(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&exesize)).into()
}
unsafe extern "system" fn GetCurrentProcessUpTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProcessUpTime() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(uptime, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetImplicitThreadDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetImplicitThreadDataOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetImplicitThreadDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetImplicitThreadDataOffset(::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn GetImplicitProcessDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetImplicitProcessDataOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(offset, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetImplicitProcessDataOffset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetImplicitProcessDataOffset(::core::mem::transmute_copy(&offset)).into()
}
unsafe extern "system" fn GetEventSystem<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEventSystem() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentSystemId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentSystemId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCurrentSystemId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCurrentSystemId(::core::mem::transmute_copy(&id)).into()
}
unsafe extern "system" fn GetNumberSystems<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberSystems() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(number, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSystemIdsByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSystemIdsByIndex(::core::mem::transmute_copy(&start), ::core::mem::transmute_copy(&count), ::core::mem::transmute_copy(&ids)).into()
}
unsafe extern "system" fn GetTotalNumberThreadsAndProcesses<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, totalthreads: *mut u32, totalprocesses: *mut u32, largestprocessthreads: *mut u32, largestsystemthreads: *mut u32, largestsystemprocesses: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTotalNumberThreadsAndProcesses(::core::mem::transmute_copy(&totalthreads), ::core::mem::transmute_copy(&totalprocesses), ::core::mem::transmute_copy(&largestprocessthreads), ::core::mem::transmute_copy(&largestsystemthreads), ::core::mem::transmute_copy(&largestsystemprocesses)).into()
}
unsafe extern "system" fn GetCurrentSystemServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentSystemServer() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(server, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSystemByServer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, server: u64, id: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSystemByServer(::core::mem::transmute_copy(&server)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentSystemServerName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentSystemServerName(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize)).into()
}
unsafe extern "system" fn GetCurrentProcessExecutableNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, exesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentProcessExecutableNameWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&exesize)).into()
}
unsafe extern "system" fn GetCurrentSystemServerNameWide<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDebugSystemObjects4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentSystemServerNameWide(::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&namesize)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetEventThread: GetEventThread::<Identity, Impl, OFFSET>,
GetEventProcess: GetEventProcess::<Identity, Impl, OFFSET>,
GetCurrentThreadId: GetCurrentThreadId::<Identity, Impl, OFFSET>,
SetCurrentThreadId: SetCurrentThreadId::<Identity, Impl, OFFSET>,
GetCurrentProcessId: GetCurrentProcessId::<Identity, Impl, OFFSET>,
SetCurrentProcessId: SetCurrentProcessId::<Identity, Impl, OFFSET>,
GetNumberThreads: GetNumberThreads::<Identity, Impl, OFFSET>,
GetTotalNumberThreads: GetTotalNumberThreads::<Identity, Impl, OFFSET>,
GetThreadIdsByIndex: GetThreadIdsByIndex::<Identity, Impl, OFFSET>,
GetThreadIdByProcessor: GetThreadIdByProcessor::<Identity, Impl, OFFSET>,
GetCurrentThreadDataOffset: GetCurrentThreadDataOffset::<Identity, Impl, OFFSET>,
GetThreadIdByDataOffset: GetThreadIdByDataOffset::<Identity, Impl, OFFSET>,
GetCurrentThreadTeb: GetCurrentThreadTeb::<Identity, Impl, OFFSET>,
GetThreadIdByTeb: GetThreadIdByTeb::<Identity, Impl, OFFSET>,
GetCurrentThreadSystemId: GetCurrentThreadSystemId::<Identity, Impl, OFFSET>,
GetThreadIdBySystemId: GetThreadIdBySystemId::<Identity, Impl, OFFSET>,
GetCurrentThreadHandle: GetCurrentThreadHandle::<Identity, Impl, OFFSET>,
GetThreadIdByHandle: GetThreadIdByHandle::<Identity, Impl, OFFSET>,
GetNumberProcesses: GetNumberProcesses::<Identity, Impl, OFFSET>,
GetProcessIdsByIndex: GetProcessIdsByIndex::<Identity, Impl, OFFSET>,
GetCurrentProcessDataOffset: GetCurrentProcessDataOffset::<Identity, Impl, OFFSET>,
GetProcessIdByDataOffset: GetProcessIdByDataOffset::<Identity, Impl, OFFSET>,
GetCurrentProcessPeb: GetCurrentProcessPeb::<Identity, Impl, OFFSET>,
GetProcessIdByPeb: GetProcessIdByPeb::<Identity, Impl, OFFSET>,
GetCurrentProcessSystemId: GetCurrentProcessSystemId::<Identity, Impl, OFFSET>,
GetProcessIdBySystemId: GetProcessIdBySystemId::<Identity, Impl, OFFSET>,
GetCurrentProcessHandle: GetCurrentProcessHandle::<Identity, Impl, OFFSET>,
GetProcessIdByHandle: GetProcessIdByHandle::<Identity, Impl, OFFSET>,
GetCurrentProcessExecutableName: GetCurrentProcessExecutableName::<Identity, Impl, OFFSET>,
GetCurrentProcessUpTime: GetCurrentProcessUpTime::<Identity, Impl, OFFSET>,
GetImplicitThreadDataOffset: GetImplicitThreadDataOffset::<Identity, Impl, OFFSET>,
SetImplicitThreadDataOffset: SetImplicitThreadDataOffset::<Identity, Impl, OFFSET>,
GetImplicitProcessDataOffset: GetImplicitProcessDataOffset::<Identity, Impl, OFFSET>,
SetImplicitProcessDataOffset: SetImplicitProcessDataOffset::<Identity, Impl, OFFSET>,
GetEventSystem: GetEventSystem::<Identity, Impl, OFFSET>,
GetCurrentSystemId: GetCurrentSystemId::<Identity, Impl, OFFSET>,
SetCurrentSystemId: SetCurrentSystemId::<Identity, Impl, OFFSET>,
GetNumberSystems: GetNumberSystems::<Identity, Impl, OFFSET>,
GetSystemIdsByIndex: GetSystemIdsByIndex::<Identity, Impl, OFFSET>,
GetTotalNumberThreadsAndProcesses: GetTotalNumberThreadsAndProcesses::<Identity, Impl, OFFSET>,
GetCurrentSystemServer: GetCurrentSystemServer::<Identity, Impl, OFFSET>,
GetSystemByServer: GetSystemByServer::<Identity, Impl, OFFSET>,
GetCurrentSystemServerName: GetCurrentSystemServerName::<Identity, Impl, OFFSET>,
GetCurrentProcessExecutableNameWide: GetCurrentProcessExecutableNameWide::<Identity, Impl, OFFSET>,
GetCurrentSystemServerNameWide: GetCurrentSystemServerNameWide::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDebugSystemObjects4 as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDynamicConceptProviderConcept_Impl: Sized {
fn GetConcept(&self, contextobject: ::core::option::Option<&IModelObject>, conceptid: *const ::windows::core::GUID, conceptinterface: *mut ::core::option::Option<::windows::core::IUnknown>, conceptmetadata: *mut ::core::option::Option<IKeyStore>, hasconcept: *mut bool) -> ::windows::core::Result<()>;
fn SetConcept(&self, contextobject: ::core::option::Option<&IModelObject>, conceptid: *const ::windows::core::GUID, conceptinterface: ::core::option::Option<&::windows::core::IUnknown>, conceptmetadata: ::core::option::Option<&IKeyStore>) -> ::windows::core::Result<()>;
fn NotifyParent(&self, parentmodel: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<()>;
fn NotifyParentChange(&self, parentmodel: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<()>;
fn NotifyDestruct(&self) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IDynamicConceptProviderConcept {}
impl IDynamicConceptProviderConcept_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDynamicConceptProviderConcept_Impl, const OFFSET: isize>() -> IDynamicConceptProviderConcept_Vtbl {
unsafe extern "system" fn GetConcept<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDynamicConceptProviderConcept_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, conceptid: *const ::windows::core::GUID, conceptinterface: *mut *mut ::core::ffi::c_void, conceptmetadata: *mut *mut ::core::ffi::c_void, hasconcept: *mut bool) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetConcept(::windows::core::from_raw_borrowed(&contextobject), ::core::mem::transmute_copy(&conceptid), ::core::mem::transmute_copy(&conceptinterface), ::core::mem::transmute_copy(&conceptmetadata), ::core::mem::transmute_copy(&hasconcept)).into()
}
unsafe extern "system" fn SetConcept<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDynamicConceptProviderConcept_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, conceptid: *const ::windows::core::GUID, conceptinterface: *mut ::core::ffi::c_void, conceptmetadata: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetConcept(::windows::core::from_raw_borrowed(&contextobject), ::core::mem::transmute_copy(&conceptid), ::windows::core::from_raw_borrowed(&conceptinterface), ::windows::core::from_raw_borrowed(&conceptmetadata)).into()
}
unsafe extern "system" fn NotifyParent<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDynamicConceptProviderConcept_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, parentmodel: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NotifyParent(::windows::core::from_raw_borrowed(&parentmodel)).into()
}
unsafe extern "system" fn NotifyParentChange<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDynamicConceptProviderConcept_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, parentmodel: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NotifyParentChange(::windows::core::from_raw_borrowed(&parentmodel)).into()
}
unsafe extern "system" fn NotifyDestruct<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDynamicConceptProviderConcept_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.NotifyDestruct().into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetConcept: GetConcept::<Identity, Impl, OFFSET>,
SetConcept: SetConcept::<Identity, Impl, OFFSET>,
NotifyParent: NotifyParent::<Identity, Impl, OFFSET>,
NotifyParentChange: NotifyParentChange::<Identity, Impl, OFFSET>,
NotifyDestruct: NotifyDestruct::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDynamicConceptProviderConcept as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IDynamicKeyProviderConcept_Impl: Sized {
fn GetKey(&self, contextobject: ::core::option::Option<&IModelObject>, key: &::windows::core::PCWSTR, keyvalue: *mut ::core::option::Option<IModelObject>, metadata: *mut ::core::option::Option<IKeyStore>, haskey: *mut bool) -> ::windows::core::Result<()>;
fn SetKey(&self, contextobject: ::core::option::Option<&IModelObject>, key: &::windows::core::PCWSTR, keyvalue: ::core::option::Option<&IModelObject>, metadata: ::core::option::Option<&IKeyStore>) -> ::windows::core::Result<()>;
fn EnumerateKeys(&self, contextobject: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<IKeyEnumerator>;
}
impl ::windows::core::RuntimeName for IDynamicKeyProviderConcept {}
impl IDynamicKeyProviderConcept_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDynamicKeyProviderConcept_Impl, const OFFSET: isize>() -> IDynamicKeyProviderConcept_Vtbl {
unsafe extern "system" fn GetKey<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDynamicKeyProviderConcept_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, key: ::windows::core::PCWSTR, keyvalue: *mut *mut ::core::ffi::c_void, metadata: *mut *mut ::core::ffi::c_void, haskey: *mut bool) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetKey(::windows::core::from_raw_borrowed(&contextobject), ::core::mem::transmute(&key), ::core::mem::transmute_copy(&keyvalue), ::core::mem::transmute_copy(&metadata), ::core::mem::transmute_copy(&haskey)).into()
}
unsafe extern "system" fn SetKey<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDynamicKeyProviderConcept_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, key: ::windows::core::PCWSTR, keyvalue: *mut ::core::ffi::c_void, metadata: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKey(::windows::core::from_raw_borrowed(&contextobject), ::core::mem::transmute(&key), ::windows::core::from_raw_borrowed(&keyvalue), ::windows::core::from_raw_borrowed(&metadata)).into()
}
unsafe extern "system" fn EnumerateKeys<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDynamicKeyProviderConcept_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, ppenumerator: *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.EnumerateKeys(::windows::core::from_raw_borrowed(&contextobject)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenumerator, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetKey: GetKey::<Identity, Impl, OFFSET>,
SetKey: SetKey::<Identity, Impl, OFFSET>,
EnumerateKeys: EnumerateKeys::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IDynamicKeyProviderConcept as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IEquatableConcept_Impl: Sized {
fn AreObjectsEqual(&self, contextobject: ::core::option::Option<&IModelObject>, otherobject: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<bool>;
}
impl ::windows::core::RuntimeName for IEquatableConcept {}
impl IEquatableConcept_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEquatableConcept_Impl, const OFFSET: isize>() -> IEquatableConcept_Vtbl {
unsafe extern "system" fn AreObjectsEqual<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEquatableConcept_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, otherobject: *mut ::core::ffi::c_void, isequal: *mut bool) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AreObjectsEqual(::windows::core::from_raw_borrowed(&contextobject), ::windows::core::from_raw_borrowed(&otherobject)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(isequal, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), AreObjectsEqual: AreObjectsEqual::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IEquatableConcept as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IHostDataModelAccess_Impl: Sized {
fn GetDataModel(&self, manager: *mut ::core::option::Option<IDataModelManager>, host: *mut ::core::option::Option<IDebugHost>) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IHostDataModelAccess {}
impl IHostDataModelAccess_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IHostDataModelAccess_Impl, const OFFSET: isize>() -> IHostDataModelAccess_Vtbl {
unsafe extern "system" fn GetDataModel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IHostDataModelAccess_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, manager: *mut *mut ::core::ffi::c_void, host: *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.GetDataModel(::core::mem::transmute_copy(&manager), ::core::mem::transmute_copy(&host)).into()
}
Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetDataModel: GetDataModel::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IHostDataModelAccess as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IIndexableConcept_Impl: Sized {
fn GetDimensionality(&self, contextobject: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<u64>;
fn GetAt(&self, contextobject: ::core::option::Option<&IModelObject>, indexercount: u64, indexers: *const ::core::option::Option<IModelObject>, object: *mut ::core::option::Option<IModelObject>, metadata: *mut ::core::option::Option<IKeyStore>) -> ::windows::core::Result<()>;
fn SetAt(&self, contextobject: ::core::option::Option<&IModelObject>, indexercount: u64, indexers: *const ::core::option::Option<IModelObject>, value: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IIndexableConcept {}
impl IIndexableConcept_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IIndexableConcept_Impl, const OFFSET: isize>() -> IIndexableConcept_Vtbl {
unsafe extern "system" fn GetDimensionality<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IIndexableConcept_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, dimensionality: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDimensionality(::windows::core::from_raw_borrowed(&contextobject)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(dimensionality, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetAt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IIndexableConcept_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, indexercount: u64, indexers: *const *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void, metadata: *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.GetAt(::windows::core::from_raw_borrowed(&contextobject), ::core::mem::transmute_copy(&indexercount), ::core::mem::transmute_copy(&indexers), ::core::mem::transmute_copy(&object), ::core::mem::transmute_copy(&metadata)).into()
}
unsafe extern "system" fn SetAt<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IIndexableConcept_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, indexercount: u64, indexers: *const *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAt(::windows::core::from_raw_borrowed(&contextobject), ::core::mem::transmute_copy(&indexercount), ::core::mem::transmute_copy(&indexers), ::windows::core::from_raw_borrowed(&value)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetDimensionality: GetDimensionality::<Identity, Impl, OFFSET>,
GetAt: GetAt::<Identity, Impl, OFFSET>,
SetAt: SetAt::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IIndexableConcept as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IIterableConcept_Impl: Sized {
fn GetDefaultIndexDimensionality(&self, contextobject: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<u64>;
fn GetIterator(&self, contextobject: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<IModelIterator>;
}
impl ::windows::core::RuntimeName for IIterableConcept {}
impl IIterableConcept_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IIterableConcept_Impl, const OFFSET: isize>() -> IIterableConcept_Vtbl {
unsafe extern "system" fn GetDefaultIndexDimensionality<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IIterableConcept_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, dimensionality: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDefaultIndexDimensionality(::windows::core::from_raw_borrowed(&contextobject)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(dimensionality, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetIterator<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IIterableConcept_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, iterator: *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.GetIterator(::windows::core::from_raw_borrowed(&contextobject)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(iterator, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetDefaultIndexDimensionality: GetDefaultIndexDimensionality::<Identity, Impl, OFFSET>,
GetIterator: GetIterator::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IIterableConcept as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IKeyEnumerator_Impl: Sized {
fn Reset(&self) -> ::windows::core::Result<()>;
fn GetNext(&self, key: *mut ::windows::core::BSTR, value: *mut ::core::option::Option<IModelObject>, metadata: *mut ::core::option::Option<IKeyStore>) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IKeyEnumerator {}
impl IKeyEnumerator_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IKeyEnumerator_Impl, const OFFSET: isize>() -> IKeyEnumerator_Vtbl {
unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IKeyEnumerator_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 GetNext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IKeyEnumerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>, value: *mut *mut ::core::ffi::c_void, metadata: *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.GetNext(::core::mem::transmute_copy(&key), ::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&metadata)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Reset: Reset::<Identity, Impl, OFFSET>,
GetNext: GetNext::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IKeyEnumerator as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IKeyStore_Impl: Sized {
fn GetKey(&self, key: &::windows::core::PCWSTR, object: *mut ::core::option::Option<IModelObject>, metadata: *mut ::core::option::Option<IKeyStore>) -> ::windows::core::Result<()>;
fn SetKey(&self, key: &::windows::core::PCWSTR, object: ::core::option::Option<&IModelObject>, metadata: ::core::option::Option<&IKeyStore>) -> ::windows::core::Result<()>;
fn GetKeyValue(&self, key: &::windows::core::PCWSTR, object: *mut ::core::option::Option<IModelObject>, metadata: *mut ::core::option::Option<IKeyStore>) -> ::windows::core::Result<()>;
fn SetKeyValue(&self, key: &::windows::core::PCWSTR, object: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<()>;
fn ClearKeys(&self) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IKeyStore {}
impl IKeyStore_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IKeyStore_Impl, const OFFSET: isize>() -> IKeyStore_Vtbl {
unsafe extern "system" fn GetKey<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IKeyStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: ::windows::core::PCWSTR, object: *mut *mut ::core::ffi::c_void, metadata: *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.GetKey(::core::mem::transmute(&key), ::core::mem::transmute_copy(&object), ::core::mem::transmute_copy(&metadata)).into()
}
unsafe extern "system" fn SetKey<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IKeyStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: ::windows::core::PCWSTR, object: *mut ::core::ffi::c_void, metadata: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKey(::core::mem::transmute(&key), ::windows::core::from_raw_borrowed(&object), ::windows::core::from_raw_borrowed(&metadata)).into()
}
unsafe extern "system" fn GetKeyValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IKeyStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: ::windows::core::PCWSTR, object: *mut *mut ::core::ffi::c_void, metadata: *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.GetKeyValue(::core::mem::transmute(&key), ::core::mem::transmute_copy(&object), ::core::mem::transmute_copy(&metadata)).into()
}
unsafe extern "system" fn SetKeyValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IKeyStore_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: ::windows::core::PCWSTR, object: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKeyValue(::core::mem::transmute(&key), ::windows::core::from_raw_borrowed(&object)).into()
}
unsafe extern "system" fn ClearKeys<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IKeyStore_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.ClearKeys().into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetKey: GetKey::<Identity, Impl, OFFSET>,
SetKey: SetKey::<Identity, Impl, OFFSET>,
GetKeyValue: GetKeyValue::<Identity, Impl, OFFSET>,
SetKeyValue: SetKeyValue::<Identity, Impl, OFFSET>,
ClearKeys: ClearKeys::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IKeyStore as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IModelIterator_Impl: Sized {
fn Reset(&self) -> ::windows::core::Result<()>;
fn GetNext(&self, object: *mut ::core::option::Option<IModelObject>, dimensions: u64, indexers: *mut ::core::option::Option<IModelObject>, metadata: *mut ::core::option::Option<IKeyStore>) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IModelIterator {}
impl IModelIterator_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelIterator_Impl, const OFFSET: isize>() -> IModelIterator_Vtbl {
unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelIterator_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 GetNext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelIterator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void, dimensions: u64, indexers: *mut *mut ::core::ffi::c_void, metadata: *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.GetNext(::core::mem::transmute_copy(&object), ::core::mem::transmute_copy(&dimensions), ::core::mem::transmute_copy(&indexers), ::core::mem::transmute_copy(&metadata)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Reset: Reset::<Identity, Impl, OFFSET>,
GetNext: GetNext::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IModelIterator as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IModelKeyReference_Impl: Sized {
fn GetKeyName(&self) -> ::windows::core::Result<::windows::core::BSTR>;
fn GetOriginalObject(&self) -> ::windows::core::Result<IModelObject>;
fn GetContextObject(&self) -> ::windows::core::Result<IModelObject>;
fn GetKey(&self, object: *mut ::core::option::Option<IModelObject>, metadata: *mut ::core::option::Option<IKeyStore>) -> ::windows::core::Result<()>;
fn GetKeyValue(&self, object: *mut ::core::option::Option<IModelObject>, metadata: *mut ::core::option::Option<IKeyStore>) -> ::windows::core::Result<()>;
fn SetKey(&self, object: ::core::option::Option<&IModelObject>, metadata: ::core::option::Option<&IKeyStore>) -> ::windows::core::Result<()>;
fn SetKeyValue(&self, object: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IModelKeyReference {}
impl IModelKeyReference_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelKeyReference_Impl, const OFFSET: isize>() -> IModelKeyReference_Vtbl {
unsafe extern "system" fn GetKeyName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelKeyReference_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, keyname: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetKeyName() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(keyname, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetOriginalObject<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelKeyReference_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, originalobject: *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.GetOriginalObject() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(originalobject, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetContextObject<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelKeyReference_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, containingobject: *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.GetContextObject() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(containingobject, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetKey<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelKeyReference_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void, metadata: *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.GetKey(::core::mem::transmute_copy(&object), ::core::mem::transmute_copy(&metadata)).into()
}
unsafe extern "system" fn GetKeyValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelKeyReference_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void, metadata: *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.GetKeyValue(::core::mem::transmute_copy(&object), ::core::mem::transmute_copy(&metadata)).into()
}
unsafe extern "system" fn SetKey<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelKeyReference_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, object: *mut ::core::ffi::c_void, metadata: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKey(::windows::core::from_raw_borrowed(&object), ::windows::core::from_raw_borrowed(&metadata)).into()
}
unsafe extern "system" fn SetKeyValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelKeyReference_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, object: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKeyValue(::windows::core::from_raw_borrowed(&object)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetKeyName: GetKeyName::<Identity, Impl, OFFSET>,
GetOriginalObject: GetOriginalObject::<Identity, Impl, OFFSET>,
GetContextObject: GetContextObject::<Identity, Impl, OFFSET>,
GetKey: GetKey::<Identity, Impl, OFFSET>,
GetKeyValue: GetKeyValue::<Identity, Impl, OFFSET>,
SetKey: SetKey::<Identity, Impl, OFFSET>,
SetKeyValue: SetKeyValue::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IModelKeyReference as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IModelKeyReference2_Impl: Sized + IModelKeyReference_Impl {
fn OverrideContextObject(&self, newcontextobject: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IModelKeyReference2 {}
impl IModelKeyReference2_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelKeyReference2_Impl, const OFFSET: isize>() -> IModelKeyReference2_Vtbl {
unsafe extern "system" fn OverrideContextObject<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelKeyReference2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newcontextobject: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OverrideContextObject(::windows::core::from_raw_borrowed(&newcontextobject)).into()
}
Self { base__: IModelKeyReference_Vtbl::new::<Identity, Impl, OFFSET>(), OverrideContextObject: OverrideContextObject::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IModelKeyReference2 as ::windows::core::ComInterface>::IID || iid == &<IModelKeyReference as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IModelMethod_Impl: Sized {
fn Call(&self, pcontextobject: ::core::option::Option<&IModelObject>, argcount: u64, pparguments: *const ::core::option::Option<IModelObject>, ppresult: *mut ::core::option::Option<IModelObject>, ppmetadata: *mut ::core::option::Option<IKeyStore>) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IModelMethod {}
impl IModelMethod_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelMethod_Impl, const OFFSET: isize>() -> IModelMethod_Vtbl {
unsafe extern "system" fn Call<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelMethod_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcontextobject: *mut ::core::ffi::c_void, argcount: u64, pparguments: *const *mut ::core::ffi::c_void, ppresult: *mut *mut ::core::ffi::c_void, ppmetadata: *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.Call(::windows::core::from_raw_borrowed(&pcontextobject), ::core::mem::transmute_copy(&argcount), ::core::mem::transmute_copy(&pparguments), ::core::mem::transmute_copy(&ppresult), ::core::mem::transmute_copy(&ppmetadata)).into()
}
Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Call: Call::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IModelMethod as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
pub trait IModelObject_Impl: Sized {
fn GetContext(&self) -> ::windows::core::Result<IDebugHostContext>;
fn GetKind(&self) -> ::windows::core::Result<ModelObjectKind>;
fn GetIntrinsicValue(&self) -> ::windows::core::Result<super::super::super::Com::VARIANT>;
fn GetIntrinsicValueAs(&self, vt: super::super::super::Com::VARENUM) -> ::windows::core::Result<super::super::super::Com::VARIANT>;
fn GetKeyValue(&self, key: &::windows::core::PCWSTR, object: *mut ::core::option::Option<IModelObject>, metadata: *mut ::core::option::Option<IKeyStore>) -> ::windows::core::Result<()>;
fn SetKeyValue(&self, key: &::windows::core::PCWSTR, object: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<()>;
fn EnumerateKeyValues(&self) -> ::windows::core::Result<IKeyEnumerator>;
fn GetRawValue(&self, kind: SymbolKind, name: &::windows::core::PCWSTR, searchflags: u32) -> ::windows::core::Result<IModelObject>;
fn EnumerateRawValues(&self, kind: SymbolKind, searchflags: u32) -> ::windows::core::Result<IRawEnumerator>;
fn Dereference(&self) -> ::windows::core::Result<IModelObject>;
fn TryCastToRuntimeType(&self) -> ::windows::core::Result<IModelObject>;
fn GetConcept(&self, conceptid: *const ::windows::core::GUID, conceptinterface: *mut ::core::option::Option<::windows::core::IUnknown>, conceptmetadata: *mut ::core::option::Option<IKeyStore>) -> ::windows::core::Result<()>;
fn GetLocation(&self) -> ::windows::core::Result<Location>;
fn GetTypeInfo(&self) -> ::windows::core::Result<IDebugHostType>;
fn GetTargetInfo(&self, location: *mut Location, r#type: *mut ::core::option::Option<IDebugHostType>) -> ::windows::core::Result<()>;
fn GetNumberOfParentModels(&self) -> ::windows::core::Result<u64>;
fn GetParentModel(&self, i: u64, model: *mut ::core::option::Option<IModelObject>, contextobject: *mut ::core::option::Option<IModelObject>) -> ::windows::core::Result<()>;
fn AddParentModel(&self, model: ::core::option::Option<&IModelObject>, contextobject: ::core::option::Option<&IModelObject>, r#override: u8) -> ::windows::core::Result<()>;
fn RemoveParentModel(&self, model: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<()>;
fn GetKey(&self, key: &::windows::core::PCWSTR, object: *mut ::core::option::Option<IModelObject>, metadata: *mut ::core::option::Option<IKeyStore>) -> ::windows::core::Result<()>;
fn GetKeyReference(&self, key: &::windows::core::PCWSTR, objectreference: *mut ::core::option::Option<IModelObject>, metadata: *mut ::core::option::Option<IKeyStore>) -> ::windows::core::Result<()>;
fn SetKey(&self, key: &::windows::core::PCWSTR, object: ::core::option::Option<&IModelObject>, metadata: ::core::option::Option<&IKeyStore>) -> ::windows::core::Result<()>;
fn ClearKeys(&self) -> ::windows::core::Result<()>;
fn EnumerateKeys(&self) -> ::windows::core::Result<IKeyEnumerator>;
fn EnumerateKeyReferences(&self) -> ::windows::core::Result<IKeyEnumerator>;
fn SetConcept(&self, conceptid: *const ::windows::core::GUID, conceptinterface: ::core::option::Option<&::windows::core::IUnknown>, conceptmetadata: ::core::option::Option<&IKeyStore>) -> ::windows::core::Result<()>;
fn ClearConcepts(&self) -> ::windows::core::Result<()>;
fn GetRawReference(&self, kind: SymbolKind, name: &::windows::core::PCWSTR, searchflags: u32) -> ::windows::core::Result<IModelObject>;
fn EnumerateRawReferences(&self, kind: SymbolKind, searchflags: u32) -> ::windows::core::Result<IRawEnumerator>;
fn SetContextForDataModel(&self, datamodelobject: ::core::option::Option<&IModelObject>, context: ::core::option::Option<&::windows::core::IUnknown>) -> ::windows::core::Result<()>;
fn GetContextForDataModel(&self, datamodelobject: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<::windows::core::IUnknown>;
fn Compare(&self, other: ::core::option::Option<&IModelObject>, ppresult: *mut ::core::option::Option<IModelObject>) -> ::windows::core::Result<()>;
fn IsEqualTo(&self, other: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<bool>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
impl ::windows::core::RuntimeName for IModelObject {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
impl IModelObject_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>() -> IModelObject_Vtbl {
unsafe extern "system" fn GetContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, context: *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.GetContext() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(context, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetKind<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, kind: *mut ModelObjectKind) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetKind() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(kind, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetIntrinsicValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, intrinsicdata: *mut super::super::super::Com::VARIANT) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetIntrinsicValue() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(intrinsicdata, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetIntrinsicValueAs<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, vt: super::super::super::Com::VARENUM, intrinsicdata: *mut super::super::super::Com::VARIANT) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetIntrinsicValueAs(::core::mem::transmute_copy(&vt)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(intrinsicdata, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetKeyValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: ::windows::core::PCWSTR, object: *mut *mut ::core::ffi::c_void, metadata: *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.GetKeyValue(::core::mem::transmute(&key), ::core::mem::transmute_copy(&object), ::core::mem::transmute_copy(&metadata)).into()
}
unsafe extern "system" fn SetKeyValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: ::windows::core::PCWSTR, object: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKeyValue(::core::mem::transmute(&key), ::windows::core::from_raw_borrowed(&object)).into()
}
unsafe extern "system" fn EnumerateKeyValues<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, enumerator: *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.EnumerateKeyValues() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(enumerator, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetRawValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, kind: SymbolKind, name: ::windows::core::PCWSTR, searchflags: u32, object: *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.GetRawValue(::core::mem::transmute_copy(&kind), ::core::mem::transmute(&name), ::core::mem::transmute_copy(&searchflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(object, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumerateRawValues<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, kind: SymbolKind, searchflags: u32, enumerator: *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.EnumerateRawValues(::core::mem::transmute_copy(&kind), ::core::mem::transmute_copy(&searchflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(enumerator, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Dereference<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, object: *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.Dereference() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(object, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn TryCastToRuntimeType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, runtimetypedobject: *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.TryCastToRuntimeType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(runtimetypedobject, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetConcept<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, conceptid: *const ::windows::core::GUID, conceptinterface: *mut *mut ::core::ffi::c_void, conceptmetadata: *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.GetConcept(::core::mem::transmute_copy(&conceptid), ::core::mem::transmute_copy(&conceptinterface), ::core::mem::transmute_copy(&conceptmetadata)).into()
}
unsafe extern "system" fn GetLocation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, location: *mut Location) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLocation() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(location, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTypeInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, r#type: *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.GetTypeInfo() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(r#type, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTargetInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, location: *mut Location, r#type: *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.GetTargetInfo(::core::mem::transmute_copy(&location), ::core::mem::transmute_copy(&r#type)).into()
}
unsafe extern "system" fn GetNumberOfParentModels<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nummodels: *mut u64) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberOfParentModels() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(nummodels, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetParentModel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, i: u64, model: *mut *mut ::core::ffi::c_void, contextobject: *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.GetParentModel(::core::mem::transmute_copy(&i), ::core::mem::transmute_copy(&model), ::core::mem::transmute_copy(&contextobject)).into()
}
unsafe extern "system" fn AddParentModel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, model: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, r#override: u8) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddParentModel(::windows::core::from_raw_borrowed(&model), ::windows::core::from_raw_borrowed(&contextobject), ::core::mem::transmute_copy(&r#override)).into()
}
unsafe extern "system" fn RemoveParentModel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, model: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveParentModel(::windows::core::from_raw_borrowed(&model)).into()
}
unsafe extern "system" fn GetKey<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: ::windows::core::PCWSTR, object: *mut *mut ::core::ffi::c_void, metadata: *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.GetKey(::core::mem::transmute(&key), ::core::mem::transmute_copy(&object), ::core::mem::transmute_copy(&metadata)).into()
}
unsafe extern "system" fn GetKeyReference<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: ::windows::core::PCWSTR, objectreference: *mut *mut ::core::ffi::c_void, metadata: *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.GetKeyReference(::core::mem::transmute(&key), ::core::mem::transmute_copy(&objectreference), ::core::mem::transmute_copy(&metadata)).into()
}
unsafe extern "system" fn SetKey<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: ::windows::core::PCWSTR, object: *mut ::core::ffi::c_void, metadata: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKey(::core::mem::transmute(&key), ::windows::core::from_raw_borrowed(&object), ::windows::core::from_raw_borrowed(&metadata)).into()
}
unsafe extern "system" fn ClearKeys<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_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.ClearKeys().into()
}
unsafe extern "system" fn EnumerateKeys<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, enumerator: *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.EnumerateKeys() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(enumerator, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumerateKeyReferences<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, enumerator: *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.EnumerateKeyReferences() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(enumerator, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetConcept<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, conceptid: *const ::windows::core::GUID, conceptinterface: *mut ::core::ffi::c_void, conceptmetadata: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetConcept(::core::mem::transmute_copy(&conceptid), ::windows::core::from_raw_borrowed(&conceptinterface), ::windows::core::from_raw_borrowed(&conceptmetadata)).into()
}
unsafe extern "system" fn ClearConcepts<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_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.ClearConcepts().into()
}
unsafe extern "system" fn GetRawReference<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, kind: SymbolKind, name: ::windows::core::PCWSTR, searchflags: u32, object: *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.GetRawReference(::core::mem::transmute_copy(&kind), ::core::mem::transmute(&name), ::core::mem::transmute_copy(&searchflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(object, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumerateRawReferences<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, kind: SymbolKind, searchflags: u32, enumerator: *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.EnumerateRawReferences(::core::mem::transmute_copy(&kind), ::core::mem::transmute_copy(&searchflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(enumerator, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetContextForDataModel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, datamodelobject: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetContextForDataModel(::windows::core::from_raw_borrowed(&datamodelobject), ::windows::core::from_raw_borrowed(&context)).into()
}
unsafe extern "system" fn GetContextForDataModel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, datamodelobject: *mut ::core::ffi::c_void, context: *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.GetContextForDataModel(::windows::core::from_raw_borrowed(&datamodelobject)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(context, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Compare<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, other: *mut ::core::ffi::c_void, ppresult: *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.Compare(::windows::core::from_raw_borrowed(&other), ::core::mem::transmute_copy(&ppresult)).into()
}
unsafe extern "system" fn IsEqualTo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelObject_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, other: *mut ::core::ffi::c_void, equal: *mut bool) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsEqualTo(::windows::core::from_raw_borrowed(&other)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(equal, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetContext: GetContext::<Identity, Impl, OFFSET>,
GetKind: GetKind::<Identity, Impl, OFFSET>,
GetIntrinsicValue: GetIntrinsicValue::<Identity, Impl, OFFSET>,
GetIntrinsicValueAs: GetIntrinsicValueAs::<Identity, Impl, OFFSET>,
GetKeyValue: GetKeyValue::<Identity, Impl, OFFSET>,
SetKeyValue: SetKeyValue::<Identity, Impl, OFFSET>,
EnumerateKeyValues: EnumerateKeyValues::<Identity, Impl, OFFSET>,
GetRawValue: GetRawValue::<Identity, Impl, OFFSET>,
EnumerateRawValues: EnumerateRawValues::<Identity, Impl, OFFSET>,
Dereference: Dereference::<Identity, Impl, OFFSET>,
TryCastToRuntimeType: TryCastToRuntimeType::<Identity, Impl, OFFSET>,
GetConcept: GetConcept::<Identity, Impl, OFFSET>,
GetLocation: GetLocation::<Identity, Impl, OFFSET>,
GetTypeInfo: GetTypeInfo::<Identity, Impl, OFFSET>,
GetTargetInfo: GetTargetInfo::<Identity, Impl, OFFSET>,
GetNumberOfParentModels: GetNumberOfParentModels::<Identity, Impl, OFFSET>,
GetParentModel: GetParentModel::<Identity, Impl, OFFSET>,
AddParentModel: AddParentModel::<Identity, Impl, OFFSET>,
RemoveParentModel: RemoveParentModel::<Identity, Impl, OFFSET>,
GetKey: GetKey::<Identity, Impl, OFFSET>,
GetKeyReference: GetKeyReference::<Identity, Impl, OFFSET>,
SetKey: SetKey::<Identity, Impl, OFFSET>,
ClearKeys: ClearKeys::<Identity, Impl, OFFSET>,
EnumerateKeys: EnumerateKeys::<Identity, Impl, OFFSET>,
EnumerateKeyReferences: EnumerateKeyReferences::<Identity, Impl, OFFSET>,
SetConcept: SetConcept::<Identity, Impl, OFFSET>,
ClearConcepts: ClearConcepts::<Identity, Impl, OFFSET>,
GetRawReference: GetRawReference::<Identity, Impl, OFFSET>,
EnumerateRawReferences: EnumerateRawReferences::<Identity, Impl, OFFSET>,
SetContextForDataModel: SetContextForDataModel::<Identity, Impl, OFFSET>,
GetContextForDataModel: GetContextForDataModel::<Identity, Impl, OFFSET>,
Compare: Compare::<Identity, Impl, OFFSET>,
IsEqualTo: IsEqualTo::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IModelObject as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IModelPropertyAccessor_Impl: Sized {
fn GetValue(&self, key: &::windows::core::PCWSTR, contextobject: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<IModelObject>;
fn SetValue(&self, key: &::windows::core::PCWSTR, contextobject: ::core::option::Option<&IModelObject>, value: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IModelPropertyAccessor {}
impl IModelPropertyAccessor_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelPropertyAccessor_Impl, const OFFSET: isize>() -> IModelPropertyAccessor_Vtbl {
unsafe extern "system" fn GetValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelPropertyAccessor_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: ::windows::core::PCWSTR, contextobject: *mut ::core::ffi::c_void, value: *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.GetValue(::core::mem::transmute(&key), ::windows::core::from_raw_borrowed(&contextobject)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IModelPropertyAccessor_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, key: ::windows::core::PCWSTR, contextobject: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetValue(::core::mem::transmute(&key), ::windows::core::from_raw_borrowed(&contextobject), ::windows::core::from_raw_borrowed(&value)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetValue: GetValue::<Identity, Impl, OFFSET>,
SetValue: SetValue::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IModelPropertyAccessor as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IPreferredRuntimeTypeConcept_Impl: Sized {
fn CastToPreferredRuntimeType(&self, contextobject: ::core::option::Option<&IModelObject>) -> ::windows::core::Result<IModelObject>;
}
impl ::windows::core::RuntimeName for IPreferredRuntimeTypeConcept {}
impl IPreferredRuntimeTypeConcept_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPreferredRuntimeTypeConcept_Impl, const OFFSET: isize>() -> IPreferredRuntimeTypeConcept_Vtbl {
unsafe extern "system" fn CastToPreferredRuntimeType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IPreferredRuntimeTypeConcept_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, object: *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.CastToPreferredRuntimeType(::windows::core::from_raw_borrowed(&contextobject)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(object, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
CastToPreferredRuntimeType: CastToPreferredRuntimeType::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IPreferredRuntimeTypeConcept as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IRawEnumerator_Impl: Sized {
fn Reset(&self) -> ::windows::core::Result<()>;
fn GetNext(&self, name: *mut ::windows::core::BSTR, kind: *mut SymbolKind, value: *mut ::core::option::Option<IModelObject>) -> ::windows::core::Result<()>;
}
impl ::windows::core::RuntimeName for IRawEnumerator {}
impl IRawEnumerator_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawEnumerator_Impl, const OFFSET: isize>() -> IRawEnumerator_Vtbl {
unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawEnumerator_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 GetNext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawEnumerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>, kind: *mut SymbolKind, value: *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.GetNext(::core::mem::transmute_copy(&name), ::core::mem::transmute_copy(&kind), ::core::mem::transmute_copy(&value)).into()
}
Self {
base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Reset: Reset::<Identity, Impl, OFFSET>,
GetNext: GetNext::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IRawEnumerator as ::windows::core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug_Extensions\"`, `\"implement\"`*"]
pub trait IStringDisplayableConcept_Impl: Sized {
fn ToDisplayString(&self, contextobject: ::core::option::Option<&IModelObject>, metadata: ::core::option::Option<&IKeyStore>) -> ::windows::core::Result<::windows::core::BSTR>;
}
impl ::windows::core::RuntimeName for IStringDisplayableConcept {}
impl IStringDisplayableConcept_Vtbl {
pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IStringDisplayableConcept_Impl, const OFFSET: isize>() -> IStringDisplayableConcept_Vtbl {
unsafe extern "system" fn ToDisplayString<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IStringDisplayableConcept_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, metadata: *mut ::core::ffi::c_void, displaystring: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ToDisplayString(::windows::core::from_raw_borrowed(&contextobject), ::windows::core::from_raw_borrowed(&metadata)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(displaystring, ::core::mem::transmute(ok__));
::windows::core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), ToDisplayString: ToDisplayString::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &windows::core::GUID) -> bool {
iid == &<IStringDisplayableConcept as ::windows::core::ComInterface>::IID
}
}