pub trait DebugBaseEventCallbacks_Impl: Sized + IDebugEventCallbacks_Impl {}
impl windows_core::RuntimeName for DebugBaseEventCallbacks {}
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::Interface>::IID || iid == &<IDebugEventCallbacks as windows_core::Interface>::IID
    }
}
pub trait DebugBaseEventCallbacksWide_Impl: Sized + IDebugEventCallbacksWide_Impl {}
impl windows_core::RuntimeName for DebugBaseEventCallbacksWide {}
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::Interface>::IID || iid == &<IDebugEventCallbacksWide as windows_core::Interface>::IID
    }
}
pub trait ICodeAddressConcept_Impl: Sized {
    fn GetContainingSymbol(&self, pcontextobject: 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 ICodeAddressConcept_Impl::GetContainingSymbol(this, windows_core::from_raw_borrowed(&pcontextobject)) {
                Ok(ok__) => {
                    core::ptr::write(ppsymbol, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
pub trait IComparableConcept_Impl: Sized {
    fn CompareObjects(&self, contextobject: Option<&IModelObject>, otherobject: 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 IComparableConcept_Impl::CompareObjects(this, windows_core::from_raw_borrowed(&contextobject), windows_core::from_raw_borrowed(&otherobject)) {
                Ok(ok__) => {
                    core::ptr::write(comparisonresult, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
pub trait IDataModelConcept_Impl: Sized {
    fn InitializeObject(&self, modelobject: Option<&IModelObject>, matchingtypesignature: Option<&IDebugHostTypeSignature>, wildcardmatches: 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();
            IDataModelConcept_Impl::InitializeObject(this, 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 IDataModelConcept_Impl::GetName(this) {
                Ok(ok__) => {
                    core::ptr::write(modelname, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
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: Option<&IDebugHostContext>, objectlocation: &Location, objecttype: Option<&IDebugHostType>) -> windows_core::Result<IModelObject>;
    fn CreateTypedObjectReference(&self, context: Option<&IDebugHostContext>, objectlocation: &Location, objecttype: Option<&IDebugHostType>) -> windows_core::Result<IModelObject>;
    fn CreateSyntheticObject(&self, context: Option<&IDebugHostContext>) -> windows_core::Result<IModelObject>;
    fn CreateDataModelObject(&self, datamodel: Option<&IDataModelConcept>) -> windows_core::Result<IModelObject>;
    fn CreateIntrinsicObject(&self, objectkind: ModelObjectKind, intrinsicdata: *const windows_core::VARIANT) -> windows_core::Result<IModelObject>;
    fn CreateTypedIntrinsicObject(&self, intrinsicdata: *const windows_core::VARIANT, r#type: Option<&IDebugHostType>) -> windows_core::Result<IModelObject>;
    fn GetModelForTypeSignature(&self, typesignature: Option<&IDebugHostTypeSignature>) -> windows_core::Result<IModelObject>;
    fn GetModelForType(&self, r#type: Option<&IDebugHostType>, datamodel: *mut Option<IModelObject>, typesignature: *mut Option<IDebugHostTypeSignature>, wildcardmatches: *mut Option<IDebugHostSymbolEnumerator>) -> windows_core::Result<()>;
    fn RegisterModelForTypeSignature(&self, typesignature: Option<&IDebugHostTypeSignature>, datamodel: Option<&IModelObject>) -> windows_core::Result<()>;
    fn UnregisterModelForTypeSignature(&self, datamodel: Option<&IModelObject>, typesignature: Option<&IDebugHostTypeSignature>) -> windows_core::Result<()>;
    fn RegisterExtensionForTypeSignature(&self, typesignature: Option<&IDebugHostTypeSignature>, datamodel: Option<&IModelObject>) -> windows_core::Result<()>;
    fn UnregisterExtensionForTypeSignature(&self, datamodel: Option<&IModelObject>, typesignature: Option<&IDebugHostTypeSignature>) -> windows_core::Result<()>;
    fn CreateMetadataStore(&self, parentstore: Option<&IKeyStore>) -> windows_core::Result<IKeyStore>;
    fn GetRootNamespace(&self) -> windows_core::Result<IModelObject>;
    fn RegisterNamedModel(&self, modelname: &windows_core::PCWSTR, modeobject: 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>;
}
impl windows_core::RuntimeName for IDataModelManager {}
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();
            IDataModelManager_Impl::Close(this).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 IDataModelManager_Impl::CreateNoValue(this) {
                Ok(ok__) => {
                    core::ptr::write(object, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelManager_Impl::CreateErrorObject(this, core::mem::transmute_copy(&hrerror), core::mem::transmute(&pwszmessage)) {
                Ok(ok__) => {
                    core::ptr::write(object, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelManager_Impl::CreateTypedObject(this, windows_core::from_raw_borrowed(&context), core::mem::transmute(&objectlocation), windows_core::from_raw_borrowed(&objecttype)) {
                Ok(ok__) => {
                    core::ptr::write(object, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelManager_Impl::CreateTypedObjectReference(this, windows_core::from_raw_borrowed(&context), core::mem::transmute(&objectlocation), windows_core::from_raw_borrowed(&objecttype)) {
                Ok(ok__) => {
                    core::ptr::write(object, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelManager_Impl::CreateSyntheticObject(this, windows_core::from_raw_borrowed(&context)) {
                Ok(ok__) => {
                    core::ptr::write(object, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelManager_Impl::CreateDataModelObject(this, windows_core::from_raw_borrowed(&datamodel)) {
                Ok(ok__) => {
                    core::ptr::write(object, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 std::mem::MaybeUninit<windows_core::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 IDataModelManager_Impl::CreateIntrinsicObject(this, core::mem::transmute_copy(&objectkind), core::mem::transmute_copy(&intrinsicdata)) {
                Ok(ok__) => {
                    core::ptr::write(object, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 std::mem::MaybeUninit<windows_core::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 IDataModelManager_Impl::CreateTypedIntrinsicObject(this, core::mem::transmute_copy(&intrinsicdata), windows_core::from_raw_borrowed(&r#type)) {
                Ok(ok__) => {
                    core::ptr::write(object, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelManager_Impl::GetModelForTypeSignature(this, windows_core::from_raw_borrowed(&typesignature)) {
                Ok(ok__) => {
                    core::ptr::write(datamodel, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDataModelManager_Impl::GetModelForType(this, 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();
            IDataModelManager_Impl::RegisterModelForTypeSignature(this, 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();
            IDataModelManager_Impl::UnregisterModelForTypeSignature(this, 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();
            IDataModelManager_Impl::RegisterExtensionForTypeSignature(this, 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();
            IDataModelManager_Impl::UnregisterExtensionForTypeSignature(this, 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 IDataModelManager_Impl::CreateMetadataStore(this, windows_core::from_raw_borrowed(&parentstore)) {
                Ok(ok__) => {
                    core::ptr::write(metadatastore, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelManager_Impl::GetRootNamespace(this) {
                Ok(ok__) => {
                    core::ptr::write(rootnamespace, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDataModelManager_Impl::RegisterNamedModel(this, 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();
            IDataModelManager_Impl::UnregisterNamedModel(this, 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 IDataModelManager_Impl::AcquireNamedModel(this, core::mem::transmute(&modelname)) {
                Ok(ok__) => {
                    core::ptr::write(modelobject, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
pub trait IDataModelManager2_Impl: Sized + IDataModelManager_Impl {
    fn AcquireSubNamespace(&self, modelname: &windows_core::PCWSTR, subnamespacemodelname: &windows_core::PCWSTR, accessname: &windows_core::PCWSTR, metadata: Option<&IKeyStore>) -> windows_core::Result<IModelObject>;
    fn CreateTypedIntrinsicObjectEx(&self, context: Option<&IDebugHostContext>, intrinsicdata: *const windows_core::VARIANT, r#type: Option<&IDebugHostType>) -> windows_core::Result<IModelObject>;
}
impl windows_core::RuntimeName for IDataModelManager2 {}
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 IDataModelManager2_Impl::AcquireSubNamespace(this, core::mem::transmute(&modelname), core::mem::transmute(&subnamespacemodelname), core::mem::transmute(&accessname), windows_core::from_raw_borrowed(&metadata)) {
                Ok(ok__) => {
                    core::ptr::write(namespacemodelobject, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 std::mem::MaybeUninit<windows_core::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 IDataModelManager2_Impl::CreateTypedIntrinsicObjectEx(this, windows_core::from_raw_borrowed(&context), core::mem::transmute_copy(&intrinsicdata), windows_core::from_raw_borrowed(&r#type)) {
                Ok(ok__) => {
                    core::ptr::write(object, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID || iid == &<IDataModelManager as windows_core::Interface>::IID
    }
}
pub trait IDataModelNameBinder_Impl: Sized {
    fn BindValue(&self, contextobject: Option<&IModelObject>, name: &windows_core::PCWSTR, value: *mut Option<IModelObject>, metadata: *mut Option<IKeyStore>) -> windows_core::Result<()>;
    fn BindReference(&self, contextobject: Option<&IModelObject>, name: &windows_core::PCWSTR, reference: *mut Option<IModelObject>, metadata: *mut Option<IKeyStore>) -> windows_core::Result<()>;
    fn EnumerateValues(&self, contextobject: Option<&IModelObject>) -> windows_core::Result<IKeyEnumerator>;
    fn EnumerateReferences(&self, contextobject: 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();
            IDataModelNameBinder_Impl::BindValue(this, 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();
            IDataModelNameBinder_Impl::BindReference(this, 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 IDataModelNameBinder_Impl::EnumerateValues(this, windows_core::from_raw_borrowed(&contextobject)) {
                Ok(ok__) => {
                    core::ptr::write(enumerator, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelNameBinder_Impl::EnumerateReferences(this, windows_core::from_raw_borrowed(&contextobject)) {
                Ok(ok__) => {
                    core::ptr::write(enumerator, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
#[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: Option<&super::super::super::Com::IStream>) -> windows_core::Result<()>;
    fn Execute(&self, client: Option<&IDataModelScriptClient>) -> windows_core::Result<()>;
    fn Unlink(&self) -> windows_core::Result<()>;
    fn IsInvocable(&self) -> windows_core::Result<bool>;
    fn InvokeMain(&self, client: 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 IDataModelScript_Impl::GetName(this) {
                Ok(ok__) => {
                    core::ptr::write(scriptname, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDataModelScript_Impl::Rename(this, 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();
            IDataModelScript_Impl::Populate(this, 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();
            IDataModelScript_Impl::Execute(this, 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();
            IDataModelScript_Impl::Unlink(this).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 IDataModelScript_Impl::IsInvocable(this) {
                Ok(ok__) => {
                    core::ptr::write(isinvocable, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDataModelScript_Impl::InvokeMain(this, 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::Interface>::IID
    }
}
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();
            IDataModelScriptClient_Impl::ReportError(this, 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::Interface>::IID
    }
}
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: Option<&IDataModelScriptDebugClient>) -> windows_core::Result<()>;
    fn StopDebugging(&self, debugclient: 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();
            IDataModelScriptDebug_Impl::GetDebugState(this)
        }
        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();
            IDataModelScriptDebug_Impl::GetCurrentPosition(this, 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 IDataModelScriptDebug_Impl::GetStack(this) {
                Ok(ok__) => {
                    core::ptr::write(stack, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelScriptDebug_Impl::SetBreakpoint(this, core::mem::transmute_copy(&lineposition), core::mem::transmute_copy(&columnposition)) {
                Ok(ok__) => {
                    core::ptr::write(breakpoint, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelScriptDebug_Impl::FindBreakpointById(this, core::mem::transmute_copy(&breakpointid)) {
                Ok(ok__) => {
                    core::ptr::write(breakpoint, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelScriptDebug_Impl::EnumerateBreakpoints(this) {
                Ok(ok__) => {
                    core::ptr::write(breakpointenum, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelScriptDebug_Impl::GetEventFilter(this, core::mem::transmute_copy(&eventfilter)) {
                Ok(ok__) => {
                    core::ptr::write(isbreakenabled, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDataModelScriptDebug_Impl::SetEventFilter(this, 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();
            IDataModelScriptDebug_Impl::StartDebugging(this, 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();
            IDataModelScriptDebug_Impl::StopDebugging(this, 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::Interface>::IID
    }
}
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 IDataModelScriptDebug2_Impl::SetBreakpointAtFunction(this, core::mem::transmute(&functionname)) {
                Ok(ok__) => {
                    core::ptr::write(breakpoint, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID || iid == &<IDataModelScriptDebug as windows_core::Interface>::IID
    }
}
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();
            IDataModelScriptDebugBreakpoint_Impl::GetId(this)
        }
        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();
            IDataModelScriptDebugBreakpoint_Impl::IsEnabled(this)
        }
        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();
            IDataModelScriptDebugBreakpoint_Impl::Enable(this)
        }
        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();
            IDataModelScriptDebugBreakpoint_Impl::Disable(this)
        }
        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();
            IDataModelScriptDebugBreakpoint_Impl::Remove(this)
        }
        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();
            IDataModelScriptDebugBreakpoint_Impl::GetPosition(this, 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::Interface>::IID
    }
}
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();
            IDataModelScriptDebugBreakpointEnumerator_Impl::Reset(this).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 IDataModelScriptDebugBreakpointEnumerator_Impl::GetNext(this) {
                Ok(ok__) => {
                    core::ptr::write(breakpoint, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
pub trait IDataModelScriptDebugClient_Impl: Sized {
    fn NotifyDebugEvent(&self, peventinfo: *const ScriptDebugEventInformation, pscript: Option<&IDataModelScript>, peventdataobject: 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();
            IDataModelScriptDebugClient_Impl::NotifyDebugEvent(this, 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::Interface>::IID
    }
}
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();
            IDataModelScriptDebugStack_Impl::GetFrameCount(this)
        }
        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 IDataModelScriptDebugStack_Impl::GetStackFrame(this, core::mem::transmute_copy(&framenumber)) {
                Ok(ok__) => {
                    core::ptr::write(stackframe, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
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 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 IDataModelScriptDebugStackFrame_Impl::GetName(this) {
                Ok(ok__) => {
                    core::ptr::write(name, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDataModelScriptDebugStackFrame_Impl::GetPosition(this, 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 IDataModelScriptDebugStackFrame_Impl::IsTransitionPoint(this) {
                Ok(ok__) => {
                    core::ptr::write(istransitionpoint, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDataModelScriptDebugStackFrame_Impl::GetTransition(this, 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 IDataModelScriptDebugStackFrame_Impl::Evaluate(this, core::mem::transmute(&pwszexpression)) {
                Ok(ok__) => {
                    core::ptr::write(ppresult, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelScriptDebugStackFrame_Impl::EnumerateLocals(this) {
                Ok(ok__) => {
                    core::ptr::write(variablesenum, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelScriptDebugStackFrame_Impl::EnumerateArguments(this) {
                Ok(ok__) => {
                    core::ptr::write(variablesenum, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
pub trait IDataModelScriptDebugVariableSetEnumerator_Impl: Sized {
    fn Reset(&self) -> windows_core::Result<()>;
    fn GetNext(&self, variablename: *mut windows_core::BSTR, variablevalue: *mut Option<IModelObject>, variablemetadata: *mut 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();
            IDataModelScriptDebugVariableSetEnumerator_Impl::Reset(this).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();
            IDataModelScriptDebugVariableSetEnumerator_Impl::GetNext(this, 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::Interface>::IID
    }
}
pub trait IDataModelScriptHostContext_Impl: Sized {
    fn NotifyScriptChange(&self, script: 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();
            IDataModelScriptHostContext_Impl::NotifyScriptChange(this, 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 IDataModelScriptHostContext_Impl::GetNamespaceObject(this) {
                Ok(ok__) => {
                    core::ptr::write(namespaceobject, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
pub trait IDataModelScriptManager_Impl: Sized {
    fn GetDefaultNameBinder(&self) -> windows_core::Result<IDataModelNameBinder>;
    fn RegisterScriptProvider(&self, provider: Option<&IDataModelScriptProvider>) -> windows_core::Result<()>;
    fn UnregisterScriptProvider(&self, provider: 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 IDataModelScriptManager_Impl::GetDefaultNameBinder(this) {
                Ok(ok__) => {
                    core::ptr::write(ppnamebinder, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDataModelScriptManager_Impl::RegisterScriptProvider(this, 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();
            IDataModelScriptManager_Impl::UnregisterScriptProvider(this, 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 IDataModelScriptManager_Impl::FindProviderForScriptType(this, core::mem::transmute(&scripttype)) {
                Ok(ok__) => {
                    core::ptr::write(provider, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelScriptManager_Impl::FindProviderForScriptExtension(this, core::mem::transmute(&scriptextension)) {
                Ok(ok__) => {
                    core::ptr::write(provider, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelScriptManager_Impl::EnumerateScriptProviders(this) {
                Ok(ok__) => {
                    core::ptr::write(enumerator, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
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 IDataModelScriptProvider_Impl::GetName(this) {
                Ok(ok__) => {
                    core::ptr::write(name, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelScriptProvider_Impl::GetExtension(this) {
                Ok(ok__) => {
                    core::ptr::write(extension, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelScriptProvider_Impl::CreateScript(this) {
                Ok(ok__) => {
                    core::ptr::write(script, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelScriptProvider_Impl::GetDefaultTemplateContent(this) {
                Ok(ok__) => {
                    core::ptr::write(templatecontent, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelScriptProvider_Impl::EnumerateTemplates(this) {
                Ok(ok__) => {
                    core::ptr::write(enumerator, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
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();
            IDataModelScriptProviderEnumerator_Impl::Reset(this).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 IDataModelScriptProviderEnumerator_Impl::GetNext(this) {
                Ok(ok__) => {
                    core::ptr::write(provider, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
#[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 IDataModelScriptTemplate_Impl::GetName(this) {
                Ok(ok__) => {
                    core::ptr::write(templatename, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelScriptTemplate_Impl::GetDescription(this) {
                Ok(ok__) => {
                    core::ptr::write(templatedescription, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDataModelScriptTemplate_Impl::GetContent(this) {
                Ok(ok__) => {
                    core::ptr::write(contentstream, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
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();
            IDataModelScriptTemplateEnumerator_Impl::Reset(this).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 IDataModelScriptTemplateEnumerator_Impl::GetNext(this) {
                Ok(ok__) => {
                    core::ptr::write(templatecontent, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
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();
            IDebugAdvanced_Impl::GetThreadContext(this, 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();
            IDebugAdvanced_Impl::SetThreadContext(this, 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::Interface>::IID
    }
}
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();
            IDebugAdvanced2_Impl::GetThreadContext(this, 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();
            IDebugAdvanced2_Impl::SetThreadContext(this, 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();
            IDebugAdvanced2_Impl::Request(this, 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();
            IDebugAdvanced2_Impl::GetSourceFileInformation(this, 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();
            IDebugAdvanced2_Impl::FindSourceFileAndToken(this, 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();
            IDebugAdvanced2_Impl::GetSymbolInformation(this, 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();
            IDebugAdvanced2_Impl::GetSystemObjectInformation(this, 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::Interface>::IID
    }
}
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();
            IDebugAdvanced3_Impl::GetThreadContext(this, 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();
            IDebugAdvanced3_Impl::SetThreadContext(this, 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();
            IDebugAdvanced3_Impl::Request(this, 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();
            IDebugAdvanced3_Impl::GetSourceFileInformation(this, 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();
            IDebugAdvanced3_Impl::FindSourceFileAndToken(this, 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();
            IDebugAdvanced3_Impl::GetSymbolInformation(this, 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();
            IDebugAdvanced3_Impl::GetSystemObjectInformation(this, 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();
            IDebugAdvanced3_Impl::GetSourceFileInformationWide(this, 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();
            IDebugAdvanced3_Impl::FindSourceFileAndTokenWide(this, 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();
            IDebugAdvanced3_Impl::GetSymbolInformationWide(this, 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::Interface>::IID
    }
}
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();
            IDebugAdvanced4_Impl::GetThreadContext(this, 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();
            IDebugAdvanced4_Impl::SetThreadContext(this, 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();
            IDebugAdvanced4_Impl::Request(this, 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();
            IDebugAdvanced4_Impl::GetSourceFileInformation(this, 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();
            IDebugAdvanced4_Impl::FindSourceFileAndToken(this, 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();
            IDebugAdvanced4_Impl::GetSymbolInformation(this, 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();
            IDebugAdvanced4_Impl::GetSystemObjectInformation(this, 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();
            IDebugAdvanced4_Impl::GetSourceFileInformationWide(this, 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();
            IDebugAdvanced4_Impl::FindSourceFileAndTokenWide(this, 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();
            IDebugAdvanced4_Impl::GetSymbolInformationWide(this, 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();
            IDebugAdvanced4_Impl::GetSymbolInformationWideEx(this, 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::Interface>::IID
    }
}
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 IDebugBreakpoint_Impl::GetId(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugBreakpoint_Impl::GetType(this, 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 IDebugBreakpoint_Impl::GetAdder(this) {
                Ok(ok__) => {
                    core::ptr::write(adder, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugBreakpoint_Impl::GetFlags(this) {
                Ok(ok__) => {
                    core::ptr::write(flags, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugBreakpoint_Impl::AddFlags(this, 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();
            IDebugBreakpoint_Impl::RemoveFlags(this, 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();
            IDebugBreakpoint_Impl::SetFlags(this, 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 IDebugBreakpoint_Impl::GetOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugBreakpoint_Impl::SetOffset(this, 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();
            IDebugBreakpoint_Impl::GetDataParameters(this, 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();
            IDebugBreakpoint_Impl::SetDataParameters(this, 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 IDebugBreakpoint_Impl::GetPassCount(this) {
                Ok(ok__) => {
                    core::ptr::write(count, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugBreakpoint_Impl::SetPassCount(this, 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 IDebugBreakpoint_Impl::GetCurrentPassCount(this) {
                Ok(ok__) => {
                    core::ptr::write(count, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugBreakpoint_Impl::GetMatchThreadId(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugBreakpoint_Impl::SetMatchThreadId(this, 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();
            IDebugBreakpoint_Impl::GetCommand(this, 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();
            IDebugBreakpoint_Impl::SetCommand(this, 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();
            IDebugBreakpoint_Impl::GetOffsetExpression(this, 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();
            IDebugBreakpoint_Impl::SetOffsetExpression(this, 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();
            IDebugBreakpoint_Impl::GetParameters(this, 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::Interface>::IID
    }
}
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 IDebugBreakpoint2_Impl::GetId(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugBreakpoint2_Impl::GetType(this, 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 IDebugBreakpoint2_Impl::GetAdder(this) {
                Ok(ok__) => {
                    core::ptr::write(adder, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugBreakpoint2_Impl::GetFlags(this) {
                Ok(ok__) => {
                    core::ptr::write(flags, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugBreakpoint2_Impl::AddFlags(this, 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();
            IDebugBreakpoint2_Impl::RemoveFlags(this, 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();
            IDebugBreakpoint2_Impl::SetFlags(this, 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 IDebugBreakpoint2_Impl::GetOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugBreakpoint2_Impl::SetOffset(this, 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();
            IDebugBreakpoint2_Impl::GetDataParameters(this, 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();
            IDebugBreakpoint2_Impl::SetDataParameters(this, 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 IDebugBreakpoint2_Impl::GetPassCount(this) {
                Ok(ok__) => {
                    core::ptr::write(count, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugBreakpoint2_Impl::SetPassCount(this, 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 IDebugBreakpoint2_Impl::GetCurrentPassCount(this) {
                Ok(ok__) => {
                    core::ptr::write(count, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugBreakpoint2_Impl::GetMatchThreadId(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugBreakpoint2_Impl::SetMatchThreadId(this, 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();
            IDebugBreakpoint2_Impl::GetCommand(this, 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();
            IDebugBreakpoint2_Impl::SetCommand(this, 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();
            IDebugBreakpoint2_Impl::GetOffsetExpression(this, 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();
            IDebugBreakpoint2_Impl::SetOffsetExpression(this, 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();
            IDebugBreakpoint2_Impl::GetParameters(this, 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();
            IDebugBreakpoint2_Impl::GetCommandWide(this, 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();
            IDebugBreakpoint2_Impl::SetCommandWide(this, 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();
            IDebugBreakpoint2_Impl::GetOffsetExpressionWide(this, 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();
            IDebugBreakpoint2_Impl::SetOffsetExpressionWide(this, 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::Interface>::IID
    }
}
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 IDebugBreakpoint3_Impl::GetId(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugBreakpoint3_Impl::GetType(this, 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 IDebugBreakpoint3_Impl::GetAdder(this) {
                Ok(ok__) => {
                    core::ptr::write(adder, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugBreakpoint3_Impl::GetFlags(this) {
                Ok(ok__) => {
                    core::ptr::write(flags, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugBreakpoint3_Impl::AddFlags(this, 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();
            IDebugBreakpoint3_Impl::RemoveFlags(this, 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();
            IDebugBreakpoint3_Impl::SetFlags(this, 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 IDebugBreakpoint3_Impl::GetOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugBreakpoint3_Impl::SetOffset(this, 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();
            IDebugBreakpoint3_Impl::GetDataParameters(this, 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();
            IDebugBreakpoint3_Impl::SetDataParameters(this, 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 IDebugBreakpoint3_Impl::GetPassCount(this) {
                Ok(ok__) => {
                    core::ptr::write(count, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugBreakpoint3_Impl::SetPassCount(this, 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 IDebugBreakpoint3_Impl::GetCurrentPassCount(this) {
                Ok(ok__) => {
                    core::ptr::write(count, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugBreakpoint3_Impl::GetMatchThreadId(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugBreakpoint3_Impl::SetMatchThreadId(this, 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();
            IDebugBreakpoint3_Impl::GetCommand(this, 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();
            IDebugBreakpoint3_Impl::SetCommand(this, 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();
            IDebugBreakpoint3_Impl::GetOffsetExpression(this, 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();
            IDebugBreakpoint3_Impl::SetOffsetExpression(this, 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();
            IDebugBreakpoint3_Impl::GetParameters(this, 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();
            IDebugBreakpoint3_Impl::GetCommandWide(this, 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();
            IDebugBreakpoint3_Impl::SetCommandWide(this, 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();
            IDebugBreakpoint3_Impl::GetOffsetExpressionWide(this, 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();
            IDebugBreakpoint3_Impl::SetOffsetExpressionWide(this, 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 IDebugBreakpoint3_Impl::GetGuid(this) {
                Ok(ok__) => {
                    core::ptr::write(guid, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
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: Option<&IDebugClient>) -> windows_core::Result<()>;
    fn CreateClient(&self) -> windows_core::Result<IDebugClient>;
    fn GetInputCallbacks(&self) -> windows_core::Result<IDebugInputCallbacks>;
    fn SetInputCallbacks(&self, callbacks: Option<&IDebugInputCallbacks>) -> windows_core::Result<()>;
    fn GetOutputCallbacks(&self) -> windows_core::Result<IDebugOutputCallbacks>;
    fn SetOutputCallbacks(&self, callbacks: Option<&IDebugOutputCallbacks>) -> windows_core::Result<()>;
    fn GetOutputMask(&self) -> windows_core::Result<u32>;
    fn SetOutputMask(&self, mask: u32) -> windows_core::Result<()>;
    fn GetOtherOutputMask(&self, client: Option<&IDebugClient>) -> windows_core::Result<u32>;
    fn SetOtherOutputMask(&self, client: 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: 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();
            IDebugClient_Impl::AttachKernel(this, 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();
            IDebugClient_Impl::GetKernelConnectionOptions(this, 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();
            IDebugClient_Impl::SetKernelConnectionOptions(this, 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();
            IDebugClient_Impl::StartProcessServer(this, 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 IDebugClient_Impl::ConnectProcessServer(this, core::mem::transmute(&remoteoptions)) {
                Ok(ok__) => {
                    core::ptr::write(server, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient_Impl::DisconnectProcessServer(this, 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();
            IDebugClient_Impl::GetRunningProcessSystemIds(this, 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 IDebugClient_Impl::GetRunningProcessSystemIdByExecutableName(this, core::mem::transmute_copy(&server), core::mem::transmute(&exename), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient_Impl::GetRunningProcessDescription(this, 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();
            IDebugClient_Impl::AttachProcess(this, 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();
            IDebugClient_Impl::CreateProcessA(this, 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();
            IDebugClient_Impl::CreateProcessAndAttach(this, 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 IDebugClient_Impl::GetProcessOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient_Impl::AddProcessOptions(this, 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();
            IDebugClient_Impl::RemoveProcessOptions(this, 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();
            IDebugClient_Impl::SetProcessOptions(this, 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();
            IDebugClient_Impl::OpenDumpFile(this, 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();
            IDebugClient_Impl::WriteDumpFile(this, 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();
            IDebugClient_Impl::ConnectSession(this, 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();
            IDebugClient_Impl::StartServer(this, 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();
            IDebugClient_Impl::OutputServers(this, 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();
            IDebugClient_Impl::TerminateProcesses(this).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();
            IDebugClient_Impl::DetachProcesses(this).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();
            IDebugClient_Impl::EndSession(this, 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 IDebugClient_Impl::GetExitCode(this) {
                Ok(ok__) => {
                    core::ptr::write(code, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient_Impl::DispatchCallbacks(this, 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();
            IDebugClient_Impl::ExitDispatch(this, 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 IDebugClient_Impl::CreateClient(this) {
                Ok(ok__) => {
                    core::ptr::write(client, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugClient_Impl::GetInputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient_Impl::SetInputCallbacks(this, 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 IDebugClient_Impl::GetOutputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient_Impl::SetOutputCallbacks(this, 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 IDebugClient_Impl::GetOutputMask(this) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient_Impl::SetOutputMask(this, 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 IDebugClient_Impl::GetOtherOutputMask(this, windows_core::from_raw_borrowed(&client)) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient_Impl::SetOtherOutputMask(this, 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 IDebugClient_Impl::GetOutputWidth(this) {
                Ok(ok__) => {
                    core::ptr::write(columns, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient_Impl::SetOutputWidth(this, 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();
            IDebugClient_Impl::GetOutputLinePrefix(this, 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();
            IDebugClient_Impl::SetOutputLinePrefix(this, 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();
            IDebugClient_Impl::GetIdentity(this, 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();
            IDebugClient_Impl::OutputIdentity(this, 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 IDebugClient_Impl::GetEventCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient_Impl::SetEventCallbacks(this, 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();
            IDebugClient_Impl::FlushCallbacks(this).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::Interface>::IID
    }
}
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: Option<&IDebugClient>) -> windows_core::Result<()>;
    fn CreateClient(&self) -> windows_core::Result<IDebugClient>;
    fn GetInputCallbacks(&self) -> windows_core::Result<IDebugInputCallbacks>;
    fn SetInputCallbacks(&self, callbacks: Option<&IDebugInputCallbacks>) -> windows_core::Result<()>;
    fn GetOutputCallbacks(&self) -> windows_core::Result<IDebugOutputCallbacks>;
    fn SetOutputCallbacks(&self, callbacks: Option<&IDebugOutputCallbacks>) -> windows_core::Result<()>;
    fn GetOutputMask(&self) -> windows_core::Result<u32>;
    fn SetOutputMask(&self, mask: u32) -> windows_core::Result<()>;
    fn GetOtherOutputMask(&self, client: Option<&IDebugClient>) -> windows_core::Result<u32>;
    fn SetOtherOutputMask(&self, client: 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: 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();
            IDebugClient2_Impl::AttachKernel(this, 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();
            IDebugClient2_Impl::GetKernelConnectionOptions(this, 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();
            IDebugClient2_Impl::SetKernelConnectionOptions(this, 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();
            IDebugClient2_Impl::StartProcessServer(this, 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 IDebugClient2_Impl::ConnectProcessServer(this, core::mem::transmute(&remoteoptions)) {
                Ok(ok__) => {
                    core::ptr::write(server, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient2_Impl::DisconnectProcessServer(this, 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();
            IDebugClient2_Impl::GetRunningProcessSystemIds(this, 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 IDebugClient2_Impl::GetRunningProcessSystemIdByExecutableName(this, core::mem::transmute_copy(&server), core::mem::transmute(&exename), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient2_Impl::GetRunningProcessDescription(this, 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();
            IDebugClient2_Impl::AttachProcess(this, 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();
            IDebugClient2_Impl::CreateProcessA(this, 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();
            IDebugClient2_Impl::CreateProcessAndAttach(this, 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 IDebugClient2_Impl::GetProcessOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient2_Impl::AddProcessOptions(this, 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();
            IDebugClient2_Impl::RemoveProcessOptions(this, 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();
            IDebugClient2_Impl::SetProcessOptions(this, 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();
            IDebugClient2_Impl::OpenDumpFile(this, 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();
            IDebugClient2_Impl::WriteDumpFile(this, 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();
            IDebugClient2_Impl::ConnectSession(this, 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();
            IDebugClient2_Impl::StartServer(this, 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();
            IDebugClient2_Impl::OutputServers(this, 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();
            IDebugClient2_Impl::TerminateProcesses(this).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();
            IDebugClient2_Impl::DetachProcesses(this).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();
            IDebugClient2_Impl::EndSession(this, 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 IDebugClient2_Impl::GetExitCode(this) {
                Ok(ok__) => {
                    core::ptr::write(code, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient2_Impl::DispatchCallbacks(this, 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();
            IDebugClient2_Impl::ExitDispatch(this, 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 IDebugClient2_Impl::CreateClient(this) {
                Ok(ok__) => {
                    core::ptr::write(client, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugClient2_Impl::GetInputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient2_Impl::SetInputCallbacks(this, 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 IDebugClient2_Impl::GetOutputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient2_Impl::SetOutputCallbacks(this, 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 IDebugClient2_Impl::GetOutputMask(this) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient2_Impl::SetOutputMask(this, 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 IDebugClient2_Impl::GetOtherOutputMask(this, windows_core::from_raw_borrowed(&client)) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient2_Impl::SetOtherOutputMask(this, 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 IDebugClient2_Impl::GetOutputWidth(this) {
                Ok(ok__) => {
                    core::ptr::write(columns, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient2_Impl::SetOutputWidth(this, 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();
            IDebugClient2_Impl::GetOutputLinePrefix(this, 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();
            IDebugClient2_Impl::SetOutputLinePrefix(this, 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();
            IDebugClient2_Impl::GetIdentity(this, 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();
            IDebugClient2_Impl::OutputIdentity(this, 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 IDebugClient2_Impl::GetEventCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient2_Impl::SetEventCallbacks(this, 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();
            IDebugClient2_Impl::FlushCallbacks(this).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();
            IDebugClient2_Impl::WriteDumpFile2(this, 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();
            IDebugClient2_Impl::AddDumpInformationFile(this, 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();
            IDebugClient2_Impl::EndProcessServer(this, 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();
            IDebugClient2_Impl::WaitForProcessServerEnd(this, 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();
            IDebugClient2_Impl::IsKernelDebuggerEnabled(this).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();
            IDebugClient2_Impl::TerminateCurrentProcess(this).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();
            IDebugClient2_Impl::DetachCurrentProcess(this).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();
            IDebugClient2_Impl::AbandonCurrentProcess(this).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::Interface>::IID
    }
}
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: Option<&IDebugClient>) -> windows_core::Result<()>;
    fn CreateClient(&self) -> windows_core::Result<IDebugClient>;
    fn GetInputCallbacks(&self) -> windows_core::Result<IDebugInputCallbacks>;
    fn SetInputCallbacks(&self, callbacks: Option<&IDebugInputCallbacks>) -> windows_core::Result<()>;
    fn GetOutputCallbacks(&self) -> windows_core::Result<IDebugOutputCallbacks>;
    fn SetOutputCallbacks(&self, callbacks: Option<&IDebugOutputCallbacks>) -> windows_core::Result<()>;
    fn GetOutputMask(&self) -> windows_core::Result<u32>;
    fn SetOutputMask(&self, mask: u32) -> windows_core::Result<()>;
    fn GetOtherOutputMask(&self, client: Option<&IDebugClient>) -> windows_core::Result<u32>;
    fn SetOtherOutputMask(&self, client: 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: 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();
            IDebugClient3_Impl::AttachKernel(this, 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();
            IDebugClient3_Impl::GetKernelConnectionOptions(this, 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();
            IDebugClient3_Impl::SetKernelConnectionOptions(this, 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();
            IDebugClient3_Impl::StartProcessServer(this, 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 IDebugClient3_Impl::ConnectProcessServer(this, core::mem::transmute(&remoteoptions)) {
                Ok(ok__) => {
                    core::ptr::write(server, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient3_Impl::DisconnectProcessServer(this, 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();
            IDebugClient3_Impl::GetRunningProcessSystemIds(this, 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 IDebugClient3_Impl::GetRunningProcessSystemIdByExecutableName(this, core::mem::transmute_copy(&server), core::mem::transmute(&exename), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient3_Impl::GetRunningProcessDescription(this, 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();
            IDebugClient3_Impl::AttachProcess(this, 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();
            IDebugClient3_Impl::CreateProcessA(this, 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();
            IDebugClient3_Impl::CreateProcessAndAttach(this, 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 IDebugClient3_Impl::GetProcessOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient3_Impl::AddProcessOptions(this, 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();
            IDebugClient3_Impl::RemoveProcessOptions(this, 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();
            IDebugClient3_Impl::SetProcessOptions(this, 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();
            IDebugClient3_Impl::OpenDumpFile(this, 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();
            IDebugClient3_Impl::WriteDumpFile(this, 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();
            IDebugClient3_Impl::ConnectSession(this, 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();
            IDebugClient3_Impl::StartServer(this, 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();
            IDebugClient3_Impl::OutputServers(this, 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();
            IDebugClient3_Impl::TerminateProcesses(this).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();
            IDebugClient3_Impl::DetachProcesses(this).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();
            IDebugClient3_Impl::EndSession(this, 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 IDebugClient3_Impl::GetExitCode(this) {
                Ok(ok__) => {
                    core::ptr::write(code, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient3_Impl::DispatchCallbacks(this, 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();
            IDebugClient3_Impl::ExitDispatch(this, 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 IDebugClient3_Impl::CreateClient(this) {
                Ok(ok__) => {
                    core::ptr::write(client, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugClient3_Impl::GetInputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient3_Impl::SetInputCallbacks(this, 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 IDebugClient3_Impl::GetOutputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient3_Impl::SetOutputCallbacks(this, 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 IDebugClient3_Impl::GetOutputMask(this) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient3_Impl::SetOutputMask(this, 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 IDebugClient3_Impl::GetOtherOutputMask(this, windows_core::from_raw_borrowed(&client)) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient3_Impl::SetOtherOutputMask(this, 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 IDebugClient3_Impl::GetOutputWidth(this) {
                Ok(ok__) => {
                    core::ptr::write(columns, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient3_Impl::SetOutputWidth(this, 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();
            IDebugClient3_Impl::GetOutputLinePrefix(this, 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();
            IDebugClient3_Impl::SetOutputLinePrefix(this, 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();
            IDebugClient3_Impl::GetIdentity(this, 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();
            IDebugClient3_Impl::OutputIdentity(this, 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 IDebugClient3_Impl::GetEventCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient3_Impl::SetEventCallbacks(this, 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();
            IDebugClient3_Impl::FlushCallbacks(this).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();
            IDebugClient3_Impl::WriteDumpFile2(this, 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();
            IDebugClient3_Impl::AddDumpInformationFile(this, 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();
            IDebugClient3_Impl::EndProcessServer(this, 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();
            IDebugClient3_Impl::WaitForProcessServerEnd(this, 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();
            IDebugClient3_Impl::IsKernelDebuggerEnabled(this).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();
            IDebugClient3_Impl::TerminateCurrentProcess(this).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();
            IDebugClient3_Impl::DetachCurrentProcess(this).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();
            IDebugClient3_Impl::AbandonCurrentProcess(this).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 IDebugClient3_Impl::GetRunningProcessSystemIdByExecutableNameWide(this, core::mem::transmute_copy(&server), core::mem::transmute(&exename), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient3_Impl::GetRunningProcessDescriptionWide(this, 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();
            IDebugClient3_Impl::CreateProcessWide(this, 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();
            IDebugClient3_Impl::CreateProcessAndAttachWide(this, 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::Interface>::IID
    }
}
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: Option<&IDebugClient>) -> windows_core::Result<()>;
    fn CreateClient(&self) -> windows_core::Result<IDebugClient>;
    fn GetInputCallbacks(&self) -> windows_core::Result<IDebugInputCallbacks>;
    fn SetInputCallbacks(&self, callbacks: Option<&IDebugInputCallbacks>) -> windows_core::Result<()>;
    fn GetOutputCallbacks(&self) -> windows_core::Result<IDebugOutputCallbacks>;
    fn SetOutputCallbacks(&self, callbacks: Option<&IDebugOutputCallbacks>) -> windows_core::Result<()>;
    fn GetOutputMask(&self) -> windows_core::Result<u32>;
    fn SetOutputMask(&self, mask: u32) -> windows_core::Result<()>;
    fn GetOtherOutputMask(&self, client: Option<&IDebugClient>) -> windows_core::Result<u32>;
    fn SetOtherOutputMask(&self, client: 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: 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();
            IDebugClient4_Impl::AttachKernel(this, 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();
            IDebugClient4_Impl::GetKernelConnectionOptions(this, 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();
            IDebugClient4_Impl::SetKernelConnectionOptions(this, 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();
            IDebugClient4_Impl::StartProcessServer(this, 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 IDebugClient4_Impl::ConnectProcessServer(this, core::mem::transmute(&remoteoptions)) {
                Ok(ok__) => {
                    core::ptr::write(server, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient4_Impl::DisconnectProcessServer(this, 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();
            IDebugClient4_Impl::GetRunningProcessSystemIds(this, 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 IDebugClient4_Impl::GetRunningProcessSystemIdByExecutableName(this, core::mem::transmute_copy(&server), core::mem::transmute(&exename), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient4_Impl::GetRunningProcessDescription(this, 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();
            IDebugClient4_Impl::AttachProcess(this, 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();
            IDebugClient4_Impl::CreateProcessA(this, 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();
            IDebugClient4_Impl::CreateProcessAndAttach(this, 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 IDebugClient4_Impl::GetProcessOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient4_Impl::AddProcessOptions(this, 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();
            IDebugClient4_Impl::RemoveProcessOptions(this, 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();
            IDebugClient4_Impl::SetProcessOptions(this, 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();
            IDebugClient4_Impl::OpenDumpFile(this, 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();
            IDebugClient4_Impl::WriteDumpFile(this, 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();
            IDebugClient4_Impl::ConnectSession(this, 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();
            IDebugClient4_Impl::StartServer(this, 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();
            IDebugClient4_Impl::OutputServers(this, 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();
            IDebugClient4_Impl::TerminateProcesses(this).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();
            IDebugClient4_Impl::DetachProcesses(this).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();
            IDebugClient4_Impl::EndSession(this, 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 IDebugClient4_Impl::GetExitCode(this) {
                Ok(ok__) => {
                    core::ptr::write(code, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient4_Impl::DispatchCallbacks(this, 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();
            IDebugClient4_Impl::ExitDispatch(this, 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 IDebugClient4_Impl::CreateClient(this) {
                Ok(ok__) => {
                    core::ptr::write(client, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugClient4_Impl::GetInputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient4_Impl::SetInputCallbacks(this, 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 IDebugClient4_Impl::GetOutputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient4_Impl::SetOutputCallbacks(this, 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 IDebugClient4_Impl::GetOutputMask(this) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient4_Impl::SetOutputMask(this, 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 IDebugClient4_Impl::GetOtherOutputMask(this, windows_core::from_raw_borrowed(&client)) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient4_Impl::SetOtherOutputMask(this, 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 IDebugClient4_Impl::GetOutputWidth(this) {
                Ok(ok__) => {
                    core::ptr::write(columns, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient4_Impl::SetOutputWidth(this, 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();
            IDebugClient4_Impl::GetOutputLinePrefix(this, 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();
            IDebugClient4_Impl::SetOutputLinePrefix(this, 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();
            IDebugClient4_Impl::GetIdentity(this, 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();
            IDebugClient4_Impl::OutputIdentity(this, 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 IDebugClient4_Impl::GetEventCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient4_Impl::SetEventCallbacks(this, 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();
            IDebugClient4_Impl::FlushCallbacks(this).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();
            IDebugClient4_Impl::WriteDumpFile2(this, 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();
            IDebugClient4_Impl::AddDumpInformationFile(this, 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();
            IDebugClient4_Impl::EndProcessServer(this, 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();
            IDebugClient4_Impl::WaitForProcessServerEnd(this, 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();
            IDebugClient4_Impl::IsKernelDebuggerEnabled(this).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();
            IDebugClient4_Impl::TerminateCurrentProcess(this).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();
            IDebugClient4_Impl::DetachCurrentProcess(this).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();
            IDebugClient4_Impl::AbandonCurrentProcess(this).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 IDebugClient4_Impl::GetRunningProcessSystemIdByExecutableNameWide(this, core::mem::transmute_copy(&server), core::mem::transmute(&exename), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient4_Impl::GetRunningProcessDescriptionWide(this, 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();
            IDebugClient4_Impl::CreateProcessWide(this, 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();
            IDebugClient4_Impl::CreateProcessAndAttachWide(this, 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();
            IDebugClient4_Impl::OpenDumpFileWide(this, 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();
            IDebugClient4_Impl::WriteDumpFileWide(this, 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();
            IDebugClient4_Impl::AddDumpInformationFileWide(this, 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 IDebugClient4_Impl::GetNumberDumpFiles(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient4_Impl::GetDumpFile(this, 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();
            IDebugClient4_Impl::GetDumpFileWide(this, 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::Interface>::IID
    }
}
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: Option<&IDebugClient>) -> windows_core::Result<()>;
    fn CreateClient(&self) -> windows_core::Result<IDebugClient>;
    fn GetInputCallbacks(&self) -> windows_core::Result<IDebugInputCallbacks>;
    fn SetInputCallbacks(&self, callbacks: Option<&IDebugInputCallbacks>) -> windows_core::Result<()>;
    fn GetOutputCallbacks(&self) -> windows_core::Result<IDebugOutputCallbacks>;
    fn SetOutputCallbacks(&self, callbacks: Option<&IDebugOutputCallbacks>) -> windows_core::Result<()>;
    fn GetOutputMask(&self) -> windows_core::Result<u32>;
    fn SetOutputMask(&self, mask: u32) -> windows_core::Result<()>;
    fn GetOtherOutputMask(&self, client: Option<&IDebugClient>) -> windows_core::Result<u32>;
    fn SetOtherOutputMask(&self, client: 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: 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: 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: 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();
            IDebugClient5_Impl::AttachKernel(this, 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();
            IDebugClient5_Impl::GetKernelConnectionOptions(this, 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();
            IDebugClient5_Impl::SetKernelConnectionOptions(this, 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();
            IDebugClient5_Impl::StartProcessServer(this, 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 IDebugClient5_Impl::ConnectProcessServer(this, core::mem::transmute(&remoteoptions)) {
                Ok(ok__) => {
                    core::ptr::write(server, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient5_Impl::DisconnectProcessServer(this, 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();
            IDebugClient5_Impl::GetRunningProcessSystemIds(this, 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 IDebugClient5_Impl::GetRunningProcessSystemIdByExecutableName(this, core::mem::transmute_copy(&server), core::mem::transmute(&exename), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient5_Impl::GetRunningProcessDescription(this, 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();
            IDebugClient5_Impl::AttachProcess(this, 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();
            IDebugClient5_Impl::CreateProcessA(this, 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();
            IDebugClient5_Impl::CreateProcessAndAttach(this, 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 IDebugClient5_Impl::GetProcessOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient5_Impl::AddProcessOptions(this, 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();
            IDebugClient5_Impl::RemoveProcessOptions(this, 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();
            IDebugClient5_Impl::SetProcessOptions(this, 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();
            IDebugClient5_Impl::OpenDumpFile(this, 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();
            IDebugClient5_Impl::WriteDumpFile(this, 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();
            IDebugClient5_Impl::ConnectSession(this, 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();
            IDebugClient5_Impl::StartServer(this, 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();
            IDebugClient5_Impl::OutputServers(this, 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();
            IDebugClient5_Impl::TerminateProcesses(this).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();
            IDebugClient5_Impl::DetachProcesses(this).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();
            IDebugClient5_Impl::EndSession(this, 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 IDebugClient5_Impl::GetExitCode(this) {
                Ok(ok__) => {
                    core::ptr::write(code, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient5_Impl::DispatchCallbacks(this, 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();
            IDebugClient5_Impl::ExitDispatch(this, 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 IDebugClient5_Impl::CreateClient(this) {
                Ok(ok__) => {
                    core::ptr::write(client, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugClient5_Impl::GetInputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient5_Impl::SetInputCallbacks(this, 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 IDebugClient5_Impl::GetOutputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient5_Impl::SetOutputCallbacks(this, 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 IDebugClient5_Impl::GetOutputMask(this) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient5_Impl::SetOutputMask(this, 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 IDebugClient5_Impl::GetOtherOutputMask(this, windows_core::from_raw_borrowed(&client)) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient5_Impl::SetOtherOutputMask(this, 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 IDebugClient5_Impl::GetOutputWidth(this) {
                Ok(ok__) => {
                    core::ptr::write(columns, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient5_Impl::SetOutputWidth(this, 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();
            IDebugClient5_Impl::GetOutputLinePrefix(this, 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();
            IDebugClient5_Impl::SetOutputLinePrefix(this, 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();
            IDebugClient5_Impl::GetIdentity(this, 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();
            IDebugClient5_Impl::OutputIdentity(this, 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 IDebugClient5_Impl::GetEventCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient5_Impl::SetEventCallbacks(this, 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();
            IDebugClient5_Impl::FlushCallbacks(this).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();
            IDebugClient5_Impl::WriteDumpFile2(this, 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();
            IDebugClient5_Impl::AddDumpInformationFile(this, 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();
            IDebugClient5_Impl::EndProcessServer(this, 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();
            IDebugClient5_Impl::WaitForProcessServerEnd(this, 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();
            IDebugClient5_Impl::IsKernelDebuggerEnabled(this).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();
            IDebugClient5_Impl::TerminateCurrentProcess(this).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();
            IDebugClient5_Impl::DetachCurrentProcess(this).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();
            IDebugClient5_Impl::AbandonCurrentProcess(this).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 IDebugClient5_Impl::GetRunningProcessSystemIdByExecutableNameWide(this, core::mem::transmute_copy(&server), core::mem::transmute(&exename), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient5_Impl::GetRunningProcessDescriptionWide(this, 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();
            IDebugClient5_Impl::CreateProcessWide(this, 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();
            IDebugClient5_Impl::CreateProcessAndAttachWide(this, 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();
            IDebugClient5_Impl::OpenDumpFileWide(this, 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();
            IDebugClient5_Impl::WriteDumpFileWide(this, 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();
            IDebugClient5_Impl::AddDumpInformationFileWide(this, 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 IDebugClient5_Impl::GetNumberDumpFiles(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient5_Impl::GetDumpFile(this, 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();
            IDebugClient5_Impl::GetDumpFileWide(this, 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();
            IDebugClient5_Impl::AttachKernelWide(this, 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();
            IDebugClient5_Impl::GetKernelConnectionOptionsWide(this, 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();
            IDebugClient5_Impl::SetKernelConnectionOptionsWide(this, 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();
            IDebugClient5_Impl::StartProcessServerWide(this, 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 IDebugClient5_Impl::ConnectProcessServerWide(this, core::mem::transmute(&remoteoptions)) {
                Ok(ok__) => {
                    core::ptr::write(server, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient5_Impl::StartServerWide(this, 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();
            IDebugClient5_Impl::OutputServersWide(this, 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 IDebugClient5_Impl::GetOutputCallbacksWide(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient5_Impl::SetOutputCallbacksWide(this, 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();
            IDebugClient5_Impl::GetOutputLinePrefixWide(this, 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();
            IDebugClient5_Impl::SetOutputLinePrefixWide(this, 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();
            IDebugClient5_Impl::GetIdentityWide(this, 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();
            IDebugClient5_Impl::OutputIdentityWide(this, 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 IDebugClient5_Impl::GetEventCallbacksWide(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient5_Impl::SetEventCallbacksWide(this, 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();
            IDebugClient5_Impl::CreateProcess2(this, 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();
            IDebugClient5_Impl::CreateProcess2Wide(this, 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();
            IDebugClient5_Impl::CreateProcessAndAttach2(this, 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();
            IDebugClient5_Impl::CreateProcessAndAttach2Wide(this, 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 IDebugClient5_Impl::PushOutputLinePrefix(this, core::mem::transmute(&newprefix)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugClient5_Impl::PushOutputLinePrefixWide(this, core::mem::transmute(&newprefix)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient5_Impl::PopOutputLinePrefix(this, 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 IDebugClient5_Impl::GetNumberInputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(count, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugClient5_Impl::GetNumberOutputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(count, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugClient5_Impl::GetNumberEventCallbacks(this, core::mem::transmute_copy(&eventflags)) {
                Ok(ok__) => {
                    core::ptr::write(count, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient5_Impl::GetQuitLockString(this, 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();
            IDebugClient5_Impl::SetQuitLockString(this, 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();
            IDebugClient5_Impl::GetQuitLockStringWide(this, 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();
            IDebugClient5_Impl::SetQuitLockStringWide(this, 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::Interface>::IID
    }
}
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: Option<&IDebugClient>) -> windows_core::Result<()>;
    fn CreateClient(&self) -> windows_core::Result<IDebugClient>;
    fn GetInputCallbacks(&self) -> windows_core::Result<IDebugInputCallbacks>;
    fn SetInputCallbacks(&self, callbacks: Option<&IDebugInputCallbacks>) -> windows_core::Result<()>;
    fn GetOutputCallbacks(&self) -> windows_core::Result<IDebugOutputCallbacks>;
    fn SetOutputCallbacks(&self, callbacks: Option<&IDebugOutputCallbacks>) -> windows_core::Result<()>;
    fn GetOutputMask(&self) -> windows_core::Result<u32>;
    fn SetOutputMask(&self, mask: u32) -> windows_core::Result<()>;
    fn GetOtherOutputMask(&self, client: Option<&IDebugClient>) -> windows_core::Result<u32>;
    fn SetOtherOutputMask(&self, client: 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: 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: 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: 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: 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();
            IDebugClient6_Impl::AttachKernel(this, 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();
            IDebugClient6_Impl::GetKernelConnectionOptions(this, 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();
            IDebugClient6_Impl::SetKernelConnectionOptions(this, 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();
            IDebugClient6_Impl::StartProcessServer(this, 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 IDebugClient6_Impl::ConnectProcessServer(this, core::mem::transmute(&remoteoptions)) {
                Ok(ok__) => {
                    core::ptr::write(server, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient6_Impl::DisconnectProcessServer(this, 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();
            IDebugClient6_Impl::GetRunningProcessSystemIds(this, 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 IDebugClient6_Impl::GetRunningProcessSystemIdByExecutableName(this, core::mem::transmute_copy(&server), core::mem::transmute(&exename), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient6_Impl::GetRunningProcessDescription(this, 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();
            IDebugClient6_Impl::AttachProcess(this, 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();
            IDebugClient6_Impl::CreateProcessA(this, 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();
            IDebugClient6_Impl::CreateProcessAndAttach(this, 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 IDebugClient6_Impl::GetProcessOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient6_Impl::AddProcessOptions(this, 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();
            IDebugClient6_Impl::RemoveProcessOptions(this, 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();
            IDebugClient6_Impl::SetProcessOptions(this, 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();
            IDebugClient6_Impl::OpenDumpFile(this, 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();
            IDebugClient6_Impl::WriteDumpFile(this, 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();
            IDebugClient6_Impl::ConnectSession(this, 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();
            IDebugClient6_Impl::StartServer(this, 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();
            IDebugClient6_Impl::OutputServers(this, 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();
            IDebugClient6_Impl::TerminateProcesses(this).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();
            IDebugClient6_Impl::DetachProcesses(this).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();
            IDebugClient6_Impl::EndSession(this, 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 IDebugClient6_Impl::GetExitCode(this) {
                Ok(ok__) => {
                    core::ptr::write(code, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient6_Impl::DispatchCallbacks(this, 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();
            IDebugClient6_Impl::ExitDispatch(this, 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 IDebugClient6_Impl::CreateClient(this) {
                Ok(ok__) => {
                    core::ptr::write(client, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugClient6_Impl::GetInputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient6_Impl::SetInputCallbacks(this, 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 IDebugClient6_Impl::GetOutputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient6_Impl::SetOutputCallbacks(this, 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 IDebugClient6_Impl::GetOutputMask(this) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient6_Impl::SetOutputMask(this, 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 IDebugClient6_Impl::GetOtherOutputMask(this, windows_core::from_raw_borrowed(&client)) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient6_Impl::SetOtherOutputMask(this, 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 IDebugClient6_Impl::GetOutputWidth(this) {
                Ok(ok__) => {
                    core::ptr::write(columns, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient6_Impl::SetOutputWidth(this, 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();
            IDebugClient6_Impl::GetOutputLinePrefix(this, 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();
            IDebugClient6_Impl::SetOutputLinePrefix(this, 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();
            IDebugClient6_Impl::GetIdentity(this, 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();
            IDebugClient6_Impl::OutputIdentity(this, 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 IDebugClient6_Impl::GetEventCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient6_Impl::SetEventCallbacks(this, 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();
            IDebugClient6_Impl::FlushCallbacks(this).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();
            IDebugClient6_Impl::WriteDumpFile2(this, 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();
            IDebugClient6_Impl::AddDumpInformationFile(this, 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();
            IDebugClient6_Impl::EndProcessServer(this, 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();
            IDebugClient6_Impl::WaitForProcessServerEnd(this, 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();
            IDebugClient6_Impl::IsKernelDebuggerEnabled(this).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();
            IDebugClient6_Impl::TerminateCurrentProcess(this).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();
            IDebugClient6_Impl::DetachCurrentProcess(this).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();
            IDebugClient6_Impl::AbandonCurrentProcess(this).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 IDebugClient6_Impl::GetRunningProcessSystemIdByExecutableNameWide(this, core::mem::transmute_copy(&server), core::mem::transmute(&exename), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient6_Impl::GetRunningProcessDescriptionWide(this, 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();
            IDebugClient6_Impl::CreateProcessWide(this, 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();
            IDebugClient6_Impl::CreateProcessAndAttachWide(this, 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();
            IDebugClient6_Impl::OpenDumpFileWide(this, 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();
            IDebugClient6_Impl::WriteDumpFileWide(this, 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();
            IDebugClient6_Impl::AddDumpInformationFileWide(this, 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 IDebugClient6_Impl::GetNumberDumpFiles(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient6_Impl::GetDumpFile(this, 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();
            IDebugClient6_Impl::GetDumpFileWide(this, 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();
            IDebugClient6_Impl::AttachKernelWide(this, 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();
            IDebugClient6_Impl::GetKernelConnectionOptionsWide(this, 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();
            IDebugClient6_Impl::SetKernelConnectionOptionsWide(this, 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();
            IDebugClient6_Impl::StartProcessServerWide(this, 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 IDebugClient6_Impl::ConnectProcessServerWide(this, core::mem::transmute(&remoteoptions)) {
                Ok(ok__) => {
                    core::ptr::write(server, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient6_Impl::StartServerWide(this, 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();
            IDebugClient6_Impl::OutputServersWide(this, 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 IDebugClient6_Impl::GetOutputCallbacksWide(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient6_Impl::SetOutputCallbacksWide(this, 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();
            IDebugClient6_Impl::GetOutputLinePrefixWide(this, 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();
            IDebugClient6_Impl::SetOutputLinePrefixWide(this, 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();
            IDebugClient6_Impl::GetIdentityWide(this, 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();
            IDebugClient6_Impl::OutputIdentityWide(this, 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 IDebugClient6_Impl::GetEventCallbacksWide(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient6_Impl::SetEventCallbacksWide(this, 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();
            IDebugClient6_Impl::CreateProcess2(this, 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();
            IDebugClient6_Impl::CreateProcess2Wide(this, 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();
            IDebugClient6_Impl::CreateProcessAndAttach2(this, 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();
            IDebugClient6_Impl::CreateProcessAndAttach2Wide(this, 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 IDebugClient6_Impl::PushOutputLinePrefix(this, core::mem::transmute(&newprefix)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugClient6_Impl::PushOutputLinePrefixWide(this, core::mem::transmute(&newprefix)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient6_Impl::PopOutputLinePrefix(this, 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 IDebugClient6_Impl::GetNumberInputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(count, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugClient6_Impl::GetNumberOutputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(count, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugClient6_Impl::GetNumberEventCallbacks(this, core::mem::transmute_copy(&eventflags)) {
                Ok(ok__) => {
                    core::ptr::write(count, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient6_Impl::GetQuitLockString(this, 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();
            IDebugClient6_Impl::SetQuitLockString(this, 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();
            IDebugClient6_Impl::GetQuitLockStringWide(this, 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();
            IDebugClient6_Impl::SetQuitLockStringWide(this, 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();
            IDebugClient6_Impl::SetEventContextCallbacks(this, 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::Interface>::IID
    }
}
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: Option<&IDebugClient>) -> windows_core::Result<()>;
    fn CreateClient(&self) -> windows_core::Result<IDebugClient>;
    fn GetInputCallbacks(&self) -> windows_core::Result<IDebugInputCallbacks>;
    fn SetInputCallbacks(&self, callbacks: Option<&IDebugInputCallbacks>) -> windows_core::Result<()>;
    fn GetOutputCallbacks(&self) -> windows_core::Result<IDebugOutputCallbacks>;
    fn SetOutputCallbacks(&self, callbacks: Option<&IDebugOutputCallbacks>) -> windows_core::Result<()>;
    fn GetOutputMask(&self) -> windows_core::Result<u32>;
    fn SetOutputMask(&self, mask: u32) -> windows_core::Result<()>;
    fn GetOtherOutputMask(&self, client: Option<&IDebugClient>) -> windows_core::Result<u32>;
    fn SetOtherOutputMask(&self, client: 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: 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: 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: 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: 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();
            IDebugClient7_Impl::AttachKernel(this, 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();
            IDebugClient7_Impl::GetKernelConnectionOptions(this, 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();
            IDebugClient7_Impl::SetKernelConnectionOptions(this, 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();
            IDebugClient7_Impl::StartProcessServer(this, 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 IDebugClient7_Impl::ConnectProcessServer(this, core::mem::transmute(&remoteoptions)) {
                Ok(ok__) => {
                    core::ptr::write(server, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient7_Impl::DisconnectProcessServer(this, 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();
            IDebugClient7_Impl::GetRunningProcessSystemIds(this, 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 IDebugClient7_Impl::GetRunningProcessSystemIdByExecutableName(this, core::mem::transmute_copy(&server), core::mem::transmute(&exename), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient7_Impl::GetRunningProcessDescription(this, 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();
            IDebugClient7_Impl::AttachProcess(this, 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();
            IDebugClient7_Impl::CreateProcessA(this, 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();
            IDebugClient7_Impl::CreateProcessAndAttach(this, 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 IDebugClient7_Impl::GetProcessOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient7_Impl::AddProcessOptions(this, 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();
            IDebugClient7_Impl::RemoveProcessOptions(this, 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();
            IDebugClient7_Impl::SetProcessOptions(this, 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();
            IDebugClient7_Impl::OpenDumpFile(this, 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();
            IDebugClient7_Impl::WriteDumpFile(this, 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();
            IDebugClient7_Impl::ConnectSession(this, 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();
            IDebugClient7_Impl::StartServer(this, 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();
            IDebugClient7_Impl::OutputServers(this, 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();
            IDebugClient7_Impl::TerminateProcesses(this).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();
            IDebugClient7_Impl::DetachProcesses(this).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();
            IDebugClient7_Impl::EndSession(this, 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 IDebugClient7_Impl::GetExitCode(this) {
                Ok(ok__) => {
                    core::ptr::write(code, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient7_Impl::DispatchCallbacks(this, 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();
            IDebugClient7_Impl::ExitDispatch(this, 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 IDebugClient7_Impl::CreateClient(this) {
                Ok(ok__) => {
                    core::ptr::write(client, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugClient7_Impl::GetInputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient7_Impl::SetInputCallbacks(this, 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 IDebugClient7_Impl::GetOutputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient7_Impl::SetOutputCallbacks(this, 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 IDebugClient7_Impl::GetOutputMask(this) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient7_Impl::SetOutputMask(this, 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 IDebugClient7_Impl::GetOtherOutputMask(this, windows_core::from_raw_borrowed(&client)) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient7_Impl::SetOtherOutputMask(this, 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 IDebugClient7_Impl::GetOutputWidth(this) {
                Ok(ok__) => {
                    core::ptr::write(columns, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient7_Impl::SetOutputWidth(this, 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();
            IDebugClient7_Impl::GetOutputLinePrefix(this, 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();
            IDebugClient7_Impl::SetOutputLinePrefix(this, 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();
            IDebugClient7_Impl::GetIdentity(this, 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();
            IDebugClient7_Impl::OutputIdentity(this, 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 IDebugClient7_Impl::GetEventCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient7_Impl::SetEventCallbacks(this, 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();
            IDebugClient7_Impl::FlushCallbacks(this).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();
            IDebugClient7_Impl::WriteDumpFile2(this, 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();
            IDebugClient7_Impl::AddDumpInformationFile(this, 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();
            IDebugClient7_Impl::EndProcessServer(this, 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();
            IDebugClient7_Impl::WaitForProcessServerEnd(this, 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();
            IDebugClient7_Impl::IsKernelDebuggerEnabled(this).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();
            IDebugClient7_Impl::TerminateCurrentProcess(this).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();
            IDebugClient7_Impl::DetachCurrentProcess(this).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();
            IDebugClient7_Impl::AbandonCurrentProcess(this).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 IDebugClient7_Impl::GetRunningProcessSystemIdByExecutableNameWide(this, core::mem::transmute_copy(&server), core::mem::transmute(&exename), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient7_Impl::GetRunningProcessDescriptionWide(this, 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();
            IDebugClient7_Impl::CreateProcessWide(this, 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();
            IDebugClient7_Impl::CreateProcessAndAttachWide(this, 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();
            IDebugClient7_Impl::OpenDumpFileWide(this, 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();
            IDebugClient7_Impl::WriteDumpFileWide(this, 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();
            IDebugClient7_Impl::AddDumpInformationFileWide(this, 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 IDebugClient7_Impl::GetNumberDumpFiles(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient7_Impl::GetDumpFile(this, 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();
            IDebugClient7_Impl::GetDumpFileWide(this, 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();
            IDebugClient7_Impl::AttachKernelWide(this, 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();
            IDebugClient7_Impl::GetKernelConnectionOptionsWide(this, 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();
            IDebugClient7_Impl::SetKernelConnectionOptionsWide(this, 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();
            IDebugClient7_Impl::StartProcessServerWide(this, 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 IDebugClient7_Impl::ConnectProcessServerWide(this, core::mem::transmute(&remoteoptions)) {
                Ok(ok__) => {
                    core::ptr::write(server, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient7_Impl::StartServerWide(this, 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();
            IDebugClient7_Impl::OutputServersWide(this, 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 IDebugClient7_Impl::GetOutputCallbacksWide(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient7_Impl::SetOutputCallbacksWide(this, 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();
            IDebugClient7_Impl::GetOutputLinePrefixWide(this, 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();
            IDebugClient7_Impl::SetOutputLinePrefixWide(this, 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();
            IDebugClient7_Impl::GetIdentityWide(this, 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();
            IDebugClient7_Impl::OutputIdentityWide(this, 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 IDebugClient7_Impl::GetEventCallbacksWide(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient7_Impl::SetEventCallbacksWide(this, 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();
            IDebugClient7_Impl::CreateProcess2(this, 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();
            IDebugClient7_Impl::CreateProcess2Wide(this, 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();
            IDebugClient7_Impl::CreateProcessAndAttach2(this, 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();
            IDebugClient7_Impl::CreateProcessAndAttach2Wide(this, 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 IDebugClient7_Impl::PushOutputLinePrefix(this, core::mem::transmute(&newprefix)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugClient7_Impl::PushOutputLinePrefixWide(this, core::mem::transmute(&newprefix)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient7_Impl::PopOutputLinePrefix(this, 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 IDebugClient7_Impl::GetNumberInputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(count, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugClient7_Impl::GetNumberOutputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(count, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugClient7_Impl::GetNumberEventCallbacks(this, core::mem::transmute_copy(&eventflags)) {
                Ok(ok__) => {
                    core::ptr::write(count, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient7_Impl::GetQuitLockString(this, 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();
            IDebugClient7_Impl::SetQuitLockString(this, 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();
            IDebugClient7_Impl::GetQuitLockStringWide(this, 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();
            IDebugClient7_Impl::SetQuitLockStringWide(this, 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();
            IDebugClient7_Impl::SetEventContextCallbacks(this, 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();
            IDebugClient7_Impl::SetClientContext(this, 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::Interface>::IID
    }
}
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: Option<&IDebugClient>) -> windows_core::Result<()>;
    fn CreateClient(&self) -> windows_core::Result<IDebugClient>;
    fn GetInputCallbacks(&self) -> windows_core::Result<IDebugInputCallbacks>;
    fn SetInputCallbacks(&self, callbacks: Option<&IDebugInputCallbacks>) -> windows_core::Result<()>;
    fn GetOutputCallbacks(&self) -> windows_core::Result<IDebugOutputCallbacks>;
    fn SetOutputCallbacks(&self, callbacks: Option<&IDebugOutputCallbacks>) -> windows_core::Result<()>;
    fn GetOutputMask(&self) -> windows_core::Result<u32>;
    fn SetOutputMask(&self, mask: u32) -> windows_core::Result<()>;
    fn GetOtherOutputMask(&self, client: Option<&IDebugClient>) -> windows_core::Result<u32>;
    fn SetOtherOutputMask(&self, client: 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: 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: 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: 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: 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();
            IDebugClient8_Impl::AttachKernel(this, 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();
            IDebugClient8_Impl::GetKernelConnectionOptions(this, 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();
            IDebugClient8_Impl::SetKernelConnectionOptions(this, 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();
            IDebugClient8_Impl::StartProcessServer(this, 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 IDebugClient8_Impl::ConnectProcessServer(this, core::mem::transmute(&remoteoptions)) {
                Ok(ok__) => {
                    core::ptr::write(server, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient8_Impl::DisconnectProcessServer(this, 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();
            IDebugClient8_Impl::GetRunningProcessSystemIds(this, 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 IDebugClient8_Impl::GetRunningProcessSystemIdByExecutableName(this, core::mem::transmute_copy(&server), core::mem::transmute(&exename), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient8_Impl::GetRunningProcessDescription(this, 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();
            IDebugClient8_Impl::AttachProcess(this, 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();
            IDebugClient8_Impl::CreateProcessA(this, 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();
            IDebugClient8_Impl::CreateProcessAndAttach(this, 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 IDebugClient8_Impl::GetProcessOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient8_Impl::AddProcessOptions(this, 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();
            IDebugClient8_Impl::RemoveProcessOptions(this, 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();
            IDebugClient8_Impl::SetProcessOptions(this, 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();
            IDebugClient8_Impl::OpenDumpFile(this, 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();
            IDebugClient8_Impl::WriteDumpFile(this, 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();
            IDebugClient8_Impl::ConnectSession(this, 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();
            IDebugClient8_Impl::StartServer(this, 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();
            IDebugClient8_Impl::OutputServers(this, 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();
            IDebugClient8_Impl::TerminateProcesses(this).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();
            IDebugClient8_Impl::DetachProcesses(this).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();
            IDebugClient8_Impl::EndSession(this, 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 IDebugClient8_Impl::GetExitCode(this) {
                Ok(ok__) => {
                    core::ptr::write(code, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient8_Impl::DispatchCallbacks(this, 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();
            IDebugClient8_Impl::ExitDispatch(this, 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 IDebugClient8_Impl::CreateClient(this) {
                Ok(ok__) => {
                    core::ptr::write(client, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugClient8_Impl::GetInputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient8_Impl::SetInputCallbacks(this, 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 IDebugClient8_Impl::GetOutputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient8_Impl::SetOutputCallbacks(this, 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 IDebugClient8_Impl::GetOutputMask(this) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient8_Impl::SetOutputMask(this, 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 IDebugClient8_Impl::GetOtherOutputMask(this, windows_core::from_raw_borrowed(&client)) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient8_Impl::SetOtherOutputMask(this, 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 IDebugClient8_Impl::GetOutputWidth(this) {
                Ok(ok__) => {
                    core::ptr::write(columns, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient8_Impl::SetOutputWidth(this, 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();
            IDebugClient8_Impl::GetOutputLinePrefix(this, 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();
            IDebugClient8_Impl::SetOutputLinePrefix(this, 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();
            IDebugClient8_Impl::GetIdentity(this, 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();
            IDebugClient8_Impl::OutputIdentity(this, 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 IDebugClient8_Impl::GetEventCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient8_Impl::SetEventCallbacks(this, 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();
            IDebugClient8_Impl::FlushCallbacks(this).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();
            IDebugClient8_Impl::WriteDumpFile2(this, 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();
            IDebugClient8_Impl::AddDumpInformationFile(this, 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();
            IDebugClient8_Impl::EndProcessServer(this, 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();
            IDebugClient8_Impl::WaitForProcessServerEnd(this, 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();
            IDebugClient8_Impl::IsKernelDebuggerEnabled(this).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();
            IDebugClient8_Impl::TerminateCurrentProcess(this).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();
            IDebugClient8_Impl::DetachCurrentProcess(this).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();
            IDebugClient8_Impl::AbandonCurrentProcess(this).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 IDebugClient8_Impl::GetRunningProcessSystemIdByExecutableNameWide(this, core::mem::transmute_copy(&server), core::mem::transmute(&exename), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient8_Impl::GetRunningProcessDescriptionWide(this, 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();
            IDebugClient8_Impl::CreateProcessWide(this, 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();
            IDebugClient8_Impl::CreateProcessAndAttachWide(this, 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();
            IDebugClient8_Impl::OpenDumpFileWide(this, 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();
            IDebugClient8_Impl::WriteDumpFileWide(this, 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();
            IDebugClient8_Impl::AddDumpInformationFileWide(this, 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 IDebugClient8_Impl::GetNumberDumpFiles(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient8_Impl::GetDumpFile(this, 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();
            IDebugClient8_Impl::GetDumpFileWide(this, 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();
            IDebugClient8_Impl::AttachKernelWide(this, 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();
            IDebugClient8_Impl::GetKernelConnectionOptionsWide(this, 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();
            IDebugClient8_Impl::SetKernelConnectionOptionsWide(this, 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();
            IDebugClient8_Impl::StartProcessServerWide(this, 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 IDebugClient8_Impl::ConnectProcessServerWide(this, core::mem::transmute(&remoteoptions)) {
                Ok(ok__) => {
                    core::ptr::write(server, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient8_Impl::StartServerWide(this, 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();
            IDebugClient8_Impl::OutputServersWide(this, 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 IDebugClient8_Impl::GetOutputCallbacksWide(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient8_Impl::SetOutputCallbacksWide(this, 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();
            IDebugClient8_Impl::GetOutputLinePrefixWide(this, 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();
            IDebugClient8_Impl::SetOutputLinePrefixWide(this, 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();
            IDebugClient8_Impl::GetIdentityWide(this, 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();
            IDebugClient8_Impl::OutputIdentityWide(this, 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 IDebugClient8_Impl::GetEventCallbacksWide(this) {
                Ok(ok__) => {
                    core::ptr::write(callbacks, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient8_Impl::SetEventCallbacksWide(this, 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();
            IDebugClient8_Impl::CreateProcess2(this, 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();
            IDebugClient8_Impl::CreateProcess2Wide(this, 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();
            IDebugClient8_Impl::CreateProcessAndAttach2(this, 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();
            IDebugClient8_Impl::CreateProcessAndAttach2Wide(this, 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 IDebugClient8_Impl::PushOutputLinePrefix(this, core::mem::transmute(&newprefix)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugClient8_Impl::PushOutputLinePrefixWide(this, core::mem::transmute(&newprefix)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient8_Impl::PopOutputLinePrefix(this, 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 IDebugClient8_Impl::GetNumberInputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(count, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugClient8_Impl::GetNumberOutputCallbacks(this) {
                Ok(ok__) => {
                    core::ptr::write(count, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugClient8_Impl::GetNumberEventCallbacks(this, core::mem::transmute_copy(&eventflags)) {
                Ok(ok__) => {
                    core::ptr::write(count, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugClient8_Impl::GetQuitLockString(this, 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();
            IDebugClient8_Impl::SetQuitLockString(this, 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();
            IDebugClient8_Impl::GetQuitLockStringWide(this, 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();
            IDebugClient8_Impl::SetQuitLockStringWide(this, 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();
            IDebugClient8_Impl::SetEventContextCallbacks(this, 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();
            IDebugClient8_Impl::SetClientContext(this, 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();
            IDebugClient8_Impl::OpenDumpFileWide2(this, 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::Interface>::IID
    }
}
#[cfg(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: 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(feature = "Win32_System_Kernel")]
impl windows_core::RuntimeName for IDebugControl {}
#[cfg(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();
            IDebugControl_Impl::GetInterrupt(this).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();
            IDebugControl_Impl::SetInterrupt(this, 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 IDebugControl_Impl::GetInterruptTimeout(this) {
                Ok(ok__) => {
                    core::ptr::write(seconds, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl_Impl::SetInterruptTimeout(this, 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();
            IDebugControl_Impl::GetLogFile(this, 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();
            IDebugControl_Impl::OpenLogFile(this, 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();
            IDebugControl_Impl::CloseLogFile(this).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 IDebugControl_Impl::GetLogMask(this) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl_Impl::SetLogMask(this, 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();
            IDebugControl_Impl::Input(this, 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();
            IDebugControl_Impl::ReturnInput(this, 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();
            IDebugControl_Impl::Output(this, 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();
            IDebugControl_Impl::OutputVaList(this, 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();
            IDebugControl_Impl::ControlledOutput(this, 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();
            IDebugControl_Impl::ControlledOutputVaList(this, 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();
            IDebugControl_Impl::OutputPrompt(this, 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();
            IDebugControl_Impl::OutputPromptVaList(this, 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();
            IDebugControl_Impl::GetPromptText(this, 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();
            IDebugControl_Impl::OutputCurrentState(this, 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();
            IDebugControl_Impl::OutputVersionInformation(this, 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 IDebugControl_Impl::GetNotifyEventHandle(this) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl_Impl::SetNotifyEventHandle(this, 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 IDebugControl_Impl::Assemble(this, core::mem::transmute_copy(&offset), core::mem::transmute(&instr)) {
                Ok(ok__) => {
                    core::ptr::write(endoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl_Impl::Disassemble(this, 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 IDebugControl_Impl::GetDisassembleEffectiveOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl_Impl::OutputDisassembly(this, core::mem::transmute_copy(&outputcontrol), core::mem::transmute_copy(&offset), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(endoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl_Impl::OutputDisassemblyLines(this, 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 IDebugControl_Impl::GetNearInstruction(this, core::mem::transmute_copy(&offset), core::mem::transmute_copy(&delta)) {
                Ok(ok__) => {
                    core::ptr::write(nearoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl_Impl::GetStackTrace(this, 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 IDebugControl_Impl::GetReturnOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl_Impl::OutputStackTrace(this, 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();
            IDebugControl_Impl::GetDebuggeeType(this, 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 IDebugControl_Impl::GetActualProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl_Impl::GetExecutingProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl_Impl::GetNumberPossibleExecutingProcessorTypes(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl_Impl::GetPossibleExecutingProcessorTypes(this, 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 IDebugControl_Impl::GetNumberProcessors(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl_Impl::GetSystemVersion(this, 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 IDebugControl_Impl::GetPageSize(this) {
                Ok(ok__) => {
                    core::ptr::write(size, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl_Impl::IsPointer64Bit(this).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();
            IDebugControl_Impl::ReadBugCheckData(this, 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 IDebugControl_Impl::GetNumberSupportedProcessorTypes(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl_Impl::GetSupportedProcessorTypes(this, 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();
            IDebugControl_Impl::GetProcessorTypeNames(this, 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 IDebugControl_Impl::GetEffectiveProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl_Impl::SetEffectiveProcessorType(this, 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 IDebugControl_Impl::GetExecutionStatus(this) {
                Ok(ok__) => {
                    core::ptr::write(status, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl_Impl::SetExecutionStatus(this, 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 IDebugControl_Impl::GetCodeLevel(this) {
                Ok(ok__) => {
                    core::ptr::write(level, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl_Impl::SetCodeLevel(this, 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 IDebugControl_Impl::GetEngineOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl_Impl::AddEngineOptions(this, 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();
            IDebugControl_Impl::RemoveEngineOptions(this, 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();
            IDebugControl_Impl::SetEngineOptions(this, 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();
            IDebugControl_Impl::GetSystemErrorControl(this, 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();
            IDebugControl_Impl::SetSystemErrorControl(this, 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();
            IDebugControl_Impl::GetTextMacro(this, 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();
            IDebugControl_Impl::SetTextMacro(this, 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 IDebugControl_Impl::GetRadix(this) {
                Ok(ok__) => {
                    core::ptr::write(radix, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl_Impl::SetRadix(this, 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();
            IDebugControl_Impl::Evaluate(this, 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();
            IDebugControl_Impl::CoerceValue(this, 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();
            IDebugControl_Impl::CoerceValues(this, 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();
            IDebugControl_Impl::Execute(this, 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();
            IDebugControl_Impl::ExecuteCommandFile(this, 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 IDebugControl_Impl::GetNumberBreakpoints(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl_Impl::GetBreakpointByIndex(this, core::mem::transmute_copy(&index)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl_Impl::GetBreakpointById(this, core::mem::transmute_copy(&id)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl_Impl::GetBreakpointParameters(this, 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 IDebugControl_Impl::AddBreakpoint(this, core::mem::transmute_copy(&r#type), core::mem::transmute_copy(&desiredid)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl_Impl::RemoveBreakpoint(this, 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 IDebugControl_Impl::AddExtension(this, core::mem::transmute(&path), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl_Impl::RemoveExtension(this, 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 IDebugControl_Impl::GetExtensionByPath(this, core::mem::transmute(&path)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl_Impl::CallExtension(this, 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();
            IDebugControl_Impl::GetExtensionFunction(this, 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();
            IDebugControl_Impl::GetWindbgExtensionApis32(this, 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();
            IDebugControl_Impl::GetWindbgExtensionApis64(this, 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();
            IDebugControl_Impl::GetNumberEventFilters(this, 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();
            IDebugControl_Impl::GetEventFilterText(this, 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();
            IDebugControl_Impl::GetEventFilterCommand(this, 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();
            IDebugControl_Impl::SetEventFilterCommand(this, 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();
            IDebugControl_Impl::GetSpecificFilterParameters(this, 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();
            IDebugControl_Impl::SetSpecificFilterParameters(this, 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();
            IDebugControl_Impl::GetSpecificFilterArgument(this, 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();
            IDebugControl_Impl::SetSpecificFilterArgument(this, 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();
            IDebugControl_Impl::GetExceptionFilterParameters(this, 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();
            IDebugControl_Impl::SetExceptionFilterParameters(this, 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();
            IDebugControl_Impl::GetExceptionFilterSecondCommand(this, 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();
            IDebugControl_Impl::SetExceptionFilterSecondCommand(this, 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();
            IDebugControl_Impl::WaitForEvent(this, 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();
            IDebugControl_Impl::GetLastEventInformation(this, 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::Interface>::IID
    }
}
#[cfg(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: 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(feature = "Win32_System_Kernel")]
impl windows_core::RuntimeName for IDebugControl2 {}
#[cfg(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();
            IDebugControl2_Impl::GetInterrupt(this).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();
            IDebugControl2_Impl::SetInterrupt(this, 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 IDebugControl2_Impl::GetInterruptTimeout(this) {
                Ok(ok__) => {
                    core::ptr::write(seconds, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::SetInterruptTimeout(this, 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();
            IDebugControl2_Impl::GetLogFile(this, 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();
            IDebugControl2_Impl::OpenLogFile(this, 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();
            IDebugControl2_Impl::CloseLogFile(this).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 IDebugControl2_Impl::GetLogMask(this) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::SetLogMask(this, 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();
            IDebugControl2_Impl::Input(this, 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();
            IDebugControl2_Impl::ReturnInput(this, 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();
            IDebugControl2_Impl::Output(this, 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();
            IDebugControl2_Impl::OutputVaList(this, 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();
            IDebugControl2_Impl::ControlledOutput(this, 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();
            IDebugControl2_Impl::ControlledOutputVaList(this, 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();
            IDebugControl2_Impl::OutputPrompt(this, 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();
            IDebugControl2_Impl::OutputPromptVaList(this, 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();
            IDebugControl2_Impl::GetPromptText(this, 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();
            IDebugControl2_Impl::OutputCurrentState(this, 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();
            IDebugControl2_Impl::OutputVersionInformation(this, 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 IDebugControl2_Impl::GetNotifyEventHandle(this) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::SetNotifyEventHandle(this, 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 IDebugControl2_Impl::Assemble(this, core::mem::transmute_copy(&offset), core::mem::transmute(&instr)) {
                Ok(ok__) => {
                    core::ptr::write(endoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::Disassemble(this, 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 IDebugControl2_Impl::GetDisassembleEffectiveOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl2_Impl::OutputDisassembly(this, core::mem::transmute_copy(&outputcontrol), core::mem::transmute_copy(&offset), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(endoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::OutputDisassemblyLines(this, 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 IDebugControl2_Impl::GetNearInstruction(this, core::mem::transmute_copy(&offset), core::mem::transmute_copy(&delta)) {
                Ok(ok__) => {
                    core::ptr::write(nearoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::GetStackTrace(this, 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 IDebugControl2_Impl::GetReturnOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::OutputStackTrace(this, 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();
            IDebugControl2_Impl::GetDebuggeeType(this, 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 IDebugControl2_Impl::GetActualProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl2_Impl::GetExecutingProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl2_Impl::GetNumberPossibleExecutingProcessorTypes(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::GetPossibleExecutingProcessorTypes(this, 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 IDebugControl2_Impl::GetNumberProcessors(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::GetSystemVersion(this, 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 IDebugControl2_Impl::GetPageSize(this) {
                Ok(ok__) => {
                    core::ptr::write(size, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::IsPointer64Bit(this).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();
            IDebugControl2_Impl::ReadBugCheckData(this, 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 IDebugControl2_Impl::GetNumberSupportedProcessorTypes(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::GetSupportedProcessorTypes(this, 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();
            IDebugControl2_Impl::GetProcessorTypeNames(this, 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 IDebugControl2_Impl::GetEffectiveProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::SetEffectiveProcessorType(this, 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 IDebugControl2_Impl::GetExecutionStatus(this) {
                Ok(ok__) => {
                    core::ptr::write(status, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::SetExecutionStatus(this, 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 IDebugControl2_Impl::GetCodeLevel(this) {
                Ok(ok__) => {
                    core::ptr::write(level, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::SetCodeLevel(this, 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 IDebugControl2_Impl::GetEngineOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::AddEngineOptions(this, 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();
            IDebugControl2_Impl::RemoveEngineOptions(this, 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();
            IDebugControl2_Impl::SetEngineOptions(this, 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();
            IDebugControl2_Impl::GetSystemErrorControl(this, 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();
            IDebugControl2_Impl::SetSystemErrorControl(this, 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();
            IDebugControl2_Impl::GetTextMacro(this, 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();
            IDebugControl2_Impl::SetTextMacro(this, 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 IDebugControl2_Impl::GetRadix(this) {
                Ok(ok__) => {
                    core::ptr::write(radix, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::SetRadix(this, 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();
            IDebugControl2_Impl::Evaluate(this, 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();
            IDebugControl2_Impl::CoerceValue(this, 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();
            IDebugControl2_Impl::CoerceValues(this, 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();
            IDebugControl2_Impl::Execute(this, 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();
            IDebugControl2_Impl::ExecuteCommandFile(this, 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 IDebugControl2_Impl::GetNumberBreakpoints(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl2_Impl::GetBreakpointByIndex(this, core::mem::transmute_copy(&index)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl2_Impl::GetBreakpointById(this, core::mem::transmute_copy(&id)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::GetBreakpointParameters(this, 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 IDebugControl2_Impl::AddBreakpoint(this, core::mem::transmute_copy(&r#type), core::mem::transmute_copy(&desiredid)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::RemoveBreakpoint(this, 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 IDebugControl2_Impl::AddExtension(this, core::mem::transmute(&path), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::RemoveExtension(this, 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 IDebugControl2_Impl::GetExtensionByPath(this, core::mem::transmute(&path)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::CallExtension(this, 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();
            IDebugControl2_Impl::GetExtensionFunction(this, 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();
            IDebugControl2_Impl::GetWindbgExtensionApis32(this, 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();
            IDebugControl2_Impl::GetWindbgExtensionApis64(this, 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();
            IDebugControl2_Impl::GetNumberEventFilters(this, 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();
            IDebugControl2_Impl::GetEventFilterText(this, 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();
            IDebugControl2_Impl::GetEventFilterCommand(this, 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();
            IDebugControl2_Impl::SetEventFilterCommand(this, 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();
            IDebugControl2_Impl::GetSpecificFilterParameters(this, 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();
            IDebugControl2_Impl::SetSpecificFilterParameters(this, 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();
            IDebugControl2_Impl::GetSpecificFilterArgument(this, 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();
            IDebugControl2_Impl::SetSpecificFilterArgument(this, 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();
            IDebugControl2_Impl::GetExceptionFilterParameters(this, 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();
            IDebugControl2_Impl::SetExceptionFilterParameters(this, 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();
            IDebugControl2_Impl::GetExceptionFilterSecondCommand(this, 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();
            IDebugControl2_Impl::SetExceptionFilterSecondCommand(this, 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();
            IDebugControl2_Impl::WaitForEvent(this, 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();
            IDebugControl2_Impl::GetLastEventInformation(this, 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 IDebugControl2_Impl::GetCurrentTimeDate(this) {
                Ok(ok__) => {
                    core::ptr::write(timedate, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl2_Impl::GetCurrentSystemUpTime(this) {
                Ok(ok__) => {
                    core::ptr::write(uptime, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl2_Impl::GetDumpFormatFlags(this) {
                Ok(ok__) => {
                    core::ptr::write(formatflags, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl2_Impl::GetNumberTextReplacements(this) {
                Ok(ok__) => {
                    core::ptr::write(numrepl, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl2_Impl::GetTextReplacement(this, 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();
            IDebugControl2_Impl::SetTextReplacement(this, 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();
            IDebugControl2_Impl::RemoveTextReplacements(this).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();
            IDebugControl2_Impl::OutputTextReplacements(this, 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::Interface>::IID
    }
}
#[cfg(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: 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(feature = "Win32_System_Kernel")]
impl windows_core::RuntimeName for IDebugControl3 {}
#[cfg(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();
            IDebugControl3_Impl::GetInterrupt(this).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();
            IDebugControl3_Impl::SetInterrupt(this, 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 IDebugControl3_Impl::GetInterruptTimeout(this) {
                Ok(ok__) => {
                    core::ptr::write(seconds, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::SetInterruptTimeout(this, 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();
            IDebugControl3_Impl::GetLogFile(this, 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();
            IDebugControl3_Impl::OpenLogFile(this, 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();
            IDebugControl3_Impl::CloseLogFile(this).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 IDebugControl3_Impl::GetLogMask(this) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::SetLogMask(this, 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();
            IDebugControl3_Impl::Input(this, 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();
            IDebugControl3_Impl::ReturnInput(this, 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();
            IDebugControl3_Impl::Output(this, 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();
            IDebugControl3_Impl::OutputVaList(this, 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();
            IDebugControl3_Impl::ControlledOutput(this, 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();
            IDebugControl3_Impl::ControlledOutputVaList(this, 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();
            IDebugControl3_Impl::OutputPrompt(this, 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();
            IDebugControl3_Impl::OutputPromptVaList(this, 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();
            IDebugControl3_Impl::GetPromptText(this, 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();
            IDebugControl3_Impl::OutputCurrentState(this, 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();
            IDebugControl3_Impl::OutputVersionInformation(this, 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 IDebugControl3_Impl::GetNotifyEventHandle(this) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::SetNotifyEventHandle(this, 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 IDebugControl3_Impl::Assemble(this, core::mem::transmute_copy(&offset), core::mem::transmute(&instr)) {
                Ok(ok__) => {
                    core::ptr::write(endoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::Disassemble(this, 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 IDebugControl3_Impl::GetDisassembleEffectiveOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl3_Impl::OutputDisassembly(this, core::mem::transmute_copy(&outputcontrol), core::mem::transmute_copy(&offset), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(endoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::OutputDisassemblyLines(this, 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 IDebugControl3_Impl::GetNearInstruction(this, core::mem::transmute_copy(&offset), core::mem::transmute_copy(&delta)) {
                Ok(ok__) => {
                    core::ptr::write(nearoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::GetStackTrace(this, 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 IDebugControl3_Impl::GetReturnOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::OutputStackTrace(this, 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();
            IDebugControl3_Impl::GetDebuggeeType(this, 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 IDebugControl3_Impl::GetActualProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl3_Impl::GetExecutingProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl3_Impl::GetNumberPossibleExecutingProcessorTypes(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::GetPossibleExecutingProcessorTypes(this, 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 IDebugControl3_Impl::GetNumberProcessors(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::GetSystemVersion(this, 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 IDebugControl3_Impl::GetPageSize(this) {
                Ok(ok__) => {
                    core::ptr::write(size, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::IsPointer64Bit(this).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();
            IDebugControl3_Impl::ReadBugCheckData(this, 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 IDebugControl3_Impl::GetNumberSupportedProcessorTypes(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::GetSupportedProcessorTypes(this, 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();
            IDebugControl3_Impl::GetProcessorTypeNames(this, 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 IDebugControl3_Impl::GetEffectiveProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::SetEffectiveProcessorType(this, 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 IDebugControl3_Impl::GetExecutionStatus(this) {
                Ok(ok__) => {
                    core::ptr::write(status, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::SetExecutionStatus(this, 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 IDebugControl3_Impl::GetCodeLevel(this) {
                Ok(ok__) => {
                    core::ptr::write(level, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::SetCodeLevel(this, 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 IDebugControl3_Impl::GetEngineOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::AddEngineOptions(this, 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();
            IDebugControl3_Impl::RemoveEngineOptions(this, 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();
            IDebugControl3_Impl::SetEngineOptions(this, 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();
            IDebugControl3_Impl::GetSystemErrorControl(this, 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();
            IDebugControl3_Impl::SetSystemErrorControl(this, 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();
            IDebugControl3_Impl::GetTextMacro(this, 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();
            IDebugControl3_Impl::SetTextMacro(this, 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 IDebugControl3_Impl::GetRadix(this) {
                Ok(ok__) => {
                    core::ptr::write(radix, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::SetRadix(this, 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();
            IDebugControl3_Impl::Evaluate(this, 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();
            IDebugControl3_Impl::CoerceValue(this, 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();
            IDebugControl3_Impl::CoerceValues(this, 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();
            IDebugControl3_Impl::Execute(this, 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();
            IDebugControl3_Impl::ExecuteCommandFile(this, 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 IDebugControl3_Impl::GetNumberBreakpoints(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl3_Impl::GetBreakpointByIndex(this, core::mem::transmute_copy(&index)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl3_Impl::GetBreakpointById(this, core::mem::transmute_copy(&id)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::GetBreakpointParameters(this, 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 IDebugControl3_Impl::AddBreakpoint(this, core::mem::transmute_copy(&r#type), core::mem::transmute_copy(&desiredid)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::RemoveBreakpoint(this, 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 IDebugControl3_Impl::AddExtension(this, core::mem::transmute(&path), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::RemoveExtension(this, 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 IDebugControl3_Impl::GetExtensionByPath(this, core::mem::transmute(&path)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::CallExtension(this, 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();
            IDebugControl3_Impl::GetExtensionFunction(this, 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();
            IDebugControl3_Impl::GetWindbgExtensionApis32(this, 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();
            IDebugControl3_Impl::GetWindbgExtensionApis64(this, 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();
            IDebugControl3_Impl::GetNumberEventFilters(this, 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();
            IDebugControl3_Impl::GetEventFilterText(this, 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();
            IDebugControl3_Impl::GetEventFilterCommand(this, 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();
            IDebugControl3_Impl::SetEventFilterCommand(this, 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();
            IDebugControl3_Impl::GetSpecificFilterParameters(this, 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();
            IDebugControl3_Impl::SetSpecificFilterParameters(this, 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();
            IDebugControl3_Impl::GetSpecificFilterArgument(this, 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();
            IDebugControl3_Impl::SetSpecificFilterArgument(this, 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();
            IDebugControl3_Impl::GetExceptionFilterParameters(this, 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();
            IDebugControl3_Impl::SetExceptionFilterParameters(this, 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();
            IDebugControl3_Impl::GetExceptionFilterSecondCommand(this, 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();
            IDebugControl3_Impl::SetExceptionFilterSecondCommand(this, 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();
            IDebugControl3_Impl::WaitForEvent(this, 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();
            IDebugControl3_Impl::GetLastEventInformation(this, 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 IDebugControl3_Impl::GetCurrentTimeDate(this) {
                Ok(ok__) => {
                    core::ptr::write(timedate, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl3_Impl::GetCurrentSystemUpTime(this) {
                Ok(ok__) => {
                    core::ptr::write(uptime, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl3_Impl::GetDumpFormatFlags(this) {
                Ok(ok__) => {
                    core::ptr::write(formatflags, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl3_Impl::GetNumberTextReplacements(this) {
                Ok(ok__) => {
                    core::ptr::write(numrepl, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::GetTextReplacement(this, 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();
            IDebugControl3_Impl::SetTextReplacement(this, 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();
            IDebugControl3_Impl::RemoveTextReplacements(this).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();
            IDebugControl3_Impl::OutputTextReplacements(this, 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 IDebugControl3_Impl::GetAssemblyOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::AddAssemblyOptions(this, 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();
            IDebugControl3_Impl::RemoveAssemblyOptions(this, 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();
            IDebugControl3_Impl::SetAssemblyOptions(this, 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 IDebugControl3_Impl::GetExpressionSyntax(this) {
                Ok(ok__) => {
                    core::ptr::write(flags, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::SetExpressionSyntax(this, 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();
            IDebugControl3_Impl::SetExpressionSyntaxByName(this, 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 IDebugControl3_Impl::GetNumberExpressionSyntaxes(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::GetExpressionSyntaxNames(this, 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 IDebugControl3_Impl::GetNumberEvents(this) {
                Ok(ok__) => {
                    core::ptr::write(events, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl3_Impl::GetEventIndexDescription(this, 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 IDebugControl3_Impl::GetCurrentEventIndex(this) {
                Ok(ok__) => {
                    core::ptr::write(index, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl3_Impl::SetNextEventIndex(this, core::mem::transmute_copy(&relation), core::mem::transmute_copy(&value)) {
                Ok(ok__) => {
                    core::ptr::write(nextindex, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
#[cfg(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: 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: 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(feature = "Win32_System_Kernel")]
impl windows_core::RuntimeName for IDebugControl4 {}
#[cfg(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();
            IDebugControl4_Impl::GetInterrupt(this).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();
            IDebugControl4_Impl::SetInterrupt(this, 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 IDebugControl4_Impl::GetInterruptTimeout(this) {
                Ok(ok__) => {
                    core::ptr::write(seconds, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::SetInterruptTimeout(this, 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();
            IDebugControl4_Impl::GetLogFile(this, 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();
            IDebugControl4_Impl::OpenLogFile(this, 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();
            IDebugControl4_Impl::CloseLogFile(this).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 IDebugControl4_Impl::GetLogMask(this) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::SetLogMask(this, 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();
            IDebugControl4_Impl::Input(this, 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();
            IDebugControl4_Impl::ReturnInput(this, 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();
            IDebugControl4_Impl::Output(this, 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();
            IDebugControl4_Impl::OutputVaList(this, 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();
            IDebugControl4_Impl::ControlledOutput(this, 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();
            IDebugControl4_Impl::ControlledOutputVaList(this, 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();
            IDebugControl4_Impl::OutputPrompt(this, 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();
            IDebugControl4_Impl::OutputPromptVaList(this, 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();
            IDebugControl4_Impl::GetPromptText(this, 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();
            IDebugControl4_Impl::OutputCurrentState(this, 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();
            IDebugControl4_Impl::OutputVersionInformation(this, 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 IDebugControl4_Impl::GetNotifyEventHandle(this) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::SetNotifyEventHandle(this, 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 IDebugControl4_Impl::Assemble(this, core::mem::transmute_copy(&offset), core::mem::transmute(&instr)) {
                Ok(ok__) => {
                    core::ptr::write(endoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::Disassemble(this, 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 IDebugControl4_Impl::GetDisassembleEffectiveOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl4_Impl::OutputDisassembly(this, core::mem::transmute_copy(&outputcontrol), core::mem::transmute_copy(&offset), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(endoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::OutputDisassemblyLines(this, 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 IDebugControl4_Impl::GetNearInstruction(this, core::mem::transmute_copy(&offset), core::mem::transmute_copy(&delta)) {
                Ok(ok__) => {
                    core::ptr::write(nearoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::GetStackTrace(this, 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 IDebugControl4_Impl::GetReturnOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::OutputStackTrace(this, 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();
            IDebugControl4_Impl::GetDebuggeeType(this, 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 IDebugControl4_Impl::GetActualProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl4_Impl::GetExecutingProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl4_Impl::GetNumberPossibleExecutingProcessorTypes(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::GetPossibleExecutingProcessorTypes(this, 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 IDebugControl4_Impl::GetNumberProcessors(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::GetSystemVersion(this, 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 IDebugControl4_Impl::GetPageSize(this) {
                Ok(ok__) => {
                    core::ptr::write(size, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::IsPointer64Bit(this).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();
            IDebugControl4_Impl::ReadBugCheckData(this, 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 IDebugControl4_Impl::GetNumberSupportedProcessorTypes(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::GetSupportedProcessorTypes(this, 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();
            IDebugControl4_Impl::GetProcessorTypeNames(this, 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 IDebugControl4_Impl::GetEffectiveProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::SetEffectiveProcessorType(this, 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 IDebugControl4_Impl::GetExecutionStatus(this) {
                Ok(ok__) => {
                    core::ptr::write(status, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::SetExecutionStatus(this, 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 IDebugControl4_Impl::GetCodeLevel(this) {
                Ok(ok__) => {
                    core::ptr::write(level, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::SetCodeLevel(this, 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 IDebugControl4_Impl::GetEngineOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::AddEngineOptions(this, 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();
            IDebugControl4_Impl::RemoveEngineOptions(this, 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();
            IDebugControl4_Impl::SetEngineOptions(this, 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();
            IDebugControl4_Impl::GetSystemErrorControl(this, 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();
            IDebugControl4_Impl::SetSystemErrorControl(this, 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();
            IDebugControl4_Impl::GetTextMacro(this, 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();
            IDebugControl4_Impl::SetTextMacro(this, 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 IDebugControl4_Impl::GetRadix(this) {
                Ok(ok__) => {
                    core::ptr::write(radix, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::SetRadix(this, 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();
            IDebugControl4_Impl::Evaluate(this, 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();
            IDebugControl4_Impl::CoerceValue(this, 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();
            IDebugControl4_Impl::CoerceValues(this, 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();
            IDebugControl4_Impl::Execute(this, 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();
            IDebugControl4_Impl::ExecuteCommandFile(this, 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 IDebugControl4_Impl::GetNumberBreakpoints(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl4_Impl::GetBreakpointByIndex(this, core::mem::transmute_copy(&index)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl4_Impl::GetBreakpointById(this, core::mem::transmute_copy(&id)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::GetBreakpointParameters(this, 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 IDebugControl4_Impl::AddBreakpoint(this, core::mem::transmute_copy(&r#type), core::mem::transmute_copy(&desiredid)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::RemoveBreakpoint(this, 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 IDebugControl4_Impl::AddExtension(this, core::mem::transmute(&path), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::RemoveExtension(this, 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 IDebugControl4_Impl::GetExtensionByPath(this, core::mem::transmute(&path)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::CallExtension(this, 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();
            IDebugControl4_Impl::GetExtensionFunction(this, 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();
            IDebugControl4_Impl::GetWindbgExtensionApis32(this, 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();
            IDebugControl4_Impl::GetWindbgExtensionApis64(this, 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();
            IDebugControl4_Impl::GetNumberEventFilters(this, 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();
            IDebugControl4_Impl::GetEventFilterText(this, 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();
            IDebugControl4_Impl::GetEventFilterCommand(this, 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();
            IDebugControl4_Impl::SetEventFilterCommand(this, 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();
            IDebugControl4_Impl::GetSpecificFilterParameters(this, 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();
            IDebugControl4_Impl::SetSpecificFilterParameters(this, 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();
            IDebugControl4_Impl::GetSpecificFilterArgument(this, 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();
            IDebugControl4_Impl::SetSpecificFilterArgument(this, 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();
            IDebugControl4_Impl::GetExceptionFilterParameters(this, 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();
            IDebugControl4_Impl::SetExceptionFilterParameters(this, 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();
            IDebugControl4_Impl::GetExceptionFilterSecondCommand(this, 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();
            IDebugControl4_Impl::SetExceptionFilterSecondCommand(this, 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();
            IDebugControl4_Impl::WaitForEvent(this, 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();
            IDebugControl4_Impl::GetLastEventInformation(this, 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 IDebugControl4_Impl::GetCurrentTimeDate(this) {
                Ok(ok__) => {
                    core::ptr::write(timedate, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl4_Impl::GetCurrentSystemUpTime(this) {
                Ok(ok__) => {
                    core::ptr::write(uptime, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl4_Impl::GetDumpFormatFlags(this) {
                Ok(ok__) => {
                    core::ptr::write(formatflags, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl4_Impl::GetNumberTextReplacements(this) {
                Ok(ok__) => {
                    core::ptr::write(numrepl, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::GetTextReplacement(this, 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();
            IDebugControl4_Impl::SetTextReplacement(this, 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();
            IDebugControl4_Impl::RemoveTextReplacements(this).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();
            IDebugControl4_Impl::OutputTextReplacements(this, 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 IDebugControl4_Impl::GetAssemblyOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::AddAssemblyOptions(this, 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();
            IDebugControl4_Impl::RemoveAssemblyOptions(this, 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();
            IDebugControl4_Impl::SetAssemblyOptions(this, 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 IDebugControl4_Impl::GetExpressionSyntax(this) {
                Ok(ok__) => {
                    core::ptr::write(flags, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::SetExpressionSyntax(this, 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();
            IDebugControl4_Impl::SetExpressionSyntaxByName(this, 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 IDebugControl4_Impl::GetNumberExpressionSyntaxes(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::GetExpressionSyntaxNames(this, 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 IDebugControl4_Impl::GetNumberEvents(this) {
                Ok(ok__) => {
                    core::ptr::write(events, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::GetEventIndexDescription(this, 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 IDebugControl4_Impl::GetCurrentEventIndex(this) {
                Ok(ok__) => {
                    core::ptr::write(index, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl4_Impl::SetNextEventIndex(this, core::mem::transmute_copy(&relation), core::mem::transmute_copy(&value)) {
                Ok(ok__) => {
                    core::ptr::write(nextindex, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::GetLogFileWide(this, 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();
            IDebugControl4_Impl::OpenLogFileWide(this, 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();
            IDebugControl4_Impl::InputWide(this, 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();
            IDebugControl4_Impl::ReturnInputWide(this, 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();
            IDebugControl4_Impl::OutputWide(this, 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();
            IDebugControl4_Impl::OutputVaListWide(this, 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();
            IDebugControl4_Impl::ControlledOutputWide(this, 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();
            IDebugControl4_Impl::ControlledOutputVaListWide(this, 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();
            IDebugControl4_Impl::OutputPromptWide(this, 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();
            IDebugControl4_Impl::OutputPromptVaListWide(this, 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();
            IDebugControl4_Impl::GetPromptTextWide(this, 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 IDebugControl4_Impl::AssembleWide(this, core::mem::transmute_copy(&offset), core::mem::transmute(&instr)) {
                Ok(ok__) => {
                    core::ptr::write(endoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::DisassembleWide(this, 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();
            IDebugControl4_Impl::GetProcessorTypeNamesWide(this, 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();
            IDebugControl4_Impl::GetTextMacroWide(this, 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();
            IDebugControl4_Impl::SetTextMacroWide(this, 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();
            IDebugControl4_Impl::EvaluateWide(this, 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();
            IDebugControl4_Impl::ExecuteWide(this, 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();
            IDebugControl4_Impl::ExecuteCommandFileWide(this, 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 IDebugControl4_Impl::GetBreakpointByIndex2(this, core::mem::transmute_copy(&index)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl4_Impl::GetBreakpointById2(this, core::mem::transmute_copy(&id)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl4_Impl::AddBreakpoint2(this, core::mem::transmute_copy(&r#type), core::mem::transmute_copy(&desiredid)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::RemoveBreakpoint2(this, 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 IDebugControl4_Impl::AddExtensionWide(this, core::mem::transmute(&path), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl4_Impl::GetExtensionByPathWide(this, core::mem::transmute(&path)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl4_Impl::CallExtensionWide(this, 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();
            IDebugControl4_Impl::GetExtensionFunctionWide(this, 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();
            IDebugControl4_Impl::GetEventFilterTextWide(this, 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();
            IDebugControl4_Impl::GetEventFilterCommandWide(this, 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();
            IDebugControl4_Impl::SetEventFilterCommandWide(this, 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();
            IDebugControl4_Impl::GetSpecificFilterArgumentWide(this, 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();
            IDebugControl4_Impl::SetSpecificFilterArgumentWide(this, 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();
            IDebugControl4_Impl::GetExceptionFilterSecondCommandWide(this, 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();
            IDebugControl4_Impl::SetExceptionFilterSecondCommandWide(this, 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();
            IDebugControl4_Impl::GetLastEventInformationWide(this, 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();
            IDebugControl4_Impl::GetTextReplacementWide(this, 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();
            IDebugControl4_Impl::SetTextReplacementWide(this, 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();
            IDebugControl4_Impl::SetExpressionSyntaxByNameWide(this, 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();
            IDebugControl4_Impl::GetExpressionSyntaxNamesWide(this, 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();
            IDebugControl4_Impl::GetEventIndexDescriptionWide(this, 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();
            IDebugControl4_Impl::GetLogFile2(this, 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();
            IDebugControl4_Impl::OpenLogFile2(this, 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();
            IDebugControl4_Impl::GetLogFile2Wide(this, 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();
            IDebugControl4_Impl::OpenLogFile2Wide(this, 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();
            IDebugControl4_Impl::GetSystemVersionValues(this, 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();
            IDebugControl4_Impl::GetSystemVersionString(this, 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();
            IDebugControl4_Impl::GetSystemVersionStringWide(this, 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();
            IDebugControl4_Impl::GetContextStackTrace(this, 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();
            IDebugControl4_Impl::OutputContextStackTrace(this, 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();
            IDebugControl4_Impl::GetStoredEventInformation(this, 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();
            IDebugControl4_Impl::GetManagedStatus(this, 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();
            IDebugControl4_Impl::GetManagedStatusWide(this, 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();
            IDebugControl4_Impl::ResetManagedStatus(this, 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::Interface>::IID
    }
}
#[cfg(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: 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: 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(feature = "Win32_System_Kernel")]
impl windows_core::RuntimeName for IDebugControl5 {}
#[cfg(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();
            IDebugControl5_Impl::GetInterrupt(this).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();
            IDebugControl5_Impl::SetInterrupt(this, 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 IDebugControl5_Impl::GetInterruptTimeout(this) {
                Ok(ok__) => {
                    core::ptr::write(seconds, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::SetInterruptTimeout(this, 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();
            IDebugControl5_Impl::GetLogFile(this, 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();
            IDebugControl5_Impl::OpenLogFile(this, 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();
            IDebugControl5_Impl::CloseLogFile(this).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 IDebugControl5_Impl::GetLogMask(this) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::SetLogMask(this, 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();
            IDebugControl5_Impl::Input(this, 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();
            IDebugControl5_Impl::ReturnInput(this, 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();
            IDebugControl5_Impl::Output(this, 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();
            IDebugControl5_Impl::OutputVaList(this, 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();
            IDebugControl5_Impl::ControlledOutput(this, 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();
            IDebugControl5_Impl::ControlledOutputVaList(this, 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();
            IDebugControl5_Impl::OutputPrompt(this, 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();
            IDebugControl5_Impl::OutputPromptVaList(this, 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();
            IDebugControl5_Impl::GetPromptText(this, 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();
            IDebugControl5_Impl::OutputCurrentState(this, 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();
            IDebugControl5_Impl::OutputVersionInformation(this, 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 IDebugControl5_Impl::GetNotifyEventHandle(this) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::SetNotifyEventHandle(this, 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 IDebugControl5_Impl::Assemble(this, core::mem::transmute_copy(&offset), core::mem::transmute(&instr)) {
                Ok(ok__) => {
                    core::ptr::write(endoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::Disassemble(this, 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 IDebugControl5_Impl::GetDisassembleEffectiveOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl5_Impl::OutputDisassembly(this, core::mem::transmute_copy(&outputcontrol), core::mem::transmute_copy(&offset), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(endoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::OutputDisassemblyLines(this, 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 IDebugControl5_Impl::GetNearInstruction(this, core::mem::transmute_copy(&offset), core::mem::transmute_copy(&delta)) {
                Ok(ok__) => {
                    core::ptr::write(nearoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::GetStackTrace(this, 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 IDebugControl5_Impl::GetReturnOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::OutputStackTrace(this, 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();
            IDebugControl5_Impl::GetDebuggeeType(this, 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 IDebugControl5_Impl::GetActualProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl5_Impl::GetExecutingProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl5_Impl::GetNumberPossibleExecutingProcessorTypes(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::GetPossibleExecutingProcessorTypes(this, 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 IDebugControl5_Impl::GetNumberProcessors(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::GetSystemVersion(this, 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 IDebugControl5_Impl::GetPageSize(this) {
                Ok(ok__) => {
                    core::ptr::write(size, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::IsPointer64Bit(this).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();
            IDebugControl5_Impl::ReadBugCheckData(this, 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 IDebugControl5_Impl::GetNumberSupportedProcessorTypes(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::GetSupportedProcessorTypes(this, 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();
            IDebugControl5_Impl::GetProcessorTypeNames(this, 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 IDebugControl5_Impl::GetEffectiveProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::SetEffectiveProcessorType(this, 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 IDebugControl5_Impl::GetExecutionStatus(this) {
                Ok(ok__) => {
                    core::ptr::write(status, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::SetExecutionStatus(this, 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 IDebugControl5_Impl::GetCodeLevel(this) {
                Ok(ok__) => {
                    core::ptr::write(level, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::SetCodeLevel(this, 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 IDebugControl5_Impl::GetEngineOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::AddEngineOptions(this, 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();
            IDebugControl5_Impl::RemoveEngineOptions(this, 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();
            IDebugControl5_Impl::SetEngineOptions(this, 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();
            IDebugControl5_Impl::GetSystemErrorControl(this, 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();
            IDebugControl5_Impl::SetSystemErrorControl(this, 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();
            IDebugControl5_Impl::GetTextMacro(this, 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();
            IDebugControl5_Impl::SetTextMacro(this, 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 IDebugControl5_Impl::GetRadix(this) {
                Ok(ok__) => {
                    core::ptr::write(radix, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::SetRadix(this, 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();
            IDebugControl5_Impl::Evaluate(this, 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();
            IDebugControl5_Impl::CoerceValue(this, 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();
            IDebugControl5_Impl::CoerceValues(this, 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();
            IDebugControl5_Impl::Execute(this, 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();
            IDebugControl5_Impl::ExecuteCommandFile(this, 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 IDebugControl5_Impl::GetNumberBreakpoints(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl5_Impl::GetBreakpointByIndex(this, core::mem::transmute_copy(&index)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl5_Impl::GetBreakpointById(this, core::mem::transmute_copy(&id)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::GetBreakpointParameters(this, 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 IDebugControl5_Impl::AddBreakpoint(this, core::mem::transmute_copy(&r#type), core::mem::transmute_copy(&desiredid)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::RemoveBreakpoint(this, 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 IDebugControl5_Impl::AddExtension(this, core::mem::transmute(&path), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::RemoveExtension(this, 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 IDebugControl5_Impl::GetExtensionByPath(this, core::mem::transmute(&path)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::CallExtension(this, 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();
            IDebugControl5_Impl::GetExtensionFunction(this, 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();
            IDebugControl5_Impl::GetWindbgExtensionApis32(this, 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();
            IDebugControl5_Impl::GetWindbgExtensionApis64(this, 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();
            IDebugControl5_Impl::GetNumberEventFilters(this, 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();
            IDebugControl5_Impl::GetEventFilterText(this, 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();
            IDebugControl5_Impl::GetEventFilterCommand(this, 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();
            IDebugControl5_Impl::SetEventFilterCommand(this, 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();
            IDebugControl5_Impl::GetSpecificFilterParameters(this, 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();
            IDebugControl5_Impl::SetSpecificFilterParameters(this, 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();
            IDebugControl5_Impl::GetSpecificFilterArgument(this, 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();
            IDebugControl5_Impl::SetSpecificFilterArgument(this, 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();
            IDebugControl5_Impl::GetExceptionFilterParameters(this, 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();
            IDebugControl5_Impl::SetExceptionFilterParameters(this, 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();
            IDebugControl5_Impl::GetExceptionFilterSecondCommand(this, 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();
            IDebugControl5_Impl::SetExceptionFilterSecondCommand(this, 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();
            IDebugControl5_Impl::WaitForEvent(this, 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();
            IDebugControl5_Impl::GetLastEventInformation(this, 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 IDebugControl5_Impl::GetCurrentTimeDate(this) {
                Ok(ok__) => {
                    core::ptr::write(timedate, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl5_Impl::GetCurrentSystemUpTime(this) {
                Ok(ok__) => {
                    core::ptr::write(uptime, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl5_Impl::GetDumpFormatFlags(this) {
                Ok(ok__) => {
                    core::ptr::write(formatflags, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl5_Impl::GetNumberTextReplacements(this) {
                Ok(ok__) => {
                    core::ptr::write(numrepl, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::GetTextReplacement(this, 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();
            IDebugControl5_Impl::SetTextReplacement(this, 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();
            IDebugControl5_Impl::RemoveTextReplacements(this).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();
            IDebugControl5_Impl::OutputTextReplacements(this, 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 IDebugControl5_Impl::GetAssemblyOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::AddAssemblyOptions(this, 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();
            IDebugControl5_Impl::RemoveAssemblyOptions(this, 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();
            IDebugControl5_Impl::SetAssemblyOptions(this, 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 IDebugControl5_Impl::GetExpressionSyntax(this) {
                Ok(ok__) => {
                    core::ptr::write(flags, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::SetExpressionSyntax(this, 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();
            IDebugControl5_Impl::SetExpressionSyntaxByName(this, 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 IDebugControl5_Impl::GetNumberExpressionSyntaxes(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::GetExpressionSyntaxNames(this, 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 IDebugControl5_Impl::GetNumberEvents(this) {
                Ok(ok__) => {
                    core::ptr::write(events, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::GetEventIndexDescription(this, 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 IDebugControl5_Impl::GetCurrentEventIndex(this) {
                Ok(ok__) => {
                    core::ptr::write(index, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl5_Impl::SetNextEventIndex(this, core::mem::transmute_copy(&relation), core::mem::transmute_copy(&value)) {
                Ok(ok__) => {
                    core::ptr::write(nextindex, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::GetLogFileWide(this, 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();
            IDebugControl5_Impl::OpenLogFileWide(this, 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();
            IDebugControl5_Impl::InputWide(this, 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();
            IDebugControl5_Impl::ReturnInputWide(this, 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();
            IDebugControl5_Impl::OutputWide(this, 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();
            IDebugControl5_Impl::OutputVaListWide(this, 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();
            IDebugControl5_Impl::ControlledOutputWide(this, 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();
            IDebugControl5_Impl::ControlledOutputVaListWide(this, 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();
            IDebugControl5_Impl::OutputPromptWide(this, 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();
            IDebugControl5_Impl::OutputPromptVaListWide(this, 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();
            IDebugControl5_Impl::GetPromptTextWide(this, 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 IDebugControl5_Impl::AssembleWide(this, core::mem::transmute_copy(&offset), core::mem::transmute(&instr)) {
                Ok(ok__) => {
                    core::ptr::write(endoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::DisassembleWide(this, 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();
            IDebugControl5_Impl::GetProcessorTypeNamesWide(this, 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();
            IDebugControl5_Impl::GetTextMacroWide(this, 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();
            IDebugControl5_Impl::SetTextMacroWide(this, 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();
            IDebugControl5_Impl::EvaluateWide(this, 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();
            IDebugControl5_Impl::ExecuteWide(this, 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();
            IDebugControl5_Impl::ExecuteCommandFileWide(this, 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 IDebugControl5_Impl::GetBreakpointByIndex2(this, core::mem::transmute_copy(&index)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl5_Impl::GetBreakpointById2(this, core::mem::transmute_copy(&id)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl5_Impl::AddBreakpoint2(this, core::mem::transmute_copy(&r#type), core::mem::transmute_copy(&desiredid)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::RemoveBreakpoint2(this, 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 IDebugControl5_Impl::AddExtensionWide(this, core::mem::transmute(&path), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl5_Impl::GetExtensionByPathWide(this, core::mem::transmute(&path)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl5_Impl::CallExtensionWide(this, 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();
            IDebugControl5_Impl::GetExtensionFunctionWide(this, 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();
            IDebugControl5_Impl::GetEventFilterTextWide(this, 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();
            IDebugControl5_Impl::GetEventFilterCommandWide(this, 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();
            IDebugControl5_Impl::SetEventFilterCommandWide(this, 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();
            IDebugControl5_Impl::GetSpecificFilterArgumentWide(this, 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();
            IDebugControl5_Impl::SetSpecificFilterArgumentWide(this, 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();
            IDebugControl5_Impl::GetExceptionFilterSecondCommandWide(this, 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();
            IDebugControl5_Impl::SetExceptionFilterSecondCommandWide(this, 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();
            IDebugControl5_Impl::GetLastEventInformationWide(this, 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();
            IDebugControl5_Impl::GetTextReplacementWide(this, 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();
            IDebugControl5_Impl::SetTextReplacementWide(this, 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();
            IDebugControl5_Impl::SetExpressionSyntaxByNameWide(this, 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();
            IDebugControl5_Impl::GetExpressionSyntaxNamesWide(this, 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();
            IDebugControl5_Impl::GetEventIndexDescriptionWide(this, 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();
            IDebugControl5_Impl::GetLogFile2(this, 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();
            IDebugControl5_Impl::OpenLogFile2(this, 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();
            IDebugControl5_Impl::GetLogFile2Wide(this, 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();
            IDebugControl5_Impl::OpenLogFile2Wide(this, 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();
            IDebugControl5_Impl::GetSystemVersionValues(this, 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();
            IDebugControl5_Impl::GetSystemVersionString(this, 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();
            IDebugControl5_Impl::GetSystemVersionStringWide(this, 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();
            IDebugControl5_Impl::GetContextStackTrace(this, 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();
            IDebugControl5_Impl::OutputContextStackTrace(this, 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();
            IDebugControl5_Impl::GetStoredEventInformation(this, 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();
            IDebugControl5_Impl::GetManagedStatus(this, 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();
            IDebugControl5_Impl::GetManagedStatusWide(this, 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();
            IDebugControl5_Impl::ResetManagedStatus(this, 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();
            IDebugControl5_Impl::GetStackTraceEx(this, 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();
            IDebugControl5_Impl::OutputStackTraceEx(this, 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();
            IDebugControl5_Impl::GetContextStackTraceEx(this, 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();
            IDebugControl5_Impl::OutputContextStackTraceEx(this, 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 IDebugControl5_Impl::GetBreakpointByGuid(this, core::mem::transmute_copy(&guid)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
#[cfg(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: 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: 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(feature = "Win32_System_Kernel")]
impl windows_core::RuntimeName for IDebugControl6 {}
#[cfg(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();
            IDebugControl6_Impl::GetInterrupt(this).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();
            IDebugControl6_Impl::SetInterrupt(this, 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 IDebugControl6_Impl::GetInterruptTimeout(this) {
                Ok(ok__) => {
                    core::ptr::write(seconds, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::SetInterruptTimeout(this, 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();
            IDebugControl6_Impl::GetLogFile(this, 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();
            IDebugControl6_Impl::OpenLogFile(this, 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();
            IDebugControl6_Impl::CloseLogFile(this).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 IDebugControl6_Impl::GetLogMask(this) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::SetLogMask(this, 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();
            IDebugControl6_Impl::Input(this, 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();
            IDebugControl6_Impl::ReturnInput(this, 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();
            IDebugControl6_Impl::Output(this, 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();
            IDebugControl6_Impl::OutputVaList(this, 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();
            IDebugControl6_Impl::ControlledOutput(this, 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();
            IDebugControl6_Impl::ControlledOutputVaList(this, 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();
            IDebugControl6_Impl::OutputPrompt(this, 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();
            IDebugControl6_Impl::OutputPromptVaList(this, 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();
            IDebugControl6_Impl::GetPromptText(this, 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();
            IDebugControl6_Impl::OutputCurrentState(this, 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();
            IDebugControl6_Impl::OutputVersionInformation(this, 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 IDebugControl6_Impl::GetNotifyEventHandle(this) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::SetNotifyEventHandle(this, 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 IDebugControl6_Impl::Assemble(this, core::mem::transmute_copy(&offset), core::mem::transmute(&instr)) {
                Ok(ok__) => {
                    core::ptr::write(endoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::Disassemble(this, 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 IDebugControl6_Impl::GetDisassembleEffectiveOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl6_Impl::OutputDisassembly(this, core::mem::transmute_copy(&outputcontrol), core::mem::transmute_copy(&offset), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(endoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::OutputDisassemblyLines(this, 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 IDebugControl6_Impl::GetNearInstruction(this, core::mem::transmute_copy(&offset), core::mem::transmute_copy(&delta)) {
                Ok(ok__) => {
                    core::ptr::write(nearoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::GetStackTrace(this, 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 IDebugControl6_Impl::GetReturnOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::OutputStackTrace(this, 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();
            IDebugControl6_Impl::GetDebuggeeType(this, 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 IDebugControl6_Impl::GetActualProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl6_Impl::GetExecutingProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl6_Impl::GetNumberPossibleExecutingProcessorTypes(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::GetPossibleExecutingProcessorTypes(this, 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 IDebugControl6_Impl::GetNumberProcessors(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::GetSystemVersion(this, 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 IDebugControl6_Impl::GetPageSize(this) {
                Ok(ok__) => {
                    core::ptr::write(size, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::IsPointer64Bit(this).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();
            IDebugControl6_Impl::ReadBugCheckData(this, 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 IDebugControl6_Impl::GetNumberSupportedProcessorTypes(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::GetSupportedProcessorTypes(this, 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();
            IDebugControl6_Impl::GetProcessorTypeNames(this, 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 IDebugControl6_Impl::GetEffectiveProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::SetEffectiveProcessorType(this, 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 IDebugControl6_Impl::GetExecutionStatus(this) {
                Ok(ok__) => {
                    core::ptr::write(status, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::SetExecutionStatus(this, 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 IDebugControl6_Impl::GetCodeLevel(this) {
                Ok(ok__) => {
                    core::ptr::write(level, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::SetCodeLevel(this, 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 IDebugControl6_Impl::GetEngineOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::AddEngineOptions(this, 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();
            IDebugControl6_Impl::RemoveEngineOptions(this, 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();
            IDebugControl6_Impl::SetEngineOptions(this, 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();
            IDebugControl6_Impl::GetSystemErrorControl(this, 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();
            IDebugControl6_Impl::SetSystemErrorControl(this, 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();
            IDebugControl6_Impl::GetTextMacro(this, 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();
            IDebugControl6_Impl::SetTextMacro(this, 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 IDebugControl6_Impl::GetRadix(this) {
                Ok(ok__) => {
                    core::ptr::write(radix, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::SetRadix(this, 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();
            IDebugControl6_Impl::Evaluate(this, 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();
            IDebugControl6_Impl::CoerceValue(this, 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();
            IDebugControl6_Impl::CoerceValues(this, 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();
            IDebugControl6_Impl::Execute(this, 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();
            IDebugControl6_Impl::ExecuteCommandFile(this, 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 IDebugControl6_Impl::GetNumberBreakpoints(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl6_Impl::GetBreakpointByIndex(this, core::mem::transmute_copy(&index)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl6_Impl::GetBreakpointById(this, core::mem::transmute_copy(&id)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::GetBreakpointParameters(this, 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 IDebugControl6_Impl::AddBreakpoint(this, core::mem::transmute_copy(&r#type), core::mem::transmute_copy(&desiredid)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::RemoveBreakpoint(this, 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 IDebugControl6_Impl::AddExtension(this, core::mem::transmute(&path), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::RemoveExtension(this, 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 IDebugControl6_Impl::GetExtensionByPath(this, core::mem::transmute(&path)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::CallExtension(this, 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();
            IDebugControl6_Impl::GetExtensionFunction(this, 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();
            IDebugControl6_Impl::GetWindbgExtensionApis32(this, 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();
            IDebugControl6_Impl::GetWindbgExtensionApis64(this, 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();
            IDebugControl6_Impl::GetNumberEventFilters(this, 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();
            IDebugControl6_Impl::GetEventFilterText(this, 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();
            IDebugControl6_Impl::GetEventFilterCommand(this, 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();
            IDebugControl6_Impl::SetEventFilterCommand(this, 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();
            IDebugControl6_Impl::GetSpecificFilterParameters(this, 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();
            IDebugControl6_Impl::SetSpecificFilterParameters(this, 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();
            IDebugControl6_Impl::GetSpecificFilterArgument(this, 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();
            IDebugControl6_Impl::SetSpecificFilterArgument(this, 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();
            IDebugControl6_Impl::GetExceptionFilterParameters(this, 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();
            IDebugControl6_Impl::SetExceptionFilterParameters(this, 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();
            IDebugControl6_Impl::GetExceptionFilterSecondCommand(this, 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();
            IDebugControl6_Impl::SetExceptionFilterSecondCommand(this, 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();
            IDebugControl6_Impl::WaitForEvent(this, 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();
            IDebugControl6_Impl::GetLastEventInformation(this, 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 IDebugControl6_Impl::GetCurrentTimeDate(this) {
                Ok(ok__) => {
                    core::ptr::write(timedate, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl6_Impl::GetCurrentSystemUpTime(this) {
                Ok(ok__) => {
                    core::ptr::write(uptime, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl6_Impl::GetDumpFormatFlags(this) {
                Ok(ok__) => {
                    core::ptr::write(formatflags, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl6_Impl::GetNumberTextReplacements(this) {
                Ok(ok__) => {
                    core::ptr::write(numrepl, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::GetTextReplacement(this, 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();
            IDebugControl6_Impl::SetTextReplacement(this, 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();
            IDebugControl6_Impl::RemoveTextReplacements(this).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();
            IDebugControl6_Impl::OutputTextReplacements(this, 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 IDebugControl6_Impl::GetAssemblyOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::AddAssemblyOptions(this, 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();
            IDebugControl6_Impl::RemoveAssemblyOptions(this, 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();
            IDebugControl6_Impl::SetAssemblyOptions(this, 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 IDebugControl6_Impl::GetExpressionSyntax(this) {
                Ok(ok__) => {
                    core::ptr::write(flags, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::SetExpressionSyntax(this, 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();
            IDebugControl6_Impl::SetExpressionSyntaxByName(this, 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 IDebugControl6_Impl::GetNumberExpressionSyntaxes(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::GetExpressionSyntaxNames(this, 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 IDebugControl6_Impl::GetNumberEvents(this) {
                Ok(ok__) => {
                    core::ptr::write(events, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::GetEventIndexDescription(this, 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 IDebugControl6_Impl::GetCurrentEventIndex(this) {
                Ok(ok__) => {
                    core::ptr::write(index, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl6_Impl::SetNextEventIndex(this, core::mem::transmute_copy(&relation), core::mem::transmute_copy(&value)) {
                Ok(ok__) => {
                    core::ptr::write(nextindex, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::GetLogFileWide(this, 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();
            IDebugControl6_Impl::OpenLogFileWide(this, 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();
            IDebugControl6_Impl::InputWide(this, 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();
            IDebugControl6_Impl::ReturnInputWide(this, 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();
            IDebugControl6_Impl::OutputWide(this, 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();
            IDebugControl6_Impl::OutputVaListWide(this, 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();
            IDebugControl6_Impl::ControlledOutputWide(this, 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();
            IDebugControl6_Impl::ControlledOutputVaListWide(this, 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();
            IDebugControl6_Impl::OutputPromptWide(this, 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();
            IDebugControl6_Impl::OutputPromptVaListWide(this, 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();
            IDebugControl6_Impl::GetPromptTextWide(this, 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 IDebugControl6_Impl::AssembleWide(this, core::mem::transmute_copy(&offset), core::mem::transmute(&instr)) {
                Ok(ok__) => {
                    core::ptr::write(endoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::DisassembleWide(this, 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();
            IDebugControl6_Impl::GetProcessorTypeNamesWide(this, 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();
            IDebugControl6_Impl::GetTextMacroWide(this, 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();
            IDebugControl6_Impl::SetTextMacroWide(this, 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();
            IDebugControl6_Impl::EvaluateWide(this, 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();
            IDebugControl6_Impl::ExecuteWide(this, 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();
            IDebugControl6_Impl::ExecuteCommandFileWide(this, 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 IDebugControl6_Impl::GetBreakpointByIndex2(this, core::mem::transmute_copy(&index)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl6_Impl::GetBreakpointById2(this, core::mem::transmute_copy(&id)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl6_Impl::AddBreakpoint2(this, core::mem::transmute_copy(&r#type), core::mem::transmute_copy(&desiredid)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::RemoveBreakpoint2(this, 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 IDebugControl6_Impl::AddExtensionWide(this, core::mem::transmute(&path), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl6_Impl::GetExtensionByPathWide(this, core::mem::transmute(&path)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::CallExtensionWide(this, 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();
            IDebugControl6_Impl::GetExtensionFunctionWide(this, 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();
            IDebugControl6_Impl::GetEventFilterTextWide(this, 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();
            IDebugControl6_Impl::GetEventFilterCommandWide(this, 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();
            IDebugControl6_Impl::SetEventFilterCommandWide(this, 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();
            IDebugControl6_Impl::GetSpecificFilterArgumentWide(this, 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();
            IDebugControl6_Impl::SetSpecificFilterArgumentWide(this, 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();
            IDebugControl6_Impl::GetExceptionFilterSecondCommandWide(this, 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();
            IDebugControl6_Impl::SetExceptionFilterSecondCommandWide(this, 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();
            IDebugControl6_Impl::GetLastEventInformationWide(this, 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();
            IDebugControl6_Impl::GetTextReplacementWide(this, 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();
            IDebugControl6_Impl::SetTextReplacementWide(this, 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();
            IDebugControl6_Impl::SetExpressionSyntaxByNameWide(this, 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();
            IDebugControl6_Impl::GetExpressionSyntaxNamesWide(this, 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();
            IDebugControl6_Impl::GetEventIndexDescriptionWide(this, 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();
            IDebugControl6_Impl::GetLogFile2(this, 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();
            IDebugControl6_Impl::OpenLogFile2(this, 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();
            IDebugControl6_Impl::GetLogFile2Wide(this, 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();
            IDebugControl6_Impl::OpenLogFile2Wide(this, 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();
            IDebugControl6_Impl::GetSystemVersionValues(this, 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();
            IDebugControl6_Impl::GetSystemVersionString(this, 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();
            IDebugControl6_Impl::GetSystemVersionStringWide(this, 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();
            IDebugControl6_Impl::GetContextStackTrace(this, 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();
            IDebugControl6_Impl::OutputContextStackTrace(this, 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();
            IDebugControl6_Impl::GetStoredEventInformation(this, 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();
            IDebugControl6_Impl::GetManagedStatus(this, 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();
            IDebugControl6_Impl::GetManagedStatusWide(this, 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();
            IDebugControl6_Impl::ResetManagedStatus(this, 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();
            IDebugControl6_Impl::GetStackTraceEx(this, 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();
            IDebugControl6_Impl::OutputStackTraceEx(this, 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();
            IDebugControl6_Impl::GetContextStackTraceEx(this, 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();
            IDebugControl6_Impl::OutputContextStackTraceEx(this, 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 IDebugControl6_Impl::GetBreakpointByGuid(this, core::mem::transmute_copy(&guid)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl6_Impl::GetExecutionStatusEx(this) {
                Ok(ok__) => {
                    core::ptr::write(status, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl6_Impl::GetSynchronizationStatus(this, 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::Interface>::IID
    }
}
#[cfg(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: 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: 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(feature = "Win32_System_Kernel")]
impl windows_core::RuntimeName for IDebugControl7 {}
#[cfg(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();
            IDebugControl7_Impl::GetInterrupt(this).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();
            IDebugControl7_Impl::SetInterrupt(this, 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 IDebugControl7_Impl::GetInterruptTimeout(this) {
                Ok(ok__) => {
                    core::ptr::write(seconds, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::SetInterruptTimeout(this, 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();
            IDebugControl7_Impl::GetLogFile(this, 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();
            IDebugControl7_Impl::OpenLogFile(this, 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();
            IDebugControl7_Impl::CloseLogFile(this).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 IDebugControl7_Impl::GetLogMask(this) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::SetLogMask(this, 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();
            IDebugControl7_Impl::Input(this, 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();
            IDebugControl7_Impl::ReturnInput(this, 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();
            IDebugControl7_Impl::Output(this, 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();
            IDebugControl7_Impl::OutputVaList(this, 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();
            IDebugControl7_Impl::ControlledOutput(this, 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();
            IDebugControl7_Impl::ControlledOutputVaList(this, 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();
            IDebugControl7_Impl::OutputPrompt(this, 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();
            IDebugControl7_Impl::OutputPromptVaList(this, 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();
            IDebugControl7_Impl::GetPromptText(this, 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();
            IDebugControl7_Impl::OutputCurrentState(this, 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();
            IDebugControl7_Impl::OutputVersionInformation(this, 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 IDebugControl7_Impl::GetNotifyEventHandle(this) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::SetNotifyEventHandle(this, 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 IDebugControl7_Impl::Assemble(this, core::mem::transmute_copy(&offset), core::mem::transmute(&instr)) {
                Ok(ok__) => {
                    core::ptr::write(endoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::Disassemble(this, 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 IDebugControl7_Impl::GetDisassembleEffectiveOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl7_Impl::OutputDisassembly(this, core::mem::transmute_copy(&outputcontrol), core::mem::transmute_copy(&offset), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(endoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::OutputDisassemblyLines(this, 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 IDebugControl7_Impl::GetNearInstruction(this, core::mem::transmute_copy(&offset), core::mem::transmute_copy(&delta)) {
                Ok(ok__) => {
                    core::ptr::write(nearoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::GetStackTrace(this, 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 IDebugControl7_Impl::GetReturnOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::OutputStackTrace(this, 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();
            IDebugControl7_Impl::GetDebuggeeType(this, 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 IDebugControl7_Impl::GetActualProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl7_Impl::GetExecutingProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl7_Impl::GetNumberPossibleExecutingProcessorTypes(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::GetPossibleExecutingProcessorTypes(this, 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 IDebugControl7_Impl::GetNumberProcessors(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::GetSystemVersion(this, 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 IDebugControl7_Impl::GetPageSize(this) {
                Ok(ok__) => {
                    core::ptr::write(size, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::IsPointer64Bit(this).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();
            IDebugControl7_Impl::ReadBugCheckData(this, 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 IDebugControl7_Impl::GetNumberSupportedProcessorTypes(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::GetSupportedProcessorTypes(this, 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();
            IDebugControl7_Impl::GetProcessorTypeNames(this, 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 IDebugControl7_Impl::GetEffectiveProcessorType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::SetEffectiveProcessorType(this, 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 IDebugControl7_Impl::GetExecutionStatus(this) {
                Ok(ok__) => {
                    core::ptr::write(status, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::SetExecutionStatus(this, 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 IDebugControl7_Impl::GetCodeLevel(this) {
                Ok(ok__) => {
                    core::ptr::write(level, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::SetCodeLevel(this, 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 IDebugControl7_Impl::GetEngineOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::AddEngineOptions(this, 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();
            IDebugControl7_Impl::RemoveEngineOptions(this, 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();
            IDebugControl7_Impl::SetEngineOptions(this, 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();
            IDebugControl7_Impl::GetSystemErrorControl(this, 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();
            IDebugControl7_Impl::SetSystemErrorControl(this, 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();
            IDebugControl7_Impl::GetTextMacro(this, 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();
            IDebugControl7_Impl::SetTextMacro(this, 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 IDebugControl7_Impl::GetRadix(this) {
                Ok(ok__) => {
                    core::ptr::write(radix, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::SetRadix(this, 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();
            IDebugControl7_Impl::Evaluate(this, 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();
            IDebugControl7_Impl::CoerceValue(this, 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();
            IDebugControl7_Impl::CoerceValues(this, 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();
            IDebugControl7_Impl::Execute(this, 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();
            IDebugControl7_Impl::ExecuteCommandFile(this, 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 IDebugControl7_Impl::GetNumberBreakpoints(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl7_Impl::GetBreakpointByIndex(this, core::mem::transmute_copy(&index)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl7_Impl::GetBreakpointById(this, core::mem::transmute_copy(&id)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::GetBreakpointParameters(this, 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 IDebugControl7_Impl::AddBreakpoint(this, core::mem::transmute_copy(&r#type), core::mem::transmute_copy(&desiredid)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::RemoveBreakpoint(this, 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 IDebugControl7_Impl::AddExtension(this, core::mem::transmute(&path), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::RemoveExtension(this, 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 IDebugControl7_Impl::GetExtensionByPath(this, core::mem::transmute(&path)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::CallExtension(this, 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();
            IDebugControl7_Impl::GetExtensionFunction(this, 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();
            IDebugControl7_Impl::GetWindbgExtensionApis32(this, 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();
            IDebugControl7_Impl::GetWindbgExtensionApis64(this, 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();
            IDebugControl7_Impl::GetNumberEventFilters(this, 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();
            IDebugControl7_Impl::GetEventFilterText(this, 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();
            IDebugControl7_Impl::GetEventFilterCommand(this, 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();
            IDebugControl7_Impl::SetEventFilterCommand(this, 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();
            IDebugControl7_Impl::GetSpecificFilterParameters(this, 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();
            IDebugControl7_Impl::SetSpecificFilterParameters(this, 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();
            IDebugControl7_Impl::GetSpecificFilterArgument(this, 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();
            IDebugControl7_Impl::SetSpecificFilterArgument(this, 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();
            IDebugControl7_Impl::GetExceptionFilterParameters(this, 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();
            IDebugControl7_Impl::SetExceptionFilterParameters(this, 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();
            IDebugControl7_Impl::GetExceptionFilterSecondCommand(this, 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();
            IDebugControl7_Impl::SetExceptionFilterSecondCommand(this, 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();
            IDebugControl7_Impl::WaitForEvent(this, 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();
            IDebugControl7_Impl::GetLastEventInformation(this, 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 IDebugControl7_Impl::GetCurrentTimeDate(this) {
                Ok(ok__) => {
                    core::ptr::write(timedate, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl7_Impl::GetCurrentSystemUpTime(this) {
                Ok(ok__) => {
                    core::ptr::write(uptime, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl7_Impl::GetDumpFormatFlags(this) {
                Ok(ok__) => {
                    core::ptr::write(formatflags, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl7_Impl::GetNumberTextReplacements(this) {
                Ok(ok__) => {
                    core::ptr::write(numrepl, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::GetTextReplacement(this, 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();
            IDebugControl7_Impl::SetTextReplacement(this, 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();
            IDebugControl7_Impl::RemoveTextReplacements(this).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();
            IDebugControl7_Impl::OutputTextReplacements(this, 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 IDebugControl7_Impl::GetAssemblyOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::AddAssemblyOptions(this, 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();
            IDebugControl7_Impl::RemoveAssemblyOptions(this, 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();
            IDebugControl7_Impl::SetAssemblyOptions(this, 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 IDebugControl7_Impl::GetExpressionSyntax(this) {
                Ok(ok__) => {
                    core::ptr::write(flags, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::SetExpressionSyntax(this, 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();
            IDebugControl7_Impl::SetExpressionSyntaxByName(this, 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 IDebugControl7_Impl::GetNumberExpressionSyntaxes(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::GetExpressionSyntaxNames(this, 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 IDebugControl7_Impl::GetNumberEvents(this) {
                Ok(ok__) => {
                    core::ptr::write(events, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::GetEventIndexDescription(this, 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 IDebugControl7_Impl::GetCurrentEventIndex(this) {
                Ok(ok__) => {
                    core::ptr::write(index, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl7_Impl::SetNextEventIndex(this, core::mem::transmute_copy(&relation), core::mem::transmute_copy(&value)) {
                Ok(ok__) => {
                    core::ptr::write(nextindex, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::GetLogFileWide(this, 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();
            IDebugControl7_Impl::OpenLogFileWide(this, 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();
            IDebugControl7_Impl::InputWide(this, 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();
            IDebugControl7_Impl::ReturnInputWide(this, 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();
            IDebugControl7_Impl::OutputWide(this, 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();
            IDebugControl7_Impl::OutputVaListWide(this, 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();
            IDebugControl7_Impl::ControlledOutputWide(this, 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();
            IDebugControl7_Impl::ControlledOutputVaListWide(this, 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();
            IDebugControl7_Impl::OutputPromptWide(this, 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();
            IDebugControl7_Impl::OutputPromptVaListWide(this, 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();
            IDebugControl7_Impl::GetPromptTextWide(this, 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 IDebugControl7_Impl::AssembleWide(this, core::mem::transmute_copy(&offset), core::mem::transmute(&instr)) {
                Ok(ok__) => {
                    core::ptr::write(endoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::DisassembleWide(this, 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();
            IDebugControl7_Impl::GetProcessorTypeNamesWide(this, 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();
            IDebugControl7_Impl::GetTextMacroWide(this, 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();
            IDebugControl7_Impl::SetTextMacroWide(this, 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();
            IDebugControl7_Impl::EvaluateWide(this, 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();
            IDebugControl7_Impl::ExecuteWide(this, 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();
            IDebugControl7_Impl::ExecuteCommandFileWide(this, 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 IDebugControl7_Impl::GetBreakpointByIndex2(this, core::mem::transmute_copy(&index)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl7_Impl::GetBreakpointById2(this, core::mem::transmute_copy(&id)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl7_Impl::AddBreakpoint2(this, core::mem::transmute_copy(&r#type), core::mem::transmute_copy(&desiredid)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::RemoveBreakpoint2(this, 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 IDebugControl7_Impl::AddExtensionWide(this, core::mem::transmute(&path), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl7_Impl::GetExtensionByPathWide(this, core::mem::transmute(&path)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::CallExtensionWide(this, 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();
            IDebugControl7_Impl::GetExtensionFunctionWide(this, 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();
            IDebugControl7_Impl::GetEventFilterTextWide(this, 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();
            IDebugControl7_Impl::GetEventFilterCommandWide(this, 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();
            IDebugControl7_Impl::SetEventFilterCommandWide(this, 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();
            IDebugControl7_Impl::GetSpecificFilterArgumentWide(this, 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();
            IDebugControl7_Impl::SetSpecificFilterArgumentWide(this, 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();
            IDebugControl7_Impl::GetExceptionFilterSecondCommandWide(this, 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();
            IDebugControl7_Impl::SetExceptionFilterSecondCommandWide(this, 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();
            IDebugControl7_Impl::GetLastEventInformationWide(this, 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();
            IDebugControl7_Impl::GetTextReplacementWide(this, 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();
            IDebugControl7_Impl::SetTextReplacementWide(this, 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();
            IDebugControl7_Impl::SetExpressionSyntaxByNameWide(this, 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();
            IDebugControl7_Impl::GetExpressionSyntaxNamesWide(this, 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();
            IDebugControl7_Impl::GetEventIndexDescriptionWide(this, 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();
            IDebugControl7_Impl::GetLogFile2(this, 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();
            IDebugControl7_Impl::OpenLogFile2(this, 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();
            IDebugControl7_Impl::GetLogFile2Wide(this, 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();
            IDebugControl7_Impl::OpenLogFile2Wide(this, 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();
            IDebugControl7_Impl::GetSystemVersionValues(this, 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();
            IDebugControl7_Impl::GetSystemVersionString(this, 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();
            IDebugControl7_Impl::GetSystemVersionStringWide(this, 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();
            IDebugControl7_Impl::GetContextStackTrace(this, 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();
            IDebugControl7_Impl::OutputContextStackTrace(this, 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();
            IDebugControl7_Impl::GetStoredEventInformation(this, 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();
            IDebugControl7_Impl::GetManagedStatus(this, 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();
            IDebugControl7_Impl::GetManagedStatusWide(this, 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();
            IDebugControl7_Impl::ResetManagedStatus(this, 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();
            IDebugControl7_Impl::GetStackTraceEx(this, 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();
            IDebugControl7_Impl::OutputStackTraceEx(this, 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();
            IDebugControl7_Impl::GetContextStackTraceEx(this, 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();
            IDebugControl7_Impl::OutputContextStackTraceEx(this, 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 IDebugControl7_Impl::GetBreakpointByGuid(this, core::mem::transmute_copy(&guid)) {
                Ok(ok__) => {
                    core::ptr::write(bp, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugControl7_Impl::GetExecutionStatusEx(this) {
                Ok(ok__) => {
                    core::ptr::write(status, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugControl7_Impl::GetSynchronizationStatus(this, 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();
            IDebugControl7_Impl::GetDebuggeeType2(this, 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::Interface>::IID
    }
}
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();
            IDebugDataSpaces_Impl::ReadVirtual(this, 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();
            IDebugDataSpaces_Impl::WriteVirtual(this, 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 IDebugDataSpaces_Impl::SearchVirtual(this, 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)) {
                Ok(ok__) => {
                    core::ptr::write(matchoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugDataSpaces_Impl::ReadVirtualUncached(this, 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();
            IDebugDataSpaces_Impl::WriteVirtualUncached(this, 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();
            IDebugDataSpaces_Impl::ReadPointersVirtual(this, 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();
            IDebugDataSpaces_Impl::WritePointersVirtual(this, 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();
            IDebugDataSpaces_Impl::ReadPhysical(this, 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();
            IDebugDataSpaces_Impl::WritePhysical(this, 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();
            IDebugDataSpaces_Impl::ReadControl(this, 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();
            IDebugDataSpaces_Impl::WriteControl(this, 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();
            IDebugDataSpaces_Impl::ReadIo(this, 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();
            IDebugDataSpaces_Impl::WriteIo(this, 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 IDebugDataSpaces_Impl::ReadMsr(this, core::mem::transmute_copy(&msr)) {
                Ok(ok__) => {
                    core::ptr::write(value, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugDataSpaces_Impl::WriteMsr(this, 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();
            IDebugDataSpaces_Impl::ReadBusData(this, 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();
            IDebugDataSpaces_Impl::WriteBusData(this, 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();
            IDebugDataSpaces_Impl::CheckLowMemory(this).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();
            IDebugDataSpaces_Impl::ReadDebuggerData(this, 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();
            IDebugDataSpaces_Impl::ReadProcessorSystemData(this, 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::Interface>::IID
    }
}
#[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();
            IDebugDataSpaces2_Impl::ReadVirtual(this, 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();
            IDebugDataSpaces2_Impl::WriteVirtual(this, 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 IDebugDataSpaces2_Impl::SearchVirtual(this, 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)) {
                Ok(ok__) => {
                    core::ptr::write(matchoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugDataSpaces2_Impl::ReadVirtualUncached(this, 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();
            IDebugDataSpaces2_Impl::WriteVirtualUncached(this, 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();
            IDebugDataSpaces2_Impl::ReadPointersVirtual(this, 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();
            IDebugDataSpaces2_Impl::WritePointersVirtual(this, 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();
            IDebugDataSpaces2_Impl::ReadPhysical(this, 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();
            IDebugDataSpaces2_Impl::WritePhysical(this, 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();
            IDebugDataSpaces2_Impl::ReadControl(this, 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();
            IDebugDataSpaces2_Impl::WriteControl(this, 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();
            IDebugDataSpaces2_Impl::ReadIo(this, 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();
            IDebugDataSpaces2_Impl::WriteIo(this, 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 IDebugDataSpaces2_Impl::ReadMsr(this, core::mem::transmute_copy(&msr)) {
                Ok(ok__) => {
                    core::ptr::write(value, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugDataSpaces2_Impl::WriteMsr(this, 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();
            IDebugDataSpaces2_Impl::ReadBusData(this, 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();
            IDebugDataSpaces2_Impl::WriteBusData(this, 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();
            IDebugDataSpaces2_Impl::CheckLowMemory(this).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();
            IDebugDataSpaces2_Impl::ReadDebuggerData(this, 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();
            IDebugDataSpaces2_Impl::ReadProcessorSystemData(this, 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 IDebugDataSpaces2_Impl::VirtualToPhysical(this, core::mem::transmute_copy(&r#virtual)) {
                Ok(ok__) => {
                    core::ptr::write(physical, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugDataSpaces2_Impl::GetVirtualTranslationPhysicalOffsets(this, 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();
            IDebugDataSpaces2_Impl::ReadHandleData(this, 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();
            IDebugDataSpaces2_Impl::FillVirtual(this, 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();
            IDebugDataSpaces2_Impl::FillPhysical(this, 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();
            IDebugDataSpaces2_Impl::QueryVirtual(this, 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::Interface>::IID
    }
}
#[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();
            IDebugDataSpaces3_Impl::ReadVirtual(this, 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();
            IDebugDataSpaces3_Impl::WriteVirtual(this, 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 IDebugDataSpaces3_Impl::SearchVirtual(this, 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)) {
                Ok(ok__) => {
                    core::ptr::write(matchoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugDataSpaces3_Impl::ReadVirtualUncached(this, 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();
            IDebugDataSpaces3_Impl::WriteVirtualUncached(this, 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();
            IDebugDataSpaces3_Impl::ReadPointersVirtual(this, 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();
            IDebugDataSpaces3_Impl::WritePointersVirtual(this, 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();
            IDebugDataSpaces3_Impl::ReadPhysical(this, 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();
            IDebugDataSpaces3_Impl::WritePhysical(this, 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();
            IDebugDataSpaces3_Impl::ReadControl(this, 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();
            IDebugDataSpaces3_Impl::WriteControl(this, 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();
            IDebugDataSpaces3_Impl::ReadIo(this, 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();
            IDebugDataSpaces3_Impl::WriteIo(this, 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 IDebugDataSpaces3_Impl::ReadMsr(this, core::mem::transmute_copy(&msr)) {
                Ok(ok__) => {
                    core::ptr::write(value, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugDataSpaces3_Impl::WriteMsr(this, 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();
            IDebugDataSpaces3_Impl::ReadBusData(this, 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();
            IDebugDataSpaces3_Impl::WriteBusData(this, 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();
            IDebugDataSpaces3_Impl::CheckLowMemory(this).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();
            IDebugDataSpaces3_Impl::ReadDebuggerData(this, 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();
            IDebugDataSpaces3_Impl::ReadProcessorSystemData(this, 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 IDebugDataSpaces3_Impl::VirtualToPhysical(this, core::mem::transmute_copy(&r#virtual)) {
                Ok(ok__) => {
                    core::ptr::write(physical, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugDataSpaces3_Impl::GetVirtualTranslationPhysicalOffsets(this, 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();
            IDebugDataSpaces3_Impl::ReadHandleData(this, 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();
            IDebugDataSpaces3_Impl::FillVirtual(this, 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();
            IDebugDataSpaces3_Impl::FillPhysical(this, 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();
            IDebugDataSpaces3_Impl::QueryVirtual(this, 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();
            IDebugDataSpaces3_Impl::ReadImageNtHeaders(this, 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();
            IDebugDataSpaces3_Impl::ReadTagged(this, 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 IDebugDataSpaces3_Impl::StartEnumTagged(this) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugDataSpaces3_Impl::GetNextTagged(this, 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();
            IDebugDataSpaces3_Impl::EndEnumTagged(this, 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::Interface>::IID
    }
}
#[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();
            IDebugDataSpaces4_Impl::ReadVirtual(this, 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();
            IDebugDataSpaces4_Impl::WriteVirtual(this, 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 IDebugDataSpaces4_Impl::SearchVirtual(this, 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)) {
                Ok(ok__) => {
                    core::ptr::write(matchoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugDataSpaces4_Impl::ReadVirtualUncached(this, 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();
            IDebugDataSpaces4_Impl::WriteVirtualUncached(this, 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();
            IDebugDataSpaces4_Impl::ReadPointersVirtual(this, 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();
            IDebugDataSpaces4_Impl::WritePointersVirtual(this, 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();
            IDebugDataSpaces4_Impl::ReadPhysical(this, 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();
            IDebugDataSpaces4_Impl::WritePhysical(this, 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();
            IDebugDataSpaces4_Impl::ReadControl(this, 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();
            IDebugDataSpaces4_Impl::WriteControl(this, 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();
            IDebugDataSpaces4_Impl::ReadIo(this, 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();
            IDebugDataSpaces4_Impl::WriteIo(this, 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 IDebugDataSpaces4_Impl::ReadMsr(this, core::mem::transmute_copy(&msr)) {
                Ok(ok__) => {
                    core::ptr::write(value, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugDataSpaces4_Impl::WriteMsr(this, 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();
            IDebugDataSpaces4_Impl::ReadBusData(this, 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();
            IDebugDataSpaces4_Impl::WriteBusData(this, 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();
            IDebugDataSpaces4_Impl::CheckLowMemory(this).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();
            IDebugDataSpaces4_Impl::ReadDebuggerData(this, 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();
            IDebugDataSpaces4_Impl::ReadProcessorSystemData(this, 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 IDebugDataSpaces4_Impl::VirtualToPhysical(this, core::mem::transmute_copy(&r#virtual)) {
                Ok(ok__) => {
                    core::ptr::write(physical, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugDataSpaces4_Impl::GetVirtualTranslationPhysicalOffsets(this, 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();
            IDebugDataSpaces4_Impl::ReadHandleData(this, 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();
            IDebugDataSpaces4_Impl::FillVirtual(this, 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();
            IDebugDataSpaces4_Impl::FillPhysical(this, 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();
            IDebugDataSpaces4_Impl::QueryVirtual(this, 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();
            IDebugDataSpaces4_Impl::ReadImageNtHeaders(this, 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();
            IDebugDataSpaces4_Impl::ReadTagged(this, 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 IDebugDataSpaces4_Impl::StartEnumTagged(this) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugDataSpaces4_Impl::GetNextTagged(this, 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();
            IDebugDataSpaces4_Impl::EndEnumTagged(this, 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();
            IDebugDataSpaces4_Impl::GetOffsetInformation(this, 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 IDebugDataSpaces4_Impl::GetNextDifferentlyValidOffsetVirtual(this, core::mem::transmute_copy(&offset)) {
                Ok(ok__) => {
                    core::ptr::write(nextoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugDataSpaces4_Impl::GetValidRegionVirtual(this, 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 IDebugDataSpaces4_Impl::SearchVirtual2(this, 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)) {
                Ok(ok__) => {
                    core::ptr::write(matchoffset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugDataSpaces4_Impl::ReadMultiByteStringVirtual(this, 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();
            IDebugDataSpaces4_Impl::ReadMultiByteStringVirtualWide(this, 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();
            IDebugDataSpaces4_Impl::ReadUnicodeStringVirtual(this, 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();
            IDebugDataSpaces4_Impl::ReadUnicodeStringVirtualWide(this, 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();
            IDebugDataSpaces4_Impl::ReadPhysical2(this, 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();
            IDebugDataSpaces4_Impl::WritePhysical2(this, 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::Interface>::IID
    }
}
pub trait IDebugEventCallbacks_Impl: Sized {
    fn GetInterestMask(&self) -> windows_core::Result<u32>;
    fn Breakpoint(&self, bp: 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<()>;
}
impl windows_core::RuntimeName for IDebugEventCallbacks {}
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 IDebugEventCallbacks_Impl::GetInterestMask(this) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugEventCallbacks_Impl::Breakpoint(this, 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();
            IDebugEventCallbacks_Impl::Exception(this, 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();
            IDebugEventCallbacks_Impl::CreateThread(this, 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();
            IDebugEventCallbacks_Impl::ExitThread(this, 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();
            IDebugEventCallbacks_Impl::CreateProcessA(this, 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();
            IDebugEventCallbacks_Impl::ExitProcess(this, 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();
            IDebugEventCallbacks_Impl::LoadModule(this, 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();
            IDebugEventCallbacks_Impl::UnloadModule(this, 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();
            IDebugEventCallbacks_Impl::SystemError(this, 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();
            IDebugEventCallbacks_Impl::SessionStatus(this, 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();
            IDebugEventCallbacks_Impl::ChangeDebuggeeState(this, 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();
            IDebugEventCallbacks_Impl::ChangeEngineState(this, 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();
            IDebugEventCallbacks_Impl::ChangeSymbolState(this, 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::Interface>::IID
    }
}
pub trait IDebugEventCallbacksWide_Impl: Sized {
    fn GetInterestMask(&self) -> windows_core::Result<u32>;
    fn Breakpoint(&self, bp: 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<()>;
}
impl windows_core::RuntimeName for IDebugEventCallbacksWide {}
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 IDebugEventCallbacksWide_Impl::GetInterestMask(this) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugEventCallbacksWide_Impl::Breakpoint(this, 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();
            IDebugEventCallbacksWide_Impl::Exception(this, 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();
            IDebugEventCallbacksWide_Impl::CreateThread(this, 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();
            IDebugEventCallbacksWide_Impl::ExitThread(this, 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();
            IDebugEventCallbacksWide_Impl::CreateProcessA(this, 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();
            IDebugEventCallbacksWide_Impl::ExitProcess(this, 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();
            IDebugEventCallbacksWide_Impl::LoadModule(this, 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();
            IDebugEventCallbacksWide_Impl::UnloadModule(this, 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();
            IDebugEventCallbacksWide_Impl::SystemError(this, 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();
            IDebugEventCallbacksWide_Impl::SessionStatus(this, 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();
            IDebugEventCallbacksWide_Impl::ChangeDebuggeeState(this, 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();
            IDebugEventCallbacksWide_Impl::ChangeEngineState(this, 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();
            IDebugEventCallbacksWide_Impl::ChangeSymbolState(this, 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::Interface>::IID
    }
}
pub trait IDebugEventContextCallbacks_Impl: Sized {
    fn GetInterestMask(&self) -> windows_core::Result<u32>;
    fn Breakpoint(&self, bp: 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<()>;
}
impl windows_core::RuntimeName for IDebugEventContextCallbacks {}
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 IDebugEventContextCallbacks_Impl::GetInterestMask(this) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugEventContextCallbacks_Impl::Breakpoint(this, 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();
            IDebugEventContextCallbacks_Impl::Exception(this, 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();
            IDebugEventContextCallbacks_Impl::CreateThread(this, 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();
            IDebugEventContextCallbacks_Impl::ExitThread(this, 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();
            IDebugEventContextCallbacks_Impl::CreateProcessA(
                this,
                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();
            IDebugEventContextCallbacks_Impl::ExitProcess(this, 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();
            IDebugEventContextCallbacks_Impl::LoadModule(this, 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();
            IDebugEventContextCallbacks_Impl::UnloadModule(this, 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();
            IDebugEventContextCallbacks_Impl::SystemError(this, 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();
            IDebugEventContextCallbacks_Impl::SessionStatus(this, 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();
            IDebugEventContextCallbacks_Impl::ChangeDebuggeeState(this, 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();
            IDebugEventContextCallbacks_Impl::ChangeEngineState(this, 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();
            IDebugEventContextCallbacks_Impl::ChangeSymbolState(this, 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::Interface>::IID
    }
}
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;
}
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);
            IDebugFAEntryTags_Impl::GetType(this, 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);
            IDebugFAEntryTags_Impl::SetType(this, 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);
            IDebugFAEntryTags_Impl::GetProperties(this, 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);
            IDebugFAEntryTags_Impl::SetProperties(this, 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 IDebugFAEntryTags_Impl::GetTagByName(this, core::mem::transmute(&pluginid), core::mem::transmute(&tagname)) {
                Ok(ok__) => {
                    core::ptr::write(tag, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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);
            IDebugFAEntryTags_Impl::IsValidTagToSet(this, 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)]
struct IDebugFAEntryTags_ImplVtbl<T: IDebugFAEntryTags_Impl>(std::marker::PhantomData<T>);
impl<T: IDebugFAEntryTags_Impl> IDebugFAEntryTags_ImplVtbl<T> {
    const VTABLE: IDebugFAEntryTags_Vtbl = IDebugFAEntryTags_Vtbl::new::<T>();
}
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(Box::new(this));
        unsafe { windows_core::ScopedInterface::new(std::mem::transmute(&this.vtable)) }
    }
}
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();
            IDebugFailureAnalysis_Impl::GetFailureClass(this)
        }
        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();
            IDebugFailureAnalysis_Impl::GetFailureType(this)
        }
        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();
            IDebugFailureAnalysis_Impl::GetFailureCode(this)
        }
        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();
            IDebugFailureAnalysis_Impl::Get(this, 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();
            IDebugFailureAnalysis_Impl::GetNext(this, 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();
            IDebugFailureAnalysis_Impl::GetString(this, 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();
            IDebugFailureAnalysis_Impl::GetBuffer(this, 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();
            IDebugFailureAnalysis_Impl::GetUlong(this, 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();
            IDebugFailureAnalysis_Impl::GetUlong64(this, 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();
            IDebugFailureAnalysis_Impl::NextEntry(this, 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::Interface>::IID
    }
}
#[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: 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();
            IDebugFailureAnalysis2_Impl::GetFailureClass(this)
        }
        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();
            IDebugFailureAnalysis2_Impl::GetFailureType(this)
        }
        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();
            IDebugFailureAnalysis2_Impl::GetFailureCode(this)
        }
        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();
            IDebugFailureAnalysis2_Impl::Get(this, 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();
            IDebugFailureAnalysis2_Impl::GetNext(this, 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();
            IDebugFailureAnalysis2_Impl::GetString(this, 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();
            IDebugFailureAnalysis2_Impl::GetBuffer(this, 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();
            IDebugFailureAnalysis2_Impl::GetUlong(this, 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();
            IDebugFailureAnalysis2_Impl::GetUlong64(this, 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();
            IDebugFailureAnalysis2_Impl::NextEntry(this, 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();
            IDebugFailureAnalysis2_Impl::SetString(this, 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();
            IDebugFailureAnalysis2_Impl::SetExtensionCommand(this, 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();
            IDebugFailureAnalysis2_Impl::SetUlong(this, 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();
            IDebugFailureAnalysis2_Impl::SetUlong64(this, 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();
            IDebugFailureAnalysis2_Impl::SetBuffer(this, 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();
            IDebugFailureAnalysis2_Impl::AddString(this, 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();
            IDebugFailureAnalysis2_Impl::AddExtensionCommand(this, 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();
            IDebugFailureAnalysis2_Impl::AddUlong(this, 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();
            IDebugFailureAnalysis2_Impl::AddUlong64(this, 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();
            IDebugFailureAnalysis2_Impl::AddBuffer(this, 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 IDebugFailureAnalysis2_Impl::GetDebugFATagControl(this) {
                Ok(ok__) => {
                    core::ptr::write(fatagcontrol, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugFailureAnalysis2_Impl::GetAnalysisXml(this) {
                Ok(ok__) => {
                    core::ptr::write(ppxmldomelement, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugFailureAnalysis2_Impl::AddStructuredAnalysisData(this, 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::Interface>::IID
    }
}
#[cfg(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_System_Com"))]
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: Option<&IDebugFailureAnalysis2>) -> windows_core::Result<()>;
    fn AddThreads(&self, pdebugfailurethreadenum: Option<&windows_core::IUnknown>) -> windows_core::Result<()>;
    fn AttributeGet(&self, nindex: u32) -> windows_core::Result<windows_core::VARIANT>;
    fn AttributeGetName(&self, nindex: u32) -> windows_core::Result<windows_core::BSTR>;
    fn AttributeSet(&self, nindex: u32, value: &windows_core::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: Option<&windows_core::IUnknown>) -> windows_core::Result<()>;
    fn BlameStitch(&self, pthread: 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: 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_System_Com"))]
impl windows_core::RuntimeName for IDebugFailureAnalysis3 {}
#[cfg(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_System_Com"))]
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();
            IDebugFailureAnalysis3_Impl::GetFailureClass(this)
        }
        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();
            IDebugFailureAnalysis3_Impl::GetFailureType(this)
        }
        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();
            IDebugFailureAnalysis3_Impl::GetFailureCode(this)
        }
        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();
            IDebugFailureAnalysis3_Impl::Get(this, 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();
            IDebugFailureAnalysis3_Impl::GetNext(this, 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();
            IDebugFailureAnalysis3_Impl::GetString(this, 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();
            IDebugFailureAnalysis3_Impl::GetBuffer(this, 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();
            IDebugFailureAnalysis3_Impl::GetUlong(this, 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();
            IDebugFailureAnalysis3_Impl::GetUlong64(this, 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();
            IDebugFailureAnalysis3_Impl::NextEntry(this, 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();
            IDebugFailureAnalysis3_Impl::SetString(this, 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();
            IDebugFailureAnalysis3_Impl::SetExtensionCommand(this, 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();
            IDebugFailureAnalysis3_Impl::SetUlong(this, 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();
            IDebugFailureAnalysis3_Impl::SetUlong64(this, 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();
            IDebugFailureAnalysis3_Impl::SetBuffer(this, 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();
            IDebugFailureAnalysis3_Impl::AddString(this, 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();
            IDebugFailureAnalysis3_Impl::AddExtensionCommand(this, 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();
            IDebugFailureAnalysis3_Impl::AddUlong(this, 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();
            IDebugFailureAnalysis3_Impl::AddUlong64(this, 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();
            IDebugFailureAnalysis3_Impl::AddBuffer(this, 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 IDebugFailureAnalysis3_Impl::GetDebugFATagControl(this) {
                Ok(ok__) => {
                    core::ptr::write(fatagcontrol, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugFailureAnalysis3_Impl::GetAnalysisXml(this) {
                Ok(ok__) => {
                    core::ptr::write(ppxmldomelement, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugFailureAnalysis3_Impl::AddStructuredAnalysisData(this, 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();
            IDebugFailureAnalysis3_Impl::AddThreads(this, 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 std::mem::MaybeUninit<windows_core::VARIANT>) -> windows_core::HRESULT {
            let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
            let this = (*this).get_impl();
            match IDebugFailureAnalysis3_Impl::AttributeGet(this, core::mem::transmute_copy(&nindex)) {
                Ok(ok__) => {
                    core::ptr::write(pvalue, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugFailureAnalysis3_Impl::AttributeGetName(this, core::mem::transmute_copy(&nindex)) {
                Ok(ok__) => {
                    core::ptr::write(pname, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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: std::mem::MaybeUninit<windows_core::VARIANT>) -> windows_core::HRESULT {
            let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
            let this = (*this).get_impl();
            IDebugFailureAnalysis3_Impl::AttributeSet(this, 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();
            IDebugFailureAnalysis3_Impl::BlameApplication(this, 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();
            IDebugFailureAnalysis3_Impl::BlameProcess(this, 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();
            IDebugFailureAnalysis3_Impl::BlameThread(this, 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();
            IDebugFailureAnalysis3_Impl::BlameStitch(this, 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();
            IDebugFailureAnalysis3_Impl::BlameTEB(this, 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();
            IDebugFailureAnalysis3_Impl::BlameETHREAD(this, 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 IDebugFailureAnalysis3_Impl::ProblemClassIsSet(this, core::mem::transmute_copy(&nindex)) {
                Ok(ok__) => {
                    core::ptr::write(pset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugFailureAnalysis3_Impl::ProblemClassDelete(this, 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();
            IDebugFailureAnalysis3_Impl::ProblemClassSet(this, 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();
            IDebugFailureAnalysis3_Impl::ProblemClassSetBSTR(this, 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();
            IDebugFailureAnalysis3_Impl::SetAdditionalXML(this, 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 IDebugFailureAnalysis3_Impl::GetAdditionalXML(this, core::mem::transmute(&key)) {
                Ok(ok__) => {
                    core::ptr::write(ppxmldomelement, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugFailureAnalysis3_Impl::DeleteAdditionalXML(this, 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::Interface>::IID
    }
}
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 IDebugHost_Impl::GetHostDefinedInterface(this) {
                Ok(ok__) => {
                    core::ptr::write(hostunk, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHost_Impl::GetCurrentContext(this) {
                Ok(ok__) => {
                    core::ptr::write(context, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHost_Impl::GetDefaultMetadata(this) {
                Ok(ok__) => {
                    core::ptr::write(defaultmetadatastore, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
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 IDebugHostBaseClass_Impl::GetOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID || iid == &<IDebugHostSymbol as windows_core::Interface>::IID
    }
}
pub trait IDebugHostConstant_Impl: Sized + IDebugHostSymbol_Impl {
    fn GetValue(&self) -> windows_core::Result<windows_core::VARIANT>;
}
impl windows_core::RuntimeName for IDebugHostConstant {}
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 std::mem::MaybeUninit<windows_core::VARIANT>) -> windows_core::HRESULT {
            let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
            let this = (*this).get_impl();
            match IDebugHostConstant_Impl::GetValue(this) {
                Ok(ok__) => {
                    core::ptr::write(value, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID || iid == &<IDebugHostSymbol as windows_core::Interface>::IID
    }
}
pub trait IDebugHostContext_Impl: Sized {
    fn IsEqualTo(&self, pcontext: 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 IDebugHostContext_Impl::IsEqualTo(this, windows_core::from_raw_borrowed(&pcontext)) {
                Ok(ok__) => {
                    core::ptr::write(pisequal, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
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<windows_core::VARIANT>;
}
impl windows_core::RuntimeName for IDebugHostData {}
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 IDebugHostData_Impl::GetLocationKind(this) {
                Ok(ok__) => {
                    core::ptr::write(locationkind, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostData_Impl::GetLocation(this) {
                Ok(ok__) => {
                    core::ptr::write(location, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 std::mem::MaybeUninit<windows_core::VARIANT>) -> windows_core::HRESULT {
            let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
            let this = (*this).get_impl();
            match IDebugHostData_Impl::GetValue(this) {
                Ok(ok__) => {
                    core::ptr::write(value, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID || iid == &<IDebugHostSymbol as windows_core::Interface>::IID
    }
}
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();
            IDebugHostErrorSink_Impl::ReportError(this, 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::Interface>::IID
    }
}
pub trait IDebugHostEvaluator_Impl: Sized {
    fn EvaluateExpression(&self, context: Option<&IDebugHostContext>, expression: &windows_core::PCWSTR, bindingcontext: Option<&IModelObject>, result: *mut Option<IModelObject>, metadata: *mut Option<IKeyStore>) -> windows_core::Result<()>;
    fn EvaluateExtendedExpression(&self, context: Option<&IDebugHostContext>, expression: &windows_core::PCWSTR, bindingcontext: Option<&IModelObject>, result: *mut Option<IModelObject>, metadata: *mut 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();
            IDebugHostEvaluator_Impl::EvaluateExpression(this, 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();
            IDebugHostEvaluator_Impl::EvaluateExtendedExpression(this, 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::Interface>::IID
    }
}
pub trait IDebugHostEvaluator2_Impl: Sized + IDebugHostEvaluator_Impl {
    fn AssignTo(&self, assignmentreference: Option<&IModelObject>, assignmentvalue: Option<&IModelObject>, assignmentresult: *mut Option<IModelObject>, assignmentmetadata: *mut 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();
            IDebugHostEvaluator2_Impl::AssignTo(this, 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::Interface>::IID || iid == &<IDebugHostEvaluator as windows_core::Interface>::IID
    }
}
pub trait IDebugHostExtensibility_Impl: Sized {
    fn CreateFunctionAlias(&self, aliasname: &windows_core::PCWSTR, functionobject: 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();
            IDebugHostExtensibility_Impl::CreateFunctionAlias(this, 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();
            IDebugHostExtensibility_Impl::DestroyFunctionAlias(this, 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::Interface>::IID
    }
}
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<windows_core::VARIANT>;
}
impl windows_core::RuntimeName for IDebugHostField {}
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 IDebugHostField_Impl::GetLocationKind(this) {
                Ok(ok__) => {
                    core::ptr::write(locationkind, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostField_Impl::GetOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostField_Impl::GetLocation(this) {
                Ok(ok__) => {
                    core::ptr::write(location, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 std::mem::MaybeUninit<windows_core::VARIANT>) -> windows_core::HRESULT {
            let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
            let this = (*this).get_impl();
            match IDebugHostField_Impl::GetValue(this) {
                Ok(ok__) => {
                    core::ptr::write(value, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID || iid == &<IDebugHostSymbol as windows_core::Interface>::IID
    }
}
pub trait IDebugHostMemory_Impl: Sized {
    fn ReadBytes(&self, context: Option<&IDebugHostContext>, location: &Location, buffer: *mut core::ffi::c_void, buffersize: u64, bytesread: *mut u64) -> windows_core::Result<()>;
    fn WriteBytes(&self, context: Option<&IDebugHostContext>, location: &Location, buffer: *const core::ffi::c_void, buffersize: u64, byteswritten: *mut u64) -> windows_core::Result<()>;
    fn ReadPointers(&self, context: Option<&IDebugHostContext>, location: &Location, count: u64, pointers: *mut u64) -> windows_core::Result<()>;
    fn WritePointers(&self, context: Option<&IDebugHostContext>, location: &Location, count: u64, pointers: *const u64) -> windows_core::Result<()>;
    fn GetDisplayStringForLocation(&self, context: 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();
            IDebugHostMemory_Impl::ReadBytes(this, 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();
            IDebugHostMemory_Impl::WriteBytes(this, 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();
            IDebugHostMemory_Impl::ReadPointers(this, 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();
            IDebugHostMemory_Impl::WritePointers(this, 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 IDebugHostMemory_Impl::GetDisplayStringForLocation(this, windows_core::from_raw_borrowed(&context), core::mem::transmute(&location), core::mem::transmute_copy(&verbose)) {
                Ok(ok__) => {
                    core::ptr::write(locationname, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
pub trait IDebugHostMemory2_Impl: Sized + IDebugHostMemory_Impl {
    fn LinearizeLocation(&self, context: 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 IDebugHostMemory2_Impl::LinearizeLocation(this, windows_core::from_raw_borrowed(&context), core::mem::transmute(&location)) {
                Ok(ok__) => {
                    core::ptr::write(plinearizedlocation, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID || iid == &<IDebugHostMemory as windows_core::Interface>::IID
    }
}
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 IDebugHostModule_Impl::GetImageName(this, core::mem::transmute_copy(&allowpath)) {
                Ok(ok__) => {
                    core::ptr::write(imagename, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostModule_Impl::GetBaseLocation(this) {
                Ok(ok__) => {
                    core::ptr::write(modulebaselocation, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugHostModule_Impl::GetVersion(this, 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 IDebugHostModule_Impl::FindTypeByName(this, core::mem::transmute(&typename)) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostModule_Impl::FindSymbolByRVA(this, core::mem::transmute_copy(&rva)) {
                Ok(ok__) => {
                    core::ptr::write(symbol, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostModule_Impl::FindSymbolByName(this, core::mem::transmute(&symbolname)) {
                Ok(ok__) => {
                    core::ptr::write(symbol, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID || iid == &<IDebugHostSymbol as windows_core::Interface>::IID
    }
}
pub trait IDebugHostModule2_Impl: Sized + IDebugHostModule_Impl {
    fn FindContainingSymbolByRVA(&self, rva: u64, symbol: *mut 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();
            IDebugHostModule2_Impl::FindContainingSymbolByRVA(this, 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::Interface>::IID || iid == &<IDebugHostSymbol as windows_core::Interface>::IID || iid == &<IDebugHostModule as windows_core::Interface>::IID
    }
}
pub trait IDebugHostModuleSignature_Impl: Sized {
    fn IsMatch(&self, pmodule: 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 IDebugHostModuleSignature_Impl::IsMatch(this, windows_core::from_raw_borrowed(&pmodule)) {
                Ok(ok__) => {
                    core::ptr::write(ismatch, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
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 IDebugHostPublic_Impl::GetLocationKind(this) {
                Ok(ok__) => {
                    core::ptr::write(locationkind, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostPublic_Impl::GetLocation(this) {
                Ok(ok__) => {
                    core::ptr::write(location, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID || iid == &<IDebugHostSymbol as windows_core::Interface>::IID
    }
}
pub trait IDebugHostScriptHost_Impl: Sized {
    fn CreateContext(&self, script: 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 IDebugHostScriptHost_Impl::CreateContext(this, windows_core::from_raw_borrowed(&script)) {
                Ok(ok__) => {
                    core::ptr::write(scriptcontext, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
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 IDebugHostStatus_Impl::PollUserInterrupt(this) {
                Ok(ok__) => {
                    core::ptr::write(interruptrequested, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
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: 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 IDebugHostSymbol_Impl::GetContext(this) {
                Ok(ok__) => {
                    core::ptr::write(context, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostSymbol_Impl::EnumerateChildren(this, core::mem::transmute_copy(&kind), core::mem::transmute(&name)) {
                Ok(ok__) => {
                    core::ptr::write(ppenum, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostSymbol_Impl::GetSymbolKind(this) {
                Ok(ok__) => {
                    core::ptr::write(kind, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostSymbol_Impl::GetName(this) {
                Ok(ok__) => {
                    core::ptr::write(symbolname, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostSymbol_Impl::GetType(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostSymbol_Impl::GetContainingModule(this) {
                Ok(ok__) => {
                    core::ptr::write(containingmodule, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostSymbol_Impl::CompareAgainst(this, windows_core::from_raw_borrowed(&pcomparisonsymbol), core::mem::transmute_copy(&comparisonflags)) {
                Ok(ok__) => {
                    core::ptr::write(pmatches, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
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 IDebugHostSymbol2_Impl::GetLanguage(this) {
                Ok(ok__) => {
                    core::ptr::write(pkind, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID || iid == &<IDebugHostSymbol as windows_core::Interface>::IID
    }
}
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();
            IDebugHostSymbolEnumerator_Impl::Reset(this).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 IDebugHostSymbolEnumerator_Impl::GetNext(this) {
                Ok(ok__) => {
                    core::ptr::write(symbol, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
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: 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: Option<&IDebugHostContext>) -> windows_core::Result<IDebugHostSymbolEnumerator>;
    fn FindModuleByName(&self, context: Option<&IDebugHostContext>, modulename: &windows_core::PCWSTR) -> windows_core::Result<IDebugHostModule>;
    fn FindModuleByLocation(&self, context: Option<&IDebugHostContext>, modulelocation: &Location) -> windows_core::Result<IDebugHostModule>;
    fn GetMostDerivedObject(&self, pcontext: Option<&IDebugHostContext>, location: &Location, objecttype: Option<&IDebugHostType>, derivedlocation: *mut Location, derivedtype: *mut 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 IDebugHostSymbols_Impl::CreateModuleSignature(this, core::mem::transmute(&pwszmodulename), core::mem::transmute(&pwszminversion), core::mem::transmute(&pwszmaxversion)) {
                Ok(ok__) => {
                    core::ptr::write(ppmodulesignature, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostSymbols_Impl::CreateTypeSignature(this, core::mem::transmute(&signaturespecification), windows_core::from_raw_borrowed(&module)) {
                Ok(ok__) => {
                    core::ptr::write(typesignature, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostSymbols_Impl::CreateTypeSignatureForModuleRange(this, core::mem::transmute(&signaturespecification), core::mem::transmute(&modulename), core::mem::transmute(&minversion), core::mem::transmute(&maxversion)) {
                Ok(ok__) => {
                    core::ptr::write(typesignature, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostSymbols_Impl::EnumerateModules(this, windows_core::from_raw_borrowed(&context)) {
                Ok(ok__) => {
                    core::ptr::write(moduleenum, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostSymbols_Impl::FindModuleByName(this, windows_core::from_raw_borrowed(&context), core::mem::transmute(&modulename)) {
                Ok(ok__) => {
                    core::ptr::write(module, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostSymbols_Impl::FindModuleByLocation(this, windows_core::from_raw_borrowed(&context), core::mem::transmute(&modulelocation)) {
                Ok(ok__) => {
                    core::ptr::write(module, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugHostSymbols_Impl::GetMostDerivedObject(this, 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::Interface>::IID
    }
}
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 IDebugHostType_Impl::GetTypeKind(this) {
                Ok(ok__) => {
                    core::ptr::write(kind, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostType_Impl::GetSize(this) {
                Ok(ok__) => {
                    core::ptr::write(size, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostType_Impl::GetBaseType(this) {
                Ok(ok__) => {
                    core::ptr::write(basetype, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostType_Impl::GetHashCode(this) {
                Ok(ok__) => {
                    core::ptr::write(hashcode, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugHostType_Impl::GetIntrinsicType(this, 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();
            IDebugHostType_Impl::GetBitField(this, 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 IDebugHostType_Impl::GetPointerKind(this) {
                Ok(ok__) => {
                    core::ptr::write(pointerkind, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostType_Impl::GetMemberType(this) {
                Ok(ok__) => {
                    core::ptr::write(membertype, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostType_Impl::CreatePointerTo(this, core::mem::transmute_copy(&kind)) {
                Ok(ok__) => {
                    core::ptr::write(newtype, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostType_Impl::GetArrayDimensionality(this) {
                Ok(ok__) => {
                    core::ptr::write(arraydimensionality, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugHostType_Impl::GetArrayDimensions(this, 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 IDebugHostType_Impl::CreateArrayOf(this, core::mem::transmute_copy(&dimensions), core::mem::transmute_copy(&pdimensions)) {
                Ok(ok__) => {
                    core::ptr::write(newtype, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostType_Impl::GetFunctionCallingConvention(this) {
                Ok(ok__) => {
                    core::ptr::write(conventionkind, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostType_Impl::GetFunctionReturnType(this) {
                Ok(ok__) => {
                    core::ptr::write(returntype, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostType_Impl::GetFunctionParameterTypeCount(this) {
                Ok(ok__) => {
                    core::ptr::write(count, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostType_Impl::GetFunctionParameterTypeAt(this, core::mem::transmute_copy(&i)) {
                Ok(ok__) => {
                    core::ptr::write(parametertype, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostType_Impl::IsGeneric(this) {
                Ok(ok__) => {
                    core::ptr::write(isgeneric, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostType_Impl::GetGenericArgumentCount(this) {
                Ok(ok__) => {
                    core::ptr::write(argcount, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostType_Impl::GetGenericArgumentAt(this, core::mem::transmute_copy(&i)) {
                Ok(ok__) => {
                    core::ptr::write(argument, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID || iid == &<IDebugHostSymbol as windows_core::Interface>::IID
    }
}
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 IDebugHostType2_Impl::IsTypedef(this) {
                Ok(ok__) => {
                    core::ptr::write(istypedef, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostType2_Impl::GetTypedefBaseType(this) {
                Ok(ok__) => {
                    core::ptr::write(basetype, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostType2_Impl::GetTypedefFinalBaseType(this) {
                Ok(ok__) => {
                    core::ptr::write(finalbasetype, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostType2_Impl::GetFunctionVarArgsKind(this) {
                Ok(ok__) => {
                    core::ptr::write(varargskind, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugHostType2_Impl::GetFunctionInstancePointerType(this) {
                Ok(ok__) => {
                    core::ptr::write(instancepointertype, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID || iid == &<IDebugHostSymbol as windows_core::Interface>::IID || iid == &<IDebugHostType as windows_core::Interface>::IID
    }
}
pub trait IDebugHostTypeSignature_Impl: Sized {
    fn GetHashCode(&self) -> windows_core::Result<u32>;
    fn IsMatch(&self, r#type: Option<&IDebugHostType>, ismatch: *mut bool, wildcardmatches: *mut Option<IDebugHostSymbolEnumerator>) -> windows_core::Result<()>;
    fn CompareAgainst(&self, typesignature: 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 IDebugHostTypeSignature_Impl::GetHashCode(this) {
                Ok(ok__) => {
                    core::ptr::write(hashcode, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugHostTypeSignature_Impl::IsMatch(this, 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 IDebugHostTypeSignature_Impl::CompareAgainst(this, windows_core::from_raw_borrowed(&typesignature)) {
                Ok(ok__) => {
                    core::ptr::write(result, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
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();
            IDebugInputCallbacks_Impl::StartInput(this, 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();
            IDebugInputCallbacks_Impl::EndInput(this).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::Interface>::IID
    }
}
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();
            IDebugOutputCallbacks_Impl::Output(this, 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::Interface>::IID
    }
}
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();
            IDebugOutputCallbacks2_Impl::Output(this, 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 IDebugOutputCallbacks2_Impl::GetInterestMask(this) {
                Ok(ok__) => {
                    core::ptr::write(mask, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugOutputCallbacks2_Impl::Output2(this, 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::Interface>::IID
    }
}
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();
            IDebugOutputCallbacksWide_Impl::Output(this, 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::Interface>::IID
    }
}
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();
            IDebugOutputStream_Impl::Write(this, 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::Interface>::IID
    }
}
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();
            IDebugPlmClient_Impl::LaunchPlmPackageForDebugWide(this, 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::Interface>::IID
    }
}
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();
            IDebugPlmClient2_Impl::LaunchPlmPackageForDebugWide(this, 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();
            IDebugPlmClient2_Impl::LaunchPlmBgTaskForDebugWide(this, 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::Interface>::IID
    }
}
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: Option<&IDebugOutputStream>) -> windows_core::Result<()>;
    fn QueryPlmPackageList(&self, server: u64, stream: 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();
            IDebugPlmClient3_Impl::LaunchPlmPackageForDebugWide(this, 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();
            IDebugPlmClient3_Impl::LaunchPlmBgTaskForDebugWide(this, 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();
            IDebugPlmClient3_Impl::QueryPlmPackageWide(this, 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();
            IDebugPlmClient3_Impl::QueryPlmPackageList(this, 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();
            IDebugPlmClient3_Impl::EnablePlmPackageDebugWide(this, 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();
            IDebugPlmClient3_Impl::DisablePlmPackageDebugWide(this, 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();
            IDebugPlmClient3_Impl::SuspendPlmPackageWide(this, 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();
            IDebugPlmClient3_Impl::ResumePlmPackageWide(this, 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();
            IDebugPlmClient3_Impl::TerminatePlmPackageWide(this, 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();
            IDebugPlmClient3_Impl::LaunchAndDebugPlmAppWide(this, 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();
            IDebugPlmClient3_Impl::ActivateAndDebugPlmBgTaskWide(this, 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::Interface>::IID
    }
}
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>;
}
impl windows_core::RuntimeName for IDebugRegisters {}
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 IDebugRegisters_Impl::GetNumberRegisters(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugRegisters_Impl::GetDescription(this, 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 IDebugRegisters_Impl::GetIndexByName(this, core::mem::transmute(&name)) {
                Ok(ok__) => {
                    core::ptr::write(index, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugRegisters_Impl::GetValue(this, 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();
            IDebugRegisters_Impl::SetValue(this, 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();
            IDebugRegisters_Impl::GetValues(this, 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();
            IDebugRegisters_Impl::SetValues(this, 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();
            IDebugRegisters_Impl::OutputRegisters(this, 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 IDebugRegisters_Impl::GetInstructionOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugRegisters_Impl::GetStackOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugRegisters_Impl::GetFrameOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
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>;
}
impl windows_core::RuntimeName for IDebugRegisters2 {}
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 IDebugRegisters2_Impl::GetNumberRegisters(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugRegisters2_Impl::GetDescription(this, 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 IDebugRegisters2_Impl::GetIndexByName(this, core::mem::transmute(&name)) {
                Ok(ok__) => {
                    core::ptr::write(index, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugRegisters2_Impl::GetValue(this, 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();
            IDebugRegisters2_Impl::SetValue(this, 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();
            IDebugRegisters2_Impl::GetValues(this, 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();
            IDebugRegisters2_Impl::SetValues(this, 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();
            IDebugRegisters2_Impl::OutputRegisters(this, 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 IDebugRegisters2_Impl::GetInstructionOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugRegisters2_Impl::GetStackOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugRegisters2_Impl::GetFrameOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugRegisters2_Impl::GetDescriptionWide(this, 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 IDebugRegisters2_Impl::GetIndexByNameWide(this, core::mem::transmute(&name)) {
                Ok(ok__) => {
                    core::ptr::write(index, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugRegisters2_Impl::GetNumberPseudoRegisters(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugRegisters2_Impl::GetPseudoDescription(this, 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();
            IDebugRegisters2_Impl::GetPseudoDescriptionWide(this, 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 IDebugRegisters2_Impl::GetPseudoIndexByName(this, core::mem::transmute(&name)) {
                Ok(ok__) => {
                    core::ptr::write(index, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugRegisters2_Impl::GetPseudoIndexByNameWide(this, core::mem::transmute(&name)) {
                Ok(ok__) => {
                    core::ptr::write(index, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugRegisters2_Impl::GetPseudoValues(this, 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();
            IDebugRegisters2_Impl::SetPseudoValues(this, 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();
            IDebugRegisters2_Impl::GetValues2(this, 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();
            IDebugRegisters2_Impl::SetValues2(this, 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();
            IDebugRegisters2_Impl::OutputRegisters2(this, 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 IDebugRegisters2_Impl::GetInstructionOffset2(this, core::mem::transmute_copy(&source)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugRegisters2_Impl::GetStackOffset2(this, core::mem::transmute_copy(&source)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugRegisters2_Impl::GetFrameOffset2(this, core::mem::transmute_copy(&source)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
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<()>;
}
impl windows_core::RuntimeName for IDebugSymbolGroup {}
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 IDebugSymbolGroup_Impl::GetNumberSymbols(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbolGroup_Impl::AddSymbol(this, 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();
            IDebugSymbolGroup_Impl::RemoveSymbolByName(this, 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();
            IDebugSymbolGroup_Impl::RemoveSymbolByIndex(this, 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();
            IDebugSymbolGroup_Impl::GetSymbolName(this, 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();
            IDebugSymbolGroup_Impl::GetSymbolParameters(this, 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();
            IDebugSymbolGroup_Impl::ExpandSymbol(this, 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();
            IDebugSymbolGroup_Impl::OutputSymbols(this, 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();
            IDebugSymbolGroup_Impl::WriteSymbol(this, 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();
            IDebugSymbolGroup_Impl::OutputAsType(this, 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::Interface>::IID
    }
}
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<()>;
}
impl windows_core::RuntimeName for IDebugSymbolGroup2 {}
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 IDebugSymbolGroup2_Impl::GetNumberSymbols(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbolGroup2_Impl::AddSymbol(this, 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();
            IDebugSymbolGroup2_Impl::RemoveSymbolByName(this, 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();
            IDebugSymbolGroup2_Impl::RemoveSymbolByIndex(this, 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();
            IDebugSymbolGroup2_Impl::GetSymbolName(this, 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();
            IDebugSymbolGroup2_Impl::GetSymbolParameters(this, 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();
            IDebugSymbolGroup2_Impl::ExpandSymbol(this, 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();
            IDebugSymbolGroup2_Impl::OutputSymbols(this, 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();
            IDebugSymbolGroup2_Impl::WriteSymbol(this, 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();
            IDebugSymbolGroup2_Impl::OutputAsType(this, 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();
            IDebugSymbolGroup2_Impl::AddSymbolWide(this, 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();
            IDebugSymbolGroup2_Impl::RemoveSymbolByNameWide(this, 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();
            IDebugSymbolGroup2_Impl::GetSymbolNameWide(this, 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();
            IDebugSymbolGroup2_Impl::WriteSymbolWide(this, 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();
            IDebugSymbolGroup2_Impl::OutputAsTypeWide(this, 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();
            IDebugSymbolGroup2_Impl::GetSymbolTypeName(this, 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();
            IDebugSymbolGroup2_Impl::GetSymbolTypeNameWide(this, 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 IDebugSymbolGroup2_Impl::GetSymbolSize(this, core::mem::transmute_copy(&index)) {
                Ok(ok__) => {
                    core::ptr::write(size, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbolGroup2_Impl::GetSymbolOffset(this, core::mem::transmute_copy(&index)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbolGroup2_Impl::GetSymbolRegister(this, core::mem::transmute_copy(&index)) {
                Ok(ok__) => {
                    core::ptr::write(register, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbolGroup2_Impl::GetSymbolValueText(this, 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();
            IDebugSymbolGroup2_Impl::GetSymbolValueTextWide(this, 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();
            IDebugSymbolGroup2_Impl::GetSymbolEntryInformation(this, 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::Interface>::IID
    }
}
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: 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<()>;
}
impl windows_core::RuntimeName for IDebugSymbols {}
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 IDebugSymbols_Impl::GetSymbolOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols_Impl::AddSymbolOptions(this, 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();
            IDebugSymbols_Impl::RemoveSymbolOptions(this, 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();
            IDebugSymbols_Impl::SetSymbolOptions(this, 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();
            IDebugSymbols_Impl::GetNameByOffset(this, 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 IDebugSymbols_Impl::GetOffsetByName(this, core::mem::transmute(&symbol)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols_Impl::GetNearNameByOffset(this, 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();
            IDebugSymbols_Impl::GetLineByOffset(this, 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 IDebugSymbols_Impl::GetOffsetByLine(this, core::mem::transmute_copy(&line), core::mem::transmute(&file)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols_Impl::GetNumberModules(this, 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 IDebugSymbols_Impl::GetModuleByIndex(this, core::mem::transmute_copy(&index)) {
                Ok(ok__) => {
                    core::ptr::write(base, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols_Impl::GetModuleByModuleName(this, 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();
            IDebugSymbols_Impl::GetModuleByOffset(this, 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();
            IDebugSymbols_Impl::GetModuleNames(
                this,
                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();
            IDebugSymbols_Impl::GetModuleParameters(this, 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 IDebugSymbols_Impl::GetSymbolModule(this, core::mem::transmute(&symbol)) {
                Ok(ok__) => {
                    core::ptr::write(base, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols_Impl::GetTypeName(this, 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 IDebugSymbols_Impl::GetTypeId(this, core::mem::transmute_copy(&module), core::mem::transmute(&name)) {
                Ok(ok__) => {
                    core::ptr::write(typeid, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols_Impl::GetTypeSize(this, core::mem::transmute_copy(&module), core::mem::transmute_copy(&typeid)) {
                Ok(ok__) => {
                    core::ptr::write(size, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols_Impl::GetFieldOffset(this, core::mem::transmute_copy(&module), core::mem::transmute_copy(&typeid), core::mem::transmute(&field)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols_Impl::GetSymbolTypeId(this, 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();
            IDebugSymbols_Impl::GetOffsetTypeId(this, 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();
            IDebugSymbols_Impl::ReadTypedDataVirtual(this, 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();
            IDebugSymbols_Impl::WriteTypedDataVirtual(this, 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();
            IDebugSymbols_Impl::OutputTypedDataVirtual(this, 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();
            IDebugSymbols_Impl::ReadTypedDataPhysical(this, 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();
            IDebugSymbols_Impl::WriteTypedDataPhysical(this, 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();
            IDebugSymbols_Impl::OutputTypedDataPhysical(this, 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();
            IDebugSymbols_Impl::GetScope(this, 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();
            IDebugSymbols_Impl::SetScope(this, 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();
            IDebugSymbols_Impl::ResetScope(this).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 IDebugSymbols_Impl::GetScopeSymbolGroup(this, core::mem::transmute_copy(&flags), windows_core::from_raw_borrowed(&update)) {
                Ok(ok__) => {
                    core::ptr::write(symbols, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols_Impl::CreateSymbolGroup(this) {
                Ok(ok__) => {
                    core::ptr::write(group, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols_Impl::StartSymbolMatch(this, core::mem::transmute(&pattern)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols_Impl::GetNextSymbolMatch(this, 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();
            IDebugSymbols_Impl::EndSymbolMatch(this, 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();
            IDebugSymbols_Impl::Reload(this, 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();
            IDebugSymbols_Impl::GetSymbolPath(this, 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();
            IDebugSymbols_Impl::SetSymbolPath(this, 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();
            IDebugSymbols_Impl::AppendSymbolPath(this, 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();
            IDebugSymbols_Impl::GetImagePath(this, 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();
            IDebugSymbols_Impl::SetImagePath(this, 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();
            IDebugSymbols_Impl::AppendImagePath(this, 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();
            IDebugSymbols_Impl::GetSourcePath(this, 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();
            IDebugSymbols_Impl::GetSourcePathElement(this, 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();
            IDebugSymbols_Impl::SetSourcePath(this, 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();
            IDebugSymbols_Impl::AppendSourcePath(this, 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();
            IDebugSymbols_Impl::FindSourceFile(this, 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();
            IDebugSymbols_Impl::GetSourceFileLineOffsets(this, 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::Interface>::IID
    }
}
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: 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<()>;
}
impl windows_core::RuntimeName for IDebugSymbols2 {}
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 IDebugSymbols2_Impl::GetSymbolOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols2_Impl::AddSymbolOptions(this, 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();
            IDebugSymbols2_Impl::RemoveSymbolOptions(this, 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();
            IDebugSymbols2_Impl::SetSymbolOptions(this, 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();
            IDebugSymbols2_Impl::GetNameByOffset(this, 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 IDebugSymbols2_Impl::GetOffsetByName(this, core::mem::transmute(&symbol)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols2_Impl::GetNearNameByOffset(this, 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();
            IDebugSymbols2_Impl::GetLineByOffset(this, 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 IDebugSymbols2_Impl::GetOffsetByLine(this, core::mem::transmute_copy(&line), core::mem::transmute(&file)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols2_Impl::GetNumberModules(this, 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 IDebugSymbols2_Impl::GetModuleByIndex(this, core::mem::transmute_copy(&index)) {
                Ok(ok__) => {
                    core::ptr::write(base, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols2_Impl::GetModuleByModuleName(this, 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();
            IDebugSymbols2_Impl::GetModuleByOffset(this, 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();
            IDebugSymbols2_Impl::GetModuleNames(
                this,
                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();
            IDebugSymbols2_Impl::GetModuleParameters(this, 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 IDebugSymbols2_Impl::GetSymbolModule(this, core::mem::transmute(&symbol)) {
                Ok(ok__) => {
                    core::ptr::write(base, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols2_Impl::GetTypeName(this, 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 IDebugSymbols2_Impl::GetTypeId(this, core::mem::transmute_copy(&module), core::mem::transmute(&name)) {
                Ok(ok__) => {
                    core::ptr::write(typeid, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols2_Impl::GetTypeSize(this, core::mem::transmute_copy(&module), core::mem::transmute_copy(&typeid)) {
                Ok(ok__) => {
                    core::ptr::write(size, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols2_Impl::GetFieldOffset(this, core::mem::transmute_copy(&module), core::mem::transmute_copy(&typeid), core::mem::transmute(&field)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols2_Impl::GetSymbolTypeId(this, 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();
            IDebugSymbols2_Impl::GetOffsetTypeId(this, 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();
            IDebugSymbols2_Impl::ReadTypedDataVirtual(this, 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();
            IDebugSymbols2_Impl::WriteTypedDataVirtual(this, 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();
            IDebugSymbols2_Impl::OutputTypedDataVirtual(this, 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();
            IDebugSymbols2_Impl::ReadTypedDataPhysical(this, 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();
            IDebugSymbols2_Impl::WriteTypedDataPhysical(this, 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();
            IDebugSymbols2_Impl::OutputTypedDataPhysical(this, 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();
            IDebugSymbols2_Impl::GetScope(this, 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();
            IDebugSymbols2_Impl::SetScope(this, 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();
            IDebugSymbols2_Impl::ResetScope(this).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 IDebugSymbols2_Impl::GetScopeSymbolGroup(this, core::mem::transmute_copy(&flags), windows_core::from_raw_borrowed(&update)) {
                Ok(ok__) => {
                    core::ptr::write(symbols, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols2_Impl::CreateSymbolGroup(this) {
                Ok(ok__) => {
                    core::ptr::write(group, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols2_Impl::StartSymbolMatch(this, core::mem::transmute(&pattern)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols2_Impl::GetNextSymbolMatch(this, 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();
            IDebugSymbols2_Impl::EndSymbolMatch(this, 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();
            IDebugSymbols2_Impl::Reload(this, 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();
            IDebugSymbols2_Impl::GetSymbolPath(this, 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();
            IDebugSymbols2_Impl::SetSymbolPath(this, 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();
            IDebugSymbols2_Impl::AppendSymbolPath(this, 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();
            IDebugSymbols2_Impl::GetImagePath(this, 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();
            IDebugSymbols2_Impl::SetImagePath(this, 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();
            IDebugSymbols2_Impl::AppendImagePath(this, 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();
            IDebugSymbols2_Impl::GetSourcePath(this, 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();
            IDebugSymbols2_Impl::GetSourcePathElement(this, 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();
            IDebugSymbols2_Impl::SetSourcePath(this, 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();
            IDebugSymbols2_Impl::AppendSourcePath(this, 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();
            IDebugSymbols2_Impl::FindSourceFile(this, 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();
            IDebugSymbols2_Impl::GetSourceFileLineOffsets(this, 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();
            IDebugSymbols2_Impl::GetModuleVersionInformation(this, 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();
            IDebugSymbols2_Impl::GetModuleNameString(this, 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();
            IDebugSymbols2_Impl::GetConstantName(this, 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();
            IDebugSymbols2_Impl::GetFieldName(this, 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 IDebugSymbols2_Impl::GetTypeOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols2_Impl::AddTypeOptions(this, 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();
            IDebugSymbols2_Impl::RemoveTypeOptions(this, 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();
            IDebugSymbols2_Impl::SetTypeOptions(this, 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::Interface>::IID
    }
}
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: 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: 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<()>;
}
impl windows_core::RuntimeName for IDebugSymbols3 {}
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 IDebugSymbols3_Impl::GetSymbolOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols3_Impl::AddSymbolOptions(this, 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();
            IDebugSymbols3_Impl::RemoveSymbolOptions(this, 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();
            IDebugSymbols3_Impl::SetSymbolOptions(this, 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();
            IDebugSymbols3_Impl::GetNameByOffset(this, 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 IDebugSymbols3_Impl::GetOffsetByName(this, core::mem::transmute(&symbol)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols3_Impl::GetNearNameByOffset(this, 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();
            IDebugSymbols3_Impl::GetLineByOffset(this, 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 IDebugSymbols3_Impl::GetOffsetByLine(this, core::mem::transmute_copy(&line), core::mem::transmute(&file)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols3_Impl::GetNumberModules(this, 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 IDebugSymbols3_Impl::GetModuleByIndex(this, core::mem::transmute_copy(&index)) {
                Ok(ok__) => {
                    core::ptr::write(base, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols3_Impl::GetModuleByModuleName(this, 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();
            IDebugSymbols3_Impl::GetModuleByOffset(this, 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();
            IDebugSymbols3_Impl::GetModuleNames(
                this,
                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();
            IDebugSymbols3_Impl::GetModuleParameters(this, 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 IDebugSymbols3_Impl::GetSymbolModule(this, core::mem::transmute(&symbol)) {
                Ok(ok__) => {
                    core::ptr::write(base, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols3_Impl::GetTypeName(this, 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 IDebugSymbols3_Impl::GetTypeId(this, core::mem::transmute_copy(&module), core::mem::transmute(&name)) {
                Ok(ok__) => {
                    core::ptr::write(typeid, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols3_Impl::GetTypeSize(this, core::mem::transmute_copy(&module), core::mem::transmute_copy(&typeid)) {
                Ok(ok__) => {
                    core::ptr::write(size, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols3_Impl::GetFieldOffset(this, core::mem::transmute_copy(&module), core::mem::transmute_copy(&typeid), core::mem::transmute(&field)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols3_Impl::GetSymbolTypeId(this, 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();
            IDebugSymbols3_Impl::GetOffsetTypeId(this, 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();
            IDebugSymbols3_Impl::ReadTypedDataVirtual(this, 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();
            IDebugSymbols3_Impl::WriteTypedDataVirtual(this, 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();
            IDebugSymbols3_Impl::OutputTypedDataVirtual(this, 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();
            IDebugSymbols3_Impl::ReadTypedDataPhysical(this, 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();
            IDebugSymbols3_Impl::WriteTypedDataPhysical(this, 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();
            IDebugSymbols3_Impl::OutputTypedDataPhysical(this, 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();
            IDebugSymbols3_Impl::GetScope(this, 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();
            IDebugSymbols3_Impl::SetScope(this, 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();
            IDebugSymbols3_Impl::ResetScope(this).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 IDebugSymbols3_Impl::GetScopeSymbolGroup(this, core::mem::transmute_copy(&flags), windows_core::from_raw_borrowed(&update)) {
                Ok(ok__) => {
                    core::ptr::write(symbols, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols3_Impl::CreateSymbolGroup(this) {
                Ok(ok__) => {
                    core::ptr::write(group, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols3_Impl::StartSymbolMatch(this, core::mem::transmute(&pattern)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols3_Impl::GetNextSymbolMatch(this, 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();
            IDebugSymbols3_Impl::EndSymbolMatch(this, 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();
            IDebugSymbols3_Impl::Reload(this, 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();
            IDebugSymbols3_Impl::GetSymbolPath(this, 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();
            IDebugSymbols3_Impl::SetSymbolPath(this, 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();
            IDebugSymbols3_Impl::AppendSymbolPath(this, 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();
            IDebugSymbols3_Impl::GetImagePath(this, 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();
            IDebugSymbols3_Impl::SetImagePath(this, 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();
            IDebugSymbols3_Impl::AppendImagePath(this, 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();
            IDebugSymbols3_Impl::GetSourcePath(this, 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();
            IDebugSymbols3_Impl::GetSourcePathElement(this, 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();
            IDebugSymbols3_Impl::SetSourcePath(this, 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();
            IDebugSymbols3_Impl::AppendSourcePath(this, 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();
            IDebugSymbols3_Impl::FindSourceFile(this, 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();
            IDebugSymbols3_Impl::GetSourceFileLineOffsets(this, 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();
            IDebugSymbols3_Impl::GetModuleVersionInformation(this, 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();
            IDebugSymbols3_Impl::GetModuleNameString(this, 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();
            IDebugSymbols3_Impl::GetConstantName(this, 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();
            IDebugSymbols3_Impl::GetFieldName(this, 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 IDebugSymbols3_Impl::GetTypeOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols3_Impl::AddTypeOptions(this, 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();
            IDebugSymbols3_Impl::RemoveTypeOptions(this, 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();
            IDebugSymbols3_Impl::SetTypeOptions(this, 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();
            IDebugSymbols3_Impl::GetNameByOffsetWide(this, 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 IDebugSymbols3_Impl::GetOffsetByNameWide(this, core::mem::transmute(&symbol)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols3_Impl::GetNearNameByOffsetWide(this, 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();
            IDebugSymbols3_Impl::GetLineByOffsetWide(this, 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 IDebugSymbols3_Impl::GetOffsetByLineWide(this, core::mem::transmute_copy(&line), core::mem::transmute(&file)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols3_Impl::GetModuleByModuleNameWide(this, 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 IDebugSymbols3_Impl::GetSymbolModuleWide(this, core::mem::transmute(&symbol)) {
                Ok(ok__) => {
                    core::ptr::write(base, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols3_Impl::GetTypeNameWide(this, 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 IDebugSymbols3_Impl::GetTypeIdWide(this, core::mem::transmute_copy(&module), core::mem::transmute(&name)) {
                Ok(ok__) => {
                    core::ptr::write(typeid, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols3_Impl::GetFieldOffsetWide(this, core::mem::transmute_copy(&module), core::mem::transmute_copy(&typeid), core::mem::transmute(&field)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols3_Impl::GetSymbolTypeIdWide(this, 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 IDebugSymbols3_Impl::GetScopeSymbolGroup2(this, core::mem::transmute_copy(&flags), windows_core::from_raw_borrowed(&update)) {
                Ok(ok__) => {
                    core::ptr::write(symbols, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols3_Impl::CreateSymbolGroup2(this) {
                Ok(ok__) => {
                    core::ptr::write(group, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols3_Impl::StartSymbolMatchWide(this, core::mem::transmute(&pattern)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols3_Impl::GetNextSymbolMatchWide(this, 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();
            IDebugSymbols3_Impl::ReloadWide(this, 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();
            IDebugSymbols3_Impl::GetSymbolPathWide(this, 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();
            IDebugSymbols3_Impl::SetSymbolPathWide(this, 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();
            IDebugSymbols3_Impl::AppendSymbolPathWide(this, 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();
            IDebugSymbols3_Impl::GetImagePathWide(this, 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();
            IDebugSymbols3_Impl::SetImagePathWide(this, 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();
            IDebugSymbols3_Impl::AppendImagePathWide(this, 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();
            IDebugSymbols3_Impl::GetSourcePathWide(this, 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();
            IDebugSymbols3_Impl::GetSourcePathElementWide(this, 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();
            IDebugSymbols3_Impl::SetSourcePathWide(this, 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();
            IDebugSymbols3_Impl::AppendSourcePathWide(this, 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();
            IDebugSymbols3_Impl::FindSourceFileWide(this, 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();
            IDebugSymbols3_Impl::GetSourceFileLineOffsetsWide(this, 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();
            IDebugSymbols3_Impl::GetModuleVersionInformationWide(this, 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();
            IDebugSymbols3_Impl::GetModuleNameStringWide(this, 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();
            IDebugSymbols3_Impl::GetConstantNameWide(this, 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();
            IDebugSymbols3_Impl::GetFieldNameWide(this, 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();
            IDebugSymbols3_Impl::IsManagedModule(this, 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();
            IDebugSymbols3_Impl::GetModuleByModuleName2(this, 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();
            IDebugSymbols3_Impl::GetModuleByModuleName2Wide(this, 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();
            IDebugSymbols3_Impl::GetModuleByOffset2(this, 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();
            IDebugSymbols3_Impl::AddSyntheticModule(this, 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();
            IDebugSymbols3_Impl::AddSyntheticModuleWide(this, 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();
            IDebugSymbols3_Impl::RemoveSyntheticModule(this, 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 IDebugSymbols3_Impl::GetCurrentScopeFrameIndex(this) {
                Ok(ok__) => {
                    core::ptr::write(index, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols3_Impl::SetScopeFrameByIndex(this, 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();
            IDebugSymbols3_Impl::SetScopeFromJitDebugInfo(this, 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();
            IDebugSymbols3_Impl::SetScopeFromStoredEvent(this).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();
            IDebugSymbols3_Impl::OutputSymbolByOffset(this, 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();
            IDebugSymbols3_Impl::GetFunctionEntryByOffset(this, 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();
            IDebugSymbols3_Impl::GetFieldTypeAndOffset(this, 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();
            IDebugSymbols3_Impl::GetFieldTypeAndOffsetWide(this, 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();
            IDebugSymbols3_Impl::AddSyntheticSymbol(this, 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();
            IDebugSymbols3_Impl::AddSyntheticSymbolWide(this, 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();
            IDebugSymbols3_Impl::RemoveSyntheticSymbol(this, 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();
            IDebugSymbols3_Impl::GetSymbolEntriesByOffset(this, 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();
            IDebugSymbols3_Impl::GetSymbolEntriesByName(this, 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();
            IDebugSymbols3_Impl::GetSymbolEntriesByNameWide(this, 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 IDebugSymbols3_Impl::GetSymbolEntryByToken(this, core::mem::transmute_copy(&modulebase), core::mem::transmute_copy(&token)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols3_Impl::GetSymbolEntryInformation(this, 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();
            IDebugSymbols3_Impl::GetSymbolEntryString(this, 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();
            IDebugSymbols3_Impl::GetSymbolEntryStringWide(this, 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();
            IDebugSymbols3_Impl::GetSymbolEntryOffsetRegions(this, 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 IDebugSymbols3_Impl::GetSymbolEntryBySymbolEntry(this, core::mem::transmute_copy(&fromid), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(toid, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols3_Impl::GetSourceEntriesByOffset(this, 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();
            IDebugSymbols3_Impl::GetSourceEntriesByLine(this, 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();
            IDebugSymbols3_Impl::GetSourceEntriesByLineWide(this, 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();
            IDebugSymbols3_Impl::GetSourceEntryString(this, 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();
            IDebugSymbols3_Impl::GetSourceEntryStringWide(this, 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();
            IDebugSymbols3_Impl::GetSourceEntryOffsetRegions(this, 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();
            IDebugSymbols3_Impl::GetSourceEntryBySourceEntry(this, 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::Interface>::IID
    }
}
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: 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: 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<()>;
}
impl windows_core::RuntimeName for IDebugSymbols4 {}
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 IDebugSymbols4_Impl::GetSymbolOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols4_Impl::AddSymbolOptions(this, 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();
            IDebugSymbols4_Impl::RemoveSymbolOptions(this, 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();
            IDebugSymbols4_Impl::SetSymbolOptions(this, 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();
            IDebugSymbols4_Impl::GetNameByOffset(this, 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 IDebugSymbols4_Impl::GetOffsetByName(this, core::mem::transmute(&symbol)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols4_Impl::GetNearNameByOffset(this, 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();
            IDebugSymbols4_Impl::GetLineByOffset(this, 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 IDebugSymbols4_Impl::GetOffsetByLine(this, core::mem::transmute_copy(&line), core::mem::transmute(&file)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols4_Impl::GetNumberModules(this, 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 IDebugSymbols4_Impl::GetModuleByIndex(this, core::mem::transmute_copy(&index)) {
                Ok(ok__) => {
                    core::ptr::write(base, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols4_Impl::GetModuleByModuleName(this, 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();
            IDebugSymbols4_Impl::GetModuleByOffset(this, 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();
            IDebugSymbols4_Impl::GetModuleNames(
                this,
                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();
            IDebugSymbols4_Impl::GetModuleParameters(this, 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 IDebugSymbols4_Impl::GetSymbolModule(this, core::mem::transmute(&symbol)) {
                Ok(ok__) => {
                    core::ptr::write(base, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols4_Impl::GetTypeName(this, 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 IDebugSymbols4_Impl::GetTypeId(this, core::mem::transmute_copy(&module), core::mem::transmute(&name)) {
                Ok(ok__) => {
                    core::ptr::write(typeid, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols4_Impl::GetTypeSize(this, core::mem::transmute_copy(&module), core::mem::transmute_copy(&typeid)) {
                Ok(ok__) => {
                    core::ptr::write(size, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols4_Impl::GetFieldOffset(this, core::mem::transmute_copy(&module), core::mem::transmute_copy(&typeid), core::mem::transmute(&field)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols4_Impl::GetSymbolTypeId(this, 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();
            IDebugSymbols4_Impl::GetOffsetTypeId(this, 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();
            IDebugSymbols4_Impl::ReadTypedDataVirtual(this, 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();
            IDebugSymbols4_Impl::WriteTypedDataVirtual(this, 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();
            IDebugSymbols4_Impl::OutputTypedDataVirtual(this, 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();
            IDebugSymbols4_Impl::ReadTypedDataPhysical(this, 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();
            IDebugSymbols4_Impl::WriteTypedDataPhysical(this, 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();
            IDebugSymbols4_Impl::OutputTypedDataPhysical(this, 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();
            IDebugSymbols4_Impl::GetScope(this, 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();
            IDebugSymbols4_Impl::SetScope(this, 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();
            IDebugSymbols4_Impl::ResetScope(this).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 IDebugSymbols4_Impl::GetScopeSymbolGroup(this, core::mem::transmute_copy(&flags), windows_core::from_raw_borrowed(&update)) {
                Ok(ok__) => {
                    core::ptr::write(symbols, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols4_Impl::CreateSymbolGroup(this) {
                Ok(ok__) => {
                    core::ptr::write(group, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols4_Impl::StartSymbolMatch(this, core::mem::transmute(&pattern)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols4_Impl::GetNextSymbolMatch(this, 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();
            IDebugSymbols4_Impl::EndSymbolMatch(this, 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();
            IDebugSymbols4_Impl::Reload(this, 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();
            IDebugSymbols4_Impl::GetSymbolPath(this, 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();
            IDebugSymbols4_Impl::SetSymbolPath(this, 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();
            IDebugSymbols4_Impl::AppendSymbolPath(this, 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();
            IDebugSymbols4_Impl::GetImagePath(this, 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();
            IDebugSymbols4_Impl::SetImagePath(this, 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();
            IDebugSymbols4_Impl::AppendImagePath(this, 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();
            IDebugSymbols4_Impl::GetSourcePath(this, 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();
            IDebugSymbols4_Impl::GetSourcePathElement(this, 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();
            IDebugSymbols4_Impl::SetSourcePath(this, 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();
            IDebugSymbols4_Impl::AppendSourcePath(this, 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();
            IDebugSymbols4_Impl::FindSourceFile(this, 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();
            IDebugSymbols4_Impl::GetSourceFileLineOffsets(this, 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();
            IDebugSymbols4_Impl::GetModuleVersionInformation(this, 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();
            IDebugSymbols4_Impl::GetModuleNameString(this, 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();
            IDebugSymbols4_Impl::GetConstantName(this, 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();
            IDebugSymbols4_Impl::GetFieldName(this, 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 IDebugSymbols4_Impl::GetTypeOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols4_Impl::AddTypeOptions(this, 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();
            IDebugSymbols4_Impl::RemoveTypeOptions(this, 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();
            IDebugSymbols4_Impl::SetTypeOptions(this, 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();
            IDebugSymbols4_Impl::GetNameByOffsetWide(this, 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 IDebugSymbols4_Impl::GetOffsetByNameWide(this, core::mem::transmute(&symbol)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols4_Impl::GetNearNameByOffsetWide(this, 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();
            IDebugSymbols4_Impl::GetLineByOffsetWide(this, 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 IDebugSymbols4_Impl::GetOffsetByLineWide(this, core::mem::transmute_copy(&line), core::mem::transmute(&file)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols4_Impl::GetModuleByModuleNameWide(this, 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 IDebugSymbols4_Impl::GetSymbolModuleWide(this, core::mem::transmute(&symbol)) {
                Ok(ok__) => {
                    core::ptr::write(base, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols4_Impl::GetTypeNameWide(this, 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 IDebugSymbols4_Impl::GetTypeIdWide(this, core::mem::transmute_copy(&module), core::mem::transmute(&name)) {
                Ok(ok__) => {
                    core::ptr::write(typeid, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols4_Impl::GetFieldOffsetWide(this, core::mem::transmute_copy(&module), core::mem::transmute_copy(&typeid), core::mem::transmute(&field)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols4_Impl::GetSymbolTypeIdWide(this, 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 IDebugSymbols4_Impl::GetScopeSymbolGroup2(this, core::mem::transmute_copy(&flags), windows_core::from_raw_borrowed(&update)) {
                Ok(ok__) => {
                    core::ptr::write(symbols, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols4_Impl::CreateSymbolGroup2(this) {
                Ok(ok__) => {
                    core::ptr::write(group, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols4_Impl::StartSymbolMatchWide(this, core::mem::transmute(&pattern)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols4_Impl::GetNextSymbolMatchWide(this, 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();
            IDebugSymbols4_Impl::ReloadWide(this, 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();
            IDebugSymbols4_Impl::GetSymbolPathWide(this, 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();
            IDebugSymbols4_Impl::SetSymbolPathWide(this, 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();
            IDebugSymbols4_Impl::AppendSymbolPathWide(this, 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();
            IDebugSymbols4_Impl::GetImagePathWide(this, 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();
            IDebugSymbols4_Impl::SetImagePathWide(this, 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();
            IDebugSymbols4_Impl::AppendImagePathWide(this, 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();
            IDebugSymbols4_Impl::GetSourcePathWide(this, 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();
            IDebugSymbols4_Impl::GetSourcePathElementWide(this, 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();
            IDebugSymbols4_Impl::SetSourcePathWide(this, 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();
            IDebugSymbols4_Impl::AppendSourcePathWide(this, 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();
            IDebugSymbols4_Impl::FindSourceFileWide(this, 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();
            IDebugSymbols4_Impl::GetSourceFileLineOffsetsWide(this, 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();
            IDebugSymbols4_Impl::GetModuleVersionInformationWide(this, 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();
            IDebugSymbols4_Impl::GetModuleNameStringWide(this, 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();
            IDebugSymbols4_Impl::GetConstantNameWide(this, 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();
            IDebugSymbols4_Impl::GetFieldNameWide(this, 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();
            IDebugSymbols4_Impl::IsManagedModule(this, 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();
            IDebugSymbols4_Impl::GetModuleByModuleName2(this, 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();
            IDebugSymbols4_Impl::GetModuleByModuleName2Wide(this, 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();
            IDebugSymbols4_Impl::GetModuleByOffset2(this, 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();
            IDebugSymbols4_Impl::AddSyntheticModule(this, 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();
            IDebugSymbols4_Impl::AddSyntheticModuleWide(this, 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();
            IDebugSymbols4_Impl::RemoveSyntheticModule(this, 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 IDebugSymbols4_Impl::GetCurrentScopeFrameIndex(this) {
                Ok(ok__) => {
                    core::ptr::write(index, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols4_Impl::SetScopeFrameByIndex(this, 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();
            IDebugSymbols4_Impl::SetScopeFromJitDebugInfo(this, 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();
            IDebugSymbols4_Impl::SetScopeFromStoredEvent(this).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();
            IDebugSymbols4_Impl::OutputSymbolByOffset(this, 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();
            IDebugSymbols4_Impl::GetFunctionEntryByOffset(this, 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();
            IDebugSymbols4_Impl::GetFieldTypeAndOffset(this, 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();
            IDebugSymbols4_Impl::GetFieldTypeAndOffsetWide(this, 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();
            IDebugSymbols4_Impl::AddSyntheticSymbol(this, 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();
            IDebugSymbols4_Impl::AddSyntheticSymbolWide(this, 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();
            IDebugSymbols4_Impl::RemoveSyntheticSymbol(this, 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();
            IDebugSymbols4_Impl::GetSymbolEntriesByOffset(this, 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();
            IDebugSymbols4_Impl::GetSymbolEntriesByName(this, 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();
            IDebugSymbols4_Impl::GetSymbolEntriesByNameWide(this, 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 IDebugSymbols4_Impl::GetSymbolEntryByToken(this, core::mem::transmute_copy(&modulebase), core::mem::transmute_copy(&token)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols4_Impl::GetSymbolEntryInformation(this, 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();
            IDebugSymbols4_Impl::GetSymbolEntryString(this, 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();
            IDebugSymbols4_Impl::GetSymbolEntryStringWide(this, 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();
            IDebugSymbols4_Impl::GetSymbolEntryOffsetRegions(this, 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 IDebugSymbols4_Impl::GetSymbolEntryBySymbolEntry(this, core::mem::transmute_copy(&fromid), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(toid, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols4_Impl::GetSourceEntriesByOffset(this, 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();
            IDebugSymbols4_Impl::GetSourceEntriesByLine(this, 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();
            IDebugSymbols4_Impl::GetSourceEntriesByLineWide(this, 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();
            IDebugSymbols4_Impl::GetSourceEntryString(this, 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();
            IDebugSymbols4_Impl::GetSourceEntryStringWide(this, 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();
            IDebugSymbols4_Impl::GetSourceEntryOffsetRegions(this, 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();
            IDebugSymbols4_Impl::GetSourceEntryBySourceEntry(this, 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();
            IDebugSymbols4_Impl::GetScopeEx(this, 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();
            IDebugSymbols4_Impl::SetScopeEx(this, 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();
            IDebugSymbols4_Impl::GetNameByInlineContext(this, 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();
            IDebugSymbols4_Impl::GetNameByInlineContextWide(this, 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();
            IDebugSymbols4_Impl::GetLineByInlineContext(this, 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();
            IDebugSymbols4_Impl::GetLineByInlineContextWide(this, 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();
            IDebugSymbols4_Impl::OutputSymbolByInlineContext(this, 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::Interface>::IID
    }
}
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: 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: 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<()>;
}
impl windows_core::RuntimeName for IDebugSymbols5 {}
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 IDebugSymbols5_Impl::GetSymbolOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols5_Impl::AddSymbolOptions(this, 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();
            IDebugSymbols5_Impl::RemoveSymbolOptions(this, 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();
            IDebugSymbols5_Impl::SetSymbolOptions(this, 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();
            IDebugSymbols5_Impl::GetNameByOffset(this, 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 IDebugSymbols5_Impl::GetOffsetByName(this, core::mem::transmute(&symbol)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols5_Impl::GetNearNameByOffset(this, 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();
            IDebugSymbols5_Impl::GetLineByOffset(this, 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 IDebugSymbols5_Impl::GetOffsetByLine(this, core::mem::transmute_copy(&line), core::mem::transmute(&file)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols5_Impl::GetNumberModules(this, 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 IDebugSymbols5_Impl::GetModuleByIndex(this, core::mem::transmute_copy(&index)) {
                Ok(ok__) => {
                    core::ptr::write(base, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols5_Impl::GetModuleByModuleName(this, 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();
            IDebugSymbols5_Impl::GetModuleByOffset(this, 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();
            IDebugSymbols5_Impl::GetModuleNames(
                this,
                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();
            IDebugSymbols5_Impl::GetModuleParameters(this, 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 IDebugSymbols5_Impl::GetSymbolModule(this, core::mem::transmute(&symbol)) {
                Ok(ok__) => {
                    core::ptr::write(base, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols5_Impl::GetTypeName(this, 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 IDebugSymbols5_Impl::GetTypeId(this, core::mem::transmute_copy(&module), core::mem::transmute(&name)) {
                Ok(ok__) => {
                    core::ptr::write(typeid, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols5_Impl::GetTypeSize(this, core::mem::transmute_copy(&module), core::mem::transmute_copy(&typeid)) {
                Ok(ok__) => {
                    core::ptr::write(size, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols5_Impl::GetFieldOffset(this, core::mem::transmute_copy(&module), core::mem::transmute_copy(&typeid), core::mem::transmute(&field)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols5_Impl::GetSymbolTypeId(this, 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();
            IDebugSymbols5_Impl::GetOffsetTypeId(this, 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();
            IDebugSymbols5_Impl::ReadTypedDataVirtual(this, 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();
            IDebugSymbols5_Impl::WriteTypedDataVirtual(this, 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();
            IDebugSymbols5_Impl::OutputTypedDataVirtual(this, 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();
            IDebugSymbols5_Impl::ReadTypedDataPhysical(this, 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();
            IDebugSymbols5_Impl::WriteTypedDataPhysical(this, 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();
            IDebugSymbols5_Impl::OutputTypedDataPhysical(this, 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();
            IDebugSymbols5_Impl::GetScope(this, 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();
            IDebugSymbols5_Impl::SetScope(this, 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();
            IDebugSymbols5_Impl::ResetScope(this).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 IDebugSymbols5_Impl::GetScopeSymbolGroup(this, core::mem::transmute_copy(&flags), windows_core::from_raw_borrowed(&update)) {
                Ok(ok__) => {
                    core::ptr::write(symbols, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols5_Impl::CreateSymbolGroup(this) {
                Ok(ok__) => {
                    core::ptr::write(group, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols5_Impl::StartSymbolMatch(this, core::mem::transmute(&pattern)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols5_Impl::GetNextSymbolMatch(this, 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();
            IDebugSymbols5_Impl::EndSymbolMatch(this, 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();
            IDebugSymbols5_Impl::Reload(this, 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();
            IDebugSymbols5_Impl::GetSymbolPath(this, 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();
            IDebugSymbols5_Impl::SetSymbolPath(this, 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();
            IDebugSymbols5_Impl::AppendSymbolPath(this, 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();
            IDebugSymbols5_Impl::GetImagePath(this, 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();
            IDebugSymbols5_Impl::SetImagePath(this, 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();
            IDebugSymbols5_Impl::AppendImagePath(this, 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();
            IDebugSymbols5_Impl::GetSourcePath(this, 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();
            IDebugSymbols5_Impl::GetSourcePathElement(this, 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();
            IDebugSymbols5_Impl::SetSourcePath(this, 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();
            IDebugSymbols5_Impl::AppendSourcePath(this, 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();
            IDebugSymbols5_Impl::FindSourceFile(this, 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();
            IDebugSymbols5_Impl::GetSourceFileLineOffsets(this, 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();
            IDebugSymbols5_Impl::GetModuleVersionInformation(this, 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();
            IDebugSymbols5_Impl::GetModuleNameString(this, 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();
            IDebugSymbols5_Impl::GetConstantName(this, 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();
            IDebugSymbols5_Impl::GetFieldName(this, 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 IDebugSymbols5_Impl::GetTypeOptions(this) {
                Ok(ok__) => {
                    core::ptr::write(options, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols5_Impl::AddTypeOptions(this, 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();
            IDebugSymbols5_Impl::RemoveTypeOptions(this, 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();
            IDebugSymbols5_Impl::SetTypeOptions(this, 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();
            IDebugSymbols5_Impl::GetNameByOffsetWide(this, 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 IDebugSymbols5_Impl::GetOffsetByNameWide(this, core::mem::transmute(&symbol)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols5_Impl::GetNearNameByOffsetWide(this, 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();
            IDebugSymbols5_Impl::GetLineByOffsetWide(this, 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 IDebugSymbols5_Impl::GetOffsetByLineWide(this, core::mem::transmute_copy(&line), core::mem::transmute(&file)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols5_Impl::GetModuleByModuleNameWide(this, 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 IDebugSymbols5_Impl::GetSymbolModuleWide(this, core::mem::transmute(&symbol)) {
                Ok(ok__) => {
                    core::ptr::write(base, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols5_Impl::GetTypeNameWide(this, 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 IDebugSymbols5_Impl::GetTypeIdWide(this, core::mem::transmute_copy(&module), core::mem::transmute(&name)) {
                Ok(ok__) => {
                    core::ptr::write(typeid, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols5_Impl::GetFieldOffsetWide(this, core::mem::transmute_copy(&module), core::mem::transmute_copy(&typeid), core::mem::transmute(&field)) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols5_Impl::GetSymbolTypeIdWide(this, 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 IDebugSymbols5_Impl::GetScopeSymbolGroup2(this, core::mem::transmute_copy(&flags), windows_core::from_raw_borrowed(&update)) {
                Ok(ok__) => {
                    core::ptr::write(symbols, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols5_Impl::CreateSymbolGroup2(this) {
                Ok(ok__) => {
                    core::ptr::write(group, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSymbols5_Impl::StartSymbolMatchWide(this, core::mem::transmute(&pattern)) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols5_Impl::GetNextSymbolMatchWide(this, 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();
            IDebugSymbols5_Impl::ReloadWide(this, 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();
            IDebugSymbols5_Impl::GetSymbolPathWide(this, 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();
            IDebugSymbols5_Impl::SetSymbolPathWide(this, 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();
            IDebugSymbols5_Impl::AppendSymbolPathWide(this, 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();
            IDebugSymbols5_Impl::GetImagePathWide(this, 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();
            IDebugSymbols5_Impl::SetImagePathWide(this, 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();
            IDebugSymbols5_Impl::AppendImagePathWide(this, 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();
            IDebugSymbols5_Impl::GetSourcePathWide(this, 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();
            IDebugSymbols5_Impl::GetSourcePathElementWide(this, 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();
            IDebugSymbols5_Impl::SetSourcePathWide(this, 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();
            IDebugSymbols5_Impl::AppendSourcePathWide(this, 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();
            IDebugSymbols5_Impl::FindSourceFileWide(this, 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();
            IDebugSymbols5_Impl::GetSourceFileLineOffsetsWide(this, 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();
            IDebugSymbols5_Impl::GetModuleVersionInformationWide(this, 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();
            IDebugSymbols5_Impl::GetModuleNameStringWide(this, 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();
            IDebugSymbols5_Impl::GetConstantNameWide(this, 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();
            IDebugSymbols5_Impl::GetFieldNameWide(this, 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();
            IDebugSymbols5_Impl::IsManagedModule(this, 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();
            IDebugSymbols5_Impl::GetModuleByModuleName2(this, 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();
            IDebugSymbols5_Impl::GetModuleByModuleName2Wide(this, 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();
            IDebugSymbols5_Impl::GetModuleByOffset2(this, 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();
            IDebugSymbols5_Impl::AddSyntheticModule(this, 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();
            IDebugSymbols5_Impl::AddSyntheticModuleWide(this, 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();
            IDebugSymbols5_Impl::RemoveSyntheticModule(this, 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 IDebugSymbols5_Impl::GetCurrentScopeFrameIndex(this) {
                Ok(ok__) => {
                    core::ptr::write(index, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols5_Impl::SetScopeFrameByIndex(this, 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();
            IDebugSymbols5_Impl::SetScopeFromJitDebugInfo(this, 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();
            IDebugSymbols5_Impl::SetScopeFromStoredEvent(this).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();
            IDebugSymbols5_Impl::OutputSymbolByOffset(this, 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();
            IDebugSymbols5_Impl::GetFunctionEntryByOffset(this, 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();
            IDebugSymbols5_Impl::GetFieldTypeAndOffset(this, 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();
            IDebugSymbols5_Impl::GetFieldTypeAndOffsetWide(this, 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();
            IDebugSymbols5_Impl::AddSyntheticSymbol(this, 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();
            IDebugSymbols5_Impl::AddSyntheticSymbolWide(this, 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();
            IDebugSymbols5_Impl::RemoveSyntheticSymbol(this, 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();
            IDebugSymbols5_Impl::GetSymbolEntriesByOffset(this, 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();
            IDebugSymbols5_Impl::GetSymbolEntriesByName(this, 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();
            IDebugSymbols5_Impl::GetSymbolEntriesByNameWide(this, 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 IDebugSymbols5_Impl::GetSymbolEntryByToken(this, core::mem::transmute_copy(&modulebase), core::mem::transmute_copy(&token)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols5_Impl::GetSymbolEntryInformation(this, 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();
            IDebugSymbols5_Impl::GetSymbolEntryString(this, 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();
            IDebugSymbols5_Impl::GetSymbolEntryStringWide(this, 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();
            IDebugSymbols5_Impl::GetSymbolEntryOffsetRegions(this, 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 IDebugSymbols5_Impl::GetSymbolEntryBySymbolEntry(this, core::mem::transmute_copy(&fromid), core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(toid, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols5_Impl::GetSourceEntriesByOffset(this, 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();
            IDebugSymbols5_Impl::GetSourceEntriesByLine(this, 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();
            IDebugSymbols5_Impl::GetSourceEntriesByLineWide(this, 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();
            IDebugSymbols5_Impl::GetSourceEntryString(this, 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();
            IDebugSymbols5_Impl::GetSourceEntryStringWide(this, 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();
            IDebugSymbols5_Impl::GetSourceEntryOffsetRegions(this, 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();
            IDebugSymbols5_Impl::GetSourceEntryBySourceEntry(this, 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();
            IDebugSymbols5_Impl::GetScopeEx(this, 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();
            IDebugSymbols5_Impl::SetScopeEx(this, 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();
            IDebugSymbols5_Impl::GetNameByInlineContext(this, 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();
            IDebugSymbols5_Impl::GetNameByInlineContextWide(this, 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();
            IDebugSymbols5_Impl::GetLineByInlineContext(this, 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();
            IDebugSymbols5_Impl::GetLineByInlineContextWide(this, 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();
            IDebugSymbols5_Impl::OutputSymbolByInlineContext(this, 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 IDebugSymbols5_Impl::GetCurrentScopeFrameIndexEx(this, core::mem::transmute_copy(&flags)) {
                Ok(ok__) => {
                    core::ptr::write(index, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSymbols5_Impl::SetScopeFrameByIndexEx(this, 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::Interface>::IID
    }
}
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 IDebugSystemObjects_Impl::GetEventThread(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects_Impl::GetEventProcess(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects_Impl::GetCurrentThreadId(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects_Impl::SetCurrentThreadId(this, 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 IDebugSystemObjects_Impl::GetCurrentProcessId(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects_Impl::SetCurrentProcessId(this, 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 IDebugSystemObjects_Impl::GetNumberThreads(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects_Impl::GetTotalNumberThreads(this, 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();
            IDebugSystemObjects_Impl::GetThreadIdsByIndex(this, 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 IDebugSystemObjects_Impl::GetThreadIdByProcessor(this, core::mem::transmute_copy(&processor)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects_Impl::GetCurrentThreadDataOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects_Impl::GetThreadIdByDataOffset(this, core::mem::transmute_copy(&offset)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects_Impl::GetCurrentThreadTeb(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects_Impl::GetThreadIdByTeb(this, core::mem::transmute_copy(&offset)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects_Impl::GetCurrentThreadSystemId(this) {
                Ok(ok__) => {
                    core::ptr::write(sysid, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects_Impl::GetThreadIdBySystemId(this, core::mem::transmute_copy(&sysid)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects_Impl::GetCurrentThreadHandle(this) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects_Impl::GetThreadIdByHandle(this, core::mem::transmute_copy(&handle)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects_Impl::GetNumberProcesses(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects_Impl::GetProcessIdsByIndex(this, 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 IDebugSystemObjects_Impl::GetCurrentProcessDataOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects_Impl::GetProcessIdByDataOffset(this, core::mem::transmute_copy(&offset)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects_Impl::GetCurrentProcessPeb(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects_Impl::GetProcessIdByPeb(this, core::mem::transmute_copy(&offset)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects_Impl::GetCurrentProcessSystemId(this) {
                Ok(ok__) => {
                    core::ptr::write(sysid, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects_Impl::GetProcessIdBySystemId(this, core::mem::transmute_copy(&sysid)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects_Impl::GetCurrentProcessHandle(this) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects_Impl::GetProcessIdByHandle(this, core::mem::transmute_copy(&handle)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects_Impl::GetCurrentProcessExecutableName(this, 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::Interface>::IID
    }
}
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 IDebugSystemObjects2_Impl::GetEventThread(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects2_Impl::GetEventProcess(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects2_Impl::GetCurrentThreadId(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects2_Impl::SetCurrentThreadId(this, 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 IDebugSystemObjects2_Impl::GetCurrentProcessId(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects2_Impl::SetCurrentProcessId(this, 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 IDebugSystemObjects2_Impl::GetNumberThreads(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects2_Impl::GetTotalNumberThreads(this, 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();
            IDebugSystemObjects2_Impl::GetThreadIdsByIndex(this, 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 IDebugSystemObjects2_Impl::GetThreadIdByProcessor(this, core::mem::transmute_copy(&processor)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects2_Impl::GetCurrentThreadDataOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects2_Impl::GetThreadIdByDataOffset(this, core::mem::transmute_copy(&offset)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects2_Impl::GetCurrentThreadTeb(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects2_Impl::GetThreadIdByTeb(this, core::mem::transmute_copy(&offset)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects2_Impl::GetCurrentThreadSystemId(this) {
                Ok(ok__) => {
                    core::ptr::write(sysid, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects2_Impl::GetThreadIdBySystemId(this, core::mem::transmute_copy(&sysid)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects2_Impl::GetCurrentThreadHandle(this) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects2_Impl::GetThreadIdByHandle(this, core::mem::transmute_copy(&handle)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects2_Impl::GetNumberProcesses(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects2_Impl::GetProcessIdsByIndex(this, 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 IDebugSystemObjects2_Impl::GetCurrentProcessDataOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects2_Impl::GetProcessIdByDataOffset(this, core::mem::transmute_copy(&offset)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects2_Impl::GetCurrentProcessPeb(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects2_Impl::GetProcessIdByPeb(this, core::mem::transmute_copy(&offset)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects2_Impl::GetCurrentProcessSystemId(this) {
                Ok(ok__) => {
                    core::ptr::write(sysid, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects2_Impl::GetProcessIdBySystemId(this, core::mem::transmute_copy(&sysid)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects2_Impl::GetCurrentProcessHandle(this) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects2_Impl::GetProcessIdByHandle(this, core::mem::transmute_copy(&handle)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects2_Impl::GetCurrentProcessExecutableName(this, 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 IDebugSystemObjects2_Impl::GetCurrentProcessUpTime(this) {
                Ok(ok__) => {
                    core::ptr::write(uptime, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects2_Impl::GetImplicitThreadDataOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects2_Impl::SetImplicitThreadDataOffset(this, 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 IDebugSystemObjects2_Impl::GetImplicitProcessDataOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects2_Impl::SetImplicitProcessDataOffset(this, 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::Interface>::IID
    }
}
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 IDebugSystemObjects3_Impl::GetEventThread(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetEventProcess(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetCurrentThreadId(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects3_Impl::SetCurrentThreadId(this, 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 IDebugSystemObjects3_Impl::GetCurrentProcessId(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects3_Impl::SetCurrentProcessId(this, 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 IDebugSystemObjects3_Impl::GetNumberThreads(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects3_Impl::GetTotalNumberThreads(this, 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();
            IDebugSystemObjects3_Impl::GetThreadIdsByIndex(this, 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 IDebugSystemObjects3_Impl::GetThreadIdByProcessor(this, core::mem::transmute_copy(&processor)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetCurrentThreadDataOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetThreadIdByDataOffset(this, core::mem::transmute_copy(&offset)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetCurrentThreadTeb(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetThreadIdByTeb(this, core::mem::transmute_copy(&offset)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetCurrentThreadSystemId(this) {
                Ok(ok__) => {
                    core::ptr::write(sysid, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetThreadIdBySystemId(this, core::mem::transmute_copy(&sysid)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetCurrentThreadHandle(this) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetThreadIdByHandle(this, core::mem::transmute_copy(&handle)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetNumberProcesses(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects3_Impl::GetProcessIdsByIndex(this, 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 IDebugSystemObjects3_Impl::GetCurrentProcessDataOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetProcessIdByDataOffset(this, core::mem::transmute_copy(&offset)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetCurrentProcessPeb(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetProcessIdByPeb(this, core::mem::transmute_copy(&offset)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetCurrentProcessSystemId(this) {
                Ok(ok__) => {
                    core::ptr::write(sysid, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetProcessIdBySystemId(this, core::mem::transmute_copy(&sysid)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetCurrentProcessHandle(this) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetProcessIdByHandle(this, core::mem::transmute_copy(&handle)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects3_Impl::GetCurrentProcessExecutableName(this, 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 IDebugSystemObjects3_Impl::GetCurrentProcessUpTime(this) {
                Ok(ok__) => {
                    core::ptr::write(uptime, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetImplicitThreadDataOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects3_Impl::SetImplicitThreadDataOffset(this, 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 IDebugSystemObjects3_Impl::GetImplicitProcessDataOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects3_Impl::SetImplicitProcessDataOffset(this, 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 IDebugSystemObjects3_Impl::GetEventSystem(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetCurrentSystemId(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects3_Impl::SetCurrentSystemId(this, 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 IDebugSystemObjects3_Impl::GetNumberSystems(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects3_Impl::GetSystemIdsByIndex(this, 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();
            IDebugSystemObjects3_Impl::GetTotalNumberThreadsAndProcesses(this, 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 IDebugSystemObjects3_Impl::GetCurrentSystemServer(this) {
                Ok(ok__) => {
                    core::ptr::write(server, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects3_Impl::GetSystemByServer(this, core::mem::transmute_copy(&server)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects3_Impl::GetCurrentSystemServerName(this, 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::Interface>::IID
    }
}
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 IDebugSystemObjects4_Impl::GetEventThread(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetEventProcess(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetCurrentThreadId(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects4_Impl::SetCurrentThreadId(this, 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 IDebugSystemObjects4_Impl::GetCurrentProcessId(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects4_Impl::SetCurrentProcessId(this, 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 IDebugSystemObjects4_Impl::GetNumberThreads(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects4_Impl::GetTotalNumberThreads(this, 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();
            IDebugSystemObjects4_Impl::GetThreadIdsByIndex(this, 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 IDebugSystemObjects4_Impl::GetThreadIdByProcessor(this, core::mem::transmute_copy(&processor)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetCurrentThreadDataOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetThreadIdByDataOffset(this, core::mem::transmute_copy(&offset)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetCurrentThreadTeb(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetThreadIdByTeb(this, core::mem::transmute_copy(&offset)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetCurrentThreadSystemId(this) {
                Ok(ok__) => {
                    core::ptr::write(sysid, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetThreadIdBySystemId(this, core::mem::transmute_copy(&sysid)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetCurrentThreadHandle(this) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetThreadIdByHandle(this, core::mem::transmute_copy(&handle)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetNumberProcesses(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects4_Impl::GetProcessIdsByIndex(this, 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 IDebugSystemObjects4_Impl::GetCurrentProcessDataOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetProcessIdByDataOffset(this, core::mem::transmute_copy(&offset)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetCurrentProcessPeb(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetProcessIdByPeb(this, core::mem::transmute_copy(&offset)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetCurrentProcessSystemId(this) {
                Ok(ok__) => {
                    core::ptr::write(sysid, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetProcessIdBySystemId(this, core::mem::transmute_copy(&sysid)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetCurrentProcessHandle(this) {
                Ok(ok__) => {
                    core::ptr::write(handle, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetProcessIdByHandle(this, core::mem::transmute_copy(&handle)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects4_Impl::GetCurrentProcessExecutableName(this, 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 IDebugSystemObjects4_Impl::GetCurrentProcessUpTime(this) {
                Ok(ok__) => {
                    core::ptr::write(uptime, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetImplicitThreadDataOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects4_Impl::SetImplicitThreadDataOffset(this, 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 IDebugSystemObjects4_Impl::GetImplicitProcessDataOffset(this) {
                Ok(ok__) => {
                    core::ptr::write(offset, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects4_Impl::SetImplicitProcessDataOffset(this, 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 IDebugSystemObjects4_Impl::GetEventSystem(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetCurrentSystemId(this) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects4_Impl::SetCurrentSystemId(this, 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 IDebugSystemObjects4_Impl::GetNumberSystems(this) {
                Ok(ok__) => {
                    core::ptr::write(number, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects4_Impl::GetSystemIdsByIndex(this, 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();
            IDebugSystemObjects4_Impl::GetTotalNumberThreadsAndProcesses(this, 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 IDebugSystemObjects4_Impl::GetCurrentSystemServer(this) {
                Ok(ok__) => {
                    core::ptr::write(server, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IDebugSystemObjects4_Impl::GetSystemByServer(this, core::mem::transmute_copy(&server)) {
                Ok(ok__) => {
                    core::ptr::write(id, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IDebugSystemObjects4_Impl::GetCurrentSystemServerName(this, 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();
            IDebugSystemObjects4_Impl::GetCurrentProcessExecutableNameWide(this, 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();
            IDebugSystemObjects4_Impl::GetCurrentSystemServerNameWide(this, 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::Interface>::IID
    }
}
pub trait IDynamicConceptProviderConcept_Impl: Sized {
    fn GetConcept(&self, contextobject: Option<&IModelObject>, conceptid: *const windows_core::GUID, conceptinterface: *mut Option<windows_core::IUnknown>, conceptmetadata: *mut Option<IKeyStore>, hasconcept: *mut bool) -> windows_core::Result<()>;
    fn SetConcept(&self, contextobject: Option<&IModelObject>, conceptid: *const windows_core::GUID, conceptinterface: Option<&windows_core::IUnknown>, conceptmetadata: Option<&IKeyStore>) -> windows_core::Result<()>;
    fn NotifyParent(&self, parentmodel: Option<&IModelObject>) -> windows_core::Result<()>;
    fn NotifyParentChange(&self, parentmodel: 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();
            IDynamicConceptProviderConcept_Impl::GetConcept(this, 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();
            IDynamicConceptProviderConcept_Impl::SetConcept(this, 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();
            IDynamicConceptProviderConcept_Impl::NotifyParent(this, 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();
            IDynamicConceptProviderConcept_Impl::NotifyParentChange(this, 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();
            IDynamicConceptProviderConcept_Impl::NotifyDestruct(this).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::Interface>::IID
    }
}
pub trait IDynamicKeyProviderConcept_Impl: Sized {
    fn GetKey(&self, contextobject: Option<&IModelObject>, key: &windows_core::PCWSTR, keyvalue: *mut Option<IModelObject>, metadata: *mut Option<IKeyStore>, haskey: *mut bool) -> windows_core::Result<()>;
    fn SetKey(&self, contextobject: Option<&IModelObject>, key: &windows_core::PCWSTR, keyvalue: Option<&IModelObject>, metadata: Option<&IKeyStore>) -> windows_core::Result<()>;
    fn EnumerateKeys(&self, contextobject: 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();
            IDynamicKeyProviderConcept_Impl::GetKey(this, 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();
            IDynamicKeyProviderConcept_Impl::SetKey(this, 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 IDynamicKeyProviderConcept_Impl::EnumerateKeys(this, windows_core::from_raw_borrowed(&contextobject)) {
                Ok(ok__) => {
                    core::ptr::write(ppenumerator, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
pub trait IEquatableConcept_Impl: Sized {
    fn AreObjectsEqual(&self, contextobject: Option<&IModelObject>, otherobject: 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 IEquatableConcept_Impl::AreObjectsEqual(this, windows_core::from_raw_borrowed(&contextobject), windows_core::from_raw_borrowed(&otherobject)) {
                Ok(ok__) => {
                    core::ptr::write(isequal, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
pub trait IHostDataModelAccess_Impl: Sized {
    fn GetDataModel(&self, manager: *mut Option<IDataModelManager>, host: *mut 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();
            IHostDataModelAccess_Impl::GetDataModel(this, 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::Interface>::IID
    }
}
pub trait IIndexableConcept_Impl: Sized {
    fn GetDimensionality(&self, contextobject: Option<&IModelObject>) -> windows_core::Result<u64>;
    fn GetAt(&self, contextobject: Option<&IModelObject>, indexercount: u64, indexers: *const Option<IModelObject>, object: *mut Option<IModelObject>, metadata: *mut Option<IKeyStore>) -> windows_core::Result<()>;
    fn SetAt(&self, contextobject: Option<&IModelObject>, indexercount: u64, indexers: *const Option<IModelObject>, value: 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 IIndexableConcept_Impl::GetDimensionality(this, windows_core::from_raw_borrowed(&contextobject)) {
                Ok(ok__) => {
                    core::ptr::write(dimensionality, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IIndexableConcept_Impl::GetAt(this, 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();
            IIndexableConcept_Impl::SetAt(this, 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::Interface>::IID
    }
}
pub trait IIterableConcept_Impl: Sized {
    fn GetDefaultIndexDimensionality(&self, contextobject: Option<&IModelObject>) -> windows_core::Result<u64>;
    fn GetIterator(&self, contextobject: 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 IIterableConcept_Impl::GetDefaultIndexDimensionality(this, windows_core::from_raw_borrowed(&contextobject)) {
                Ok(ok__) => {
                    core::ptr::write(dimensionality, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IIterableConcept_Impl::GetIterator(this, windows_core::from_raw_borrowed(&contextobject)) {
                Ok(ok__) => {
                    core::ptr::write(iterator, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
pub trait IKeyEnumerator_Impl: Sized {
    fn Reset(&self) -> windows_core::Result<()>;
    fn GetNext(&self, key: *mut windows_core::BSTR, value: *mut Option<IModelObject>, metadata: *mut 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();
            IKeyEnumerator_Impl::Reset(this).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();
            IKeyEnumerator_Impl::GetNext(this, 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::Interface>::IID
    }
}
pub trait IKeyStore_Impl: Sized {
    fn GetKey(&self, key: &windows_core::PCWSTR, object: *mut Option<IModelObject>, metadata: *mut Option<IKeyStore>) -> windows_core::Result<()>;
    fn SetKey(&self, key: &windows_core::PCWSTR, object: Option<&IModelObject>, metadata: Option<&IKeyStore>) -> windows_core::Result<()>;
    fn GetKeyValue(&self, key: &windows_core::PCWSTR, object: *mut Option<IModelObject>, metadata: *mut Option<IKeyStore>) -> windows_core::Result<()>;
    fn SetKeyValue(&self, key: &windows_core::PCWSTR, object: 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();
            IKeyStore_Impl::GetKey(this, 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();
            IKeyStore_Impl::SetKey(this, 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();
            IKeyStore_Impl::GetKeyValue(this, 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();
            IKeyStore_Impl::SetKeyValue(this, 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();
            IKeyStore_Impl::ClearKeys(this).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::Interface>::IID
    }
}
pub trait IModelIterator_Impl: Sized {
    fn Reset(&self) -> windows_core::Result<()>;
    fn GetNext(&self, object: *mut Option<IModelObject>, dimensions: u64, indexers: *mut Option<IModelObject>, metadata: *mut 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();
            IModelIterator_Impl::Reset(this).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();
            IModelIterator_Impl::GetNext(this, 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::Interface>::IID
    }
}
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 Option<IModelObject>, metadata: *mut Option<IKeyStore>) -> windows_core::Result<()>;
    fn GetKeyValue(&self, object: *mut Option<IModelObject>, metadata: *mut Option<IKeyStore>) -> windows_core::Result<()>;
    fn SetKey(&self, object: Option<&IModelObject>, metadata: Option<&IKeyStore>) -> windows_core::Result<()>;
    fn SetKeyValue(&self, object: 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 IModelKeyReference_Impl::GetKeyName(this) {
                Ok(ok__) => {
                    core::ptr::write(keyname, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IModelKeyReference_Impl::GetOriginalObject(this) {
                Ok(ok__) => {
                    core::ptr::write(originalobject, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IModelKeyReference_Impl::GetContextObject(this) {
                Ok(ok__) => {
                    core::ptr::write(containingobject, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IModelKeyReference_Impl::GetKey(this, 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();
            IModelKeyReference_Impl::GetKeyValue(this, 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();
            IModelKeyReference_Impl::SetKey(this, 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();
            IModelKeyReference_Impl::SetKeyValue(this, 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::Interface>::IID
    }
}
pub trait IModelKeyReference2_Impl: Sized + IModelKeyReference_Impl {
    fn OverrideContextObject(&self, newcontextobject: 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();
            IModelKeyReference2_Impl::OverrideContextObject(this, 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::Interface>::IID || iid == &<IModelKeyReference as windows_core::Interface>::IID
    }
}
pub trait IModelMethod_Impl: Sized {
    fn Call(&self, pcontextobject: Option<&IModelObject>, argcount: u64, pparguments: *const Option<IModelObject>, ppresult: *mut Option<IModelObject>, ppmetadata: *mut 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();
            IModelMethod_Impl::Call(this, 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::Interface>::IID
    }
}
#[cfg(feature = "Win32_System_Variant")]
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<windows_core::VARIANT>;
    fn GetIntrinsicValueAs(&self, vt: super::super::super::Variant::VARENUM) -> windows_core::Result<windows_core::VARIANT>;
    fn GetKeyValue(&self, key: &windows_core::PCWSTR, object: *mut Option<IModelObject>, metadata: *mut Option<IKeyStore>) -> windows_core::Result<()>;
    fn SetKeyValue(&self, key: &windows_core::PCWSTR, object: 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 Option<windows_core::IUnknown>, conceptmetadata: *mut 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 Option<IDebugHostType>) -> windows_core::Result<()>;
    fn GetNumberOfParentModels(&self) -> windows_core::Result<u64>;
    fn GetParentModel(&self, i: u64, model: *mut Option<IModelObject>, contextobject: *mut Option<IModelObject>) -> windows_core::Result<()>;
    fn AddParentModel(&self, model: Option<&IModelObject>, contextobject: Option<&IModelObject>, r#override: u8) -> windows_core::Result<()>;
    fn RemoveParentModel(&self, model: Option<&IModelObject>) -> windows_core::Result<()>;
    fn GetKey(&self, key: &windows_core::PCWSTR, object: *mut Option<IModelObject>, metadata: *mut Option<IKeyStore>) -> windows_core::Result<()>;
    fn GetKeyReference(&self, key: &windows_core::PCWSTR, objectreference: *mut Option<IModelObject>, metadata: *mut Option<IKeyStore>) -> windows_core::Result<()>;
    fn SetKey(&self, key: &windows_core::PCWSTR, object: Option<&IModelObject>, metadata: 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: Option<&windows_core::IUnknown>, conceptmetadata: 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: Option<&IModelObject>, context: Option<&windows_core::IUnknown>) -> windows_core::Result<()>;
    fn GetContextForDataModel(&self, datamodelobject: Option<&IModelObject>) -> windows_core::Result<windows_core::IUnknown>;
    fn Compare(&self, other: Option<&IModelObject>, ppresult: *mut Option<IModelObject>) -> windows_core::Result<()>;
    fn IsEqualTo(&self, other: Option<&IModelObject>) -> windows_core::Result<bool>;
}
#[cfg(feature = "Win32_System_Variant")]
impl windows_core::RuntimeName for IModelObject {}
#[cfg(feature = "Win32_System_Variant")]
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 IModelObject_Impl::GetContext(this) {
                Ok(ok__) => {
                    core::ptr::write(context, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IModelObject_Impl::GetKind(this) {
                Ok(ok__) => {
                    core::ptr::write(kind, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 std::mem::MaybeUninit<windows_core::VARIANT>) -> windows_core::HRESULT {
            let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
            let this = (*this).get_impl();
            match IModelObject_Impl::GetIntrinsicValue(this) {
                Ok(ok__) => {
                    core::ptr::write(intrinsicdata, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Variant::VARENUM, intrinsicdata: *mut std::mem::MaybeUninit<windows_core::VARIANT>) -> windows_core::HRESULT {
            let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
            let this = (*this).get_impl();
            match IModelObject_Impl::GetIntrinsicValueAs(this, core::mem::transmute_copy(&vt)) {
                Ok(ok__) => {
                    core::ptr::write(intrinsicdata, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IModelObject_Impl::GetKeyValue(this, 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();
            IModelObject_Impl::SetKeyValue(this, 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 IModelObject_Impl::EnumerateKeyValues(this) {
                Ok(ok__) => {
                    core::ptr::write(enumerator, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IModelObject_Impl::GetRawValue(this, core::mem::transmute_copy(&kind), core::mem::transmute(&name), core::mem::transmute_copy(&searchflags)) {
                Ok(ok__) => {
                    core::ptr::write(object, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IModelObject_Impl::EnumerateRawValues(this, core::mem::transmute_copy(&kind), core::mem::transmute_copy(&searchflags)) {
                Ok(ok__) => {
                    core::ptr::write(enumerator, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IModelObject_Impl::Dereference(this) {
                Ok(ok__) => {
                    core::ptr::write(object, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IModelObject_Impl::TryCastToRuntimeType(this) {
                Ok(ok__) => {
                    core::ptr::write(runtimetypedobject, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IModelObject_Impl::GetConcept(this, 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 IModelObject_Impl::GetLocation(this) {
                Ok(ok__) => {
                    core::ptr::write(location, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IModelObject_Impl::GetTypeInfo(this) {
                Ok(ok__) => {
                    core::ptr::write(r#type, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IModelObject_Impl::GetTargetInfo(this, 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 IModelObject_Impl::GetNumberOfParentModels(this) {
                Ok(ok__) => {
                    core::ptr::write(nummodels, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IModelObject_Impl::GetParentModel(this, 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();
            IModelObject_Impl::AddParentModel(this, 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();
            IModelObject_Impl::RemoveParentModel(this, 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();
            IModelObject_Impl::GetKey(this, 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();
            IModelObject_Impl::GetKeyReference(this, 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();
            IModelObject_Impl::SetKey(this, 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();
            IModelObject_Impl::ClearKeys(this).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 IModelObject_Impl::EnumerateKeys(this) {
                Ok(ok__) => {
                    core::ptr::write(enumerator, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IModelObject_Impl::EnumerateKeyReferences(this) {
                Ok(ok__) => {
                    core::ptr::write(enumerator, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IModelObject_Impl::SetConcept(this, 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();
            IModelObject_Impl::ClearConcepts(this).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 IModelObject_Impl::GetRawReference(this, core::mem::transmute_copy(&kind), core::mem::transmute(&name), core::mem::transmute_copy(&searchflags)) {
                Ok(ok__) => {
                    core::ptr::write(object, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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 IModelObject_Impl::EnumerateRawReferences(this, core::mem::transmute_copy(&kind), core::mem::transmute_copy(&searchflags)) {
                Ok(ok__) => {
                    core::ptr::write(enumerator, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IModelObject_Impl::SetContextForDataModel(this, 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 IModelObject_Impl::GetContextForDataModel(this, windows_core::from_raw_borrowed(&datamodelobject)) {
                Ok(ok__) => {
                    core::ptr::write(context, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IModelObject_Impl::Compare(this, 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 IModelObject_Impl::IsEqualTo(this, windows_core::from_raw_borrowed(&other)) {
                Ok(ok__) => {
                    core::ptr::write(equal, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
pub trait IModelPropertyAccessor_Impl: Sized {
    fn GetValue(&self, key: &windows_core::PCWSTR, contextobject: Option<&IModelObject>) -> windows_core::Result<IModelObject>;
    fn SetValue(&self, key: &windows_core::PCWSTR, contextobject: Option<&IModelObject>, value: 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 IModelPropertyAccessor_Impl::GetValue(this, core::mem::transmute(&key), windows_core::from_raw_borrowed(&contextobject)) {
                Ok(ok__) => {
                    core::ptr::write(value, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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();
            IModelPropertyAccessor_Impl::SetValue(this, 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::Interface>::IID
    }
}
pub trait IPreferredRuntimeTypeConcept_Impl: Sized {
    fn CastToPreferredRuntimeType(&self, contextobject: 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 IPreferredRuntimeTypeConcept_Impl::CastToPreferredRuntimeType(this, windows_core::from_raw_borrowed(&contextobject)) {
                Ok(ok__) => {
                    core::ptr::write(object, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
pub trait IRawEnumerator_Impl: Sized {
    fn Reset(&self) -> windows_core::Result<()>;
    fn GetNext(&self, name: *mut windows_core::BSTR, kind: *mut SymbolKind, value: *mut 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();
            IRawEnumerator_Impl::Reset(this).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();
            IRawEnumerator_Impl::GetNext(this, 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::Interface>::IID
    }
}
pub trait IStringDisplayableConcept_Impl: Sized {
    fn ToDisplayString(&self, contextobject: Option<&IModelObject>, metadata: 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 IStringDisplayableConcept_Impl::ToDisplayString(this, windows_core::from_raw_borrowed(&contextobject), windows_core::from_raw_borrowed(&metadata)) {
                Ok(ok__) => {
                    core::ptr::write(displaystring, core::mem::transmute(ok__));
                    windows_core::HRESULT(0)
                }
                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::Interface>::IID
    }
}
