#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
#[inline]
pub unsafe fn RtlRestoreContext(contextrecord: *const CONTEXT, exceptionrecord: ::core::option::Option<*const EXCEPTION_RECORD>) {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "cdecl" {
        fn RtlRestoreContext(contextrecord: *const CONTEXT, exceptionrecord: *const EXCEPTION_RECORD);
    }
    RtlRestoreContext(::core::mem::transmute(contextrecord), ::core::mem::transmute(exceptionrecord.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
#[inline]
pub unsafe fn AddVectoredContinueHandler(first: u32, handler: PVECTORED_EXCEPTION_HANDLER) -> *mut ::core::ffi::c_void {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn AddVectoredContinueHandler(first: u32, handler: *mut ::core::ffi::c_void) -> *mut ::core::ffi::c_void;
    }
    AddVectoredContinueHandler(first, ::core::mem::transmute(handler))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
#[inline]
pub unsafe fn AddVectoredExceptionHandler(first: u32, handler: PVECTORED_EXCEPTION_HANDLER) -> *mut ::core::ffi::c_void {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn AddVectoredExceptionHandler(first: u32, handler: *mut ::core::ffi::c_void) -> *mut ::core::ffi::c_void;
    }
    AddVectoredExceptionHandler(first, ::core::mem::transmute(handler))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn Beep(dwfreq: u32, dwduration: u32) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn Beep(dwfreq: u32, dwduration: u32) -> super::super::super::Foundation::BOOL;
    }
    Beep(dwfreq, dwduration)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn BindImage<'a, P0, P1, P2>(imagename: P0, dllpath: P1, symbolpath: P2) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn BindImage(imagename: ::windows::core::PCSTR, dllpath: ::windows::core::PCSTR, symbolpath: ::windows::core::PCSTR) -> super::super::super::Foundation::BOOL;
    }
    BindImage(imagename.into(), dllpath.into(), symbolpath.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn BindImageEx<'a, P0, P1, P2>(flags: u32, imagename: P0, dllpath: P1, symbolpath: P2, statusroutine: PIMAGEHLP_STATUS_ROUTINE) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn BindImageEx(flags: u32, imagename: ::windows::core::PCSTR, dllpath: ::windows::core::PCSTR, symbolpath: ::windows::core::PCSTR, statusroutine: *mut ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    BindImageEx(flags, imagename.into(), dllpath.into(), symbolpath.into(), ::core::mem::transmute(statusroutine))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn CheckRemoteDebuggerPresent<'a, P0>(hprocess: P0, pbdebuggerpresent: *mut super::super::super::Foundation::BOOL) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn CheckRemoteDebuggerPresent(hprocess: super::super::super::Foundation::HANDLE, pbdebuggerpresent: *mut super::super::super::Foundation::BOOL) -> super::super::super::Foundation::BOOL;
    }
    CheckRemoteDebuggerPresent(hprocess.into(), ::core::mem::transmute(pbdebuggerpresent))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[cfg(feature = "Win32_System_SystemInformation")]
#[inline]
pub unsafe fn CheckSumMappedFile(baseaddress: *const ::core::ffi::c_void, filelength: u32, headersum: *mut u32, checksum: *mut u32) -> *mut IMAGE_NT_HEADERS64 {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn CheckSumMappedFile(baseaddress: *const ::core::ffi::c_void, filelength: u32, headersum: *mut u32, checksum: *mut u32) -> *mut IMAGE_NT_HEADERS64;
    }
    CheckSumMappedFile(::core::mem::transmute(baseaddress), filelength, ::core::mem::transmute(headersum), ::core::mem::transmute(checksum))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_System_SystemInformation")]
#[inline]
pub unsafe fn CheckSumMappedFile(baseaddress: *const ::core::ffi::c_void, filelength: u32, headersum: *mut u32, checksum: *mut u32) -> *mut IMAGE_NT_HEADERS32 {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn CheckSumMappedFile(baseaddress: *const ::core::ffi::c_void, filelength: u32, headersum: *mut u32, checksum: *mut u32) -> *mut IMAGE_NT_HEADERS32;
    }
    CheckSumMappedFile(::core::mem::transmute(baseaddress), filelength, ::core::mem::transmute(headersum), ::core::mem::transmute(checksum))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn CloseThreadWaitChainSession(wcthandle: *const ::core::ffi::c_void) {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn CloseThreadWaitChainSession(wcthandle: *const ::core::ffi::c_void);
    }
    CloseThreadWaitChainSession(::core::mem::transmute(wcthandle))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn ContinueDebugEvent(dwprocessid: u32, dwthreadid: u32, dwcontinuestatus: u32) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ContinueDebugEvent(dwprocessid: u32, dwthreadid: u32, dwcontinuestatus: u32) -> super::super::super::Foundation::BOOL;
    }
    ContinueDebugEvent(dwprocessid, dwthreadid, dwcontinuestatus)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
#[inline]
pub unsafe fn CopyContext(destination: *mut CONTEXT, contextflags: u32, source: *const CONTEXT) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn CopyContext(destination: *mut CONTEXT, contextflags: u32, source: *const CONTEXT) -> super::super::super::Foundation::BOOL;
    }
    CopyContext(::core::mem::transmute(destination), contextflags, ::core::mem::transmute(source))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn CreateDataModelManager<'a, P0>(debughost: P0) -> ::windows::core::Result<IDataModelManager>
where
    P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHost>>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn CreateDataModelManager(debughost: *mut ::core::ffi::c_void, manager: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT;
    }
    let mut result__ = ::core::mem::MaybeUninit::zeroed();
    CreateDataModelManager(debughost.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelManager>(result__)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn DbgHelpCreateUserDump<'a, P0>(filename: P0, callback: PDBGHELP_CREATE_USER_DUMP_CALLBACK, userdata: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn DbgHelpCreateUserDump(filename: ::windows::core::PCSTR, callback: *mut ::core::ffi::c_void, userdata: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    DbgHelpCreateUserDump(filename.into(), ::core::mem::transmute(callback), ::core::mem::transmute(userdata.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn DbgHelpCreateUserDumpW<'a, P0>(filename: P0, callback: PDBGHELP_CREATE_USER_DUMP_CALLBACK, userdata: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn DbgHelpCreateUserDumpW(filename: ::windows::core::PCWSTR, callback: *mut ::core::ffi::c_void, userdata: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    DbgHelpCreateUserDumpW(filename.into(), ::core::mem::transmute(callback), ::core::mem::transmute(userdata.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn DebugActiveProcess(dwprocessid: u32) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn DebugActiveProcess(dwprocessid: u32) -> super::super::super::Foundation::BOOL;
    }
    DebugActiveProcess(dwprocessid)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn DebugActiveProcessStop(dwprocessid: u32) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn DebugActiveProcessStop(dwprocessid: u32) -> super::super::super::Foundation::BOOL;
    }
    DebugActiveProcessStop(dwprocessid)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn DebugBreak() {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn DebugBreak();
    }
    DebugBreak()
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn DebugBreakProcess<'a, P0>(process: P0) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn DebugBreakProcess(process: super::super::super::Foundation::HANDLE) -> super::super::super::Foundation::BOOL;
    }
    DebugBreakProcess(process.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn DebugConnect<'a, P0>(remoteoptions: P0, interfaceid: *const ::windows::core::GUID, interface: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn DebugConnect(remoteoptions: ::windows::core::PCSTR, interfaceid: *const ::windows::core::GUID, interface: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT;
    }
    DebugConnect(remoteoptions.into(), ::core::mem::transmute(interfaceid), ::core::mem::transmute(interface)).ok()
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn DebugConnectWide<'a, P0>(remoteoptions: P0, interfaceid: *const ::windows::core::GUID, interface: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>
where
    P0: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn DebugConnectWide(remoteoptions: ::windows::core::PCWSTR, interfaceid: *const ::windows::core::GUID, interface: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT;
    }
    DebugConnectWide(remoteoptions.into(), ::core::mem::transmute(interfaceid), ::core::mem::transmute(interface)).ok()
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn DebugCreate<T>() -> ::windows::core::Result<T>
where
    T: ::windows::core::Interface,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn DebugCreate(interfaceid: *const ::windows::core::GUID, interface: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT;
    }
    let mut result__ = ::core::option::Option::None;
    DebugCreate(&<T as ::windows::core::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn DebugCreateEx<T>(dbgengoptions: u32) -> ::windows::core::Result<T>
where
    T: ::windows::core::Interface,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn DebugCreateEx(interfaceid: *const ::windows::core::GUID, dbgengoptions: u32, interface: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT;
    }
    let mut result__ = ::core::option::Option::None;
    DebugCreateEx(&<T as ::windows::core::Interface>::IID, dbgengoptions, &mut result__ as *mut _ as *mut _).and_some(result__)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn DebugSetProcessKillOnExit<'a, P0>(killonexit: P0) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::BOOL>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn DebugSetProcessKillOnExit(killonexit: super::super::super::Foundation::BOOL) -> super::super::super::Foundation::BOOL;
    }
    DebugSetProcessKillOnExit(killonexit.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn DecodePointer(ptr: ::core::option::Option<*const ::core::ffi::c_void>) -> *mut ::core::ffi::c_void {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn DecodePointer(ptr: *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void;
    }
    DecodePointer(::core::mem::transmute(ptr.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn DecodeRemotePointer<'a, P0>(processhandle: P0, ptr: ::core::option::Option<*const ::core::ffi::c_void>, decodedptr: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn DecodeRemotePointer(processhandle: super::super::super::Foundation::HANDLE, ptr: *const ::core::ffi::c_void, decodedptr: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT;
    }
    DecodeRemotePointer(processhandle.into(), ::core::mem::transmute(ptr.unwrap_or(::std::ptr::null())), ::core::mem::transmute(decodedptr)).ok()
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn DecodeSystemPointer(ptr: ::core::option::Option<*const ::core::ffi::c_void>) -> *mut ::core::ffi::c_void {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn DecodeSystemPointer(ptr: *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void;
    }
    DecodeSystemPointer(::core::mem::transmute(ptr.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn EncodePointer(ptr: ::core::option::Option<*const ::core::ffi::c_void>) -> *mut ::core::ffi::c_void {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn EncodePointer(ptr: *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void;
    }
    EncodePointer(::core::mem::transmute(ptr.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EncodeRemotePointer<'a, P0>(processhandle: P0, ptr: ::core::option::Option<*const ::core::ffi::c_void>, encodedptr: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn EncodeRemotePointer(processhandle: super::super::super::Foundation::HANDLE, ptr: *const ::core::ffi::c_void, encodedptr: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT;
    }
    EncodeRemotePointer(processhandle.into(), ::core::mem::transmute(ptr.unwrap_or(::std::ptr::null())), ::core::mem::transmute(encodedptr)).ok()
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn EncodeSystemPointer(ptr: ::core::option::Option<*const ::core::ffi::c_void>) -> *mut ::core::ffi::c_void {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn EncodeSystemPointer(ptr: *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void;
    }
    EncodeSystemPointer(::core::mem::transmute(ptr.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumDirTree<'a, P0, P1, P2>(hprocess: P0, rootpath: P1, inputpathname: P2, outputpathbuffer: ::windows::core::PSTR, cb: PENUMDIRTREE_CALLBACK, data: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn EnumDirTree(hprocess: super::super::super::Foundation::HANDLE, rootpath: ::windows::core::PCSTR, inputpathname: ::windows::core::PCSTR, outputpathbuffer: ::windows::core::PSTR, cb: *mut ::core::ffi::c_void, data: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    EnumDirTree(hprocess.into(), rootpath.into(), inputpathname.into(), ::core::mem::transmute(outputpathbuffer), ::core::mem::transmute(cb), ::core::mem::transmute(data.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumDirTreeW<'a, P0, P1, P2>(hprocess: P0, rootpath: P1, inputpathname: P2, outputpathbuffer: ::windows::core::PWSTR, cb: PENUMDIRTREE_CALLBACKW, data: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
    P2: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn EnumDirTreeW(hprocess: super::super::super::Foundation::HANDLE, rootpath: ::windows::core::PCWSTR, inputpathname: ::windows::core::PCWSTR, outputpathbuffer: ::windows::core::PWSTR, cb: *mut ::core::ffi::c_void, data: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    EnumDirTreeW(hprocess.into(), rootpath.into(), inputpathname.into(), ::core::mem::transmute(outputpathbuffer), ::core::mem::transmute(cb), ::core::mem::transmute(data.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumerateLoadedModules<'a, P0>(hprocess: P0, enumloadedmodulescallback: PENUMLOADED_MODULES_CALLBACK, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn EnumerateLoadedModules(hprocess: super::super::super::Foundation::HANDLE, enumloadedmodulescallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    EnumerateLoadedModules(hprocess.into(), ::core::mem::transmute(enumloadedmodulescallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumerateLoadedModules64<'a, P0>(hprocess: P0, enumloadedmodulescallback: PENUMLOADED_MODULES_CALLBACK64, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn EnumerateLoadedModules64(hprocess: super::super::super::Foundation::HANDLE, enumloadedmodulescallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    EnumerateLoadedModules64(hprocess.into(), ::core::mem::transmute(enumloadedmodulescallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumerateLoadedModulesEx<'a, P0>(hprocess: P0, enumloadedmodulescallback: PENUMLOADED_MODULES_CALLBACK64, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn EnumerateLoadedModulesEx(hprocess: super::super::super::Foundation::HANDLE, enumloadedmodulescallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    EnumerateLoadedModulesEx(hprocess.into(), ::core::mem::transmute(enumloadedmodulescallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumerateLoadedModulesExW<'a, P0>(hprocess: P0, enumloadedmodulescallback: PENUMLOADED_MODULES_CALLBACKW64, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn EnumerateLoadedModulesExW(hprocess: super::super::super::Foundation::HANDLE, enumloadedmodulescallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    EnumerateLoadedModulesExW(hprocess.into(), ::core::mem::transmute(enumloadedmodulescallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn EnumerateLoadedModulesW64<'a, P0>(hprocess: P0, enumloadedmodulescallback: PENUMLOADED_MODULES_CALLBACKW64, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn EnumerateLoadedModulesW64(hprocess: super::super::super::Foundation::HANDLE, enumloadedmodulescallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    EnumerateLoadedModulesW64(hprocess.into(), ::core::mem::transmute(enumloadedmodulescallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn FatalAppExitA<'a, P0>(uaction: u32, lpmessagetext: P0)
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn FatalAppExitA(uaction: u32, lpmessagetext: ::windows::core::PCSTR);
    }
    FatalAppExitA(uaction, lpmessagetext.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn FatalAppExitW<'a, P0>(uaction: u32, lpmessagetext: P0)
where
    P0: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn FatalAppExitW(uaction: u32, lpmessagetext: ::windows::core::PCWSTR);
    }
    FatalAppExitW(uaction, lpmessagetext.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn FatalExit(exitcode: i32) -> ! {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn FatalExit(exitcode: i32) -> !;
    }
    FatalExit(exitcode)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn FindDebugInfoFile<'a, P0, P1>(filename: P0, symbolpath: P1, debugfilepath: ::windows::core::PSTR) -> ::windows::core::Result<super::super::super::Foundation::HANDLE>
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn FindDebugInfoFile(filename: ::windows::core::PCSTR, symbolpath: ::windows::core::PCSTR, debugfilepath: ::windows::core::PSTR) -> super::super::super::Foundation::HANDLE;
    }
    let result__ = FindDebugInfoFile(filename.into(), symbolpath.into(), ::core::mem::transmute(debugfilepath));
    (!result__.is_invalid()).then(|| result__).ok_or_else(::windows::core::Error::from_win32)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn FindDebugInfoFileEx<'a, P0, P1>(filename: P0, symbolpath: P1, debugfilepath: ::windows::core::PSTR, callback: PFIND_DEBUG_FILE_CALLBACK, callerdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<super::super::super::Foundation::HANDLE>
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn FindDebugInfoFileEx(filename: ::windows::core::PCSTR, symbolpath: ::windows::core::PCSTR, debugfilepath: ::windows::core::PSTR, callback: *mut ::core::ffi::c_void, callerdata: *const ::core::ffi::c_void) -> super::super::super::Foundation::HANDLE;
    }
    let result__ = FindDebugInfoFileEx(filename.into(), symbolpath.into(), ::core::mem::transmute(debugfilepath), ::core::mem::transmute(callback), ::core::mem::transmute(callerdata.unwrap_or(::std::ptr::null())));
    (!result__.is_invalid()).then(|| result__).ok_or_else(::windows::core::Error::from_win32)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn FindDebugInfoFileExW<'a, P0, P1>(filename: P0, symbolpath: P1, debugfilepath: ::windows::core::PWSTR, callback: PFIND_DEBUG_FILE_CALLBACKW, callerdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<super::super::super::Foundation::HANDLE>
where
    P0: ::std::convert::Into<::windows::core::PCWSTR>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn FindDebugInfoFileExW(filename: ::windows::core::PCWSTR, symbolpath: ::windows::core::PCWSTR, debugfilepath: ::windows::core::PWSTR, callback: *mut ::core::ffi::c_void, callerdata: *const ::core::ffi::c_void) -> super::super::super::Foundation::HANDLE;
    }
    let result__ = FindDebugInfoFileExW(filename.into(), symbolpath.into(), ::core::mem::transmute(debugfilepath), ::core::mem::transmute(callback), ::core::mem::transmute(callerdata.unwrap_or(::std::ptr::null())));
    (!result__.is_invalid()).then(|| result__).ok_or_else(::windows::core::Error::from_win32)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn FindExecutableImage<'a, P0, P1>(filename: P0, symbolpath: P1, imagefilepath: ::windows::core::PSTR) -> ::windows::core::Result<super::super::super::Foundation::HANDLE>
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn FindExecutableImage(filename: ::windows::core::PCSTR, symbolpath: ::windows::core::PCSTR, imagefilepath: ::windows::core::PSTR) -> super::super::super::Foundation::HANDLE;
    }
    let result__ = FindExecutableImage(filename.into(), symbolpath.into(), ::core::mem::transmute(imagefilepath));
    (!result__.is_invalid()).then(|| result__).ok_or_else(::windows::core::Error::from_win32)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn FindExecutableImageEx<'a, P0, P1>(filename: P0, symbolpath: P1, imagefilepath: ::windows::core::PSTR, callback: PFIND_EXE_FILE_CALLBACK, callerdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<super::super::super::Foundation::HANDLE>
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn FindExecutableImageEx(filename: ::windows::core::PCSTR, symbolpath: ::windows::core::PCSTR, imagefilepath: ::windows::core::PSTR, callback: *mut ::core::ffi::c_void, callerdata: *const ::core::ffi::c_void) -> super::super::super::Foundation::HANDLE;
    }
    let result__ = FindExecutableImageEx(filename.into(), symbolpath.into(), ::core::mem::transmute(imagefilepath), ::core::mem::transmute(callback), ::core::mem::transmute(callerdata.unwrap_or(::std::ptr::null())));
    (!result__.is_invalid()).then(|| result__).ok_or_else(::windows::core::Error::from_win32)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn FindExecutableImageExW<'a, P0, P1>(filename: P0, symbolpath: P1, imagefilepath: ::windows::core::PWSTR, callback: PFIND_EXE_FILE_CALLBACKW, callerdata: *const ::core::ffi::c_void) -> ::windows::core::Result<super::super::super::Foundation::HANDLE>
where
    P0: ::std::convert::Into<::windows::core::PCWSTR>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn FindExecutableImageExW(filename: ::windows::core::PCWSTR, symbolpath: ::windows::core::PCWSTR, imagefilepath: ::windows::core::PWSTR, callback: *mut ::core::ffi::c_void, callerdata: *const ::core::ffi::c_void) -> super::super::super::Foundation::HANDLE;
    }
    let result__ = FindExecutableImageExW(filename.into(), symbolpath.into(), ::core::mem::transmute(imagefilepath), ::core::mem::transmute(callback), ::core::mem::transmute(callerdata));
    (!result__.is_invalid()).then(|| result__).ok_or_else(::windows::core::Error::from_win32)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn FindFileInPath<'a, P0, P1, P2>(hprocess: P0, searchpatha: P1, filename: P2, id: *const ::core::ffi::c_void, two: u32, three: u32, flags: u32, filepath: ::windows::core::PSTR) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn FindFileInPath(hprocess: super::super::super::Foundation::HANDLE, searchpatha: ::windows::core::PCSTR, filename: ::windows::core::PCSTR, id: *const ::core::ffi::c_void, two: u32, three: u32, flags: u32, filepath: ::windows::core::PSTR) -> super::super::super::Foundation::BOOL;
    }
    FindFileInPath(hprocess.into(), searchpatha.into(), filename.into(), ::core::mem::transmute(id), two, three, flags, ::core::mem::transmute(filepath))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn FindFileInSearchPath<'a, P0, P1, P2>(hprocess: P0, searchpatha: P1, filename: P2, one: u32, two: u32, three: u32, filepath: ::windows::core::PSTR) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn FindFileInSearchPath(hprocess: super::super::super::Foundation::HANDLE, searchpatha: ::windows::core::PCSTR, filename: ::windows::core::PCSTR, one: u32, two: u32, three: u32, filepath: ::windows::core::PSTR) -> super::super::super::Foundation::BOOL;
    }
    FindFileInSearchPath(hprocess.into(), searchpatha.into(), filename.into(), one, two, three, ::core::mem::transmute(filepath))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn FlushInstructionCache<'a, P0>(hprocess: P0, lpbaseaddress: ::core::option::Option<*const ::core::ffi::c_void>, dwsize: usize) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn FlushInstructionCache(hprocess: super::super::super::Foundation::HANDLE, lpbaseaddress: *const ::core::ffi::c_void, dwsize: usize) -> super::super::super::Foundation::BOOL;
    }
    FlushInstructionCache(hprocess.into(), ::core::mem::transmute(lpbaseaddress.unwrap_or(::std::ptr::null())), dwsize)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn FormatMessageA(dwflags: FORMAT_MESSAGE_OPTIONS, lpsource: ::core::option::Option<*const ::core::ffi::c_void>, dwmessageid: u32, dwlanguageid: u32, lpbuffer: ::windows::core::PSTR, nsize: u32, arguments: ::core::option::Option<*const *const i8>) -> u32 {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn FormatMessageA(dwflags: FORMAT_MESSAGE_OPTIONS, lpsource: *const ::core::ffi::c_void, dwmessageid: u32, dwlanguageid: u32, lpbuffer: ::windows::core::PSTR, nsize: u32, arguments: *const *const i8) -> u32;
    }
    FormatMessageA(dwflags, ::core::mem::transmute(lpsource.unwrap_or(::std::ptr::null())), dwmessageid, dwlanguageid, ::core::mem::transmute(lpbuffer), nsize, ::core::mem::transmute(arguments.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn FormatMessageW(dwflags: FORMAT_MESSAGE_OPTIONS, lpsource: ::core::option::Option<*const ::core::ffi::c_void>, dwmessageid: u32, dwlanguageid: u32, lpbuffer: ::windows::core::PWSTR, nsize: u32, arguments: ::core::option::Option<*const *const i8>) -> u32 {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn FormatMessageW(dwflags: FORMAT_MESSAGE_OPTIONS, lpsource: *const ::core::ffi::c_void, dwmessageid: u32, dwlanguageid: u32, lpbuffer: ::windows::core::PWSTR, nsize: u32, arguments: *const *const i8) -> u32;
    }
    FormatMessageW(dwflags, ::core::mem::transmute(lpsource.unwrap_or(::std::ptr::null())), dwmessageid, dwlanguageid, ::core::mem::transmute(lpbuffer), nsize, ::core::mem::transmute(arguments.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[inline]
pub unsafe fn GetEnabledXStateFeatures() -> u64 {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn GetEnabledXStateFeatures() -> u64;
    }
    GetEnabledXStateFeatures()
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn GetErrorMode() -> u32 {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn GetErrorMode() -> u32;
    }
    GetErrorMode()
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
#[inline]
pub unsafe fn GetImageConfigInformation(loadedimage: *const LOADED_IMAGE, imageconfiginformation: *mut IMAGE_LOAD_CONFIG_DIRECTORY64) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn GetImageConfigInformation(loadedimage: *const LOADED_IMAGE, imageconfiginformation: *mut IMAGE_LOAD_CONFIG_DIRECTORY64) -> super::super::super::Foundation::BOOL;
    }
    GetImageConfigInformation(::core::mem::transmute(loadedimage), ::core::mem::transmute(imageconfiginformation))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
#[inline]
pub unsafe fn GetImageConfigInformation(loadedimage: *const LOADED_IMAGE, imageconfiginformation: *mut IMAGE_LOAD_CONFIG_DIRECTORY32) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn GetImageConfigInformation(loadedimage: *const LOADED_IMAGE, imageconfiginformation: *mut IMAGE_LOAD_CONFIG_DIRECTORY32) -> super::super::super::Foundation::BOOL;
    }
    GetImageConfigInformation(::core::mem::transmute(loadedimage), ::core::mem::transmute(imageconfiginformation))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
#[inline]
pub unsafe fn GetImageUnusedHeaderBytes(loadedimage: *const LOADED_IMAGE, sizeunusedheaderbytes: *mut u32) -> u32 {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn GetImageUnusedHeaderBytes(loadedimage: *const LOADED_IMAGE, sizeunusedheaderbytes: *mut u32) -> u32;
    }
    GetImageUnusedHeaderBytes(::core::mem::transmute(loadedimage), ::core::mem::transmute(sizeunusedheaderbytes))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn GetSymLoadError() -> u32 {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn GetSymLoadError() -> u32;
    }
    GetSymLoadError()
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
#[inline]
pub unsafe fn GetThreadContext<'a, P0>(hthread: P0, lpcontext: *mut CONTEXT) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn GetThreadContext(hthread: super::super::super::Foundation::HANDLE, lpcontext: *mut CONTEXT) -> super::super::super::Foundation::BOOL;
    }
    GetThreadContext(hthread.into(), ::core::mem::transmute(lpcontext))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn GetThreadErrorMode() -> u32 {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn GetThreadErrorMode() -> u32;
    }
    GetThreadErrorMode()
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetThreadSelectorEntry<'a, P0>(hthread: P0, dwselector: u32, lpselectorentry: *mut LDT_ENTRY) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn GetThreadSelectorEntry(hthread: super::super::super::Foundation::HANDLE, dwselector: u32, lpselectorentry: *mut LDT_ENTRY) -> super::super::super::Foundation::BOOL;
    }
    GetThreadSelectorEntry(hthread.into(), dwselector, ::core::mem::transmute(lpselectorentry))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetThreadWaitChain(wcthandle: *const ::core::ffi::c_void, context: usize, flags: WAIT_CHAIN_THREAD_OPTIONS, threadid: u32, nodecount: *mut u32, nodeinfoarray: *mut WAITCHAIN_NODE_INFO, iscycle: *mut i32) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn GetThreadWaitChain(wcthandle: *const ::core::ffi::c_void, context: usize, flags: WAIT_CHAIN_THREAD_OPTIONS, threadid: u32, nodecount: *mut u32, nodeinfoarray: *mut WAITCHAIN_NODE_INFO, iscycle: *mut i32) -> super::super::super::Foundation::BOOL;
    }
    GetThreadWaitChain(::core::mem::transmute(wcthandle), context, flags, threadid, ::core::mem::transmute(nodecount), ::core::mem::transmute(nodeinfoarray), ::core::mem::transmute(iscycle))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn GetTimestampForLoadedLibrary<'a, P0>(module: P0) -> u32
where
    P0: ::std::convert::Into<super::super::super::Foundation::HINSTANCE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn GetTimestampForLoadedLibrary(module: super::super::super::Foundation::HINSTANCE) -> u32;
    }
    GetTimestampForLoadedLibrary(module.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
#[inline]
pub unsafe fn GetXStateFeaturesMask(context: *const CONTEXT, featuremask: *mut u64) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn GetXStateFeaturesMask(context: *const CONTEXT, featuremask: *mut u64) -> super::super::super::Foundation::BOOL;
    }
    GetXStateFeaturesMask(::core::mem::transmute(context), ::core::mem::transmute(featuremask))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_Security_WinTrust\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_WinTrust"))]
#[inline]
pub unsafe fn ImageAddCertificate<'a, P0>(filehandle: P0, certificate: *const super::super::super::Security::WinTrust::WIN_CERTIFICATE, index: *mut u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ImageAddCertificate(filehandle: super::super::super::Foundation::HANDLE, certificate: *const super::super::super::Security::WinTrust::WIN_CERTIFICATE, index: *mut u32) -> super::super::super::Foundation::BOOL;
    }
    ImageAddCertificate(filehandle.into(), ::core::mem::transmute(certificate), ::core::mem::transmute(index))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn ImageDirectoryEntryToData<'a, P0>(base: *const ::core::ffi::c_void, mappedasimage: P0, directoryentry: IMAGE_DIRECTORY_ENTRY, size: *mut u32) -> *mut ::core::ffi::c_void
where
    P0: ::std::convert::Into<super::super::super::Foundation::BOOLEAN>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ImageDirectoryEntryToData(base: *const ::core::ffi::c_void, mappedasimage: super::super::super::Foundation::BOOLEAN, directoryentry: IMAGE_DIRECTORY_ENTRY, size: *mut u32) -> *mut ::core::ffi::c_void;
    }
    ImageDirectoryEntryToData(::core::mem::transmute(base), mappedasimage.into(), directoryentry, ::core::mem::transmute(size))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn ImageDirectoryEntryToDataEx<'a, P0>(base: *const ::core::ffi::c_void, mappedasimage: P0, directoryentry: IMAGE_DIRECTORY_ENTRY, size: *mut u32, foundheader: ::core::option::Option<*mut *mut IMAGE_SECTION_HEADER>) -> *mut ::core::ffi::c_void
where
    P0: ::std::convert::Into<super::super::super::Foundation::BOOLEAN>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ImageDirectoryEntryToDataEx(base: *const ::core::ffi::c_void, mappedasimage: super::super::super::Foundation::BOOLEAN, directoryentry: IMAGE_DIRECTORY_ENTRY, size: *mut u32, foundheader: *mut *mut IMAGE_SECTION_HEADER) -> *mut ::core::ffi::c_void;
    }
    ImageDirectoryEntryToDataEx(::core::mem::transmute(base), mappedasimage.into(), directoryentry, ::core::mem::transmute(size), ::core::mem::transmute(foundheader.unwrap_or(::std::ptr::null_mut())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn ImageEnumerateCertificates<'a, P0>(filehandle: P0, typefilter: u16, certificatecount: *mut u32, indices: ::core::option::Option<&mut [u32]>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ImageEnumerateCertificates(filehandle: super::super::super::Foundation::HANDLE, typefilter: u16, certificatecount: *mut u32, indices: *mut u32, indexcount: u32) -> super::super::super::Foundation::BOOL;
    }
    ImageEnumerateCertificates(filehandle.into(), typefilter, ::core::mem::transmute(certificatecount), ::core::mem::transmute(indices.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), indices.as_deref().map_or(0, |slice| slice.len() as _))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_Security_WinTrust\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_WinTrust"))]
#[inline]
pub unsafe fn ImageGetCertificateData<'a, P0>(filehandle: P0, certificateindex: u32, certificate: *mut super::super::super::Security::WinTrust::WIN_CERTIFICATE, requiredlength: *mut u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ImageGetCertificateData(filehandle: super::super::super::Foundation::HANDLE, certificateindex: u32, certificate: *mut super::super::super::Security::WinTrust::WIN_CERTIFICATE, requiredlength: *mut u32) -> super::super::super::Foundation::BOOL;
    }
    ImageGetCertificateData(filehandle.into(), certificateindex, ::core::mem::transmute(certificate), ::core::mem::transmute(requiredlength))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_Security_WinTrust\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_WinTrust"))]
#[inline]
pub unsafe fn ImageGetCertificateHeader<'a, P0>(filehandle: P0, certificateindex: u32, certificateheader: *mut super::super::super::Security::WinTrust::WIN_CERTIFICATE) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ImageGetCertificateHeader(filehandle: super::super::super::Foundation::HANDLE, certificateindex: u32, certificateheader: *mut super::super::super::Security::WinTrust::WIN_CERTIFICATE) -> super::super::super::Foundation::BOOL;
    }
    ImageGetCertificateHeader(filehandle.into(), certificateindex, ::core::mem::transmute(certificateheader))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn ImageGetDigestStream<'a, P0>(filehandle: P0, digestlevel: u32, digestfunction: DIGEST_FUNCTION, digesthandle: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ImageGetDigestStream(filehandle: super::super::super::Foundation::HANDLE, digestlevel: u32, digestfunction: *mut ::core::ffi::c_void, digesthandle: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    ImageGetDigestStream(filehandle.into(), digestlevel, ::core::mem::transmute(digestfunction), ::core::mem::transmute(digesthandle))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
#[inline]
pub unsafe fn ImageLoad<'a, P0, P1>(dllname: P0, dllpath: P1) -> *mut LOADED_IMAGE
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ImageLoad(dllname: ::windows::core::PCSTR, dllpath: ::windows::core::PCSTR) -> *mut LOADED_IMAGE;
    }
    ImageLoad(dllname.into(), dllpath.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[cfg(feature = "Win32_System_SystemInformation")]
#[inline]
pub unsafe fn ImageNtHeader(base: *const ::core::ffi::c_void) -> *mut IMAGE_NT_HEADERS64 {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ImageNtHeader(base: *const ::core::ffi::c_void) -> *mut IMAGE_NT_HEADERS64;
    }
    ImageNtHeader(::core::mem::transmute(base))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_System_SystemInformation")]
#[inline]
pub unsafe fn ImageNtHeader(base: *const ::core::ffi::c_void) -> *mut IMAGE_NT_HEADERS32 {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ImageNtHeader(base: *const ::core::ffi::c_void) -> *mut IMAGE_NT_HEADERS32;
    }
    ImageNtHeader(::core::mem::transmute(base))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn ImageRemoveCertificate<'a, P0>(filehandle: P0, index: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ImageRemoveCertificate(filehandle: super::super::super::Foundation::HANDLE, index: u32) -> super::super::super::Foundation::BOOL;
    }
    ImageRemoveCertificate(filehandle.into(), index)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[cfg(feature = "Win32_System_SystemInformation")]
#[inline]
pub unsafe fn ImageRvaToSection(ntheaders: *const IMAGE_NT_HEADERS64, base: *const ::core::ffi::c_void, rva: u32) -> *mut IMAGE_SECTION_HEADER {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ImageRvaToSection(ntheaders: *const IMAGE_NT_HEADERS64, base: *const ::core::ffi::c_void, rva: u32) -> *mut IMAGE_SECTION_HEADER;
    }
    ImageRvaToSection(::core::mem::transmute(ntheaders), ::core::mem::transmute(base), rva)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_System_SystemInformation")]
#[inline]
pub unsafe fn ImageRvaToSection(ntheaders: *const IMAGE_NT_HEADERS32, base: *const ::core::ffi::c_void, rva: u32) -> *mut IMAGE_SECTION_HEADER {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ImageRvaToSection(ntheaders: *const IMAGE_NT_HEADERS32, base: *const ::core::ffi::c_void, rva: u32) -> *mut IMAGE_SECTION_HEADER;
    }
    ImageRvaToSection(::core::mem::transmute(ntheaders), ::core::mem::transmute(base), rva)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[cfg(feature = "Win32_System_SystemInformation")]
#[inline]
pub unsafe fn ImageRvaToVa(ntheaders: *const IMAGE_NT_HEADERS64, base: *const ::core::ffi::c_void, rva: u32, lastrvasection: ::core::option::Option<*const *const IMAGE_SECTION_HEADER>) -> *mut ::core::ffi::c_void {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ImageRvaToVa(ntheaders: *const IMAGE_NT_HEADERS64, base: *const ::core::ffi::c_void, rva: u32, lastrvasection: *const *const IMAGE_SECTION_HEADER) -> *mut ::core::ffi::c_void;
    }
    ImageRvaToVa(::core::mem::transmute(ntheaders), ::core::mem::transmute(base), rva, ::core::mem::transmute(lastrvasection.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_System_SystemInformation")]
#[inline]
pub unsafe fn ImageRvaToVa(ntheaders: *const IMAGE_NT_HEADERS32, base: *const ::core::ffi::c_void, rva: u32, lastrvasection: ::core::option::Option<*const *const IMAGE_SECTION_HEADER>) -> *mut ::core::ffi::c_void {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ImageRvaToVa(ntheaders: *const IMAGE_NT_HEADERS32, base: *const ::core::ffi::c_void, rva: u32, lastrvasection: *const *const IMAGE_SECTION_HEADER) -> *mut ::core::ffi::c_void;
    }
    ImageRvaToVa(::core::mem::transmute(ntheaders), ::core::mem::transmute(base), rva, ::core::mem::transmute(lastrvasection.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
#[inline]
pub unsafe fn ImageUnload(loadedimage: *mut LOADED_IMAGE) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ImageUnload(loadedimage: *mut LOADED_IMAGE) -> super::super::super::Foundation::BOOL;
    }
    ImageUnload(::core::mem::transmute(loadedimage))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn ImagehlpApiVersion() -> *mut API_VERSION {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ImagehlpApiVersion() -> *mut API_VERSION;
    }
    ImagehlpApiVersion()
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn ImagehlpApiVersionEx(appversion: *const API_VERSION) -> *mut API_VERSION {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ImagehlpApiVersionEx(appversion: *const API_VERSION) -> *mut API_VERSION;
    }
    ImagehlpApiVersionEx(::core::mem::transmute(appversion))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
#[inline]
pub unsafe fn InitializeContext(buffer: ::core::option::Option<*mut ::core::ffi::c_void>, contextflags: u32, context: *mut *mut CONTEXT, contextlength: *mut u32) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn InitializeContext(buffer: *mut ::core::ffi::c_void, contextflags: u32, context: *mut *mut CONTEXT, contextlength: *mut u32) -> super::super::super::Foundation::BOOL;
    }
    InitializeContext(::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), contextflags, ::core::mem::transmute(context), ::core::mem::transmute(contextlength))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
#[inline]
pub unsafe fn InitializeContext2(buffer: ::core::option::Option<*mut ::core::ffi::c_void>, contextflags: u32, context: *mut *mut CONTEXT, contextlength: *mut u32, xstatecompactionmask: u64) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn InitializeContext2(buffer: *mut ::core::ffi::c_void, contextflags: u32, context: *mut *mut CONTEXT, contextlength: *mut u32, xstatecompactionmask: u64) -> super::super::super::Foundation::BOOL;
    }
    InitializeContext2(::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), contextflags, ::core::mem::transmute(context), ::core::mem::transmute(contextlength), xstatecompactionmask)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn IsDebuggerPresent() -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn IsDebuggerPresent() -> super::super::super::Foundation::BOOL;
    }
    IsDebuggerPresent()
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[cfg(feature = "Win32_System_Kernel")]
#[inline]
pub unsafe fn LocateXStateFeature(context: *const CONTEXT, featureid: u32, length: ::core::option::Option<*mut u32>) -> *mut ::core::ffi::c_void {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn LocateXStateFeature(context: *const CONTEXT, featureid: u32, length: *mut u32) -> *mut ::core::ffi::c_void;
    }
    LocateXStateFeature(::core::mem::transmute(context), featureid, ::core::mem::transmute(length.unwrap_or(::std::ptr::null_mut())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn MakeSureDirectoryPathExists<'a, P0>(dirpath: P0) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn MakeSureDirectoryPathExists(dirpath: ::windows::core::PCSTR) -> super::super::super::Foundation::BOOL;
    }
    MakeSureDirectoryPathExists(dirpath.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
#[inline]
pub unsafe fn MapAndLoad<'a, P0, P1, P2, P3>(imagename: P0, dllpath: P1, loadedimage: *mut LOADED_IMAGE, dotdll: P2, readonly: P3) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    P3: ::std::convert::Into<super::super::super::Foundation::BOOL>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn MapAndLoad(imagename: ::windows::core::PCSTR, dllpath: ::windows::core::PCSTR, loadedimage: *mut LOADED_IMAGE, dotdll: super::super::super::Foundation::BOOL, readonly: super::super::super::Foundation::BOOL) -> super::super::super::Foundation::BOOL;
    }
    MapAndLoad(imagename.into(), dllpath.into(), ::core::mem::transmute(loadedimage), dotdll.into(), readonly.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn MapFileAndCheckSumA<'a, P0>(filename: P0, headersum: *mut u32, checksum: *mut u32) -> u32
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn MapFileAndCheckSumA(filename: ::windows::core::PCSTR, headersum: *mut u32, checksum: *mut u32) -> u32;
    }
    MapFileAndCheckSumA(filename.into(), ::core::mem::transmute(headersum), ::core::mem::transmute(checksum))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn MapFileAndCheckSumW<'a, P0>(filename: P0, headersum: *mut u32, checksum: *mut u32) -> u32
where
    P0: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn MapFileAndCheckSumW(filename: ::windows::core::PCWSTR, headersum: *mut u32, checksum: *mut u32) -> u32;
    }
    MapFileAndCheckSumW(filename.into(), ::core::mem::transmute(headersum), ::core::mem::transmute(checksum))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
#[inline]
pub unsafe fn MessageBeep(utype: super::super::super::UI::WindowsAndMessaging::MESSAGEBOX_STYLE) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn MessageBeep(utype: super::super::super::UI::WindowsAndMessaging::MESSAGEBOX_STYLE) -> super::super::super::Foundation::BOOL;
    }
    MessageBeep(utype)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn MiniDumpReadDumpStream(baseofdump: *const ::core::ffi::c_void, streamnumber: u32, dir: ::core::option::Option<*mut *mut MINIDUMP_DIRECTORY>, streampointer: ::core::option::Option<*mut *mut ::core::ffi::c_void>, streamsize: ::core::option::Option<*mut u32>) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn MiniDumpReadDumpStream(baseofdump: *const ::core::ffi::c_void, streamnumber: u32, dir: *mut *mut MINIDUMP_DIRECTORY, streampointer: *mut *mut ::core::ffi::c_void, streamsize: *mut u32) -> super::super::super::Foundation::BOOL;
    }
    MiniDumpReadDumpStream(::core::mem::transmute(baseofdump), streamnumber, ::core::mem::transmute(dir.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(streampointer.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(streamsize.unwrap_or(::std::ptr::null_mut())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Memory\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel", feature = "Win32_System_Memory"))]
#[inline]
pub unsafe fn MiniDumpWriteDump<'a, P0, P1>(hprocess: P0, processid: u32, hfile: P1, dumptype: MINIDUMP_TYPE, exceptionparam: ::core::option::Option<*const MINIDUMP_EXCEPTION_INFORMATION>, userstreamparam: ::core::option::Option<*const MINIDUMP_USER_STREAM_INFORMATION>, callbackparam: ::core::option::Option<*const MINIDUMP_CALLBACK_INFORMATION>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn MiniDumpWriteDump(hprocess: super::super::super::Foundation::HANDLE, processid: u32, hfile: super::super::super::Foundation::HANDLE, dumptype: MINIDUMP_TYPE, exceptionparam: *const MINIDUMP_EXCEPTION_INFORMATION, userstreamparam: *const MINIDUMP_USER_STREAM_INFORMATION, callbackparam: *const MINIDUMP_CALLBACK_INFORMATION) -> super::super::super::Foundation::BOOL;
    }
    MiniDumpWriteDump(hprocess.into(), processid, hfile.into(), dumptype, ::core::mem::transmute(exceptionparam.unwrap_or(::std::ptr::null())), ::core::mem::transmute(userstreamparam.unwrap_or(::std::ptr::null())), ::core::mem::transmute(callbackparam.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn OpenThreadWaitChainSession(flags: OPEN_THREAD_WAIT_CHAIN_SESSION_FLAGS, callback: PWAITCHAINCALLBACK) -> *mut ::core::ffi::c_void {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn OpenThreadWaitChainSession(flags: OPEN_THREAD_WAIT_CHAIN_SESSION_FLAGS, callback: *mut ::core::ffi::c_void) -> *mut ::core::ffi::c_void;
    }
    OpenThreadWaitChainSession(flags, ::core::mem::transmute(callback))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn OutputDebugStringA<'a, P0>(lpoutputstring: P0)
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn OutputDebugStringA(lpoutputstring: ::windows::core::PCSTR);
    }
    OutputDebugStringA(lpoutputstring.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn OutputDebugStringW<'a, P0>(lpoutputstring: P0)
where
    P0: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn OutputDebugStringW(lpoutputstring: ::windows::core::PCWSTR);
    }
    OutputDebugStringW(lpoutputstring.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn RaiseException(dwexceptioncode: u32, dwexceptionflags: u32, lparguments: ::core::option::Option<&[usize]>) {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RaiseException(dwexceptioncode: u32, dwexceptionflags: u32, nnumberofarguments: u32, lparguments: *const usize);
    }
    RaiseException(dwexceptioncode, dwexceptionflags, lparguments.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lparguments.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
#[inline]
pub unsafe fn RaiseFailFastException(pexceptionrecord: ::core::option::Option<*const EXCEPTION_RECORD>, pcontextrecord: ::core::option::Option<*const CONTEXT>, dwflags: u32) {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RaiseFailFastException(pexceptionrecord: *const EXCEPTION_RECORD, pcontextrecord: *const CONTEXT, dwflags: u32);
    }
    RaiseFailFastException(::core::mem::transmute(pexceptionrecord.unwrap_or(::std::ptr::null())), ::core::mem::transmute(pcontextrecord.unwrap_or(::std::ptr::null())), dwflags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn RangeMapAddPeImageSections<'a, P0>(rmaphandle: *const ::core::ffi::c_void, imagename: P0, mappedimage: *const ::core::ffi::c_void, mappingbytes: u32, imagebase: u64, usertag: u64, mappingflags: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RangeMapAddPeImageSections(rmaphandle: *const ::core::ffi::c_void, imagename: ::windows::core::PCWSTR, mappedimage: *const ::core::ffi::c_void, mappingbytes: u32, imagebase: u64, usertag: u64, mappingflags: u32) -> super::super::super::Foundation::BOOL;
    }
    RangeMapAddPeImageSections(::core::mem::transmute(rmaphandle), imagename.into(), ::core::mem::transmute(mappedimage), mappingbytes, imagebase, usertag, mappingflags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn RangeMapCreate() -> *mut ::core::ffi::c_void {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RangeMapCreate() -> *mut ::core::ffi::c_void;
    }
    RangeMapCreate()
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn RangeMapFree(rmaphandle: ::core::option::Option<*const ::core::ffi::c_void>) {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RangeMapFree(rmaphandle: *const ::core::ffi::c_void);
    }
    RangeMapFree(::core::mem::transmute(rmaphandle.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn RangeMapRead(rmaphandle: *const ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, requestbytes: u32, flags: u32, donebytes: ::core::option::Option<*mut u32>) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RangeMapRead(rmaphandle: *const ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, requestbytes: u32, flags: u32, donebytes: *mut u32) -> super::super::super::Foundation::BOOL;
    }
    RangeMapRead(::core::mem::transmute(rmaphandle), offset, ::core::mem::transmute(buffer), requestbytes, flags, ::core::mem::transmute(donebytes.unwrap_or(::std::ptr::null_mut())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn RangeMapRemove(rmaphandle: *const ::core::ffi::c_void, usertag: u64) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RangeMapRemove(rmaphandle: *const ::core::ffi::c_void, usertag: u64) -> super::super::super::Foundation::BOOL;
    }
    RangeMapRemove(::core::mem::transmute(rmaphandle), usertag)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn RangeMapWrite(rmaphandle: *const ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, requestbytes: u32, flags: u32, donebytes: ::core::option::Option<*mut u32>) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RangeMapWrite(rmaphandle: *const ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, requestbytes: u32, flags: u32, donebytes: *mut u32) -> super::super::super::Foundation::BOOL;
    }
    RangeMapWrite(::core::mem::transmute(rmaphandle), offset, ::core::mem::transmute(buffer), requestbytes, flags, ::core::mem::transmute(donebytes.unwrap_or(::std::ptr::null_mut())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn ReBaseImage<'a, P0, P1, P2, P3, P4>(currentimagename: P0, symbolpath: P1, frebase: P2, frebasesysfileok: P3, fgoingdown: P4, checkimagesize: u32, oldimagesize: *mut u32, oldimagebase: *mut usize, newimagesize: *mut u32, newimagebase: *mut usize, timestamp: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    P3: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    P4: ::std::convert::Into<super::super::super::Foundation::BOOL>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ReBaseImage(currentimagename: ::windows::core::PCSTR, symbolpath: ::windows::core::PCSTR, frebase: super::super::super::Foundation::BOOL, frebasesysfileok: super::super::super::Foundation::BOOL, fgoingdown: super::super::super::Foundation::BOOL, checkimagesize: u32, oldimagesize: *mut u32, oldimagebase: *mut usize, newimagesize: *mut u32, newimagebase: *mut usize, timestamp: u32) -> super::super::super::Foundation::BOOL;
    }
    ReBaseImage(currentimagename.into(), symbolpath.into(), frebase.into(), frebasesysfileok.into(), fgoingdown.into(), checkimagesize, ::core::mem::transmute(oldimagesize), ::core::mem::transmute(oldimagebase), ::core::mem::transmute(newimagesize), ::core::mem::transmute(newimagebase), timestamp)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn ReBaseImage64<'a, P0, P1, P2, P3, P4>(currentimagename: P0, symbolpath: P1, frebase: P2, frebasesysfileok: P3, fgoingdown: P4, checkimagesize: u32, oldimagesize: *mut u32, oldimagebase: *mut u64, newimagesize: *mut u32, newimagebase: *mut u64, timestamp: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    P3: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    P4: ::std::convert::Into<super::super::super::Foundation::BOOL>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ReBaseImage64(currentimagename: ::windows::core::PCSTR, symbolpath: ::windows::core::PCSTR, frebase: super::super::super::Foundation::BOOL, frebasesysfileok: super::super::super::Foundation::BOOL, fgoingdown: super::super::super::Foundation::BOOL, checkimagesize: u32, oldimagesize: *mut u32, oldimagebase: *mut u64, newimagesize: *mut u32, newimagebase: *mut u64, timestamp: u32) -> super::super::super::Foundation::BOOL;
    }
    ReBaseImage64(currentimagename.into(), symbolpath.into(), frebase.into(), frebasesysfileok.into(), fgoingdown.into(), checkimagesize, ::core::mem::transmute(oldimagesize), ::core::mem::transmute(oldimagebase), ::core::mem::transmute(newimagesize), ::core::mem::transmute(newimagebase), timestamp)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn ReadProcessMemory<'a, P0>(hprocess: P0, lpbaseaddress: *const ::core::ffi::c_void, lpbuffer: *mut ::core::ffi::c_void, nsize: usize, lpnumberofbytesread: ::core::option::Option<*mut usize>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ReadProcessMemory(hprocess: super::super::super::Foundation::HANDLE, lpbaseaddress: *const ::core::ffi::c_void, lpbuffer: *mut ::core::ffi::c_void, nsize: usize, lpnumberofbytesread: *mut usize) -> super::super::super::Foundation::BOOL;
    }
    ReadProcessMemory(hprocess.into(), ::core::mem::transmute(lpbaseaddress), ::core::mem::transmute(lpbuffer), nsize, ::core::mem::transmute(lpnumberofbytesread.unwrap_or(::std::ptr::null_mut())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn RegisterWaitChainCOMCallback(callstatecallback: PCOGETCALLSTATE, activationstatecallback: PCOGETACTIVATIONSTATE) {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RegisterWaitChainCOMCallback(callstatecallback: *mut ::core::ffi::c_void, activationstatecallback: *mut ::core::ffi::c_void);
    }
    RegisterWaitChainCOMCallback(::core::mem::transmute(callstatecallback), ::core::mem::transmute(activationstatecallback))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn RemoveInvalidModuleList<'a, P0>(hprocess: P0)
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RemoveInvalidModuleList(hprocess: super::super::super::Foundation::HANDLE);
    }
    RemoveInvalidModuleList(hprocess.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn RemoveVectoredContinueHandler(handle: *const ::core::ffi::c_void) -> u32 {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RemoveVectoredContinueHandler(handle: *const ::core::ffi::c_void) -> u32;
    }
    RemoveVectoredContinueHandler(::core::mem::transmute(handle))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn RemoveVectoredExceptionHandler(handle: *const ::core::ffi::c_void) -> u32 {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RemoveVectoredExceptionHandler(handle: *const ::core::ffi::c_void) -> u32;
    }
    RemoveVectoredExceptionHandler(::core::mem::transmute(handle))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn ReportSymbolLoadSummary<'a, P0, P1>(hprocess: P0, ploadmodule: P1, psymboldata: *const DBGHELP_DATA_REPORT_STRUCT) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn ReportSymbolLoadSummary(hprocess: super::super::super::Foundation::HANDLE, ploadmodule: ::windows::core::PCWSTR, psymboldata: *const DBGHELP_DATA_REPORT_STRUCT) -> super::super::super::Foundation::BOOL;
    }
    ReportSymbolLoadSummary(hprocess.into(), ploadmodule.into(), ::core::mem::transmute(psymboldata))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn RtlAddFunctionTable(functiontable: &[IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY], baseaddress: usize) -> super::super::super::Foundation::BOOLEAN {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlAddFunctionTable(functiontable: *const IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, entrycount: u32, baseaddress: usize) -> super::super::super::Foundation::BOOLEAN;
    }
    RtlAddFunctionTable(::core::mem::transmute(functiontable.as_ptr()), functiontable.len() as _, baseaddress)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn RtlAddFunctionTable(functiontable: &[IMAGE_RUNTIME_FUNCTION_ENTRY], baseaddress: u64) -> super::super::super::Foundation::BOOLEAN {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlAddFunctionTable(functiontable: *const IMAGE_RUNTIME_FUNCTION_ENTRY, entrycount: u32, baseaddress: u64) -> super::super::super::Foundation::BOOLEAN;
    }
    RtlAddFunctionTable(::core::mem::transmute(functiontable.as_ptr()), functiontable.len() as _, baseaddress)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "aarch64")]
#[inline]
pub unsafe fn RtlAddGrowableFunctionTable(dynamictable: *mut *mut ::core::ffi::c_void, functiontable: &[IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY], entrycount: u32, rangebase: usize, rangeend: usize) -> u32 {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlAddGrowableFunctionTable(dynamictable: *mut *mut ::core::ffi::c_void, functiontable: *const IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, entrycount: u32, maximumentrycount: u32, rangebase: usize, rangeend: usize) -> u32;
    }
    RtlAddGrowableFunctionTable(::core::mem::transmute(dynamictable), ::core::mem::transmute(functiontable.as_ptr()), entrycount, functiontable.len() as _, rangebase, rangeend)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "x86_64")]
#[inline]
pub unsafe fn RtlAddGrowableFunctionTable(dynamictable: *mut *mut ::core::ffi::c_void, functiontable: &[IMAGE_RUNTIME_FUNCTION_ENTRY], entrycount: u32, rangebase: usize, rangeend: usize) -> u32 {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlAddGrowableFunctionTable(dynamictable: *mut *mut ::core::ffi::c_void, functiontable: *const IMAGE_RUNTIME_FUNCTION_ENTRY, entrycount: u32, maximumentrycount: u32, rangebase: usize, rangeend: usize) -> u32;
    }
    RtlAddGrowableFunctionTable(::core::mem::transmute(dynamictable), ::core::mem::transmute(functiontable.as_ptr()), entrycount, functiontable.len() as _, rangebase, rangeend)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(feature = "Win32_System_Kernel")]
#[inline]
pub unsafe fn RtlCaptureContext(contextrecord: *mut CONTEXT) {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlCaptureContext(contextrecord: *mut CONTEXT);
    }
    RtlCaptureContext(::core::mem::transmute(contextrecord))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
#[inline]
pub unsafe fn RtlCaptureContext2(contextrecord: *mut CONTEXT) {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlCaptureContext2(contextrecord: *mut CONTEXT);
    }
    RtlCaptureContext2(::core::mem::transmute(contextrecord))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn RtlCaptureStackBackTrace(framestoskip: u32, backtrace: &mut [*mut ::core::ffi::c_void], backtracehash: ::core::option::Option<*mut u32>) -> u16 {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlCaptureStackBackTrace(framestoskip: u32, framestocapture: u32, backtrace: *mut *mut ::core::ffi::c_void, backtracehash: *mut u32) -> u16;
    }
    RtlCaptureStackBackTrace(framestoskip, backtrace.len() as _, ::core::mem::transmute(backtrace.as_ptr()), ::core::mem::transmute(backtracehash.unwrap_or(::std::ptr::null_mut())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn RtlDeleteFunctionTable(functiontable: *const IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY) -> super::super::super::Foundation::BOOLEAN {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlDeleteFunctionTable(functiontable: *const IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY) -> super::super::super::Foundation::BOOLEAN;
    }
    RtlDeleteFunctionTable(::core::mem::transmute(functiontable))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn RtlDeleteFunctionTable(functiontable: *const IMAGE_RUNTIME_FUNCTION_ENTRY) -> super::super::super::Foundation::BOOLEAN {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlDeleteFunctionTable(functiontable: *const IMAGE_RUNTIME_FUNCTION_ENTRY) -> super::super::super::Foundation::BOOLEAN;
    }
    RtlDeleteFunctionTable(::core::mem::transmute(functiontable))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[inline]
pub unsafe fn RtlDeleteGrowableFunctionTable(dynamictable: *const ::core::ffi::c_void) {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlDeleteGrowableFunctionTable(dynamictable: *const ::core::ffi::c_void);
    }
    RtlDeleteGrowableFunctionTable(::core::mem::transmute(dynamictable))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[inline]
pub unsafe fn RtlGrowFunctionTable(dynamictable: *mut ::core::ffi::c_void, newentrycount: u32) {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlGrowFunctionTable(dynamictable: *mut ::core::ffi::c_void, newentrycount: u32);
    }
    RtlGrowFunctionTable(::core::mem::transmute(dynamictable), newentrycount)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn RtlInstallFunctionTableCallback<'a, P0>(tableidentifier: u64, baseaddress: u64, length: u32, callback: PGET_RUNTIME_FUNCTION_CALLBACK, context: ::core::option::Option<*const ::core::ffi::c_void>, outofprocesscallbackdll: P0) -> super::super::super::Foundation::BOOLEAN
where
    P0: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlInstallFunctionTableCallback(tableidentifier: u64, baseaddress: u64, length: u32, callback: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, outofprocesscallbackdll: ::windows::core::PCWSTR) -> super::super::super::Foundation::BOOLEAN;
    }
    RtlInstallFunctionTableCallback(tableidentifier, baseaddress, length, ::core::mem::transmute(callback), ::core::mem::transmute(context.unwrap_or(::std::ptr::null())), outofprocesscallbackdll.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn RtlInstallFunctionTableCallback<'a, P0>(tableidentifier: u64, baseaddress: u64, length: u32, callback: PGET_RUNTIME_FUNCTION_CALLBACK, context: ::core::option::Option<*const ::core::ffi::c_void>, outofprocesscallbackdll: P0) -> super::super::super::Foundation::BOOLEAN
where
    P0: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlInstallFunctionTableCallback(tableidentifier: u64, baseaddress: u64, length: u32, callback: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, outofprocesscallbackdll: ::windows::core::PCWSTR) -> super::super::super::Foundation::BOOLEAN;
    }
    RtlInstallFunctionTableCallback(tableidentifier, baseaddress, length, ::core::mem::transmute(callback), ::core::mem::transmute(context.unwrap_or(::std::ptr::null())), outofprocesscallbackdll.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "aarch64")]
#[inline]
pub unsafe fn RtlLookupFunctionEntry(controlpc: usize, imagebase: *mut usize, historytable: ::core::option::Option<*mut UNWIND_HISTORY_TABLE>) -> *mut IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlLookupFunctionEntry(controlpc: usize, imagebase: *mut usize, historytable: *mut UNWIND_HISTORY_TABLE) -> *mut IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY;
    }
    RtlLookupFunctionEntry(controlpc, ::core::mem::transmute(imagebase), ::core::mem::transmute(historytable.unwrap_or(::std::ptr::null_mut())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "x86_64")]
#[inline]
pub unsafe fn RtlLookupFunctionEntry(controlpc: u64, imagebase: *mut u64, historytable: ::core::option::Option<*mut UNWIND_HISTORY_TABLE>) -> *mut IMAGE_RUNTIME_FUNCTION_ENTRY {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlLookupFunctionEntry(controlpc: u64, imagebase: *mut u64, historytable: *mut UNWIND_HISTORY_TABLE) -> *mut IMAGE_RUNTIME_FUNCTION_ENTRY;
    }
    RtlLookupFunctionEntry(controlpc, ::core::mem::transmute(imagebase), ::core::mem::transmute(historytable.unwrap_or(::std::ptr::null_mut())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn RtlPcToFileHeader(pcvalue: *const ::core::ffi::c_void, baseofimage: *mut *mut ::core::ffi::c_void) -> *mut ::core::ffi::c_void {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlPcToFileHeader(pcvalue: *const ::core::ffi::c_void, baseofimage: *mut *mut ::core::ffi::c_void) -> *mut ::core::ffi::c_void;
    }
    RtlPcToFileHeader(::core::mem::transmute(pcvalue), ::core::mem::transmute(baseofimage))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn RtlRaiseException(exceptionrecord: *const EXCEPTION_RECORD) {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlRaiseException(exceptionrecord: *const EXCEPTION_RECORD);
    }
    RtlRaiseException(::core::mem::transmute(exceptionrecord))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn RtlUnwind(targetframe: ::core::option::Option<*const ::core::ffi::c_void>, targetip: ::core::option::Option<*const ::core::ffi::c_void>, exceptionrecord: ::core::option::Option<*const EXCEPTION_RECORD>, returnvalue: *const ::core::ffi::c_void) {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlUnwind(targetframe: *const ::core::ffi::c_void, targetip: *const ::core::ffi::c_void, exceptionrecord: *const EXCEPTION_RECORD, returnvalue: *const ::core::ffi::c_void);
    }
    RtlUnwind(::core::mem::transmute(targetframe.unwrap_or(::std::ptr::null())), ::core::mem::transmute(targetip.unwrap_or(::std::ptr::null())), ::core::mem::transmute(exceptionrecord.unwrap_or(::std::ptr::null())), ::core::mem::transmute(returnvalue))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
#[inline]
pub unsafe fn RtlUnwindEx(targetframe: ::core::option::Option<*const ::core::ffi::c_void>, targetip: ::core::option::Option<*const ::core::ffi::c_void>, exceptionrecord: ::core::option::Option<*const EXCEPTION_RECORD>, returnvalue: *const ::core::ffi::c_void, contextrecord: *const CONTEXT, historytable: ::core::option::Option<*const UNWIND_HISTORY_TABLE>) {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlUnwindEx(targetframe: *const ::core::ffi::c_void, targetip: *const ::core::ffi::c_void, exceptionrecord: *const EXCEPTION_RECORD, returnvalue: *const ::core::ffi::c_void, contextrecord: *const CONTEXT, historytable: *const UNWIND_HISTORY_TABLE);
    }
    RtlUnwindEx(::core::mem::transmute(targetframe.unwrap_or(::std::ptr::null())), ::core::mem::transmute(targetip.unwrap_or(::std::ptr::null())), ::core::mem::transmute(exceptionrecord.unwrap_or(::std::ptr::null())), ::core::mem::transmute(returnvalue), ::core::mem::transmute(contextrecord), ::core::mem::transmute(historytable.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
#[inline]
pub unsafe fn RtlVirtualUnwind(handlertype: RTL_VIRTUAL_UNWIND_HANDLER_TYPE, imagebase: usize, controlpc: usize, functionentry: *const IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, contextrecord: *mut CONTEXT, handlerdata: *mut *mut ::core::ffi::c_void, establisherframe: *mut usize, contextpointers: ::core::option::Option<*mut KNONVOLATILE_CONTEXT_POINTERS_ARM64>) -> super::super::Kernel::EXCEPTION_ROUTINE {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlVirtualUnwind(handlertype: RTL_VIRTUAL_UNWIND_HANDLER_TYPE, imagebase: usize, controlpc: usize, functionentry: *const IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, contextrecord: *mut CONTEXT, handlerdata: *mut *mut ::core::ffi::c_void, establisherframe: *mut usize, contextpointers: *mut KNONVOLATILE_CONTEXT_POINTERS_ARM64) -> super::super::Kernel::EXCEPTION_ROUTINE;
    }
    RtlVirtualUnwind(handlertype, imagebase, controlpc, ::core::mem::transmute(functionentry), ::core::mem::transmute(contextrecord), ::core::mem::transmute(handlerdata), ::core::mem::transmute(establisherframe), ::core::mem::transmute(contextpointers.unwrap_or(::std::ptr::null_mut())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(target_arch = "x86_64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
#[inline]
pub unsafe fn RtlVirtualUnwind(handlertype: RTL_VIRTUAL_UNWIND_HANDLER_TYPE, imagebase: u64, controlpc: u64, functionentry: *const IMAGE_RUNTIME_FUNCTION_ENTRY, contextrecord: *mut CONTEXT, handlerdata: *mut *mut ::core::ffi::c_void, establisherframe: *mut u64, contextpointers: ::core::option::Option<*mut KNONVOLATILE_CONTEXT_POINTERS>) -> super::super::Kernel::EXCEPTION_ROUTINE {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn RtlVirtualUnwind(handlertype: RTL_VIRTUAL_UNWIND_HANDLER_TYPE, imagebase: u64, controlpc: u64, functionentry: *const IMAGE_RUNTIME_FUNCTION_ENTRY, contextrecord: *mut CONTEXT, handlerdata: *mut *mut ::core::ffi::c_void, establisherframe: *mut u64, contextpointers: *mut KNONVOLATILE_CONTEXT_POINTERS) -> super::super::Kernel::EXCEPTION_ROUTINE;
    }
    RtlVirtualUnwind(handlertype, imagebase, controlpc, ::core::mem::transmute(functionentry), ::core::mem::transmute(contextrecord), ::core::mem::transmute(handlerdata), ::core::mem::transmute(establisherframe), ::core::mem::transmute(contextpointers.unwrap_or(::std::ptr::null_mut())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SearchTreeForFile<'a, P0, P1>(rootpath: P0, inputpathname: P1, outputpathbuffer: ::windows::core::PSTR) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SearchTreeForFile(rootpath: ::windows::core::PCSTR, inputpathname: ::windows::core::PCSTR, outputpathbuffer: ::windows::core::PSTR) -> super::super::super::Foundation::BOOL;
    }
    SearchTreeForFile(rootpath.into(), inputpathname.into(), ::core::mem::transmute(outputpathbuffer))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SearchTreeForFileW<'a, P0, P1>(rootpath: P0, inputpathname: P1, outputpathbuffer: ::windows::core::PWSTR) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCWSTR>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SearchTreeForFileW(rootpath: ::windows::core::PCWSTR, inputpathname: ::windows::core::PCWSTR, outputpathbuffer: ::windows::core::PWSTR) -> super::super::super::Foundation::BOOL;
    }
    SearchTreeForFileW(rootpath.into(), inputpathname.into(), ::core::mem::transmute(outputpathbuffer))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn SetCheckUserInterruptShared(lpstartaddress: LPCALL_BACK_USER_INTERRUPT_ROUTINE) {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SetCheckUserInterruptShared(lpstartaddress: *mut ::core::ffi::c_void);
    }
    SetCheckUserInterruptShared(::core::mem::transmute(lpstartaddress))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn SetErrorMode(umode: THREAD_ERROR_MODE) -> u32 {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SetErrorMode(umode: THREAD_ERROR_MODE) -> u32;
    }
    SetErrorMode(umode)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
#[inline]
pub unsafe fn SetImageConfigInformation(loadedimage: *mut LOADED_IMAGE, imageconfiginformation: *const IMAGE_LOAD_CONFIG_DIRECTORY64) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SetImageConfigInformation(loadedimage: *mut LOADED_IMAGE, imageconfiginformation: *const IMAGE_LOAD_CONFIG_DIRECTORY64) -> super::super::super::Foundation::BOOL;
    }
    SetImageConfigInformation(::core::mem::transmute(loadedimage), ::core::mem::transmute(imageconfiginformation))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
#[inline]
pub unsafe fn SetImageConfigInformation(loadedimage: *mut LOADED_IMAGE, imageconfiginformation: *const IMAGE_LOAD_CONFIG_DIRECTORY32) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SetImageConfigInformation(loadedimage: *mut LOADED_IMAGE, imageconfiginformation: *const IMAGE_LOAD_CONFIG_DIRECTORY32) -> super::super::super::Foundation::BOOL;
    }
    SetImageConfigInformation(::core::mem::transmute(loadedimage), ::core::mem::transmute(imageconfiginformation))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn SetSymLoadError(error: u32) {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SetSymLoadError(error: u32);
    }
    SetSymLoadError(error)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
#[inline]
pub unsafe fn SetThreadContext<'a, P0>(hthread: P0, lpcontext: *const CONTEXT) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SetThreadContext(hthread: super::super::super::Foundation::HANDLE, lpcontext: *const CONTEXT) -> super::super::super::Foundation::BOOL;
    }
    SetThreadContext(hthread.into(), ::core::mem::transmute(lpcontext))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SetThreadErrorMode(dwnewmode: THREAD_ERROR_MODE, lpoldmode: ::core::option::Option<*const THREAD_ERROR_MODE>) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SetThreadErrorMode(dwnewmode: THREAD_ERROR_MODE, lpoldmode: *const THREAD_ERROR_MODE) -> super::super::super::Foundation::BOOL;
    }
    SetThreadErrorMode(dwnewmode, ::core::mem::transmute(lpoldmode.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
#[inline]
pub unsafe fn SetUnhandledExceptionFilter(lptoplevelexceptionfilter: LPTOP_LEVEL_EXCEPTION_FILTER) -> LPTOP_LEVEL_EXCEPTION_FILTER {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SetUnhandledExceptionFilter(lptoplevelexceptionfilter: *mut ::core::ffi::c_void) -> LPTOP_LEVEL_EXCEPTION_FILTER;
    }
    SetUnhandledExceptionFilter(::core::mem::transmute(lptoplevelexceptionfilter))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
#[inline]
pub unsafe fn SetXStateFeaturesMask(context: *mut CONTEXT, featuremask: u64) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SetXStateFeaturesMask(context: *mut CONTEXT, featuremask: u64) -> super::super::super::Foundation::BOOL;
    }
    SetXStateFeaturesMask(::core::mem::transmute(context), featuremask)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn StackWalk<'a, P0, P1>(machinetype: u32, hprocess: P0, hthread: P1, stackframe: *mut STACKFRAME, contextrecord: *mut ::core::ffi::c_void, readmemoryroutine: PREAD_PROCESS_MEMORY_ROUTINE, functiontableaccessroutine: PFUNCTION_TABLE_ACCESS_ROUTINE, getmodulebaseroutine: PGET_MODULE_BASE_ROUTINE, translateaddress: PTRANSLATE_ADDRESS_ROUTINE) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn StackWalk(machinetype: u32, hprocess: super::super::super::Foundation::HANDLE, hthread: super::super::super::Foundation::HANDLE, stackframe: *mut STACKFRAME, contextrecord: *mut ::core::ffi::c_void, readmemoryroutine: *mut ::core::ffi::c_void, functiontableaccessroutine: *mut ::core::ffi::c_void, getmodulebaseroutine: *mut ::core::ffi::c_void, translateaddress: *mut ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    StackWalk(machinetype, hprocess.into(), hthread.into(), ::core::mem::transmute(stackframe), ::core::mem::transmute(contextrecord), ::core::mem::transmute(readmemoryroutine), ::core::mem::transmute(functiontableaccessroutine), ::core::mem::transmute(getmodulebaseroutine), ::core::mem::transmute(translateaddress))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn StackWalk64<'a, P0, P1>(machinetype: u32, hprocess: P0, hthread: P1, stackframe: *mut STACKFRAME64, contextrecord: *mut ::core::ffi::c_void, readmemoryroutine: PREAD_PROCESS_MEMORY_ROUTINE64, functiontableaccessroutine: PFUNCTION_TABLE_ACCESS_ROUTINE64, getmodulebaseroutine: PGET_MODULE_BASE_ROUTINE64, translateaddress: PTRANSLATE_ADDRESS_ROUTINE64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn StackWalk64(machinetype: u32, hprocess: super::super::super::Foundation::HANDLE, hthread: super::super::super::Foundation::HANDLE, stackframe: *mut STACKFRAME64, contextrecord: *mut ::core::ffi::c_void, readmemoryroutine: *mut ::core::ffi::c_void, functiontableaccessroutine: *mut ::core::ffi::c_void, getmodulebaseroutine: *mut ::core::ffi::c_void, translateaddress: *mut ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    StackWalk64(machinetype, hprocess.into(), hthread.into(), ::core::mem::transmute(stackframe), ::core::mem::transmute(contextrecord), ::core::mem::transmute(readmemoryroutine), ::core::mem::transmute(functiontableaccessroutine), ::core::mem::transmute(getmodulebaseroutine), ::core::mem::transmute(translateaddress))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn StackWalkEx<'a, P0, P1>(machinetype: u32, hprocess: P0, hthread: P1, stackframe: *mut STACKFRAME_EX, contextrecord: *mut ::core::ffi::c_void, readmemoryroutine: PREAD_PROCESS_MEMORY_ROUTINE64, functiontableaccessroutine: PFUNCTION_TABLE_ACCESS_ROUTINE64, getmodulebaseroutine: PGET_MODULE_BASE_ROUTINE64, translateaddress: PTRANSLATE_ADDRESS_ROUTINE64, flags: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn StackWalkEx(machinetype: u32, hprocess: super::super::super::Foundation::HANDLE, hthread: super::super::super::Foundation::HANDLE, stackframe: *mut STACKFRAME_EX, contextrecord: *mut ::core::ffi::c_void, readmemoryroutine: *mut ::core::ffi::c_void, functiontableaccessroutine: *mut ::core::ffi::c_void, getmodulebaseroutine: *mut ::core::ffi::c_void, translateaddress: *mut ::core::ffi::c_void, flags: u32) -> super::super::super::Foundation::BOOL;
    }
    StackWalkEx(machinetype, hprocess.into(), hthread.into(), ::core::mem::transmute(stackframe), ::core::mem::transmute(contextrecord), ::core::mem::transmute(readmemoryroutine), ::core::mem::transmute(functiontableaccessroutine), ::core::mem::transmute(getmodulebaseroutine), ::core::mem::transmute(translateaddress), flags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymAddSourceStream<'a, P0, P1>(hprocess: P0, base: u64, streamfile: P1, buffer: ::core::option::Option<&[u8]>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymAddSourceStream(hprocess: super::super::super::Foundation::HANDLE, base: u64, streamfile: ::windows::core::PCSTR, buffer: *const u8, size: usize) -> super::super::super::Foundation::BOOL;
    }
    SymAddSourceStream(hprocess.into(), base, streamfile.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymAddSourceStreamA<'a, P0, P1>(hprocess: P0, base: u64, streamfile: P1, buffer: ::core::option::Option<&[u8]>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymAddSourceStreamA(hprocess: super::super::super::Foundation::HANDLE, base: u64, streamfile: ::windows::core::PCSTR, buffer: *const u8, size: usize) -> super::super::super::Foundation::BOOL;
    }
    SymAddSourceStreamA(hprocess.into(), base, streamfile.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymAddSourceStreamW<'a, P0, P1>(hprocess: P0, base: u64, filespec: P1, buffer: ::core::option::Option<&[u8]>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymAddSourceStreamW(hprocess: super::super::super::Foundation::HANDLE, base: u64, filespec: ::windows::core::PCWSTR, buffer: *const u8, size: usize) -> super::super::super::Foundation::BOOL;
    }
    SymAddSourceStreamW(hprocess.into(), base, filespec.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymAddSymbol<'a, P0, P1>(hprocess: P0, baseofdll: u64, name: P1, address: u64, size: u32, flags: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymAddSymbol(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, name: ::windows::core::PCSTR, address: u64, size: u32, flags: u32) -> super::super::super::Foundation::BOOL;
    }
    SymAddSymbol(hprocess.into(), baseofdll, name.into(), address, size, flags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymAddSymbolW<'a, P0, P1>(hprocess: P0, baseofdll: u64, name: P1, address: u64, size: u32, flags: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymAddSymbolW(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, name: ::windows::core::PCWSTR, address: u64, size: u32, flags: u32) -> super::super::super::Foundation::BOOL;
    }
    SymAddSymbolW(hprocess.into(), baseofdll, name.into(), address, size, flags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymAddrIncludeInlineTrace<'a, P0>(hprocess: P0, address: u64) -> u32
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymAddrIncludeInlineTrace(hprocess: super::super::super::Foundation::HANDLE, address: u64) -> u32;
    }
    SymAddrIncludeInlineTrace(hprocess.into(), address)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymCleanup<'a, P0>(hprocess: P0) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymCleanup(hprocess: super::super::super::Foundation::HANDLE) -> super::super::super::Foundation::BOOL;
    }
    SymCleanup(hprocess.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymCompareInlineTrace<'a, P0>(hprocess: P0, address1: u64, inlinecontext1: u32, retaddress1: u64, address2: u64, retaddress2: u64) -> u32
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymCompareInlineTrace(hprocess: super::super::super::Foundation::HANDLE, address1: u64, inlinecontext1: u32, retaddress1: u64, address2: u64, retaddress2: u64) -> u32;
    }
    SymCompareInlineTrace(hprocess.into(), address1, inlinecontext1, retaddress1, address2, retaddress2)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymDeleteSymbol<'a, P0, P1>(hprocess: P0, baseofdll: u64, name: P1, address: u64, flags: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymDeleteSymbol(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, name: ::windows::core::PCSTR, address: u64, flags: u32) -> super::super::super::Foundation::BOOL;
    }
    SymDeleteSymbol(hprocess.into(), baseofdll, name.into(), address, flags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymDeleteSymbolW<'a, P0, P1>(hprocess: P0, baseofdll: u64, name: P1, address: u64, flags: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymDeleteSymbolW(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, name: ::windows::core::PCWSTR, address: u64, flags: u32) -> super::super::super::Foundation::BOOL;
    }
    SymDeleteSymbolW(hprocess.into(), baseofdll, name.into(), address, flags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumLines<'a, P0, P1, P2>(hprocess: P0, base: u64, obj: P1, file: P2, enumlinescallback: PSYM_ENUMLINES_CALLBACK, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumLines(hprocess: super::super::super::Foundation::HANDLE, base: u64, obj: ::windows::core::PCSTR, file: ::windows::core::PCSTR, enumlinescallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumLines(hprocess.into(), base, obj.into(), file.into(), ::core::mem::transmute(enumlinescallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumLinesW<'a, P0, P1, P2>(hprocess: P0, base: u64, obj: P1, file: P2, enumlinescallback: PSYM_ENUMLINES_CALLBACKW, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
    P2: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumLinesW(hprocess: super::super::super::Foundation::HANDLE, base: u64, obj: ::windows::core::PCWSTR, file: ::windows::core::PCWSTR, enumlinescallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumLinesW(hprocess.into(), base, obj.into(), file.into(), ::core::mem::transmute(enumlinescallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumProcesses(enumprocessescallback: PSYM_ENUMPROCESSES_CALLBACK, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumProcesses(enumprocessescallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumProcesses(::core::mem::transmute(enumprocessescallback), ::core::mem::transmute(usercontext))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumSourceFileTokens<'a, P0>(hprocess: P0, base: u64, callback: PENUMSOURCEFILETOKENSCALLBACK) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumSourceFileTokens(hprocess: super::super::super::Foundation::HANDLE, base: u64, callback: *mut ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumSourceFileTokens(hprocess.into(), base, ::core::mem::transmute(callback))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumSourceFiles<'a, P0, P1>(hprocess: P0, modbase: u64, mask: P1, cbsrcfiles: PSYM_ENUMSOURCEFILES_CALLBACK, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumSourceFiles(hprocess: super::super::super::Foundation::HANDLE, modbase: u64, mask: ::windows::core::PCSTR, cbsrcfiles: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumSourceFiles(hprocess.into(), modbase, mask.into(), ::core::mem::transmute(cbsrcfiles), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumSourceFilesW<'a, P0, P1>(hprocess: P0, modbase: u64, mask: P1, cbsrcfiles: PSYM_ENUMSOURCEFILES_CALLBACKW, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumSourceFilesW(hprocess: super::super::super::Foundation::HANDLE, modbase: u64, mask: ::windows::core::PCWSTR, cbsrcfiles: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumSourceFilesW(hprocess.into(), modbase, mask.into(), ::core::mem::transmute(cbsrcfiles), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumSourceLines<'a, P0, P1, P2>(hprocess: P0, base: u64, obj: P1, file: P2, line: u32, flags: u32, enumlinescallback: PSYM_ENUMLINES_CALLBACK, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumSourceLines(hprocess: super::super::super::Foundation::HANDLE, base: u64, obj: ::windows::core::PCSTR, file: ::windows::core::PCSTR, line: u32, flags: u32, enumlinescallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumSourceLines(hprocess.into(), base, obj.into(), file.into(), line, flags, ::core::mem::transmute(enumlinescallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumSourceLinesW<'a, P0, P1, P2>(hprocess: P0, base: u64, obj: P1, file: P2, line: u32, flags: u32, enumlinescallback: PSYM_ENUMLINES_CALLBACKW, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
    P2: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumSourceLinesW(hprocess: super::super::super::Foundation::HANDLE, base: u64, obj: ::windows::core::PCWSTR, file: ::windows::core::PCWSTR, line: u32, flags: u32, enumlinescallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumSourceLinesW(hprocess.into(), base, obj.into(), file.into(), line, flags, ::core::mem::transmute(enumlinescallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumSym<'a, P0>(hprocess: P0, baseofdll: u64, enumsymbolscallback: PSYM_ENUMERATESYMBOLS_CALLBACK, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumSym(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, enumsymbolscallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumSym(hprocess.into(), baseofdll, ::core::mem::transmute(enumsymbolscallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumSymbols<'a, P0, P1>(hprocess: P0, baseofdll: u64, mask: P1, enumsymbolscallback: PSYM_ENUMERATESYMBOLS_CALLBACK, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumSymbols(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, mask: ::windows::core::PCSTR, enumsymbolscallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumSymbols(hprocess.into(), baseofdll, mask.into(), ::core::mem::transmute(enumsymbolscallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumSymbolsEx<'a, P0, P1>(hprocess: P0, baseofdll: u64, mask: P1, enumsymbolscallback: PSYM_ENUMERATESYMBOLS_CALLBACK, usercontext: ::core::option::Option<*const ::core::ffi::c_void>, options: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumSymbolsEx(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, mask: ::windows::core::PCSTR, enumsymbolscallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void, options: u32) -> super::super::super::Foundation::BOOL;
    }
    SymEnumSymbolsEx(hprocess.into(), baseofdll, mask.into(), ::core::mem::transmute(enumsymbolscallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())), options)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumSymbolsExW<'a, P0, P1>(hprocess: P0, baseofdll: u64, mask: P1, enumsymbolscallback: PSYM_ENUMERATESYMBOLS_CALLBACKW, usercontext: ::core::option::Option<*const ::core::ffi::c_void>, options: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumSymbolsExW(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, mask: ::windows::core::PCWSTR, enumsymbolscallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void, options: u32) -> super::super::super::Foundation::BOOL;
    }
    SymEnumSymbolsExW(hprocess.into(), baseofdll, mask.into(), ::core::mem::transmute(enumsymbolscallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())), options)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumSymbolsForAddr<'a, P0>(hprocess: P0, address: u64, enumsymbolscallback: PSYM_ENUMERATESYMBOLS_CALLBACK, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumSymbolsForAddr(hprocess: super::super::super::Foundation::HANDLE, address: u64, enumsymbolscallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumSymbolsForAddr(hprocess.into(), address, ::core::mem::transmute(enumsymbolscallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumSymbolsForAddrW<'a, P0>(hprocess: P0, address: u64, enumsymbolscallback: PSYM_ENUMERATESYMBOLS_CALLBACKW, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumSymbolsForAddrW(hprocess: super::super::super::Foundation::HANDLE, address: u64, enumsymbolscallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumSymbolsForAddrW(hprocess.into(), address, ::core::mem::transmute(enumsymbolscallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumSymbolsW<'a, P0, P1>(hprocess: P0, baseofdll: u64, mask: P1, enumsymbolscallback: PSYM_ENUMERATESYMBOLS_CALLBACKW, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumSymbolsW(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, mask: ::windows::core::PCWSTR, enumsymbolscallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumSymbolsW(hprocess.into(), baseofdll, mask.into(), ::core::mem::transmute(enumsymbolscallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumTypes<'a, P0>(hprocess: P0, baseofdll: u64, enumsymbolscallback: PSYM_ENUMERATESYMBOLS_CALLBACK, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumTypes(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, enumsymbolscallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumTypes(hprocess.into(), baseofdll, ::core::mem::transmute(enumsymbolscallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumTypesByName<'a, P0, P1>(hprocess: P0, baseofdll: u64, mask: P1, enumsymbolscallback: PSYM_ENUMERATESYMBOLS_CALLBACK, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumTypesByName(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, mask: ::windows::core::PCSTR, enumsymbolscallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumTypesByName(hprocess.into(), baseofdll, mask.into(), ::core::mem::transmute(enumsymbolscallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumTypesByNameW<'a, P0, P1>(hprocess: P0, baseofdll: u64, mask: P1, enumsymbolscallback: PSYM_ENUMERATESYMBOLS_CALLBACKW, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumTypesByNameW(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, mask: ::windows::core::PCWSTR, enumsymbolscallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumTypesByNameW(hprocess.into(), baseofdll, mask.into(), ::core::mem::transmute(enumsymbolscallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumTypesW<'a, P0>(hprocess: P0, baseofdll: u64, enumsymbolscallback: PSYM_ENUMERATESYMBOLS_CALLBACKW, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumTypesW(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, enumsymbolscallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumTypesW(hprocess.into(), baseofdll, ::core::mem::transmute(enumsymbolscallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumerateModules<'a, P0>(hprocess: P0, enummodulescallback: PSYM_ENUMMODULES_CALLBACK, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumerateModules(hprocess: super::super::super::Foundation::HANDLE, enummodulescallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumerateModules(hprocess.into(), ::core::mem::transmute(enummodulescallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumerateModules64<'a, P0>(hprocess: P0, enummodulescallback: PSYM_ENUMMODULES_CALLBACK64, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumerateModules64(hprocess: super::super::super::Foundation::HANDLE, enummodulescallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumerateModules64(hprocess.into(), ::core::mem::transmute(enummodulescallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumerateModulesW64<'a, P0>(hprocess: P0, enummodulescallback: PSYM_ENUMMODULES_CALLBACKW64, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumerateModulesW64(hprocess: super::super::super::Foundation::HANDLE, enummodulescallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumerateModulesW64(hprocess.into(), ::core::mem::transmute(enummodulescallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumerateSymbols<'a, P0>(hprocess: P0, baseofdll: u32, enumsymbolscallback: PSYM_ENUMSYMBOLS_CALLBACK, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumerateSymbols(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u32, enumsymbolscallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumerateSymbols(hprocess.into(), baseofdll, ::core::mem::transmute(enumsymbolscallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumerateSymbols64<'a, P0>(hprocess: P0, baseofdll: u64, enumsymbolscallback: PSYM_ENUMSYMBOLS_CALLBACK64, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumerateSymbols64(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, enumsymbolscallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumerateSymbols64(hprocess.into(), baseofdll, ::core::mem::transmute(enumsymbolscallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumerateSymbolsW<'a, P0>(hprocess: P0, baseofdll: u32, enumsymbolscallback: PSYM_ENUMSYMBOLS_CALLBACKW, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumerateSymbolsW(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u32, enumsymbolscallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumerateSymbolsW(hprocess.into(), baseofdll, ::core::mem::transmute(enumsymbolscallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymEnumerateSymbolsW64<'a, P0>(hprocess: P0, baseofdll: u64, enumsymbolscallback: PSYM_ENUMSYMBOLS_CALLBACK64W, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymEnumerateSymbolsW64(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, enumsymbolscallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymEnumerateSymbolsW64(hprocess.into(), baseofdll, ::core::mem::transmute(enumsymbolscallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymFindDebugInfoFile<'a, P0, P1>(hprocess: P0, filename: P1, debugfilepath: ::windows::core::PSTR, callback: PFIND_DEBUG_FILE_CALLBACK, callerdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<super::super::super::Foundation::HANDLE>
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymFindDebugInfoFile(hprocess: super::super::super::Foundation::HANDLE, filename: ::windows::core::PCSTR, debugfilepath: ::windows::core::PSTR, callback: *mut ::core::ffi::c_void, callerdata: *const ::core::ffi::c_void) -> super::super::super::Foundation::HANDLE;
    }
    let result__ = SymFindDebugInfoFile(hprocess.into(), filename.into(), ::core::mem::transmute(debugfilepath), ::core::mem::transmute(callback), ::core::mem::transmute(callerdata.unwrap_or(::std::ptr::null())));
    (!result__.is_invalid()).then(|| result__).ok_or_else(::windows::core::Error::from_win32)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymFindDebugInfoFileW<'a, P0, P1>(hprocess: P0, filename: P1, debugfilepath: ::windows::core::PWSTR, callback: PFIND_DEBUG_FILE_CALLBACKW, callerdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<super::super::super::Foundation::HANDLE>
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymFindDebugInfoFileW(hprocess: super::super::super::Foundation::HANDLE, filename: ::windows::core::PCWSTR, debugfilepath: ::windows::core::PWSTR, callback: *mut ::core::ffi::c_void, callerdata: *const ::core::ffi::c_void) -> super::super::super::Foundation::HANDLE;
    }
    let result__ = SymFindDebugInfoFileW(hprocess.into(), filename.into(), ::core::mem::transmute(debugfilepath), ::core::mem::transmute(callback), ::core::mem::transmute(callerdata.unwrap_or(::std::ptr::null())));
    (!result__.is_invalid()).then(|| result__).ok_or_else(::windows::core::Error::from_win32)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymFindExecutableImage<'a, P0, P1>(hprocess: P0, filename: P1, imagefilepath: ::windows::core::PSTR, callback: PFIND_EXE_FILE_CALLBACK, callerdata: *const ::core::ffi::c_void) -> ::windows::core::Result<super::super::super::Foundation::HANDLE>
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymFindExecutableImage(hprocess: super::super::super::Foundation::HANDLE, filename: ::windows::core::PCSTR, imagefilepath: ::windows::core::PSTR, callback: *mut ::core::ffi::c_void, callerdata: *const ::core::ffi::c_void) -> super::super::super::Foundation::HANDLE;
    }
    let result__ = SymFindExecutableImage(hprocess.into(), filename.into(), ::core::mem::transmute(imagefilepath), ::core::mem::transmute(callback), ::core::mem::transmute(callerdata));
    (!result__.is_invalid()).then(|| result__).ok_or_else(::windows::core::Error::from_win32)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymFindExecutableImageW<'a, P0, P1>(hprocess: P0, filename: P1, imagefilepath: ::windows::core::PWSTR, callback: PFIND_EXE_FILE_CALLBACKW, callerdata: *const ::core::ffi::c_void) -> ::windows::core::Result<super::super::super::Foundation::HANDLE>
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymFindExecutableImageW(hprocess: super::super::super::Foundation::HANDLE, filename: ::windows::core::PCWSTR, imagefilepath: ::windows::core::PWSTR, callback: *mut ::core::ffi::c_void, callerdata: *const ::core::ffi::c_void) -> super::super::super::Foundation::HANDLE;
    }
    let result__ = SymFindExecutableImageW(hprocess.into(), filename.into(), ::core::mem::transmute(imagefilepath), ::core::mem::transmute(callback), ::core::mem::transmute(callerdata));
    (!result__.is_invalid()).then(|| result__).ok_or_else(::windows::core::Error::from_win32)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymFindFileInPath<'a, P0, P1, P2>(hprocess: P0, searchpatha: P1, filename: P2, id: ::core::option::Option<*const ::core::ffi::c_void>, two: u32, three: u32, flags: SYM_FIND_ID_OPTION, foundfile: ::windows::core::PSTR, callback: PFINDFILEINPATHCALLBACK, context: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymFindFileInPath(hprocess: super::super::super::Foundation::HANDLE, searchpatha: ::windows::core::PCSTR, filename: ::windows::core::PCSTR, id: *const ::core::ffi::c_void, two: u32, three: u32, flags: SYM_FIND_ID_OPTION, foundfile: ::windows::core::PSTR, callback: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymFindFileInPath(hprocess.into(), searchpatha.into(), filename.into(), ::core::mem::transmute(id.unwrap_or(::std::ptr::null())), two, three, flags, ::core::mem::transmute(foundfile), ::core::mem::transmute(callback), ::core::mem::transmute(context.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymFindFileInPathW<'a, P0, P1, P2>(hprocess: P0, searchpatha: P1, filename: P2, id: ::core::option::Option<*const ::core::ffi::c_void>, two: u32, three: u32, flags: SYM_FIND_ID_OPTION, foundfile: ::windows::core::PWSTR, callback: PFINDFILEINPATHCALLBACKW, context: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
    P2: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymFindFileInPathW(hprocess: super::super::super::Foundation::HANDLE, searchpatha: ::windows::core::PCWSTR, filename: ::windows::core::PCWSTR, id: *const ::core::ffi::c_void, two: u32, three: u32, flags: SYM_FIND_ID_OPTION, foundfile: ::windows::core::PWSTR, callback: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymFindFileInPathW(hprocess.into(), searchpatha.into(), filename.into(), ::core::mem::transmute(id.unwrap_or(::std::ptr::null())), two, three, flags, ::core::mem::transmute(foundfile), ::core::mem::transmute(callback), ::core::mem::transmute(context.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymFromAddr<'a, P0>(hprocess: P0, address: u64, displacement: ::core::option::Option<*mut u64>, symbol: *mut SYMBOL_INFO) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymFromAddr(hprocess: super::super::super::Foundation::HANDLE, address: u64, displacement: *mut u64, symbol: *mut SYMBOL_INFO) -> super::super::super::Foundation::BOOL;
    }
    SymFromAddr(hprocess.into(), address, ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymFromAddrW<'a, P0>(hprocess: P0, address: u64, displacement: ::core::option::Option<*mut u64>, symbol: *mut SYMBOL_INFOW) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymFromAddrW(hprocess: super::super::super::Foundation::HANDLE, address: u64, displacement: *mut u64, symbol: *mut SYMBOL_INFOW) -> super::super::super::Foundation::BOOL;
    }
    SymFromAddrW(hprocess.into(), address, ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymFromIndex<'a, P0>(hprocess: P0, baseofdll: u64, index: u32, symbol: *mut SYMBOL_INFO) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymFromIndex(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, index: u32, symbol: *mut SYMBOL_INFO) -> super::super::super::Foundation::BOOL;
    }
    SymFromIndex(hprocess.into(), baseofdll, index, ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymFromIndexW<'a, P0>(hprocess: P0, baseofdll: u64, index: u32, symbol: *mut SYMBOL_INFOW) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymFromIndexW(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, index: u32, symbol: *mut SYMBOL_INFOW) -> super::super::super::Foundation::BOOL;
    }
    SymFromIndexW(hprocess.into(), baseofdll, index, ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymFromInlineContext<'a, P0>(hprocess: P0, address: u64, inlinecontext: u32, displacement: ::core::option::Option<*mut u64>, symbol: *mut SYMBOL_INFO) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymFromInlineContext(hprocess: super::super::super::Foundation::HANDLE, address: u64, inlinecontext: u32, displacement: *mut u64, symbol: *mut SYMBOL_INFO) -> super::super::super::Foundation::BOOL;
    }
    SymFromInlineContext(hprocess.into(), address, inlinecontext, ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymFromInlineContextW<'a, P0>(hprocess: P0, address: u64, inlinecontext: u32, displacement: ::core::option::Option<*mut u64>, symbol: *mut SYMBOL_INFOW) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymFromInlineContextW(hprocess: super::super::super::Foundation::HANDLE, address: u64, inlinecontext: u32, displacement: *mut u64, symbol: *mut SYMBOL_INFOW) -> super::super::super::Foundation::BOOL;
    }
    SymFromInlineContextW(hprocess.into(), address, inlinecontext, ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymFromName<'a, P0, P1>(hprocess: P0, name: P1, symbol: *mut SYMBOL_INFO) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymFromName(hprocess: super::super::super::Foundation::HANDLE, name: ::windows::core::PCSTR, symbol: *mut SYMBOL_INFO) -> super::super::super::Foundation::BOOL;
    }
    SymFromName(hprocess.into(), name.into(), ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymFromNameW<'a, P0, P1>(hprocess: P0, name: P1, symbol: *mut SYMBOL_INFOW) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymFromNameW(hprocess: super::super::super::Foundation::HANDLE, name: ::windows::core::PCWSTR, symbol: *mut SYMBOL_INFOW) -> super::super::super::Foundation::BOOL;
    }
    SymFromNameW(hprocess.into(), name.into(), ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymFromToken<'a, P0>(hprocess: P0, base: u64, token: u32, symbol: *mut SYMBOL_INFO) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymFromToken(hprocess: super::super::super::Foundation::HANDLE, base: u64, token: u32, symbol: *mut SYMBOL_INFO) -> super::super::super::Foundation::BOOL;
    }
    SymFromToken(hprocess.into(), base, token, ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymFromTokenW<'a, P0>(hprocess: P0, base: u64, token: u32, symbol: *mut SYMBOL_INFOW) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymFromTokenW(hprocess: super::super::super::Foundation::HANDLE, base: u64, token: u32, symbol: *mut SYMBOL_INFOW) -> super::super::super::Foundation::BOOL;
    }
    SymFromTokenW(hprocess.into(), base, token, ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymFunctionTableAccess<'a, P0>(hprocess: P0, addrbase: u32) -> *mut ::core::ffi::c_void
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymFunctionTableAccess(hprocess: super::super::super::Foundation::HANDLE, addrbase: u32) -> *mut ::core::ffi::c_void;
    }
    SymFunctionTableAccess(hprocess.into(), addrbase)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymFunctionTableAccess64<'a, P0>(hprocess: P0, addrbase: u64) -> *mut ::core::ffi::c_void
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymFunctionTableAccess64(hprocess: super::super::super::Foundation::HANDLE, addrbase: u64) -> *mut ::core::ffi::c_void;
    }
    SymFunctionTableAccess64(hprocess.into(), addrbase)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymFunctionTableAccess64AccessRoutines<'a, P0>(hprocess: P0, addrbase: u64, readmemoryroutine: PREAD_PROCESS_MEMORY_ROUTINE64, getmodulebaseroutine: PGET_MODULE_BASE_ROUTINE64) -> *mut ::core::ffi::c_void
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymFunctionTableAccess64AccessRoutines(hprocess: super::super::super::Foundation::HANDLE, addrbase: u64, readmemoryroutine: *mut ::core::ffi::c_void, getmodulebaseroutine: *mut ::core::ffi::c_void) -> *mut ::core::ffi::c_void;
    }
    SymFunctionTableAccess64AccessRoutines(hprocess.into(), addrbase, ::core::mem::transmute(readmemoryroutine), ::core::mem::transmute(getmodulebaseroutine))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetExtendedOption(option: IMAGEHLP_EXTENDED_OPTIONS) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetExtendedOption(option: IMAGEHLP_EXTENDED_OPTIONS) -> super::super::super::Foundation::BOOL;
    }
    SymGetExtendedOption(option)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetFileLineOffsets64<'a, P0, P1, P2>(hprocess: P0, modulename: P1, filename: P2, buffer: &mut [u64]) -> u32
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetFileLineOffsets64(hprocess: super::super::super::Foundation::HANDLE, modulename: ::windows::core::PCSTR, filename: ::windows::core::PCSTR, buffer: *mut u64, bufferlines: u32) -> u32;
    }
    SymGetFileLineOffsets64(hprocess.into(), modulename.into(), filename.into(), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn SymGetHomeDirectory(r#type: IMAGEHLP_HD_TYPE, dir: &mut [u8]) -> ::windows::core::PSTR {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetHomeDirectory(r#type: IMAGEHLP_HD_TYPE, dir: ::windows::core::PSTR, size: usize) -> ::windows::core::PSTR;
    }
    SymGetHomeDirectory(r#type, ::core::mem::transmute(dir.as_ptr()), dir.len() as _)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn SymGetHomeDirectoryW(r#type: IMAGEHLP_HD_TYPE, dir: &mut [u16]) -> ::windows::core::PWSTR {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetHomeDirectoryW(r#type: IMAGEHLP_HD_TYPE, dir: ::windows::core::PWSTR, size: usize) -> ::windows::core::PWSTR;
    }
    SymGetHomeDirectoryW(r#type, ::core::mem::transmute(dir.as_ptr()), dir.len() as _)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetLineFromAddr<'a, P0>(hprocess: P0, dwaddr: u32, pdwdisplacement: *mut u32, line: *mut IMAGEHLP_LINE) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetLineFromAddr(hprocess: super::super::super::Foundation::HANDLE, dwaddr: u32, pdwdisplacement: *mut u32, line: *mut IMAGEHLP_LINE) -> super::super::super::Foundation::BOOL;
    }
    SymGetLineFromAddr(hprocess.into(), dwaddr, ::core::mem::transmute(pdwdisplacement), ::core::mem::transmute(line))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetLineFromAddr64<'a, P0>(hprocess: P0, qwaddr: u64, pdwdisplacement: *mut u32, line64: *mut IMAGEHLP_LINE64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetLineFromAddr64(hprocess: super::super::super::Foundation::HANDLE, qwaddr: u64, pdwdisplacement: *mut u32, line64: *mut IMAGEHLP_LINE64) -> super::super::super::Foundation::BOOL;
    }
    SymGetLineFromAddr64(hprocess.into(), qwaddr, ::core::mem::transmute(pdwdisplacement), ::core::mem::transmute(line64))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetLineFromAddrW64<'a, P0>(hprocess: P0, dwaddr: u64, pdwdisplacement: *mut u32, line: *mut IMAGEHLP_LINEW64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetLineFromAddrW64(hprocess: super::super::super::Foundation::HANDLE, dwaddr: u64, pdwdisplacement: *mut u32, line: *mut IMAGEHLP_LINEW64) -> super::super::super::Foundation::BOOL;
    }
    SymGetLineFromAddrW64(hprocess.into(), dwaddr, ::core::mem::transmute(pdwdisplacement), ::core::mem::transmute(line))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetLineFromInlineContext<'a, P0>(hprocess: P0, qwaddr: u64, inlinecontext: u32, qwmodulebaseaddress: u64, pdwdisplacement: *mut u32, line64: *mut IMAGEHLP_LINE64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetLineFromInlineContext(hprocess: super::super::super::Foundation::HANDLE, qwaddr: u64, inlinecontext: u32, qwmodulebaseaddress: u64, pdwdisplacement: *mut u32, line64: *mut IMAGEHLP_LINE64) -> super::super::super::Foundation::BOOL;
    }
    SymGetLineFromInlineContext(hprocess.into(), qwaddr, inlinecontext, qwmodulebaseaddress, ::core::mem::transmute(pdwdisplacement), ::core::mem::transmute(line64))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetLineFromInlineContextW<'a, P0>(hprocess: P0, dwaddr: u64, inlinecontext: u32, qwmodulebaseaddress: u64, pdwdisplacement: *mut u32, line: *mut IMAGEHLP_LINEW64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetLineFromInlineContextW(hprocess: super::super::super::Foundation::HANDLE, dwaddr: u64, inlinecontext: u32, qwmodulebaseaddress: u64, pdwdisplacement: *mut u32, line: *mut IMAGEHLP_LINEW64) -> super::super::super::Foundation::BOOL;
    }
    SymGetLineFromInlineContextW(hprocess.into(), dwaddr, inlinecontext, qwmodulebaseaddress, ::core::mem::transmute(pdwdisplacement), ::core::mem::transmute(line))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetLineFromName<'a, P0, P1, P2>(hprocess: P0, modulename: P1, filename: P2, dwlinenumber: u32, pldisplacement: *mut i32, line: *mut IMAGEHLP_LINE) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetLineFromName(hprocess: super::super::super::Foundation::HANDLE, modulename: ::windows::core::PCSTR, filename: ::windows::core::PCSTR, dwlinenumber: u32, pldisplacement: *mut i32, line: *mut IMAGEHLP_LINE) -> super::super::super::Foundation::BOOL;
    }
    SymGetLineFromName(hprocess.into(), modulename.into(), filename.into(), dwlinenumber, ::core::mem::transmute(pldisplacement), ::core::mem::transmute(line))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetLineFromName64<'a, P0, P1, P2>(hprocess: P0, modulename: P1, filename: P2, dwlinenumber: u32, pldisplacement: *mut i32, line: *mut IMAGEHLP_LINE64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetLineFromName64(hprocess: super::super::super::Foundation::HANDLE, modulename: ::windows::core::PCSTR, filename: ::windows::core::PCSTR, dwlinenumber: u32, pldisplacement: *mut i32, line: *mut IMAGEHLP_LINE64) -> super::super::super::Foundation::BOOL;
    }
    SymGetLineFromName64(hprocess.into(), modulename.into(), filename.into(), dwlinenumber, ::core::mem::transmute(pldisplacement), ::core::mem::transmute(line))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetLineFromNameW64<'a, P0, P1, P2>(hprocess: P0, modulename: P1, filename: P2, dwlinenumber: u32, pldisplacement: *mut i32, line: *mut IMAGEHLP_LINEW64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
    P2: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetLineFromNameW64(hprocess: super::super::super::Foundation::HANDLE, modulename: ::windows::core::PCWSTR, filename: ::windows::core::PCWSTR, dwlinenumber: u32, pldisplacement: *mut i32, line: *mut IMAGEHLP_LINEW64) -> super::super::super::Foundation::BOOL;
    }
    SymGetLineFromNameW64(hprocess.into(), modulename.into(), filename.into(), dwlinenumber, ::core::mem::transmute(pldisplacement), ::core::mem::transmute(line))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetLineNext<'a, P0>(hprocess: P0, line: *mut IMAGEHLP_LINE) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetLineNext(hprocess: super::super::super::Foundation::HANDLE, line: *mut IMAGEHLP_LINE) -> super::super::super::Foundation::BOOL;
    }
    SymGetLineNext(hprocess.into(), ::core::mem::transmute(line))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetLineNext64<'a, P0>(hprocess: P0, line: *mut IMAGEHLP_LINE64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetLineNext64(hprocess: super::super::super::Foundation::HANDLE, line: *mut IMAGEHLP_LINE64) -> super::super::super::Foundation::BOOL;
    }
    SymGetLineNext64(hprocess.into(), ::core::mem::transmute(line))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetLineNextW64<'a, P0>(hprocess: P0, line: *mut IMAGEHLP_LINEW64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetLineNextW64(hprocess: super::super::super::Foundation::HANDLE, line: *mut IMAGEHLP_LINEW64) -> super::super::super::Foundation::BOOL;
    }
    SymGetLineNextW64(hprocess.into(), ::core::mem::transmute(line))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetLinePrev<'a, P0>(hprocess: P0, line: *mut IMAGEHLP_LINE) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetLinePrev(hprocess: super::super::super::Foundation::HANDLE, line: *mut IMAGEHLP_LINE) -> super::super::super::Foundation::BOOL;
    }
    SymGetLinePrev(hprocess.into(), ::core::mem::transmute(line))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetLinePrev64<'a, P0>(hprocess: P0, line: *mut IMAGEHLP_LINE64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetLinePrev64(hprocess: super::super::super::Foundation::HANDLE, line: *mut IMAGEHLP_LINE64) -> super::super::super::Foundation::BOOL;
    }
    SymGetLinePrev64(hprocess.into(), ::core::mem::transmute(line))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetLinePrevW64<'a, P0>(hprocess: P0, line: *mut IMAGEHLP_LINEW64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetLinePrevW64(hprocess: super::super::super::Foundation::HANDLE, line: *mut IMAGEHLP_LINEW64) -> super::super::super::Foundation::BOOL;
    }
    SymGetLinePrevW64(hprocess.into(), ::core::mem::transmute(line))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetModuleBase<'a, P0>(hprocess: P0, dwaddr: u32) -> u32
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetModuleBase(hprocess: super::super::super::Foundation::HANDLE, dwaddr: u32) -> u32;
    }
    SymGetModuleBase(hprocess.into(), dwaddr)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetModuleBase64<'a, P0>(hprocess: P0, qwaddr: u64) -> u64
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetModuleBase64(hprocess: super::super::super::Foundation::HANDLE, qwaddr: u64) -> u64;
    }
    SymGetModuleBase64(hprocess.into(), qwaddr)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetModuleInfo<'a, P0>(hprocess: P0, dwaddr: u32, moduleinfo: *mut IMAGEHLP_MODULE) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetModuleInfo(hprocess: super::super::super::Foundation::HANDLE, dwaddr: u32, moduleinfo: *mut IMAGEHLP_MODULE) -> super::super::super::Foundation::BOOL;
    }
    SymGetModuleInfo(hprocess.into(), dwaddr, ::core::mem::transmute(moduleinfo))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetModuleInfo64<'a, P0>(hprocess: P0, qwaddr: u64, moduleinfo: *mut IMAGEHLP_MODULE64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetModuleInfo64(hprocess: super::super::super::Foundation::HANDLE, qwaddr: u64, moduleinfo: *mut IMAGEHLP_MODULE64) -> super::super::super::Foundation::BOOL;
    }
    SymGetModuleInfo64(hprocess.into(), qwaddr, ::core::mem::transmute(moduleinfo))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetModuleInfoW<'a, P0>(hprocess: P0, dwaddr: u32, moduleinfo: *mut IMAGEHLP_MODULEW) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetModuleInfoW(hprocess: super::super::super::Foundation::HANDLE, dwaddr: u32, moduleinfo: *mut IMAGEHLP_MODULEW) -> super::super::super::Foundation::BOOL;
    }
    SymGetModuleInfoW(hprocess.into(), dwaddr, ::core::mem::transmute(moduleinfo))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetModuleInfoW64<'a, P0>(hprocess: P0, qwaddr: u64, moduleinfo: *mut IMAGEHLP_MODULEW64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetModuleInfoW64(hprocess: super::super::super::Foundation::HANDLE, qwaddr: u64, moduleinfo: *mut IMAGEHLP_MODULEW64) -> super::super::super::Foundation::BOOL;
    }
    SymGetModuleInfoW64(hprocess.into(), qwaddr, ::core::mem::transmute(moduleinfo))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetOmaps<'a, P0>(hprocess: P0, baseofdll: u64, omapto: *mut *mut OMAP, comapto: *mut u64, omapfrom: *mut *mut OMAP, comapfrom: *mut u64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetOmaps(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, omapto: *mut *mut OMAP, comapto: *mut u64, omapfrom: *mut *mut OMAP, comapfrom: *mut u64) -> super::super::super::Foundation::BOOL;
    }
    SymGetOmaps(hprocess.into(), baseofdll, ::core::mem::transmute(omapto), ::core::mem::transmute(comapto), ::core::mem::transmute(omapfrom), ::core::mem::transmute(comapfrom))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn SymGetOptions() -> u32 {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetOptions() -> u32;
    }
    SymGetOptions()
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetScope<'a, P0>(hprocess: P0, baseofdll: u64, index: u32, symbol: *mut SYMBOL_INFO) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetScope(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, index: u32, symbol: *mut SYMBOL_INFO) -> super::super::super::Foundation::BOOL;
    }
    SymGetScope(hprocess.into(), baseofdll, index, ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetScopeW<'a, P0>(hprocess: P0, baseofdll: u64, index: u32, symbol: *mut SYMBOL_INFOW) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetScopeW(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, index: u32, symbol: *mut SYMBOL_INFOW) -> super::super::super::Foundation::BOOL;
    }
    SymGetScopeW(hprocess.into(), baseofdll, index, ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSearchPath<'a, P0>(hprocess: P0, searchpatha: &mut [u8]) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSearchPath(hprocess: super::super::super::Foundation::HANDLE, searchpatha: ::windows::core::PSTR, searchpathlength: u32) -> super::super::super::Foundation::BOOL;
    }
    SymGetSearchPath(hprocess.into(), ::core::mem::transmute(searchpatha.as_ptr()), searchpatha.len() as _)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSearchPathW<'a, P0>(hprocess: P0, searchpatha: &mut [u16]) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSearchPathW(hprocess: super::super::super::Foundation::HANDLE, searchpatha: ::windows::core::PWSTR, searchpathlength: u32) -> super::super::super::Foundation::BOOL;
    }
    SymGetSearchPathW(hprocess.into(), ::core::mem::transmute(searchpatha.as_ptr()), searchpatha.len() as _)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSourceFile<'a, P0, P1, P2>(hprocess: P0, base: u64, params: P1, filespec: P2, filepath: &mut [u8]) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSourceFile(hprocess: super::super::super::Foundation::HANDLE, base: u64, params: ::windows::core::PCSTR, filespec: ::windows::core::PCSTR, filepath: ::windows::core::PSTR, size: u32) -> super::super::super::Foundation::BOOL;
    }
    SymGetSourceFile(hprocess.into(), base, params.into(), filespec.into(), ::core::mem::transmute(filepath.as_ptr()), filepath.len() as _)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSourceFileChecksum<'a, P0, P1>(hprocess: P0, base: u64, filespec: P1, pchecksumtype: *mut u32, pchecksum: &mut [u8], pactualbyteswritten: *mut u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSourceFileChecksum(hprocess: super::super::super::Foundation::HANDLE, base: u64, filespec: ::windows::core::PCSTR, pchecksumtype: *mut u32, pchecksum: *mut u8, checksumsize: u32, pactualbyteswritten: *mut u32) -> super::super::super::Foundation::BOOL;
    }
    SymGetSourceFileChecksum(hprocess.into(), base, filespec.into(), ::core::mem::transmute(pchecksumtype), ::core::mem::transmute(pchecksum.as_ptr()), pchecksum.len() as _, ::core::mem::transmute(pactualbyteswritten))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSourceFileChecksumW<'a, P0, P1>(hprocess: P0, base: u64, filespec: P1, pchecksumtype: *mut u32, pchecksum: &mut [u8], pactualbyteswritten: *mut u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSourceFileChecksumW(hprocess: super::super::super::Foundation::HANDLE, base: u64, filespec: ::windows::core::PCWSTR, pchecksumtype: *mut u32, pchecksum: *mut u8, checksumsize: u32, pactualbyteswritten: *mut u32) -> super::super::super::Foundation::BOOL;
    }
    SymGetSourceFileChecksumW(hprocess.into(), base, filespec.into(), ::core::mem::transmute(pchecksumtype), ::core::mem::transmute(pchecksum.as_ptr()), pchecksum.len() as _, ::core::mem::transmute(pactualbyteswritten))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSourceFileFromToken<'a, P0, P1>(hprocess: P0, token: *const ::core::ffi::c_void, params: P1, filepath: &mut [u8]) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSourceFileFromToken(hprocess: super::super::super::Foundation::HANDLE, token: *const ::core::ffi::c_void, params: ::windows::core::PCSTR, filepath: ::windows::core::PSTR, size: u32) -> super::super::super::Foundation::BOOL;
    }
    SymGetSourceFileFromToken(hprocess.into(), ::core::mem::transmute(token), params.into(), ::core::mem::transmute(filepath.as_ptr()), filepath.len() as _)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSourceFileFromTokenByTokenName<'a, P0, P1, P2>(hprocess: P0, token: *const ::core::ffi::c_void, tokenname: P1, params: P2, filepath: &mut [u8]) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSourceFileFromTokenByTokenName(hprocess: super::super::super::Foundation::HANDLE, token: *const ::core::ffi::c_void, tokenname: ::windows::core::PCSTR, params: ::windows::core::PCSTR, filepath: ::windows::core::PSTR, size: u32) -> super::super::super::Foundation::BOOL;
    }
    SymGetSourceFileFromTokenByTokenName(hprocess.into(), ::core::mem::transmute(token), tokenname.into(), params.into(), ::core::mem::transmute(filepath.as_ptr()), filepath.len() as _)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSourceFileFromTokenByTokenNameW<'a, P0, P1, P2>(hprocess: P0, token: *const ::core::ffi::c_void, tokenname: P1, params: P2, filepath: &mut [u16]) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
    P2: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSourceFileFromTokenByTokenNameW(hprocess: super::super::super::Foundation::HANDLE, token: *const ::core::ffi::c_void, tokenname: ::windows::core::PCWSTR, params: ::windows::core::PCWSTR, filepath: ::windows::core::PWSTR, size: u32) -> super::super::super::Foundation::BOOL;
    }
    SymGetSourceFileFromTokenByTokenNameW(hprocess.into(), ::core::mem::transmute(token), tokenname.into(), params.into(), ::core::mem::transmute(filepath.as_ptr()), filepath.len() as _)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSourceFileFromTokenW<'a, P0, P1>(hprocess: P0, token: *const ::core::ffi::c_void, params: P1, filepath: &mut [u16]) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSourceFileFromTokenW(hprocess: super::super::super::Foundation::HANDLE, token: *const ::core::ffi::c_void, params: ::windows::core::PCWSTR, filepath: ::windows::core::PWSTR, size: u32) -> super::super::super::Foundation::BOOL;
    }
    SymGetSourceFileFromTokenW(hprocess.into(), ::core::mem::transmute(token), params.into(), ::core::mem::transmute(filepath.as_ptr()), filepath.len() as _)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSourceFileToken<'a, P0, P1>(hprocess: P0, base: u64, filespec: P1, token: *mut *mut ::core::ffi::c_void, size: *mut u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSourceFileToken(hprocess: super::super::super::Foundation::HANDLE, base: u64, filespec: ::windows::core::PCSTR, token: *mut *mut ::core::ffi::c_void, size: *mut u32) -> super::super::super::Foundation::BOOL;
    }
    SymGetSourceFileToken(hprocess.into(), base, filespec.into(), ::core::mem::transmute(token), ::core::mem::transmute(size))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSourceFileTokenByTokenName<'a, P0, P1, P2, P3>(hprocess: P0, base: u64, filespec: P1, tokenname: P2, tokenparameters: P3, token: *mut *mut ::core::ffi::c_void, size: *mut u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
    P3: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSourceFileTokenByTokenName(hprocess: super::super::super::Foundation::HANDLE, base: u64, filespec: ::windows::core::PCSTR, tokenname: ::windows::core::PCSTR, tokenparameters: ::windows::core::PCSTR, token: *mut *mut ::core::ffi::c_void, size: *mut u32) -> super::super::super::Foundation::BOOL;
    }
    SymGetSourceFileTokenByTokenName(hprocess.into(), base, filespec.into(), tokenname.into(), tokenparameters.into(), ::core::mem::transmute(token), ::core::mem::transmute(size))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSourceFileTokenByTokenNameW<'a, P0, P1, P2, P3>(hprocess: P0, base: u64, filespec: P1, tokenname: P2, tokenparameters: P3, token: *mut *mut ::core::ffi::c_void, size: *mut u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
    P2: ::std::convert::Into<::windows::core::PCWSTR>,
    P3: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSourceFileTokenByTokenNameW(hprocess: super::super::super::Foundation::HANDLE, base: u64, filespec: ::windows::core::PCWSTR, tokenname: ::windows::core::PCWSTR, tokenparameters: ::windows::core::PCWSTR, token: *mut *mut ::core::ffi::c_void, size: *mut u32) -> super::super::super::Foundation::BOOL;
    }
    SymGetSourceFileTokenByTokenNameW(hprocess.into(), base, filespec.into(), tokenname.into(), tokenparameters.into(), ::core::mem::transmute(token), ::core::mem::transmute(size))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSourceFileTokenW<'a, P0, P1>(hprocess: P0, base: u64, filespec: P1, token: *mut *mut ::core::ffi::c_void, size: *mut u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSourceFileTokenW(hprocess: super::super::super::Foundation::HANDLE, base: u64, filespec: ::windows::core::PCWSTR, token: *mut *mut ::core::ffi::c_void, size: *mut u32) -> super::super::super::Foundation::BOOL;
    }
    SymGetSourceFileTokenW(hprocess.into(), base, filespec.into(), ::core::mem::transmute(token), ::core::mem::transmute(size))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSourceFileW<'a, P0, P1, P2>(hprocess: P0, base: u64, params: P1, filespec: P2, filepath: &mut [u16]) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
    P2: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSourceFileW(hprocess: super::super::super::Foundation::HANDLE, base: u64, params: ::windows::core::PCWSTR, filespec: ::windows::core::PCWSTR, filepath: ::windows::core::PWSTR, size: u32) -> super::super::super::Foundation::BOOL;
    }
    SymGetSourceFileW(hprocess.into(), base, params.into(), filespec.into(), ::core::mem::transmute(filepath.as_ptr()), filepath.len() as _)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSourceVarFromToken<'a, P0, P1, P2>(hprocess: P0, token: *const ::core::ffi::c_void, params: P1, varname: P2, value: &mut [u8]) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSourceVarFromToken(hprocess: super::super::super::Foundation::HANDLE, token: *const ::core::ffi::c_void, params: ::windows::core::PCSTR, varname: ::windows::core::PCSTR, value: ::windows::core::PSTR, size: u32) -> super::super::super::Foundation::BOOL;
    }
    SymGetSourceVarFromToken(hprocess.into(), ::core::mem::transmute(token), params.into(), varname.into(), ::core::mem::transmute(value.as_ptr()), value.len() as _)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSourceVarFromTokenW<'a, P0, P1, P2>(hprocess: P0, token: *const ::core::ffi::c_void, params: P1, varname: P2, value: &mut [u16]) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
    P2: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSourceVarFromTokenW(hprocess: super::super::super::Foundation::HANDLE, token: *const ::core::ffi::c_void, params: ::windows::core::PCWSTR, varname: ::windows::core::PCWSTR, value: ::windows::core::PWSTR, size: u32) -> super::super::super::Foundation::BOOL;
    }
    SymGetSourceVarFromTokenW(hprocess.into(), ::core::mem::transmute(token), params.into(), varname.into(), ::core::mem::transmute(value.as_ptr()), value.len() as _)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSymFromAddr<'a, P0>(hprocess: P0, dwaddr: u32, pdwdisplacement: ::core::option::Option<*mut u32>, symbol: *mut IMAGEHLP_SYMBOL) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSymFromAddr(hprocess: super::super::super::Foundation::HANDLE, dwaddr: u32, pdwdisplacement: *mut u32, symbol: *mut IMAGEHLP_SYMBOL) -> super::super::super::Foundation::BOOL;
    }
    SymGetSymFromAddr(hprocess.into(), dwaddr, ::core::mem::transmute(pdwdisplacement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSymFromAddr64<'a, P0>(hprocess: P0, qwaddr: u64, pdwdisplacement: ::core::option::Option<*mut u64>, symbol: *mut IMAGEHLP_SYMBOL64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSymFromAddr64(hprocess: super::super::super::Foundation::HANDLE, qwaddr: u64, pdwdisplacement: *mut u64, symbol: *mut IMAGEHLP_SYMBOL64) -> super::super::super::Foundation::BOOL;
    }
    SymGetSymFromAddr64(hprocess.into(), qwaddr, ::core::mem::transmute(pdwdisplacement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSymFromName<'a, P0, P1>(hprocess: P0, name: P1, symbol: *mut IMAGEHLP_SYMBOL) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSymFromName(hprocess: super::super::super::Foundation::HANDLE, name: ::windows::core::PCSTR, symbol: *mut IMAGEHLP_SYMBOL) -> super::super::super::Foundation::BOOL;
    }
    SymGetSymFromName(hprocess.into(), name.into(), ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSymFromName64<'a, P0, P1>(hprocess: P0, name: P1, symbol: *mut IMAGEHLP_SYMBOL64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSymFromName64(hprocess: super::super::super::Foundation::HANDLE, name: ::windows::core::PCSTR, symbol: *mut IMAGEHLP_SYMBOL64) -> super::super::super::Foundation::BOOL;
    }
    SymGetSymFromName64(hprocess.into(), name.into(), ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSymNext<'a, P0>(hprocess: P0, symbol: *mut IMAGEHLP_SYMBOL) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSymNext(hprocess: super::super::super::Foundation::HANDLE, symbol: *mut IMAGEHLP_SYMBOL) -> super::super::super::Foundation::BOOL;
    }
    SymGetSymNext(hprocess.into(), ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSymNext64<'a, P0>(hprocess: P0, symbol: *mut IMAGEHLP_SYMBOL64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSymNext64(hprocess: super::super::super::Foundation::HANDLE, symbol: *mut IMAGEHLP_SYMBOL64) -> super::super::super::Foundation::BOOL;
    }
    SymGetSymNext64(hprocess.into(), ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSymPrev<'a, P0>(hprocess: P0, symbol: *mut IMAGEHLP_SYMBOL) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSymPrev(hprocess: super::super::super::Foundation::HANDLE, symbol: *mut IMAGEHLP_SYMBOL) -> super::super::super::Foundation::BOOL;
    }
    SymGetSymPrev(hprocess.into(), ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSymPrev64<'a, P0>(hprocess: P0, symbol: *mut IMAGEHLP_SYMBOL64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSymPrev64(hprocess: super::super::super::Foundation::HANDLE, symbol: *mut IMAGEHLP_SYMBOL64) -> super::super::super::Foundation::BOOL;
    }
    SymGetSymPrev64(hprocess.into(), ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSymbolFile<'a, P0, P1, P2>(hprocess: P0, sympath: P1, imagefile: P2, r#type: IMAGEHLP_SF_TYPE, symbolfile: &mut [u8], dbgfile: &mut [u8]) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSymbolFile(hprocess: super::super::super::Foundation::HANDLE, sympath: ::windows::core::PCSTR, imagefile: ::windows::core::PCSTR, r#type: IMAGEHLP_SF_TYPE, symbolfile: ::windows::core::PSTR, csymbolfile: usize, dbgfile: ::windows::core::PSTR, cdbgfile: usize) -> super::super::super::Foundation::BOOL;
    }
    SymGetSymbolFile(hprocess.into(), sympath.into(), imagefile.into(), r#type, ::core::mem::transmute(symbolfile.as_ptr()), symbolfile.len() as _, ::core::mem::transmute(dbgfile.as_ptr()), dbgfile.len() as _)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetSymbolFileW<'a, P0, P1, P2>(hprocess: P0, sympath: P1, imagefile: P2, r#type: IMAGEHLP_SF_TYPE, symbolfile: &mut [u16], dbgfile: &mut [u16]) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
    P2: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetSymbolFileW(hprocess: super::super::super::Foundation::HANDLE, sympath: ::windows::core::PCWSTR, imagefile: ::windows::core::PCWSTR, r#type: IMAGEHLP_SF_TYPE, symbolfile: ::windows::core::PWSTR, csymbolfile: usize, dbgfile: ::windows::core::PWSTR, cdbgfile: usize) -> super::super::super::Foundation::BOOL;
    }
    SymGetSymbolFileW(hprocess.into(), sympath.into(), imagefile.into(), r#type, ::core::mem::transmute(symbolfile.as_ptr()), symbolfile.len() as _, ::core::mem::transmute(dbgfile.as_ptr()), dbgfile.len() as _)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetTypeFromName<'a, P0, P1>(hprocess: P0, baseofdll: u64, name: P1, symbol: *mut SYMBOL_INFO) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetTypeFromName(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, name: ::windows::core::PCSTR, symbol: *mut SYMBOL_INFO) -> super::super::super::Foundation::BOOL;
    }
    SymGetTypeFromName(hprocess.into(), baseofdll, name.into(), ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetTypeFromNameW<'a, P0, P1>(hprocess: P0, baseofdll: u64, name: P1, symbol: *mut SYMBOL_INFOW) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetTypeFromNameW(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, name: ::windows::core::PCWSTR, symbol: *mut SYMBOL_INFOW) -> super::super::super::Foundation::BOOL;
    }
    SymGetTypeFromNameW(hprocess.into(), baseofdll, name.into(), ::core::mem::transmute(symbol))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetTypeInfo<'a, P0>(hprocess: P0, modbase: u64, typeid: u32, gettype: IMAGEHLP_SYMBOL_TYPE_INFO, pinfo: *mut ::core::ffi::c_void) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetTypeInfo(hprocess: super::super::super::Foundation::HANDLE, modbase: u64, typeid: u32, gettype: IMAGEHLP_SYMBOL_TYPE_INFO, pinfo: *mut ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymGetTypeInfo(hprocess.into(), modbase, typeid, gettype, ::core::mem::transmute(pinfo))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetTypeInfoEx<'a, P0>(hprocess: P0, modbase: u64, params: *mut IMAGEHLP_GET_TYPE_INFO_PARAMS) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetTypeInfoEx(hprocess: super::super::super::Foundation::HANDLE, modbase: u64, params: *mut IMAGEHLP_GET_TYPE_INFO_PARAMS) -> super::super::super::Foundation::BOOL;
    }
    SymGetTypeInfoEx(hprocess.into(), modbase, ::core::mem::transmute(params))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymGetUnwindInfo<'a, P0>(hprocess: P0, address: u64, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, size: *mut u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymGetUnwindInfo(hprocess: super::super::super::Foundation::HANDLE, address: u64, buffer: *mut ::core::ffi::c_void, size: *mut u32) -> super::super::super::Foundation::BOOL;
    }
    SymGetUnwindInfo(hprocess.into(), address, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(size))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymInitialize<'a, P0, P1, P2>(hprocess: P0, usersearchpath: P1, finvadeprocess: P2) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<super::super::super::Foundation::BOOL>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymInitialize(hprocess: super::super::super::Foundation::HANDLE, usersearchpath: ::windows::core::PCSTR, finvadeprocess: super::super::super::Foundation::BOOL) -> super::super::super::Foundation::BOOL;
    }
    SymInitialize(hprocess.into(), usersearchpath.into(), finvadeprocess.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymInitializeW<'a, P0, P1, P2>(hprocess: P0, usersearchpath: P1, finvadeprocess: P2) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
    P2: ::std::convert::Into<super::super::super::Foundation::BOOL>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymInitializeW(hprocess: super::super::super::Foundation::HANDLE, usersearchpath: ::windows::core::PCWSTR, finvadeprocess: super::super::super::Foundation::BOOL) -> super::super::super::Foundation::BOOL;
    }
    SymInitializeW(hprocess.into(), usersearchpath.into(), finvadeprocess.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymLoadModule<'a, P0, P1, P2, P3>(hprocess: P0, hfile: P1, imagename: P2, modulename: P3, baseofdll: u32, sizeofdll: u32) -> u32
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
    P3: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymLoadModule(hprocess: super::super::super::Foundation::HANDLE, hfile: super::super::super::Foundation::HANDLE, imagename: ::windows::core::PCSTR, modulename: ::windows::core::PCSTR, baseofdll: u32, sizeofdll: u32) -> u32;
    }
    SymLoadModule(hprocess.into(), hfile.into(), imagename.into(), modulename.into(), baseofdll, sizeofdll)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymLoadModule64<'a, P0, P1, P2, P3>(hprocess: P0, hfile: P1, imagename: P2, modulename: P3, baseofdll: u64, sizeofdll: u32) -> u64
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
    P3: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymLoadModule64(hprocess: super::super::super::Foundation::HANDLE, hfile: super::super::super::Foundation::HANDLE, imagename: ::windows::core::PCSTR, modulename: ::windows::core::PCSTR, baseofdll: u64, sizeofdll: u32) -> u64;
    }
    SymLoadModule64(hprocess.into(), hfile.into(), imagename.into(), modulename.into(), baseofdll, sizeofdll)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymLoadModuleEx<'a, P0, P1, P2, P3>(hprocess: P0, hfile: P1, imagename: P2, modulename: P3, baseofdll: u64, dllsize: u32, data: ::core::option::Option<*const MODLOAD_DATA>, flags: SYM_LOAD_FLAGS) -> u64
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
    P3: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymLoadModuleEx(hprocess: super::super::super::Foundation::HANDLE, hfile: super::super::super::Foundation::HANDLE, imagename: ::windows::core::PCSTR, modulename: ::windows::core::PCSTR, baseofdll: u64, dllsize: u32, data: *const MODLOAD_DATA, flags: SYM_LOAD_FLAGS) -> u64;
    }
    SymLoadModuleEx(hprocess.into(), hfile.into(), imagename.into(), modulename.into(), baseofdll, dllsize, ::core::mem::transmute(data.unwrap_or(::std::ptr::null())), flags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymLoadModuleExW<'a, P0, P1, P2, P3>(hprocess: P0, hfile: P1, imagename: P2, modulename: P3, baseofdll: u64, dllsize: u32, data: ::core::option::Option<*const MODLOAD_DATA>, flags: SYM_LOAD_FLAGS) -> u64
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P2: ::std::convert::Into<::windows::core::PCWSTR>,
    P3: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymLoadModuleExW(hprocess: super::super::super::Foundation::HANDLE, hfile: super::super::super::Foundation::HANDLE, imagename: ::windows::core::PCWSTR, modulename: ::windows::core::PCWSTR, baseofdll: u64, dllsize: u32, data: *const MODLOAD_DATA, flags: SYM_LOAD_FLAGS) -> u64;
    }
    SymLoadModuleExW(hprocess.into(), hfile.into(), imagename.into(), modulename.into(), baseofdll, dllsize, ::core::mem::transmute(data.unwrap_or(::std::ptr::null())), flags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymMatchFileName<'a, P0, P1>(filename: P0, r#match: P1, filenamestop: ::core::option::Option<*mut ::windows::core::PSTR>, matchstop: ::core::option::Option<*mut ::windows::core::PSTR>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymMatchFileName(filename: ::windows::core::PCSTR, r#match: ::windows::core::PCSTR, filenamestop: *mut ::windows::core::PSTR, matchstop: *mut ::windows::core::PSTR) -> super::super::super::Foundation::BOOL;
    }
    SymMatchFileName(filename.into(), r#match.into(), ::core::mem::transmute(filenamestop.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(matchstop.unwrap_or(::std::ptr::null_mut())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymMatchFileNameW<'a, P0, P1>(filename: P0, r#match: P1, filenamestop: ::core::option::Option<*mut ::windows::core::PWSTR>, matchstop: ::core::option::Option<*mut ::windows::core::PWSTR>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCWSTR>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymMatchFileNameW(filename: ::windows::core::PCWSTR, r#match: ::windows::core::PCWSTR, filenamestop: *mut ::windows::core::PWSTR, matchstop: *mut ::windows::core::PWSTR) -> super::super::super::Foundation::BOOL;
    }
    SymMatchFileNameW(filename.into(), r#match.into(), ::core::mem::transmute(filenamestop.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(matchstop.unwrap_or(::std::ptr::null_mut())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymMatchString<'a, P0, P1, P2>(string: P0, expression: P1, fcase: P2) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<super::super::super::Foundation::BOOL>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymMatchString(string: ::windows::core::PCSTR, expression: ::windows::core::PCSTR, fcase: super::super::super::Foundation::BOOL) -> super::super::super::Foundation::BOOL;
    }
    SymMatchString(string.into(), expression.into(), fcase.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymMatchStringA<'a, P0, P1, P2>(string: P0, expression: P1, fcase: P2) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<super::super::super::Foundation::BOOL>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymMatchStringA(string: ::windows::core::PCSTR, expression: ::windows::core::PCSTR, fcase: super::super::super::Foundation::BOOL) -> super::super::super::Foundation::BOOL;
    }
    SymMatchStringA(string.into(), expression.into(), fcase.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymMatchStringW<'a, P0, P1, P2>(string: P0, expression: P1, fcase: P2) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCWSTR>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
    P2: ::std::convert::Into<super::super::super::Foundation::BOOL>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymMatchStringW(string: ::windows::core::PCWSTR, expression: ::windows::core::PCWSTR, fcase: super::super::super::Foundation::BOOL) -> super::super::super::Foundation::BOOL;
    }
    SymMatchStringW(string.into(), expression.into(), fcase.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymNext<'a, P0>(hprocess: P0, si: *mut SYMBOL_INFO) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymNext(hprocess: super::super::super::Foundation::HANDLE, si: *mut SYMBOL_INFO) -> super::super::super::Foundation::BOOL;
    }
    SymNext(hprocess.into(), ::core::mem::transmute(si))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymNextW<'a, P0>(hprocess: P0, siw: *mut SYMBOL_INFOW) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymNextW(hprocess: super::super::super::Foundation::HANDLE, siw: *mut SYMBOL_INFOW) -> super::super::super::Foundation::BOOL;
    }
    SymNextW(hprocess.into(), ::core::mem::transmute(siw))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymPrev<'a, P0>(hprocess: P0, si: *mut SYMBOL_INFO) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymPrev(hprocess: super::super::super::Foundation::HANDLE, si: *mut SYMBOL_INFO) -> super::super::super::Foundation::BOOL;
    }
    SymPrev(hprocess.into(), ::core::mem::transmute(si))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymPrevW<'a, P0>(hprocess: P0, siw: *mut SYMBOL_INFOW) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymPrevW(hprocess: super::super::super::Foundation::HANDLE, siw: *mut SYMBOL_INFOW) -> super::super::super::Foundation::BOOL;
    }
    SymPrevW(hprocess.into(), ::core::mem::transmute(siw))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymQueryInlineTrace<'a, P0>(hprocess: P0, startaddress: u64, startcontext: u32, startretaddress: u64, curaddress: u64, curcontext: *mut u32, curframeindex: *mut u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymQueryInlineTrace(hprocess: super::super::super::Foundation::HANDLE, startaddress: u64, startcontext: u32, startretaddress: u64, curaddress: u64, curcontext: *mut u32, curframeindex: *mut u32) -> super::super::super::Foundation::BOOL;
    }
    SymQueryInlineTrace(hprocess.into(), startaddress, startcontext, startretaddress, curaddress, ::core::mem::transmute(curcontext), ::core::mem::transmute(curframeindex))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymRefreshModuleList<'a, P0>(hprocess: P0) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymRefreshModuleList(hprocess: super::super::super::Foundation::HANDLE) -> super::super::super::Foundation::BOOL;
    }
    SymRefreshModuleList(hprocess.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymRegisterCallback<'a, P0>(hprocess: P0, callbackfunction: PSYMBOL_REGISTERED_CALLBACK, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymRegisterCallback(hprocess: super::super::super::Foundation::HANDLE, callbackfunction: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymRegisterCallback(hprocess.into(), ::core::mem::transmute(callbackfunction), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymRegisterCallback64<'a, P0>(hprocess: P0, callbackfunction: PSYMBOL_REGISTERED_CALLBACK64, usercontext: u64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymRegisterCallback64(hprocess: super::super::super::Foundation::HANDLE, callbackfunction: *mut ::core::ffi::c_void, usercontext: u64) -> super::super::super::Foundation::BOOL;
    }
    SymRegisterCallback64(hprocess.into(), ::core::mem::transmute(callbackfunction), usercontext)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymRegisterCallbackW64<'a, P0>(hprocess: P0, callbackfunction: PSYMBOL_REGISTERED_CALLBACK64, usercontext: u64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymRegisterCallbackW64(hprocess: super::super::super::Foundation::HANDLE, callbackfunction: *mut ::core::ffi::c_void, usercontext: u64) -> super::super::super::Foundation::BOOL;
    }
    SymRegisterCallbackW64(hprocess.into(), ::core::mem::transmute(callbackfunction), usercontext)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymRegisterFunctionEntryCallback<'a, P0>(hprocess: P0, callbackfunction: PSYMBOL_FUNCENTRY_CALLBACK, usercontext: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymRegisterFunctionEntryCallback(hprocess: super::super::super::Foundation::HANDLE, callbackfunction: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymRegisterFunctionEntryCallback(hprocess.into(), ::core::mem::transmute(callbackfunction), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymRegisterFunctionEntryCallback64<'a, P0>(hprocess: P0, callbackfunction: PSYMBOL_FUNCENTRY_CALLBACK64, usercontext: u64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymRegisterFunctionEntryCallback64(hprocess: super::super::super::Foundation::HANDLE, callbackfunction: *mut ::core::ffi::c_void, usercontext: u64) -> super::super::super::Foundation::BOOL;
    }
    SymRegisterFunctionEntryCallback64(hprocess.into(), ::core::mem::transmute(callbackfunction), usercontext)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSearch<'a, P0, P1>(hprocess: P0, baseofdll: u64, index: u32, symtag: u32, mask: P1, address: u64, enumsymbolscallback: PSYM_ENUMERATESYMBOLS_CALLBACK, usercontext: ::core::option::Option<*const ::core::ffi::c_void>, options: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSearch(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, index: u32, symtag: u32, mask: ::windows::core::PCSTR, address: u64, enumsymbolscallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void, options: u32) -> super::super::super::Foundation::BOOL;
    }
    SymSearch(hprocess.into(), baseofdll, index, symtag, mask.into(), address, ::core::mem::transmute(enumsymbolscallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())), options)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSearchW<'a, P0, P1>(hprocess: P0, baseofdll: u64, index: u32, symtag: u32, mask: P1, address: u64, enumsymbolscallback: PSYM_ENUMERATESYMBOLS_CALLBACKW, usercontext: ::core::option::Option<*const ::core::ffi::c_void>, options: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSearchW(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, index: u32, symtag: u32, mask: ::windows::core::PCWSTR, address: u64, enumsymbolscallback: *mut ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void, options: u32) -> super::super::super::Foundation::BOOL;
    }
    SymSearchW(hprocess.into(), baseofdll, index, symtag, mask.into(), address, ::core::mem::transmute(enumsymbolscallback), ::core::mem::transmute(usercontext.unwrap_or(::std::ptr::null())), options)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSetContext<'a, P0>(hprocess: P0, stackframe: *const IMAGEHLP_STACK_FRAME, context: ::core::option::Option<*const ::core::ffi::c_void>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSetContext(hprocess: super::super::super::Foundation::HANDLE, stackframe: *const IMAGEHLP_STACK_FRAME, context: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL;
    }
    SymSetContext(hprocess.into(), ::core::mem::transmute(stackframe), ::core::mem::transmute(context.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSetExtendedOption<'a, P0>(option: IMAGEHLP_EXTENDED_OPTIONS, value: P0) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::BOOL>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSetExtendedOption(option: IMAGEHLP_EXTENDED_OPTIONS, value: super::super::super::Foundation::BOOL) -> super::super::super::Foundation::BOOL;
    }
    SymSetExtendedOption(option, value.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSetHomeDirectory<'a, P0, P1>(hprocess: P0, dir: P1) -> ::windows::core::PSTR
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSetHomeDirectory(hprocess: super::super::super::Foundation::HANDLE, dir: ::windows::core::PCSTR) -> ::windows::core::PSTR;
    }
    SymSetHomeDirectory(hprocess.into(), dir.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSetHomeDirectoryW<'a, P0, P1>(hprocess: P0, dir: P1) -> ::windows::core::PWSTR
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSetHomeDirectoryW(hprocess: super::super::super::Foundation::HANDLE, dir: ::windows::core::PCWSTR) -> ::windows::core::PWSTR;
    }
    SymSetHomeDirectoryW(hprocess.into(), dir.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn SymSetOptions(symoptions: u32) -> u32 {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSetOptions(symoptions: u32) -> u32;
    }
    SymSetOptions(symoptions)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSetParentWindow<'a, P0>(hwnd: P0) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HWND>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSetParentWindow(hwnd: super::super::super::Foundation::HWND) -> super::super::super::Foundation::BOOL;
    }
    SymSetParentWindow(hwnd.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSetScopeFromAddr<'a, P0>(hprocess: P0, address: u64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSetScopeFromAddr(hprocess: super::super::super::Foundation::HANDLE, address: u64) -> super::super::super::Foundation::BOOL;
    }
    SymSetScopeFromAddr(hprocess.into(), address)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSetScopeFromIndex<'a, P0>(hprocess: P0, baseofdll: u64, index: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSetScopeFromIndex(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64, index: u32) -> super::super::super::Foundation::BOOL;
    }
    SymSetScopeFromIndex(hprocess.into(), baseofdll, index)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSetScopeFromInlineContext<'a, P0>(hprocess: P0, address: u64, inlinecontext: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSetScopeFromInlineContext(hprocess: super::super::super::Foundation::HANDLE, address: u64, inlinecontext: u32) -> super::super::super::Foundation::BOOL;
    }
    SymSetScopeFromInlineContext(hprocess.into(), address, inlinecontext)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSetSearchPath<'a, P0, P1>(hprocess: P0, searchpatha: P1) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSetSearchPath(hprocess: super::super::super::Foundation::HANDLE, searchpatha: ::windows::core::PCSTR) -> super::super::super::Foundation::BOOL;
    }
    SymSetSearchPath(hprocess.into(), searchpatha.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSetSearchPathW<'a, P0, P1>(hprocess: P0, searchpatha: P1) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSetSearchPathW(hprocess: super::super::super::Foundation::HANDLE, searchpatha: ::windows::core::PCWSTR) -> super::super::super::Foundation::BOOL;
    }
    SymSetSearchPathW(hprocess.into(), searchpatha.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSrvDeltaName<'a, P0, P1, P2, P3, P4>(hprocess: P0, sympath: P1, r#type: P2, file1: P3, file2: P4) -> ::windows::core::PSTR
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
    P3: ::std::convert::Into<::windows::core::PCSTR>,
    P4: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSrvDeltaName(hprocess: super::super::super::Foundation::HANDLE, sympath: ::windows::core::PCSTR, r#type: ::windows::core::PCSTR, file1: ::windows::core::PCSTR, file2: ::windows::core::PCSTR) -> ::windows::core::PSTR;
    }
    SymSrvDeltaName(hprocess.into(), sympath.into(), r#type.into(), file1.into(), file2.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSrvDeltaNameW<'a, P0, P1, P2, P3, P4>(hprocess: P0, sympath: P1, r#type: P2, file1: P3, file2: P4) -> ::windows::core::PWSTR
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
    P2: ::std::convert::Into<::windows::core::PCWSTR>,
    P3: ::std::convert::Into<::windows::core::PCWSTR>,
    P4: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSrvDeltaNameW(hprocess: super::super::super::Foundation::HANDLE, sympath: ::windows::core::PCWSTR, r#type: ::windows::core::PCWSTR, file1: ::windows::core::PCWSTR, file2: ::windows::core::PCWSTR) -> ::windows::core::PWSTR;
    }
    SymSrvDeltaNameW(hprocess.into(), sympath.into(), r#type.into(), file1.into(), file2.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSrvGetFileIndexInfo<'a, P0>(file: P0, info: *mut SYMSRV_INDEX_INFO, flags: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSrvGetFileIndexInfo(file: ::windows::core::PCSTR, info: *mut SYMSRV_INDEX_INFO, flags: u32) -> super::super::super::Foundation::BOOL;
    }
    SymSrvGetFileIndexInfo(file.into(), ::core::mem::transmute(info), flags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSrvGetFileIndexInfoW<'a, P0>(file: P0, info: *mut SYMSRV_INDEX_INFOW, flags: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSrvGetFileIndexInfoW(file: ::windows::core::PCWSTR, info: *mut SYMSRV_INDEX_INFOW, flags: u32) -> super::super::super::Foundation::BOOL;
    }
    SymSrvGetFileIndexInfoW(file.into(), ::core::mem::transmute(info), flags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSrvGetFileIndexString<'a, P0, P1, P2>(hprocess: P0, srvpath: P1, file: P2, index: &mut [u8], flags: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSrvGetFileIndexString(hprocess: super::super::super::Foundation::HANDLE, srvpath: ::windows::core::PCSTR, file: ::windows::core::PCSTR, index: ::windows::core::PSTR, size: usize, flags: u32) -> super::super::super::Foundation::BOOL;
    }
    SymSrvGetFileIndexString(hprocess.into(), srvpath.into(), file.into(), ::core::mem::transmute(index.as_ptr()), index.len() as _, flags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSrvGetFileIndexStringW<'a, P0, P1, P2>(hprocess: P0, srvpath: P1, file: P2, index: &mut [u16], flags: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
    P2: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSrvGetFileIndexStringW(hprocess: super::super::super::Foundation::HANDLE, srvpath: ::windows::core::PCWSTR, file: ::windows::core::PCWSTR, index: ::windows::core::PWSTR, size: usize, flags: u32) -> super::super::super::Foundation::BOOL;
    }
    SymSrvGetFileIndexStringW(hprocess.into(), srvpath.into(), file.into(), ::core::mem::transmute(index.as_ptr()), index.len() as _, flags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSrvGetFileIndexes<'a, P0>(file: P0, id: *mut ::windows::core::GUID, val1: *mut u32, val2: ::core::option::Option<*mut u32>, flags: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSrvGetFileIndexes(file: ::windows::core::PCSTR, id: *mut ::windows::core::GUID, val1: *mut u32, val2: *mut u32, flags: u32) -> super::super::super::Foundation::BOOL;
    }
    SymSrvGetFileIndexes(file.into(), ::core::mem::transmute(id), ::core::mem::transmute(val1), ::core::mem::transmute(val2.unwrap_or(::std::ptr::null_mut())), flags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSrvGetFileIndexesW<'a, P0>(file: P0, id: *mut ::windows::core::GUID, val1: *mut u32, val2: ::core::option::Option<*mut u32>, flags: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSrvGetFileIndexesW(file: ::windows::core::PCWSTR, id: *mut ::windows::core::GUID, val1: *mut u32, val2: *mut u32, flags: u32) -> super::super::super::Foundation::BOOL;
    }
    SymSrvGetFileIndexesW(file.into(), ::core::mem::transmute(id), ::core::mem::transmute(val1), ::core::mem::transmute(val2.unwrap_or(::std::ptr::null_mut())), flags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSrvGetSupplement<'a, P0, P1, P2, P3>(hprocess: P0, sympath: P1, node: P2, file: P3) -> ::windows::core::PSTR
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
    P3: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSrvGetSupplement(hprocess: super::super::super::Foundation::HANDLE, sympath: ::windows::core::PCSTR, node: ::windows::core::PCSTR, file: ::windows::core::PCSTR) -> ::windows::core::PSTR;
    }
    SymSrvGetSupplement(hprocess.into(), sympath.into(), node.into(), file.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSrvGetSupplementW<'a, P0, P1, P2, P3>(hprocess: P0, sympath: P1, node: P2, file: P3) -> ::windows::core::PWSTR
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
    P2: ::std::convert::Into<::windows::core::PCWSTR>,
    P3: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSrvGetSupplementW(hprocess: super::super::super::Foundation::HANDLE, sympath: ::windows::core::PCWSTR, node: ::windows::core::PCWSTR, file: ::windows::core::PCWSTR) -> ::windows::core::PWSTR;
    }
    SymSrvGetSupplementW(hprocess.into(), sympath.into(), node.into(), file.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSrvIsStore<'a, P0, P1>(hprocess: P0, path: P1) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSrvIsStore(hprocess: super::super::super::Foundation::HANDLE, path: ::windows::core::PCSTR) -> super::super::super::Foundation::BOOL;
    }
    SymSrvIsStore(hprocess.into(), path.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSrvIsStoreW<'a, P0, P1>(hprocess: P0, path: P1) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSrvIsStoreW(hprocess: super::super::super::Foundation::HANDLE, path: ::windows::core::PCWSTR) -> super::super::super::Foundation::BOOL;
    }
    SymSrvIsStoreW(hprocess.into(), path.into())
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSrvStoreFile<'a, P0, P1, P2>(hprocess: P0, srvpath: P1, file: P2, flags: SYM_SRV_STORE_FILE_FLAGS) -> ::windows::core::PSTR
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSrvStoreFile(hprocess: super::super::super::Foundation::HANDLE, srvpath: ::windows::core::PCSTR, file: ::windows::core::PCSTR, flags: SYM_SRV_STORE_FILE_FLAGS) -> ::windows::core::PSTR;
    }
    SymSrvStoreFile(hprocess.into(), srvpath.into(), file.into(), flags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSrvStoreFileW<'a, P0, P1, P2>(hprocess: P0, srvpath: P1, file: P2, flags: SYM_SRV_STORE_FILE_FLAGS) -> ::windows::core::PWSTR
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
    P2: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSrvStoreFileW(hprocess: super::super::super::Foundation::HANDLE, srvpath: ::windows::core::PCWSTR, file: ::windows::core::PCWSTR, flags: SYM_SRV_STORE_FILE_FLAGS) -> ::windows::core::PWSTR;
    }
    SymSrvStoreFileW(hprocess.into(), srvpath.into(), file.into(), flags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSrvStoreSupplement<'a, P0, P1, P2, P3>(hprocess: P0, srvpath: P1, node: P2, file: P3, flags: u32) -> ::windows::core::PSTR
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
    P2: ::std::convert::Into<::windows::core::PCSTR>,
    P3: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSrvStoreSupplement(hprocess: super::super::super::Foundation::HANDLE, srvpath: ::windows::core::PCSTR, node: ::windows::core::PCSTR, file: ::windows::core::PCSTR, flags: u32) -> ::windows::core::PSTR;
    }
    SymSrvStoreSupplement(hprocess.into(), srvpath.into(), node.into(), file.into(), flags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymSrvStoreSupplementW<'a, P0, P1, P2, P3>(hprocess: P0, sympath: P1, node: P2, file: P3, flags: u32) -> ::windows::core::PWSTR
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
    P1: ::std::convert::Into<::windows::core::PCWSTR>,
    P2: ::std::convert::Into<::windows::core::PCWSTR>,
    P3: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymSrvStoreSupplementW(hprocess: super::super::super::Foundation::HANDLE, sympath: ::windows::core::PCWSTR, node: ::windows::core::PCWSTR, file: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::PWSTR;
    }
    SymSrvStoreSupplementW(hprocess.into(), sympath.into(), node.into(), file.into(), flags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymUnDName(sym: *const IMAGEHLP_SYMBOL, undecname: &mut [u8]) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymUnDName(sym: *const IMAGEHLP_SYMBOL, undecname: ::windows::core::PSTR, undecnamelength: u32) -> super::super::super::Foundation::BOOL;
    }
    SymUnDName(::core::mem::transmute(sym), ::core::mem::transmute(undecname.as_ptr()), undecname.len() as _)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymUnDName64(sym: *const IMAGEHLP_SYMBOL64, undecname: &mut [u8]) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymUnDName64(sym: *const IMAGEHLP_SYMBOL64, undecname: ::windows::core::PSTR, undecnamelength: u32) -> super::super::super::Foundation::BOOL;
    }
    SymUnDName64(::core::mem::transmute(sym), ::core::mem::transmute(undecname.as_ptr()), undecname.len() as _)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymUnloadModule<'a, P0>(hprocess: P0, baseofdll: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymUnloadModule(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u32) -> super::super::super::Foundation::BOOL;
    }
    SymUnloadModule(hprocess.into(), baseofdll)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SymUnloadModule64<'a, P0>(hprocess: P0, baseofdll: u64) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn SymUnloadModule64(hprocess: super::super::super::Foundation::HANDLE, baseofdll: u64) -> super::super::super::Foundation::BOOL;
    }
    SymUnloadModule64(hprocess.into(), baseofdll)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn TerminateProcessOnMemoryExhaustion(failedallocationsize: usize) {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn TerminateProcessOnMemoryExhaustion(failedallocationsize: usize);
    }
    TerminateProcessOnMemoryExhaustion(failedallocationsize)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn TouchFileTimes<'a, P0>(filehandle: P0, psystemtime: ::core::option::Option<*const super::super::super::Foundation::SYSTEMTIME>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn TouchFileTimes(filehandle: super::super::super::Foundation::HANDLE, psystemtime: *const super::super::super::Foundation::SYSTEMTIME) -> super::super::super::Foundation::BOOL;
    }
    TouchFileTimes(filehandle.into(), ::core::mem::transmute(psystemtime.unwrap_or(::std::ptr::null())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn UnDecorateSymbolName<'a, P0>(name: P0, outputstring: &mut [u8], flags: u32) -> u32
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn UnDecorateSymbolName(name: ::windows::core::PCSTR, outputstring: ::windows::core::PSTR, maxstringlength: u32, flags: u32) -> u32;
    }
    UnDecorateSymbolName(name.into(), ::core::mem::transmute(outputstring.as_ptr()), outputstring.len() as _, flags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[inline]
pub unsafe fn UnDecorateSymbolNameW<'a, P0>(name: P0, outputstring: &mut [u16], flags: u32) -> u32
where
    P0: ::std::convert::Into<::windows::core::PCWSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn UnDecorateSymbolNameW(name: ::windows::core::PCWSTR, outputstring: ::windows::core::PWSTR, maxstringlength: u32, flags: u32) -> u32;
    }
    UnDecorateSymbolNameW(name.into(), ::core::mem::transmute(outputstring.as_ptr()), outputstring.len() as _, flags)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
#[inline]
pub unsafe fn UnMapAndLoad(loadedimage: *mut LOADED_IMAGE) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn UnMapAndLoad(loadedimage: *mut LOADED_IMAGE) -> super::super::super::Foundation::BOOL;
    }
    UnMapAndLoad(::core::mem::transmute(loadedimage))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
#[inline]
pub unsafe fn UnhandledExceptionFilter(exceptioninfo: *const EXCEPTION_POINTERS) -> i32 {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn UnhandledExceptionFilter(exceptioninfo: *const EXCEPTION_POINTERS) -> i32;
    }
    UnhandledExceptionFilter(::core::mem::transmute(exceptioninfo))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))]
#[inline]
pub unsafe fn UpdateDebugInfoFile<'a, P0, P1>(imagefilename: P0, symbolpath: P1, debugfilepath: ::windows::core::PSTR, ntheaders: *const IMAGE_NT_HEADERS32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn UpdateDebugInfoFile(imagefilename: ::windows::core::PCSTR, symbolpath: ::windows::core::PCSTR, debugfilepath: ::windows::core::PSTR, ntheaders: *const IMAGE_NT_HEADERS32) -> super::super::super::Foundation::BOOL;
    }
    UpdateDebugInfoFile(imagefilename.into(), symbolpath.into(), ::core::mem::transmute(debugfilepath), ::core::mem::transmute(ntheaders))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))]
#[inline]
pub unsafe fn UpdateDebugInfoFileEx<'a, P0, P1>(imagefilename: P0, symbolpath: P1, debugfilepath: ::windows::core::PSTR, ntheaders: *const IMAGE_NT_HEADERS32, oldchecksum: u32) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<::windows::core::PCSTR>,
    P1: ::std::convert::Into<::windows::core::PCSTR>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn UpdateDebugInfoFileEx(imagefilename: ::windows::core::PCSTR, symbolpath: ::windows::core::PCSTR, debugfilepath: ::windows::core::PSTR, ntheaders: *const IMAGE_NT_HEADERS32, oldchecksum: u32) -> super::super::super::Foundation::BOOL;
    }
    UpdateDebugInfoFileEx(imagefilename.into(), symbolpath.into(), ::core::mem::transmute(debugfilepath), ::core::mem::transmute(ntheaders), oldchecksum)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
#[inline]
pub unsafe fn WaitForDebugEvent(lpdebugevent: *mut DEBUG_EVENT, dwmilliseconds: u32) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn WaitForDebugEvent(lpdebugevent: *mut DEBUG_EVENT, dwmilliseconds: u32) -> super::super::super::Foundation::BOOL;
    }
    WaitForDebugEvent(::core::mem::transmute(lpdebugevent), dwmilliseconds)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
#[inline]
pub unsafe fn WaitForDebugEventEx(lpdebugevent: *mut DEBUG_EVENT, dwmilliseconds: u32) -> super::super::super::Foundation::BOOL {
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn WaitForDebugEventEx(lpdebugevent: *mut DEBUG_EVENT, dwmilliseconds: u32) -> super::super::super::Foundation::BOOL;
    }
    WaitForDebugEventEx(::core::mem::transmute(lpdebugevent), dwmilliseconds)
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn Wow64GetThreadContext<'a, P0>(hthread: P0, lpcontext: *mut WOW64_CONTEXT) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn Wow64GetThreadContext(hthread: super::super::super::Foundation::HANDLE, lpcontext: *mut WOW64_CONTEXT) -> super::super::super::Foundation::BOOL;
    }
    Wow64GetThreadContext(hthread.into(), ::core::mem::transmute(lpcontext))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn Wow64GetThreadSelectorEntry<'a, P0>(hthread: P0, dwselector: u32, lpselectorentry: *mut WOW64_LDT_ENTRY) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn Wow64GetThreadSelectorEntry(hthread: super::super::super::Foundation::HANDLE, dwselector: u32, lpselectorentry: *mut WOW64_LDT_ENTRY) -> super::super::super::Foundation::BOOL;
    }
    Wow64GetThreadSelectorEntry(hthread.into(), dwselector, ::core::mem::transmute(lpselectorentry))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn Wow64SetThreadContext<'a, P0>(hthread: P0, lpcontext: *const WOW64_CONTEXT) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn Wow64SetThreadContext(hthread: super::super::super::Foundation::HANDLE, lpcontext: *const WOW64_CONTEXT) -> super::super::super::Foundation::BOOL;
    }
    Wow64SetThreadContext(hthread.into(), ::core::mem::transmute(lpcontext))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn WriteProcessMemory<'a, P0>(hprocess: P0, lpbaseaddress: *const ::core::ffi::c_void, lpbuffer: *const ::core::ffi::c_void, nsize: usize, lpnumberofbyteswritten: ::core::option::Option<*mut usize>) -> super::super::super::Foundation::BOOL
where
    P0: ::std::convert::Into<super::super::super::Foundation::HANDLE>,
{
    #[cfg_attr(windows, link(name = "windows"))]
    extern "system" {
        fn WriteProcessMemory(hprocess: super::super::super::Foundation::HANDLE, lpbaseaddress: *const ::core::ffi::c_void, lpbuffer: *const ::core::ffi::c_void, nsize: usize, lpnumberofbyteswritten: *mut usize) -> super::super::super::Foundation::BOOL;
    }
    WriteProcessMemory(hprocess.into(), ::core::mem::transmute(lpbaseaddress), ::core::mem::transmute(lpbuffer), nsize, ::core::mem::transmute(lpnumberofbyteswritten.unwrap_or(::std::ptr::null_mut())))
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct AsyncIDebugApplicationNodeEvents(::windows::core::IUnknown);
impl AsyncIDebugApplicationNodeEvents {
    pub unsafe fn Begin_onAddChild<'a, P0>(&self, prddpchild: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugApplicationNode>>,
    {
        (::windows::core::Vtable::vtable(self).Begin_onAddChild)(::windows::core::Vtable::as_raw(self), prddpchild.into().abi()).ok()
    }
    pub unsafe fn Finish_onAddChild(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Finish_onAddChild)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn Begin_onRemoveChild<'a, P0>(&self, prddpchild: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugApplicationNode>>,
    {
        (::windows::core::Vtable::vtable(self).Begin_onRemoveChild)(::windows::core::Vtable::as_raw(self), prddpchild.into().abi()).ok()
    }
    pub unsafe fn Finish_onRemoveChild(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Finish_onRemoveChild)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn Begin_onDetach(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Begin_onDetach)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn Finish_onDetach(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Finish_onDetach)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn Begin_onAttach<'a, P0>(&self, prddpparent: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugApplicationNode>>,
    {
        (::windows::core::Vtable::vtable(self).Begin_onAttach)(::windows::core::Vtable::as_raw(self), prddpparent.into().abi()).ok()
    }
    pub unsafe fn Finish_onAttach(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Finish_onAttach)(::windows::core::Vtable::as_raw(self)).ok()
    }
}
::windows::core::interface_hierarchy!(AsyncIDebugApplicationNodeEvents, ::windows::core::IUnknown);
impl ::core::clone::Clone for AsyncIDebugApplicationNodeEvents {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for AsyncIDebugApplicationNodeEvents {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for AsyncIDebugApplicationNodeEvents {}
impl ::core::fmt::Debug for AsyncIDebugApplicationNodeEvents {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("AsyncIDebugApplicationNodeEvents").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for AsyncIDebugApplicationNodeEvents {
    type Vtable = AsyncIDebugApplicationNodeEvents_Vtbl;
}
unsafe impl ::windows::core::Interface for AsyncIDebugApplicationNodeEvents {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa2e3aa3b_aa8d_4ebf_84cd_648b737b8c13);
}
#[repr(C)]
#[doc(hidden)]
pub struct AsyncIDebugApplicationNodeEvents_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Begin_onAddChild: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prddpchild: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Finish_onAddChild: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Begin_onRemoveChild: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prddpchild: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Finish_onRemoveChild: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Begin_onDetach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Finish_onDetach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Begin_onAttach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prddpparent: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Finish_onAttach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct DebugBaseEventCallbacks(::windows::core::IUnknown);
impl DebugBaseEventCallbacks {
    pub unsafe fn GetInterestMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetInterestMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn Breakpoint<'a, P0>(&self, bp: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugBreakpoint>>,
    {
        (::windows::core::Vtable::vtable(self).base__.Breakpoint)(::windows::core::Vtable::as_raw(self), bp.into().abi()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn Exception(&self, exception: *const EXCEPTION_RECORD64, firstchance: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.Exception)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(exception), firstchance).ok()
    }
    pub unsafe fn CreateThread(&self, handle: u64, dataoffset: u64, startoffset: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.CreateThread)(::windows::core::Vtable::as_raw(self), handle, dataoffset, startoffset).ok()
    }
    pub unsafe fn ExitThread(&self, exitcode: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.ExitThread)(::windows::core::Vtable::as_raw(self), exitcode).ok()
    }
    pub unsafe fn CreateProcessA<'a, P0, P1>(&self, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).base__.CreateProcessA)(::windows::core::Vtable::as_raw(self), imagefilehandle, handle, baseoffset, modulesize, modulename.into(), imagename.into(), checksum, timedatestamp, initialthreadhandle, threaddataoffset, startoffset).ok()
    }
    pub unsafe fn ExitProcess(&self, exitcode: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.ExitProcess)(::windows::core::Vtable::as_raw(self), exitcode).ok()
    }
    pub unsafe fn LoadModule<'a, P0, P1>(&self, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).base__.LoadModule)(::windows::core::Vtable::as_raw(self), imagefilehandle, baseoffset, modulesize, modulename.into(), imagename.into(), checksum, timedatestamp).ok()
    }
    pub unsafe fn UnloadModule<'a, P0>(&self, imagebasename: P0, baseoffset: u64) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).base__.UnloadModule)(::windows::core::Vtable::as_raw(self), imagebasename.into(), baseoffset).ok()
    }
    pub unsafe fn SystemError(&self, error: u32, level: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.SystemError)(::windows::core::Vtable::as_raw(self), error, level).ok()
    }
    pub unsafe fn SessionStatus(&self, status: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.SessionStatus)(::windows::core::Vtable::as_raw(self), status).ok()
    }
    pub unsafe fn ChangeDebuggeeState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.ChangeDebuggeeState)(::windows::core::Vtable::as_raw(self), flags, argument).ok()
    }
    pub unsafe fn ChangeEngineState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.ChangeEngineState)(::windows::core::Vtable::as_raw(self), flags, argument).ok()
    }
    pub unsafe fn ChangeSymbolState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.ChangeSymbolState)(::windows::core::Vtable::as_raw(self), flags, argument).ok()
    }
}
::windows::core::interface_hierarchy!(DebugBaseEventCallbacks, ::windows::core::IUnknown, IDebugEventCallbacks);
impl ::core::clone::Clone for DebugBaseEventCallbacks {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for DebugBaseEventCallbacks {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for DebugBaseEventCallbacks {}
impl ::core::fmt::Debug for DebugBaseEventCallbacks {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DebugBaseEventCallbacks").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for DebugBaseEventCallbacks {
    type Vtable = DebugBaseEventCallbacks_Vtbl;
}
unsafe impl ::windows::core::Interface for DebugBaseEventCallbacks {
    const IID: ::windows::core::GUID = ::windows::core::GUID::zeroed();
}
#[repr(C)]
#[doc(hidden)]
pub struct DebugBaseEventCallbacks_Vtbl {
    pub base__: IDebugEventCallbacks_Vtbl,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct DebugBaseEventCallbacksWide(::windows::core::IUnknown);
impl DebugBaseEventCallbacksWide {
    pub unsafe fn GetInterestMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetInterestMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn Breakpoint<'a, P0>(&self, bp: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugBreakpoint2>>,
    {
        (::windows::core::Vtable::vtable(self).base__.Breakpoint)(::windows::core::Vtable::as_raw(self), bp.into().abi()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn Exception(&self, exception: *const EXCEPTION_RECORD64, firstchance: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.Exception)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(exception), firstchance).ok()
    }
    pub unsafe fn CreateThread(&self, handle: u64, dataoffset: u64, startoffset: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.CreateThread)(::windows::core::Vtable::as_raw(self), handle, dataoffset, startoffset).ok()
    }
    pub unsafe fn ExitThread(&self, exitcode: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.ExitThread)(::windows::core::Vtable::as_raw(self), exitcode).ok()
    }
    pub unsafe fn CreateProcessA<'a, P0, P1>(&self, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).base__.CreateProcessA)(::windows::core::Vtable::as_raw(self), imagefilehandle, handle, baseoffset, modulesize, modulename.into(), imagename.into(), checksum, timedatestamp, initialthreadhandle, threaddataoffset, startoffset).ok()
    }
    pub unsafe fn ExitProcess(&self, exitcode: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.ExitProcess)(::windows::core::Vtable::as_raw(self), exitcode).ok()
    }
    pub unsafe fn LoadModule<'a, P0, P1>(&self, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).base__.LoadModule)(::windows::core::Vtable::as_raw(self), imagefilehandle, baseoffset, modulesize, modulename.into(), imagename.into(), checksum, timedatestamp).ok()
    }
    pub unsafe fn UnloadModule<'a, P0>(&self, imagebasename: P0, baseoffset: u64) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).base__.UnloadModule)(::windows::core::Vtable::as_raw(self), imagebasename.into(), baseoffset).ok()
    }
    pub unsafe fn SystemError(&self, error: u32, level: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.SystemError)(::windows::core::Vtable::as_raw(self), error, level).ok()
    }
    pub unsafe fn SessionStatus(&self, status: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.SessionStatus)(::windows::core::Vtable::as_raw(self), status).ok()
    }
    pub unsafe fn ChangeDebuggeeState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.ChangeDebuggeeState)(::windows::core::Vtable::as_raw(self), flags, argument).ok()
    }
    pub unsafe fn ChangeEngineState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.ChangeEngineState)(::windows::core::Vtable::as_raw(self), flags, argument).ok()
    }
    pub unsafe fn ChangeSymbolState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.ChangeSymbolState)(::windows::core::Vtable::as_raw(self), flags, argument).ok()
    }
}
::windows::core::interface_hierarchy!(DebugBaseEventCallbacksWide, ::windows::core::IUnknown, IDebugEventCallbacksWide);
impl ::core::clone::Clone for DebugBaseEventCallbacksWide {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for DebugBaseEventCallbacksWide {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for DebugBaseEventCallbacksWide {}
impl ::core::fmt::Debug for DebugBaseEventCallbacksWide {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DebugBaseEventCallbacksWide").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for DebugBaseEventCallbacksWide {
    type Vtable = DebugBaseEventCallbacksWide_Vtbl;
}
unsafe impl ::windows::core::Interface for DebugBaseEventCallbacksWide {
    const IID: ::windows::core::GUID = ::windows::core::GUID::zeroed();
}
#[repr(C)]
#[doc(hidden)]
pub struct DebugBaseEventCallbacksWide_Vtbl {
    pub base__: IDebugEventCallbacksWide_Vtbl,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScript(::windows::core::IUnknown);
impl IActiveScript {
    pub unsafe fn SetScriptSite<'a, P0>(&self, pass: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IActiveScriptSite>>,
    {
        (::windows::core::Vtable::vtable(self).SetScriptSite)(::windows::core::Vtable::as_raw(self), pass.into().abi()).ok()
    }
    pub unsafe fn GetScriptSite<T>(&self) -> ::windows::core::Result<T>
    where
        T: ::windows::core::Interface,
    {
        let mut result__ = ::core::option::Option::None;
        (::windows::core::Vtable::vtable(self).GetScriptSite)(::windows::core::Vtable::as_raw(self), &<T as ::windows::core::Interface>::IID, &mut result__ as *mut _ as *mut _).and_some(result__)
    }
    pub unsafe fn SetScriptState(&self, ss: SCRIPTSTATE) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetScriptState)(::windows::core::Vtable::as_raw(self), ss).ok()
    }
    pub unsafe fn GetScriptState(&self) -> ::windows::core::Result<SCRIPTSTATE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetScriptState)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<SCRIPTSTATE>(result__)
    }
    pub unsafe fn Close(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Close)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn AddNamedItem<'a, P0>(&self, pstrname: P0, dwflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddNamedItem)(::windows::core::Vtable::as_raw(self), pstrname.into(), dwflags).ok()
    }
    pub unsafe fn AddTypeLib(&self, rguidtypelib: *const ::windows::core::GUID, dwmajor: u32, dwminor: u32, dwflags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddTypeLib)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(rguidtypelib), dwmajor, dwminor, dwflags).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn GetScriptDispatch<'a, P0>(&self, pstritemname: P0) -> ::windows::core::Result<super::super::Com::IDispatch>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetScriptDispatch)(::windows::core::Vtable::as_raw(self), pstritemname.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::IDispatch>(result__)
    }
    pub unsafe fn GetCurrentScriptThreadID(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentScriptThreadID)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetScriptThreadID(&self, dwwin32threadid: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetScriptThreadID)(::windows::core::Vtable::as_raw(self), dwwin32threadid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetScriptThreadState(&self, stidthread: u32) -> ::windows::core::Result<SCRIPTTHREADSTATE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetScriptThreadState)(::windows::core::Vtable::as_raw(self), stidthread, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<SCRIPTTHREADSTATE>(result__)
    }
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn InterruptScriptThread(&self, stidthread: u32, pexcepinfo: *const super::super::Com::EXCEPINFO, dwflags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).InterruptScriptThread)(::windows::core::Vtable::as_raw(self), stidthread, ::core::mem::transmute(pexcepinfo), dwflags).ok()
    }
    pub unsafe fn Clone(&self) -> ::windows::core::Result<IActiveScript> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Clone)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IActiveScript>(result__)
    }
}
::windows::core::interface_hierarchy!(IActiveScript, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScript {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScript {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScript {}
impl ::core::fmt::Debug for IActiveScript {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScript").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScript {
    type Vtable = IActiveScript_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScript {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbb1a2ae1_a4f9_11cf_8f20_00805f2cd064);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScript_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub SetScriptSite: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pass: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetScriptSite: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppvobject: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetScriptState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ss: SCRIPTSTATE) -> ::windows::core::HRESULT,
    pub GetScriptState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pssstate: *mut SCRIPTSTATE) -> ::windows::core::HRESULT,
    pub Close: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddNamedItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrname: ::windows::core::PCWSTR, dwflags: u32) -> ::windows::core::HRESULT,
    pub AddTypeLib: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rguidtypelib: *const ::windows::core::GUID, dwmajor: u32, dwminor: u32, dwflags: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Com")]
    pub GetScriptDispatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstritemname: ::windows::core::PCWSTR, ppdisp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    GetScriptDispatch: usize,
    pub GetCurrentScriptThreadID: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstidthread: *mut u32) -> ::windows::core::HRESULT,
    pub GetScriptThreadID: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwwin32threadid: u32, pstidthread: *mut u32) -> ::windows::core::HRESULT,
    pub GetScriptThreadState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, stidthread: u32, pstsstate: *mut SCRIPTTHREADSTATE) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Com")]
    pub InterruptScriptThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, stidthread: u32, pexcepinfo: *const ::core::mem::ManuallyDrop<super::super::Com::EXCEPINFO>, dwflags: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    InterruptScriptThread: usize,
    pub Clone: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppscript: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptAuthor(::windows::core::IUnknown);
impl IActiveScriptAuthor {
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn AddNamedItem<'a, P0, P1>(&self, pszname: P0, dwflags: u32, pdisp: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, super::super::Com::IDispatch>>,
    {
        (::windows::core::Vtable::vtable(self).AddNamedItem)(::windows::core::Vtable::as_raw(self), pszname.into(), dwflags, pdisp.into().abi()).ok()
    }
    pub unsafe fn AddScriptlet<'a, P0, P1, P2, P3, P4, P5>(&self, pszdefaultname: P0, pszcode: P1, pszitemname: P2, pszsubitemname: P3, pszeventname: P4, pszdelimiter: P5, dwcookie: u32, dwflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
        P3: ::std::convert::Into<::windows::core::PCWSTR>,
        P4: ::std::convert::Into<::windows::core::PCWSTR>,
        P5: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddScriptlet)(::windows::core::Vtable::as_raw(self), pszdefaultname.into(), pszcode.into(), pszitemname.into(), pszsubitemname.into(), pszeventname.into(), pszdelimiter.into(), dwcookie, dwflags).ok()
    }
    pub unsafe fn ParseScriptText<'a, P0, P1, P2>(&self, pszcode: P0, pszitemname: P1, pszdelimiter: P2, dwcookie: u32, dwflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ParseScriptText)(::windows::core::Vtable::as_raw(self), pszcode.into(), pszitemname.into(), pszdelimiter.into(), dwcookie, dwflags).ok()
    }
    pub unsafe fn GetScriptTextAttributes<'a, P0, P1>(&self, pszcode: P0, cch: u32, pszdelimiter: P1, dwflags: u32, pattr: *mut u16) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetScriptTextAttributes)(::windows::core::Vtable::as_raw(self), pszcode.into(), cch, pszdelimiter.into(), dwflags, ::core::mem::transmute(pattr)).ok()
    }
    pub unsafe fn GetScriptletTextAttributes<'a, P0, P1>(&self, pszcode: P0, cch: u32, pszdelimiter: P1, dwflags: u32, pattr: *mut u16) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetScriptletTextAttributes)(::windows::core::Vtable::as_raw(self), pszcode.into(), cch, pszdelimiter.into(), dwflags, ::core::mem::transmute(pattr)).ok()
    }
    pub unsafe fn GetRoot(&self) -> ::windows::core::Result<IScriptNode> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRoot)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IScriptNode>(result__)
    }
    pub unsafe fn GetLanguageFlags(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetLanguageFlags)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn GetEventHandler<'a, P0, P1, P2, P3>(&self, pdisp: P0, pszitem: P1, pszsubitem: P2, pszevent: P3) -> ::windows::core::Result<IScriptEntry>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Com::IDispatch>>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
        P3: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventHandler)(::windows::core::Vtable::as_raw(self), pdisp.into().abi(), pszitem.into(), pszsubitem.into(), pszevent.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IScriptEntry>(result__)
    }
    pub unsafe fn RemoveNamedItem<'a, P0>(&self, pszname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).RemoveNamedItem)(::windows::core::Vtable::as_raw(self), pszname.into()).ok()
    }
    pub unsafe fn AddTypeLib(&self, rguidtypelib: *const ::windows::core::GUID, dwmajor: u32, dwminor: u32, dwflags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddTypeLib)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(rguidtypelib), dwmajor, dwminor, dwflags).ok()
    }
    pub unsafe fn RemoveTypeLib(&self, rguidtypelib: *const ::windows::core::GUID, dwmajor: u32, dwminor: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveTypeLib)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(rguidtypelib), dwmajor, dwminor).ok()
    }
    pub unsafe fn GetChars(&self, frequestedlist: u32) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetChars)(::windows::core::Vtable::as_raw(self), frequestedlist, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetInfoFromContext<'a, P0>(&self, pszcode: P0, cchcode: u32, ichcurrentposition: u32, dwlisttypesrequested: u32, pdwlisttypesprovided: *mut u32, pichlistanchorposition: *mut u32, pichfuncanchorposition: *mut u32, pmemid: *mut i32, picurrentparameter: *mut i32, ppunk: *mut ::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetInfoFromContext)(::windows::core::Vtable::as_raw(self), pszcode.into(), cchcode, ichcurrentposition, dwlisttypesrequested, ::core::mem::transmute(pdwlisttypesprovided), ::core::mem::transmute(pichlistanchorposition), ::core::mem::transmute(pichfuncanchorposition), ::core::mem::transmute(pmemid), ::core::mem::transmute(picurrentparameter), ::core::mem::transmute(ppunk)).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn IsCommitChar(&self, ch: u16) -> ::windows::core::Result<super::super::super::Foundation::BOOL> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).IsCommitChar)(::windows::core::Vtable::as_raw(self), ch, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::super::Foundation::BOOL>(result__)
    }
}
::windows::core::interface_hierarchy!(IActiveScriptAuthor, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptAuthor {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptAuthor {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptAuthor {}
impl ::core::fmt::Debug for IActiveScriptAuthor {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptAuthor").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptAuthor {
    type Vtable = IActiveScriptAuthor_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptAuthor {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9c109da0_7006_11d1_b36c_00a0c911e8b2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptAuthor_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    #[cfg(feature = "Win32_System_Com")]
    pub AddNamedItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszname: ::windows::core::PCWSTR, dwflags: u32, pdisp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    AddNamedItem: usize,
    pub AddScriptlet: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszdefaultname: ::windows::core::PCWSTR, pszcode: ::windows::core::PCWSTR, pszitemname: ::windows::core::PCWSTR, pszsubitemname: ::windows::core::PCWSTR, pszeventname: ::windows::core::PCWSTR, pszdelimiter: ::windows::core::PCWSTR, dwcookie: u32, dwflags: u32) -> ::windows::core::HRESULT,
    pub ParseScriptText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszcode: ::windows::core::PCWSTR, pszitemname: ::windows::core::PCWSTR, pszdelimiter: ::windows::core::PCWSTR, dwcookie: u32, dwflags: u32) -> ::windows::core::HRESULT,
    pub GetScriptTextAttributes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszcode: ::windows::core::PCWSTR, cch: u32, pszdelimiter: ::windows::core::PCWSTR, dwflags: u32, pattr: *mut u16) -> ::windows::core::HRESULT,
    pub GetScriptletTextAttributes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszcode: ::windows::core::PCWSTR, cch: u32, pszdelimiter: ::windows::core::PCWSTR, dwflags: u32, pattr: *mut u16) -> ::windows::core::HRESULT,
    pub GetRoot: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppsp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetLanguageFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pgrfasa: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Com")]
    pub GetEventHandler: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdisp: *mut ::core::ffi::c_void, pszitem: ::windows::core::PCWSTR, pszsubitem: ::windows::core::PCWSTR, pszevent: ::windows::core::PCWSTR, ppse: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    GetEventHandler: usize,
    pub RemoveNamedItem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub AddTypeLib: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rguidtypelib: *const ::windows::core::GUID, dwmajor: u32, dwminor: u32, dwflags: u32) -> ::windows::core::HRESULT,
    pub RemoveTypeLib: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rguidtypelib: *const ::windows::core::GUID, dwmajor: u32, dwminor: u32) -> ::windows::core::HRESULT,
    pub GetChars: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, frequestedlist: u32, pbstrchars: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub GetInfoFromContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszcode: ::windows::core::PCWSTR, cchcode: u32, ichcurrentposition: u32, dwlisttypesrequested: u32, pdwlisttypesprovided: *mut u32, pichlistanchorposition: *mut u32, pichfuncanchorposition: *mut u32, pmemid: *mut i32, picurrentparameter: *mut i32, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub IsCommitChar: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ch: u16, pfcommit: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    IsCommitChar: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptAuthorProcedure(::windows::core::IUnknown);
impl IActiveScriptAuthorProcedure {
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn ParseProcedureText<'a, P0, P1, P2, P3, P4, P5>(&self, pszcode: P0, pszformalparams: P1, pszprocedurename: P2, pszitemname: P3, pszdelimiter: P4, dwcookie: u32, dwflags: u32, pdispfor: P5) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
        P3: ::std::convert::Into<::windows::core::PCWSTR>,
        P4: ::std::convert::Into<::windows::core::PCWSTR>,
        P5: ::std::convert::Into<::windows::core::InParam<'a, super::super::Com::IDispatch>>,
    {
        (::windows::core::Vtable::vtable(self).ParseProcedureText)(::windows::core::Vtable::as_raw(self), pszcode.into(), pszformalparams.into(), pszprocedurename.into(), pszitemname.into(), pszdelimiter.into(), dwcookie, dwflags, pdispfor.into().abi()).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptAuthorProcedure, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptAuthorProcedure {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptAuthorProcedure {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptAuthorProcedure {}
impl ::core::fmt::Debug for IActiveScriptAuthorProcedure {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptAuthorProcedure").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptAuthorProcedure {
    type Vtable = IActiveScriptAuthorProcedure_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptAuthorProcedure {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7e2d4b70_bd9a_11d0_9336_00a0c90dcaa9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptAuthorProcedure_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    #[cfg(feature = "Win32_System_Com")]
    pub ParseProcedureText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszcode: ::windows::core::PCWSTR, pszformalparams: ::windows::core::PCWSTR, pszprocedurename: ::windows::core::PCWSTR, pszitemname: ::windows::core::PCWSTR, pszdelimiter: ::windows::core::PCWSTR, dwcookie: u32, dwflags: u32, pdispfor: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    ParseProcedureText: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptDebug32(::windows::core::IUnknown);
impl IActiveScriptDebug32 {
    pub unsafe fn GetScriptTextAttributes<'a, P0, P1>(&self, pstrcode: P0, unumcodechars: u32, pstrdelimiter: P1, dwflags: u32, pattr: *mut u16) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetScriptTextAttributes)(::windows::core::Vtable::as_raw(self), pstrcode.into(), unumcodechars, pstrdelimiter.into(), dwflags, ::core::mem::transmute(pattr)).ok()
    }
    pub unsafe fn GetScriptletTextAttributes<'a, P0, P1>(&self, pstrcode: P0, unumcodechars: u32, pstrdelimiter: P1, dwflags: u32, pattr: *mut u16) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetScriptletTextAttributes)(::windows::core::Vtable::as_raw(self), pstrcode.into(), unumcodechars, pstrdelimiter.into(), dwflags, ::core::mem::transmute(pattr)).ok()
    }
    pub unsafe fn EnumCodeContextsOfPosition(&self, dwsourcecontext: u32, ucharacteroffset: u32, unumchars: u32) -> ::windows::core::Result<IEnumDebugCodeContexts> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumCodeContextsOfPosition)(::windows::core::Vtable::as_raw(self), dwsourcecontext, ucharacteroffset, unumchars, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugCodeContexts>(result__)
    }
}
::windows::core::interface_hierarchy!(IActiveScriptDebug32, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptDebug32 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptDebug32 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptDebug32 {}
impl ::core::fmt::Debug for IActiveScriptDebug32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptDebug32").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptDebug32 {
    type Vtable = IActiveScriptDebug32_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptDebug32 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c10_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptDebug32_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetScriptTextAttributes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrcode: ::windows::core::PCWSTR, unumcodechars: u32, pstrdelimiter: ::windows::core::PCWSTR, dwflags: u32, pattr: *mut u16) -> ::windows::core::HRESULT,
    pub GetScriptletTextAttributes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrcode: ::windows::core::PCWSTR, unumcodechars: u32, pstrdelimiter: ::windows::core::PCWSTR, dwflags: u32, pattr: *mut u16) -> ::windows::core::HRESULT,
    pub EnumCodeContextsOfPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwsourcecontext: u32, ucharacteroffset: u32, unumchars: u32, ppescc: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptDebug64(::windows::core::IUnknown);
impl IActiveScriptDebug64 {
    pub unsafe fn GetScriptTextAttributes<'a, P0, P1>(&self, pstrcode: P0, unumcodechars: u32, pstrdelimiter: P1, dwflags: u32, pattr: *mut u16) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetScriptTextAttributes)(::windows::core::Vtable::as_raw(self), pstrcode.into(), unumcodechars, pstrdelimiter.into(), dwflags, ::core::mem::transmute(pattr)).ok()
    }
    pub unsafe fn GetScriptletTextAttributes<'a, P0, P1>(&self, pstrcode: P0, unumcodechars: u32, pstrdelimiter: P1, dwflags: u32, pattr: *mut u16) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetScriptletTextAttributes)(::windows::core::Vtable::as_raw(self), pstrcode.into(), unumcodechars, pstrdelimiter.into(), dwflags, ::core::mem::transmute(pattr)).ok()
    }
    pub unsafe fn EnumCodeContextsOfPosition(&self, dwsourcecontext: u64, ucharacteroffset: u32, unumchars: u32) -> ::windows::core::Result<IEnumDebugCodeContexts> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumCodeContextsOfPosition)(::windows::core::Vtable::as_raw(self), dwsourcecontext, ucharacteroffset, unumchars, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugCodeContexts>(result__)
    }
}
::windows::core::interface_hierarchy!(IActiveScriptDebug64, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptDebug64 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptDebug64 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptDebug64 {}
impl ::core::fmt::Debug for IActiveScriptDebug64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptDebug64").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptDebug64 {
    type Vtable = IActiveScriptDebug64_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptDebug64 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbc437e23_f5b8_47f4_bb79_7d1ce5483b86);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptDebug64_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetScriptTextAttributes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrcode: ::windows::core::PCWSTR, unumcodechars: u32, pstrdelimiter: ::windows::core::PCWSTR, dwflags: u32, pattr: *mut u16) -> ::windows::core::HRESULT,
    pub GetScriptletTextAttributes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrcode: ::windows::core::PCWSTR, unumcodechars: u32, pstrdelimiter: ::windows::core::PCWSTR, dwflags: u32, pattr: *mut u16) -> ::windows::core::HRESULT,
    pub EnumCodeContextsOfPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwsourcecontext: u64, ucharacteroffset: u32, unumchars: u32, ppescc: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptEncode(::windows::core::IUnknown);
impl IActiveScriptEncode {
    pub unsafe fn EncodeSection<'a, P0>(&self, pchin: P0, cchin: u32, pchout: ::windows::core::PWSTR, cchout: u32, pcchret: *mut u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).EncodeSection)(::windows::core::Vtable::as_raw(self), pchin.into(), cchin, ::core::mem::transmute(pchout), cchout, ::core::mem::transmute(pcchret)).ok()
    }
    pub unsafe fn DecodeScript<'a, P0>(&self, pchin: P0, cchin: u32, pchout: ::windows::core::PWSTR, cchout: u32, pcchret: *mut u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).DecodeScript)(::windows::core::Vtable::as_raw(self), pchin.into(), cchin, ::core::mem::transmute(pchout), cchout, ::core::mem::transmute(pcchret)).ok()
    }
    pub unsafe fn GetEncodeProgId(&self, pbstrout: *mut ::windows::core::BSTR) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEncodeProgId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pbstrout)).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptEncode, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptEncode {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptEncode {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptEncode {}
impl ::core::fmt::Debug for IActiveScriptEncode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptEncode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptEncode {
    type Vtable = IActiveScriptEncode_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptEncode {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbb1a2ae3_a4f9_11cf_8f20_00805f2cd064);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptEncode_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub EncodeSection: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pchin: ::windows::core::PCWSTR, cchin: u32, pchout: ::windows::core::PWSTR, cchout: u32, pcchret: *mut u32) -> ::windows::core::HRESULT,
    pub DecodeScript: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pchin: ::windows::core::PCWSTR, cchin: u32, pchout: ::windows::core::PWSTR, cchout: u32, pcchret: *mut u32) -> ::windows::core::HRESULT,
    pub GetEncodeProgId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbstrout: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptError(::windows::core::IUnknown);
impl IActiveScriptError {
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn GetExceptionInfo(&self) -> ::windows::core::Result<super::super::Com::EXCEPINFO> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExceptionInfo)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::EXCEPINFO>(result__)
    }
    pub unsafe fn GetSourcePosition(&self, pdwsourcecontext: *mut u32, pullinenumber: *mut u32, plcharacterposition: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourcePosition)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pdwsourcecontext), ::core::mem::transmute(pullinenumber), ::core::mem::transmute(plcharacterposition)).ok()
    }
    pub unsafe fn GetSourceLineText(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSourceLineText)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
}
::windows::core::interface_hierarchy!(IActiveScriptError, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptError {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptError {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptError {}
impl ::core::fmt::Debug for IActiveScriptError {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptError").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptError {
    type Vtable = IActiveScriptError_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptError {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xeae1ba61_a4ed_11cf_8f20_00805f2cd064);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptError_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    #[cfg(feature = "Win32_System_Com")]
    pub GetExceptionInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pexcepinfo: *mut ::core::mem::ManuallyDrop<super::super::Com::EXCEPINFO>) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    GetExceptionInfo: usize,
    pub GetSourcePosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdwsourcecontext: *mut u32, pullinenumber: *mut u32, plcharacterposition: *mut i32) -> ::windows::core::HRESULT,
    pub GetSourceLineText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbstrsourceline: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptError64(::windows::core::IUnknown);
impl IActiveScriptError64 {
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn GetExceptionInfo(&self) -> ::windows::core::Result<super::super::Com::EXCEPINFO> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetExceptionInfo)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::EXCEPINFO>(result__)
    }
    pub unsafe fn GetSourcePosition(&self, pdwsourcecontext: *mut u32, pullinenumber: *mut u32, plcharacterposition: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.GetSourcePosition)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pdwsourcecontext), ::core::mem::transmute(pullinenumber), ::core::mem::transmute(plcharacterposition)).ok()
    }
    pub unsafe fn GetSourceLineText(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetSourceLineText)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetSourcePosition64(&self, pdwsourcecontext: *mut u64, pullinenumber: *mut u32, plcharacterposition: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourcePosition64)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pdwsourcecontext), ::core::mem::transmute(pullinenumber), ::core::mem::transmute(plcharacterposition)).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptError64, ::windows::core::IUnknown, IActiveScriptError);
impl ::core::clone::Clone for IActiveScriptError64 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptError64 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptError64 {}
impl ::core::fmt::Debug for IActiveScriptError64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptError64").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptError64 {
    type Vtable = IActiveScriptError64_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptError64 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb21fb2a1_5b8f_4963_8c21_21450f84ed7f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptError64_Vtbl {
    pub base__: IActiveScriptError_Vtbl,
    pub GetSourcePosition64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdwsourcecontext: *mut u64, pullinenumber: *mut u32, plcharacterposition: *mut i32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptErrorDebug(::windows::core::IUnknown);
impl IActiveScriptErrorDebug {
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn GetExceptionInfo(&self) -> ::windows::core::Result<super::super::Com::EXCEPINFO> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetExceptionInfo)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::EXCEPINFO>(result__)
    }
    pub unsafe fn GetSourcePosition(&self, pdwsourcecontext: *mut u32, pullinenumber: *mut u32, plcharacterposition: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.GetSourcePosition)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pdwsourcecontext), ::core::mem::transmute(pullinenumber), ::core::mem::transmute(plcharacterposition)).ok()
    }
    pub unsafe fn GetSourceLineText(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetSourceLineText)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetDocumentContext(&self) -> ::windows::core::Result<IDebugDocumentContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDocumentContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugDocumentContext>(result__)
    }
    pub unsafe fn GetStackFrame(&self) -> ::windows::core::Result<IDebugStackFrame> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetStackFrame)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugStackFrame>(result__)
    }
}
::windows::core::interface_hierarchy!(IActiveScriptErrorDebug, ::windows::core::IUnknown, IActiveScriptError);
impl ::core::clone::Clone for IActiveScriptErrorDebug {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptErrorDebug {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptErrorDebug {}
impl ::core::fmt::Debug for IActiveScriptErrorDebug {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptErrorDebug").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptErrorDebug {
    type Vtable = IActiveScriptErrorDebug_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptErrorDebug {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c12_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptErrorDebug_Vtbl {
    pub base__: IActiveScriptError_Vtbl,
    pub GetDocumentContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppssc: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetStackFrame: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppdsf: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptErrorDebug110(::windows::core::IUnknown);
impl IActiveScriptErrorDebug110 {
    pub unsafe fn GetExceptionThrownKind(&self) -> ::windows::core::Result<SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExceptionThrownKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND>(result__)
    }
}
::windows::core::interface_hierarchy!(IActiveScriptErrorDebug110, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptErrorDebug110 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptErrorDebug110 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptErrorDebug110 {}
impl ::core::fmt::Debug for IActiveScriptErrorDebug110 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptErrorDebug110").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptErrorDebug110 {
    type Vtable = IActiveScriptErrorDebug110_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptErrorDebug110 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x516e42b6_89a8_4530_937b_5f0708431442);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptErrorDebug110_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetExceptionThrownKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pexceptionkind: *mut SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptGarbageCollector(::windows::core::IUnknown);
impl IActiveScriptGarbageCollector {
    pub unsafe fn CollectGarbage(&self, scriptgctype: SCRIPTGCTYPE) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).CollectGarbage)(::windows::core::Vtable::as_raw(self), scriptgctype).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptGarbageCollector, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptGarbageCollector {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptGarbageCollector {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptGarbageCollector {}
impl ::core::fmt::Debug for IActiveScriptGarbageCollector {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptGarbageCollector").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptGarbageCollector {
    type Vtable = IActiveScriptGarbageCollector_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptGarbageCollector {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6aa2c4a0_2b53_11d4_a2a0_00104bd35090);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptGarbageCollector_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub CollectGarbage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, scriptgctype: SCRIPTGCTYPE) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptHostEncode(::windows::core::IUnknown);
impl IActiveScriptHostEncode {
    pub unsafe fn EncodeScriptHostFile(&self, bstrinfile: &::windows::core::BSTR, pbstroutfile: *mut ::windows::core::BSTR, cflags: u32, bstrdefaultlang: &::windows::core::BSTR) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EncodeScriptHostFile)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute_copy(bstrinfile), ::core::mem::transmute(pbstroutfile), cflags, ::core::mem::transmute_copy(bstrdefaultlang)).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptHostEncode, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptHostEncode {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptHostEncode {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptHostEncode {}
impl ::core::fmt::Debug for IActiveScriptHostEncode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptHostEncode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptHostEncode {
    type Vtable = IActiveScriptHostEncode_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptHostEncode {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbee9b76e_cfe3_11d1_b747_00c04fc2b085);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptHostEncode_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub EncodeScriptHostFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bstrinfile: ::core::mem::ManuallyDrop<::windows::core::BSTR>, pbstroutfile: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>, cflags: u32, bstrdefaultlang: ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptParse32(::windows::core::IUnknown);
impl IActiveScriptParse32 {
    pub unsafe fn InitNew(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).InitNew)(::windows::core::Vtable::as_raw(self)).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn AddScriptlet<'a, P0, P1, P2, P3, P4, P5>(&self, pstrdefaultname: P0, pstrcode: P1, pstritemname: P2, pstrsubitemname: P3, pstreventname: P4, pstrdelimiter: P5, dwsourcecontextcookie: u32, ulstartinglinenumber: u32, dwflags: u32, pbstrname: *mut ::windows::core::BSTR, pexcepinfo: *mut super::super::Com::EXCEPINFO) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
        P3: ::std::convert::Into<::windows::core::PCWSTR>,
        P4: ::std::convert::Into<::windows::core::PCWSTR>,
        P5: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddScriptlet)(::windows::core::Vtable::as_raw(self), pstrdefaultname.into(), pstrcode.into(), pstritemname.into(), pstrsubitemname.into(), pstreventname.into(), pstrdelimiter.into(), dwsourcecontextcookie, ulstartinglinenumber, dwflags, ::core::mem::transmute(pbstrname), ::core::mem::transmute(pexcepinfo)).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn ParseScriptText<'a, P0, P1, P2, P3>(&self, pstrcode: P0, pstritemname: P1, punkcontext: P2, pstrdelimiter: P3, dwsourcecontextcookie: u32, ulstartinglinenumber: u32, dwflags: u32, pvarresult: *mut super::super::Com::VARIANT, pexcepinfo: *mut super::super::Com::EXCEPINFO) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
        P3: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ParseScriptText)(::windows::core::Vtable::as_raw(self), pstrcode.into(), pstritemname.into(), punkcontext.into().abi(), pstrdelimiter.into(), dwsourcecontextcookie, ulstartinglinenumber, dwflags, ::core::mem::transmute(pvarresult), ::core::mem::transmute(pexcepinfo)).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptParse32, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptParse32 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptParse32 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptParse32 {}
impl ::core::fmt::Debug for IActiveScriptParse32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptParse32").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptParse32 {
    type Vtable = IActiveScriptParse32_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptParse32 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbb1a2ae2_a4f9_11cf_8f20_00805f2cd064);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptParse32_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub InitNew: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Com")]
    pub AddScriptlet: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrdefaultname: ::windows::core::PCWSTR, pstrcode: ::windows::core::PCWSTR, pstritemname: ::windows::core::PCWSTR, pstrsubitemname: ::windows::core::PCWSTR, pstreventname: ::windows::core::PCWSTR, pstrdelimiter: ::windows::core::PCWSTR, dwsourcecontextcookie: u32, ulstartinglinenumber: u32, dwflags: u32, pbstrname: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>, pexcepinfo: *mut ::core::mem::ManuallyDrop<super::super::Com::EXCEPINFO>) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    AddScriptlet: usize,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub ParseScriptText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrcode: ::windows::core::PCWSTR, pstritemname: ::windows::core::PCWSTR, punkcontext: *mut ::core::ffi::c_void, pstrdelimiter: ::windows::core::PCWSTR, dwsourcecontextcookie: u32, ulstartinglinenumber: u32, dwflags: u32, pvarresult: *mut ::core::mem::ManuallyDrop<super::super::Com::VARIANT>, pexcepinfo: *mut ::core::mem::ManuallyDrop<super::super::Com::EXCEPINFO>) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
    ParseScriptText: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptParse64(::windows::core::IUnknown);
impl IActiveScriptParse64 {
    pub unsafe fn InitNew(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).InitNew)(::windows::core::Vtable::as_raw(self)).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn AddScriptlet<'a, P0, P1, P2, P3, P4, P5>(&self, pstrdefaultname: P0, pstrcode: P1, pstritemname: P2, pstrsubitemname: P3, pstreventname: P4, pstrdelimiter: P5, dwsourcecontextcookie: u64, ulstartinglinenumber: u32, dwflags: u32, pbstrname: *mut ::windows::core::BSTR, pexcepinfo: *mut super::super::Com::EXCEPINFO) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
        P3: ::std::convert::Into<::windows::core::PCWSTR>,
        P4: ::std::convert::Into<::windows::core::PCWSTR>,
        P5: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddScriptlet)(::windows::core::Vtable::as_raw(self), pstrdefaultname.into(), pstrcode.into(), pstritemname.into(), pstrsubitemname.into(), pstreventname.into(), pstrdelimiter.into(), dwsourcecontextcookie, ulstartinglinenumber, dwflags, ::core::mem::transmute(pbstrname), ::core::mem::transmute(pexcepinfo)).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn ParseScriptText<'a, P0, P1, P2, P3>(&self, pstrcode: P0, pstritemname: P1, punkcontext: P2, pstrdelimiter: P3, dwsourcecontextcookie: u64, ulstartinglinenumber: u32, dwflags: u32, pvarresult: *mut super::super::Com::VARIANT, pexcepinfo: *mut super::super::Com::EXCEPINFO) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
        P3: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ParseScriptText)(::windows::core::Vtable::as_raw(self), pstrcode.into(), pstritemname.into(), punkcontext.into().abi(), pstrdelimiter.into(), dwsourcecontextcookie, ulstartinglinenumber, dwflags, ::core::mem::transmute(pvarresult), ::core::mem::transmute(pexcepinfo)).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptParse64, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptParse64 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptParse64 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptParse64 {}
impl ::core::fmt::Debug for IActiveScriptParse64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptParse64").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptParse64 {
    type Vtable = IActiveScriptParse64_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptParse64 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc7ef7658_e1ee_480e_97ea_d52cb4d76d17);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptParse64_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub InitNew: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Com")]
    pub AddScriptlet: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrdefaultname: ::windows::core::PCWSTR, pstrcode: ::windows::core::PCWSTR, pstritemname: ::windows::core::PCWSTR, pstrsubitemname: ::windows::core::PCWSTR, pstreventname: ::windows::core::PCWSTR, pstrdelimiter: ::windows::core::PCWSTR, dwsourcecontextcookie: u64, ulstartinglinenumber: u32, dwflags: u32, pbstrname: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>, pexcepinfo: *mut ::core::mem::ManuallyDrop<super::super::Com::EXCEPINFO>) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    AddScriptlet: usize,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub ParseScriptText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrcode: ::windows::core::PCWSTR, pstritemname: ::windows::core::PCWSTR, punkcontext: *mut ::core::ffi::c_void, pstrdelimiter: ::windows::core::PCWSTR, dwsourcecontextcookie: u64, ulstartinglinenumber: u32, dwflags: u32, pvarresult: *mut ::core::mem::ManuallyDrop<super::super::Com::VARIANT>, pexcepinfo: *mut ::core::mem::ManuallyDrop<super::super::Com::EXCEPINFO>) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
    ParseScriptText: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptParseProcedure2_32(::windows::core::IUnknown);
impl IActiveScriptParseProcedure2_32 {
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn ParseProcedureText<'a, P0, P1, P2, P3, P4, P5>(&self, pstrcode: P0, pstrformalparams: P1, pstrprocedurename: P2, pstritemname: P3, punkcontext: P4, pstrdelimiter: P5, dwsourcecontextcookie: u32, ulstartinglinenumber: u32, dwflags: u32) -> ::windows::core::Result<super::super::Com::IDispatch>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
        P3: ::std::convert::Into<::windows::core::PCWSTR>,
        P4: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
        P5: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.ParseProcedureText)(::windows::core::Vtable::as_raw(self), pstrcode.into(), pstrformalparams.into(), pstrprocedurename.into(), pstritemname.into(), punkcontext.into().abi(), pstrdelimiter.into(), dwsourcecontextcookie, ulstartinglinenumber, dwflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::IDispatch>(result__)
    }
}
::windows::core::interface_hierarchy!(IActiveScriptParseProcedure2_32, ::windows::core::IUnknown, IActiveScriptParseProcedure32);
impl ::core::clone::Clone for IActiveScriptParseProcedure2_32 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptParseProcedure2_32 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptParseProcedure2_32 {}
impl ::core::fmt::Debug for IActiveScriptParseProcedure2_32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptParseProcedure2_32").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptParseProcedure2_32 {
    type Vtable = IActiveScriptParseProcedure2_32_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptParseProcedure2_32 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x71ee5b20_fb04_11d1_b3a8_00a0c911e8b2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptParseProcedure2_32_Vtbl {
    pub base__: IActiveScriptParseProcedure32_Vtbl,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptParseProcedure2_64(::windows::core::IUnknown);
impl IActiveScriptParseProcedure2_64 {
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn ParseProcedureText<'a, P0, P1, P2, P3, P4, P5>(&self, pstrcode: P0, pstrformalparams: P1, pstrprocedurename: P2, pstritemname: P3, punkcontext: P4, pstrdelimiter: P5, dwsourcecontextcookie: u64, ulstartinglinenumber: u32, dwflags: u32) -> ::windows::core::Result<super::super::Com::IDispatch>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
        P3: ::std::convert::Into<::windows::core::PCWSTR>,
        P4: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
        P5: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.ParseProcedureText)(::windows::core::Vtable::as_raw(self), pstrcode.into(), pstrformalparams.into(), pstrprocedurename.into(), pstritemname.into(), punkcontext.into().abi(), pstrdelimiter.into(), dwsourcecontextcookie, ulstartinglinenumber, dwflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::IDispatch>(result__)
    }
}
::windows::core::interface_hierarchy!(IActiveScriptParseProcedure2_64, ::windows::core::IUnknown, IActiveScriptParseProcedure64);
impl ::core::clone::Clone for IActiveScriptParseProcedure2_64 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptParseProcedure2_64 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptParseProcedure2_64 {}
impl ::core::fmt::Debug for IActiveScriptParseProcedure2_64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptParseProcedure2_64").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptParseProcedure2_64 {
    type Vtable = IActiveScriptParseProcedure2_64_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptParseProcedure2_64 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfe7c4271_210c_448d_9f54_76dab7047b28);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptParseProcedure2_64_Vtbl {
    pub base__: IActiveScriptParseProcedure64_Vtbl,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptParseProcedure32(::windows::core::IUnknown);
impl IActiveScriptParseProcedure32 {
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn ParseProcedureText<'a, P0, P1, P2, P3, P4, P5>(&self, pstrcode: P0, pstrformalparams: P1, pstrprocedurename: P2, pstritemname: P3, punkcontext: P4, pstrdelimiter: P5, dwsourcecontextcookie: u32, ulstartinglinenumber: u32, dwflags: u32) -> ::windows::core::Result<super::super::Com::IDispatch>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
        P3: ::std::convert::Into<::windows::core::PCWSTR>,
        P4: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
        P5: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ParseProcedureText)(::windows::core::Vtable::as_raw(self), pstrcode.into(), pstrformalparams.into(), pstrprocedurename.into(), pstritemname.into(), punkcontext.into().abi(), pstrdelimiter.into(), dwsourcecontextcookie, ulstartinglinenumber, dwflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::IDispatch>(result__)
    }
}
::windows::core::interface_hierarchy!(IActiveScriptParseProcedure32, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptParseProcedure32 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptParseProcedure32 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptParseProcedure32 {}
impl ::core::fmt::Debug for IActiveScriptParseProcedure32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptParseProcedure32").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptParseProcedure32 {
    type Vtable = IActiveScriptParseProcedure32_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptParseProcedure32 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xaa5b6a80_b834_11d0_932f_00a0c90dcaa9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptParseProcedure32_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    #[cfg(feature = "Win32_System_Com")]
    pub ParseProcedureText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrcode: ::windows::core::PCWSTR, pstrformalparams: ::windows::core::PCWSTR, pstrprocedurename: ::windows::core::PCWSTR, pstritemname: ::windows::core::PCWSTR, punkcontext: *mut ::core::ffi::c_void, pstrdelimiter: ::windows::core::PCWSTR, dwsourcecontextcookie: u32, ulstartinglinenumber: u32, dwflags: u32, ppdisp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    ParseProcedureText: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptParseProcedure64(::windows::core::IUnknown);
impl IActiveScriptParseProcedure64 {
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn ParseProcedureText<'a, P0, P1, P2, P3, P4, P5>(&self, pstrcode: P0, pstrformalparams: P1, pstrprocedurename: P2, pstritemname: P3, punkcontext: P4, pstrdelimiter: P5, dwsourcecontextcookie: u64, ulstartinglinenumber: u32, dwflags: u32) -> ::windows::core::Result<super::super::Com::IDispatch>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
        P3: ::std::convert::Into<::windows::core::PCWSTR>,
        P4: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
        P5: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ParseProcedureText)(::windows::core::Vtable::as_raw(self), pstrcode.into(), pstrformalparams.into(), pstrprocedurename.into(), pstritemname.into(), punkcontext.into().abi(), pstrdelimiter.into(), dwsourcecontextcookie, ulstartinglinenumber, dwflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::IDispatch>(result__)
    }
}
::windows::core::interface_hierarchy!(IActiveScriptParseProcedure64, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptParseProcedure64 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptParseProcedure64 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptParseProcedure64 {}
impl ::core::fmt::Debug for IActiveScriptParseProcedure64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptParseProcedure64").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptParseProcedure64 {
    type Vtable = IActiveScriptParseProcedure64_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptParseProcedure64 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc64713b6_e029_4cc5_9200_438b72890b6a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptParseProcedure64_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    #[cfg(feature = "Win32_System_Com")]
    pub ParseProcedureText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrcode: ::windows::core::PCWSTR, pstrformalparams: ::windows::core::PCWSTR, pstrprocedurename: ::windows::core::PCWSTR, pstritemname: ::windows::core::PCWSTR, punkcontext: *mut ::core::ffi::c_void, pstrdelimiter: ::windows::core::PCWSTR, dwsourcecontextcookie: u64, ulstartinglinenumber: u32, dwflags: u32, ppdisp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    ParseProcedureText: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptParseProcedureOld32(::windows::core::IUnknown);
impl IActiveScriptParseProcedureOld32 {
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn ParseProcedureText<'a, P0, P1, P2, P3, P4>(&self, pstrcode: P0, pstrformalparams: P1, pstritemname: P2, punkcontext: P3, pstrdelimiter: P4, dwsourcecontextcookie: u32, ulstartinglinenumber: u32, dwflags: u32) -> ::windows::core::Result<super::super::Com::IDispatch>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
        P3: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
        P4: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ParseProcedureText)(::windows::core::Vtable::as_raw(self), pstrcode.into(), pstrformalparams.into(), pstritemname.into(), punkcontext.into().abi(), pstrdelimiter.into(), dwsourcecontextcookie, ulstartinglinenumber, dwflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::IDispatch>(result__)
    }
}
::windows::core::interface_hierarchy!(IActiveScriptParseProcedureOld32, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptParseProcedureOld32 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptParseProcedureOld32 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptParseProcedureOld32 {}
impl ::core::fmt::Debug for IActiveScriptParseProcedureOld32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptParseProcedureOld32").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptParseProcedureOld32 {
    type Vtable = IActiveScriptParseProcedureOld32_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptParseProcedureOld32 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1cff0050_6fdd_11d0_9328_00a0c90dcaa9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptParseProcedureOld32_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    #[cfg(feature = "Win32_System_Com")]
    pub ParseProcedureText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrcode: ::windows::core::PCWSTR, pstrformalparams: ::windows::core::PCWSTR, pstritemname: ::windows::core::PCWSTR, punkcontext: *mut ::core::ffi::c_void, pstrdelimiter: ::windows::core::PCWSTR, dwsourcecontextcookie: u32, ulstartinglinenumber: u32, dwflags: u32, ppdisp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    ParseProcedureText: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptParseProcedureOld64(::windows::core::IUnknown);
impl IActiveScriptParseProcedureOld64 {
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn ParseProcedureText<'a, P0, P1, P2, P3, P4>(&self, pstrcode: P0, pstrformalparams: P1, pstritemname: P2, punkcontext: P3, pstrdelimiter: P4, dwsourcecontextcookie: u64, ulstartinglinenumber: u32, dwflags: u32) -> ::windows::core::Result<super::super::Com::IDispatch>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
        P3: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
        P4: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ParseProcedureText)(::windows::core::Vtable::as_raw(self), pstrcode.into(), pstrformalparams.into(), pstritemname.into(), punkcontext.into().abi(), pstrdelimiter.into(), dwsourcecontextcookie, ulstartinglinenumber, dwflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::IDispatch>(result__)
    }
}
::windows::core::interface_hierarchy!(IActiveScriptParseProcedureOld64, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptParseProcedureOld64 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptParseProcedureOld64 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptParseProcedureOld64 {}
impl ::core::fmt::Debug for IActiveScriptParseProcedureOld64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptParseProcedureOld64").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptParseProcedureOld64 {
    type Vtable = IActiveScriptParseProcedureOld64_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptParseProcedureOld64 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x21f57128_08c9_4638_ba12_22d15d88dc5c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptParseProcedureOld64_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    #[cfg(feature = "Win32_System_Com")]
    pub ParseProcedureText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrcode: ::windows::core::PCWSTR, pstrformalparams: ::windows::core::PCWSTR, pstritemname: ::windows::core::PCWSTR, punkcontext: *mut ::core::ffi::c_void, pstrdelimiter: ::windows::core::PCWSTR, dwsourcecontextcookie: u64, ulstartinglinenumber: u32, dwflags: u32, ppdisp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    ParseProcedureText: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptProfilerCallback(::windows::core::IUnknown);
impl IActiveScriptProfilerCallback {
    pub unsafe fn Initialize(&self, dwcontext: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Initialize)(::windows::core::Vtable::as_raw(self), dwcontext).ok()
    }
    pub unsafe fn Shutdown(&self, hrreason: ::windows::core::HRESULT) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Shutdown)(::windows::core::Vtable::as_raw(self), hrreason).ok()
    }
    pub unsafe fn ScriptCompiled<'a, P0>(&self, scriptid: i32, r#type: PROFILER_SCRIPT_TYPE, pidebugdocumentcontext: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
    {
        (::windows::core::Vtable::vtable(self).ScriptCompiled)(::windows::core::Vtable::as_raw(self), scriptid, r#type, pidebugdocumentcontext.into().abi()).ok()
    }
    pub unsafe fn FunctionCompiled<'a, P0, P1, P2>(&self, functionid: i32, scriptid: i32, pwszfunctionname: P0, pwszfunctionnamehint: P1, pidebugdocumentcontext: P2) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
    {
        (::windows::core::Vtable::vtable(self).FunctionCompiled)(::windows::core::Vtable::as_raw(self), functionid, scriptid, pwszfunctionname.into(), pwszfunctionnamehint.into(), pidebugdocumentcontext.into().abi()).ok()
    }
    pub unsafe fn OnFunctionEnter(&self, scriptid: i32, functionid: i32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OnFunctionEnter)(::windows::core::Vtable::as_raw(self), scriptid, functionid).ok()
    }
    pub unsafe fn OnFunctionExit(&self, scriptid: i32, functionid: i32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OnFunctionExit)(::windows::core::Vtable::as_raw(self), scriptid, functionid).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptProfilerCallback, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptProfilerCallback {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptProfilerCallback {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptProfilerCallback {}
impl ::core::fmt::Debug for IActiveScriptProfilerCallback {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptProfilerCallback").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptProfilerCallback {
    type Vtable = IActiveScriptProfilerCallback_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptProfilerCallback {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x740eca23_7d9d_42e5_ba9d_f8b24b1c7a9b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptProfilerCallback_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Initialize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwcontext: u32) -> ::windows::core::HRESULT,
    pub Shutdown: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hrreason: ::windows::core::HRESULT) -> ::windows::core::HRESULT,
    pub ScriptCompiled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, scriptid: i32, r#type: PROFILER_SCRIPT_TYPE, pidebugdocumentcontext: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub FunctionCompiled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, functionid: i32, scriptid: i32, pwszfunctionname: ::windows::core::PCWSTR, pwszfunctionnamehint: ::windows::core::PCWSTR, pidebugdocumentcontext: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnFunctionEnter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, scriptid: i32, functionid: i32) -> ::windows::core::HRESULT,
    pub OnFunctionExit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, scriptid: i32, functionid: i32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptProfilerCallback2(::windows::core::IUnknown);
impl IActiveScriptProfilerCallback2 {
    pub unsafe fn Initialize(&self, dwcontext: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.Initialize)(::windows::core::Vtable::as_raw(self), dwcontext).ok()
    }
    pub unsafe fn Shutdown(&self, hrreason: ::windows::core::HRESULT) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.Shutdown)(::windows::core::Vtable::as_raw(self), hrreason).ok()
    }
    pub unsafe fn ScriptCompiled<'a, P0>(&self, scriptid: i32, r#type: PROFILER_SCRIPT_TYPE, pidebugdocumentcontext: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
    {
        (::windows::core::Vtable::vtable(self).base__.ScriptCompiled)(::windows::core::Vtable::as_raw(self), scriptid, r#type, pidebugdocumentcontext.into().abi()).ok()
    }
    pub unsafe fn FunctionCompiled<'a, P0, P1, P2>(&self, functionid: i32, scriptid: i32, pwszfunctionname: P0, pwszfunctionnamehint: P1, pidebugdocumentcontext: P2) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
    {
        (::windows::core::Vtable::vtable(self).base__.FunctionCompiled)(::windows::core::Vtable::as_raw(self), functionid, scriptid, pwszfunctionname.into(), pwszfunctionnamehint.into(), pidebugdocumentcontext.into().abi()).ok()
    }
    pub unsafe fn OnFunctionEnter(&self, scriptid: i32, functionid: i32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.OnFunctionEnter)(::windows::core::Vtable::as_raw(self), scriptid, functionid).ok()
    }
    pub unsafe fn OnFunctionExit(&self, scriptid: i32, functionid: i32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.OnFunctionExit)(::windows::core::Vtable::as_raw(self), scriptid, functionid).ok()
    }
    pub unsafe fn OnFunctionEnterByName<'a, P0>(&self, pwszfunctionname: P0, r#type: PROFILER_SCRIPT_TYPE) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OnFunctionEnterByName)(::windows::core::Vtable::as_raw(self), pwszfunctionname.into(), r#type).ok()
    }
    pub unsafe fn OnFunctionExitByName<'a, P0>(&self, pwszfunctionname: P0, r#type: PROFILER_SCRIPT_TYPE) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OnFunctionExitByName)(::windows::core::Vtable::as_raw(self), pwszfunctionname.into(), r#type).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptProfilerCallback2, ::windows::core::IUnknown, IActiveScriptProfilerCallback);
impl ::core::clone::Clone for IActiveScriptProfilerCallback2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptProfilerCallback2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptProfilerCallback2 {}
impl ::core::fmt::Debug for IActiveScriptProfilerCallback2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptProfilerCallback2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptProfilerCallback2 {
    type Vtable = IActiveScriptProfilerCallback2_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptProfilerCallback2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x31b7f8ad_a637_409c_b22f_040995b6103d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptProfilerCallback2_Vtbl {
    pub base__: IActiveScriptProfilerCallback_Vtbl,
    pub OnFunctionEnterByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pwszfunctionname: ::windows::core::PCWSTR, r#type: PROFILER_SCRIPT_TYPE) -> ::windows::core::HRESULT,
    pub OnFunctionExitByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pwszfunctionname: ::windows::core::PCWSTR, r#type: PROFILER_SCRIPT_TYPE) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptProfilerCallback3(::windows::core::IUnknown);
impl IActiveScriptProfilerCallback3 {
    pub unsafe fn Initialize(&self, dwcontext: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.base__.Initialize)(::windows::core::Vtable::as_raw(self), dwcontext).ok()
    }
    pub unsafe fn Shutdown(&self, hrreason: ::windows::core::HRESULT) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.base__.Shutdown)(::windows::core::Vtable::as_raw(self), hrreason).ok()
    }
    pub unsafe fn ScriptCompiled<'a, P0>(&self, scriptid: i32, r#type: PROFILER_SCRIPT_TYPE, pidebugdocumentcontext: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
    {
        (::windows::core::Vtable::vtable(self).base__.base__.ScriptCompiled)(::windows::core::Vtable::as_raw(self), scriptid, r#type, pidebugdocumentcontext.into().abi()).ok()
    }
    pub unsafe fn FunctionCompiled<'a, P0, P1, P2>(&self, functionid: i32, scriptid: i32, pwszfunctionname: P0, pwszfunctionnamehint: P1, pidebugdocumentcontext: P2) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
    {
        (::windows::core::Vtable::vtable(self).base__.base__.FunctionCompiled)(::windows::core::Vtable::as_raw(self), functionid, scriptid, pwszfunctionname.into(), pwszfunctionnamehint.into(), pidebugdocumentcontext.into().abi()).ok()
    }
    pub unsafe fn OnFunctionEnter(&self, scriptid: i32, functionid: i32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.base__.OnFunctionEnter)(::windows::core::Vtable::as_raw(self), scriptid, functionid).ok()
    }
    pub unsafe fn OnFunctionExit(&self, scriptid: i32, functionid: i32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.base__.OnFunctionExit)(::windows::core::Vtable::as_raw(self), scriptid, functionid).ok()
    }
    pub unsafe fn OnFunctionEnterByName<'a, P0>(&self, pwszfunctionname: P0, r#type: PROFILER_SCRIPT_TYPE) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).base__.OnFunctionEnterByName)(::windows::core::Vtable::as_raw(self), pwszfunctionname.into(), r#type).ok()
    }
    pub unsafe fn OnFunctionExitByName<'a, P0>(&self, pwszfunctionname: P0, r#type: PROFILER_SCRIPT_TYPE) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).base__.OnFunctionExitByName)(::windows::core::Vtable::as_raw(self), pwszfunctionname.into(), r#type).ok()
    }
    pub unsafe fn SetWebWorkerId(&self, webworkerid: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetWebWorkerId)(::windows::core::Vtable::as_raw(self), webworkerid).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptProfilerCallback3, ::windows::core::IUnknown, IActiveScriptProfilerCallback, IActiveScriptProfilerCallback2);
impl ::core::clone::Clone for IActiveScriptProfilerCallback3 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptProfilerCallback3 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptProfilerCallback3 {}
impl ::core::fmt::Debug for IActiveScriptProfilerCallback3 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptProfilerCallback3").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptProfilerCallback3 {
    type Vtable = IActiveScriptProfilerCallback3_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptProfilerCallback3 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6ac5ad25_2037_4687_91df_b59979d93d73);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptProfilerCallback3_Vtbl {
    pub base__: IActiveScriptProfilerCallback2_Vtbl,
    pub SetWebWorkerId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, webworkerid: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptProfilerControl(::windows::core::IUnknown);
impl IActiveScriptProfilerControl {
    pub unsafe fn StartProfiling(&self, clsidprofilerobject: *const ::windows::core::GUID, dweventmask: u32, dwcontext: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).StartProfiling)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(clsidprofilerobject), dweventmask, dwcontext).ok()
    }
    pub unsafe fn SetProfilerEventMask(&self, dweventmask: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetProfilerEventMask)(::windows::core::Vtable::as_raw(self), dweventmask).ok()
    }
    pub unsafe fn StopProfiling(&self, hrshutdownreason: ::windows::core::HRESULT) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).StopProfiling)(::windows::core::Vtable::as_raw(self), hrshutdownreason).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptProfilerControl, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptProfilerControl {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptProfilerControl {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptProfilerControl {}
impl ::core::fmt::Debug for IActiveScriptProfilerControl {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptProfilerControl").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptProfilerControl {
    type Vtable = IActiveScriptProfilerControl_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptProfilerControl {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x784b5ff0_69b0_47d1_a7dc_2518f4230e90);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptProfilerControl_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub StartProfiling: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, clsidprofilerobject: *const ::windows::core::GUID, dweventmask: u32, dwcontext: u32) -> ::windows::core::HRESULT,
    pub SetProfilerEventMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dweventmask: u32) -> ::windows::core::HRESULT,
    pub StopProfiling: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hrshutdownreason: ::windows::core::HRESULT) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptProfilerControl2(::windows::core::IUnknown);
impl IActiveScriptProfilerControl2 {
    pub unsafe fn StartProfiling(&self, clsidprofilerobject: *const ::windows::core::GUID, dweventmask: u32, dwcontext: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.StartProfiling)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(clsidprofilerobject), dweventmask, dwcontext).ok()
    }
    pub unsafe fn SetProfilerEventMask(&self, dweventmask: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.SetProfilerEventMask)(::windows::core::Vtable::as_raw(self), dweventmask).ok()
    }
    pub unsafe fn StopProfiling(&self, hrshutdownreason: ::windows::core::HRESULT) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.StopProfiling)(::windows::core::Vtable::as_raw(self), hrshutdownreason).ok()
    }
    pub unsafe fn CompleteProfilerStart(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).CompleteProfilerStart)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn PrepareProfilerStop(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).PrepareProfilerStop)(::windows::core::Vtable::as_raw(self)).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptProfilerControl2, ::windows::core::IUnknown, IActiveScriptProfilerControl);
impl ::core::clone::Clone for IActiveScriptProfilerControl2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptProfilerControl2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptProfilerControl2 {}
impl ::core::fmt::Debug for IActiveScriptProfilerControl2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptProfilerControl2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptProfilerControl2 {
    type Vtable = IActiveScriptProfilerControl2_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptProfilerControl2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x47810165_498f_40be_94f1_653557e9e7da);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptProfilerControl2_Vtbl {
    pub base__: IActiveScriptProfilerControl_Vtbl,
    pub CompleteProfilerStart: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub PrepareProfilerStop: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptProfilerControl3(::windows::core::IUnknown);
impl IActiveScriptProfilerControl3 {
    pub unsafe fn StartProfiling(&self, clsidprofilerobject: *const ::windows::core::GUID, dweventmask: u32, dwcontext: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.base__.StartProfiling)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(clsidprofilerobject), dweventmask, dwcontext).ok()
    }
    pub unsafe fn SetProfilerEventMask(&self, dweventmask: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.base__.SetProfilerEventMask)(::windows::core::Vtable::as_raw(self), dweventmask).ok()
    }
    pub unsafe fn StopProfiling(&self, hrshutdownreason: ::windows::core::HRESULT) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.base__.StopProfiling)(::windows::core::Vtable::as_raw(self), hrshutdownreason).ok()
    }
    pub unsafe fn CompleteProfilerStart(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.CompleteProfilerStart)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn PrepareProfilerStop(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.PrepareProfilerStop)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn EnumHeap(&self) -> ::windows::core::Result<IActiveScriptProfilerHeapEnum> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumHeap)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IActiveScriptProfilerHeapEnum>(result__)
    }
}
::windows::core::interface_hierarchy!(IActiveScriptProfilerControl3, ::windows::core::IUnknown, IActiveScriptProfilerControl, IActiveScriptProfilerControl2);
impl ::core::clone::Clone for IActiveScriptProfilerControl3 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptProfilerControl3 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptProfilerControl3 {}
impl ::core::fmt::Debug for IActiveScriptProfilerControl3 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptProfilerControl3").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptProfilerControl3 {
    type Vtable = IActiveScriptProfilerControl3_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptProfilerControl3 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0b403015_f381_4023_a5d0_6fed076de716);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptProfilerControl3_Vtbl {
    pub base__: IActiveScriptProfilerControl2_Vtbl,
    pub EnumHeap: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptProfilerControl4(::windows::core::IUnknown);
impl IActiveScriptProfilerControl4 {
    pub unsafe fn StartProfiling(&self, clsidprofilerobject: *const ::windows::core::GUID, dweventmask: u32, dwcontext: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.base__.base__.StartProfiling)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(clsidprofilerobject), dweventmask, dwcontext).ok()
    }
    pub unsafe fn SetProfilerEventMask(&self, dweventmask: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.base__.base__.SetProfilerEventMask)(::windows::core::Vtable::as_raw(self), dweventmask).ok()
    }
    pub unsafe fn StopProfiling(&self, hrshutdownreason: ::windows::core::HRESULT) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.base__.base__.StopProfiling)(::windows::core::Vtable::as_raw(self), hrshutdownreason).ok()
    }
    pub unsafe fn CompleteProfilerStart(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.base__.CompleteProfilerStart)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn PrepareProfilerStop(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.base__.PrepareProfilerStop)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn EnumHeap(&self) -> ::windows::core::Result<IActiveScriptProfilerHeapEnum> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.EnumHeap)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IActiveScriptProfilerHeapEnum>(result__)
    }
    pub unsafe fn SummarizeHeap(&self, heapsummary: *mut PROFILER_HEAP_SUMMARY) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SummarizeHeap)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(heapsummary)).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptProfilerControl4, ::windows::core::IUnknown, IActiveScriptProfilerControl, IActiveScriptProfilerControl2, IActiveScriptProfilerControl3);
impl ::core::clone::Clone for IActiveScriptProfilerControl4 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptProfilerControl4 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptProfilerControl4 {}
impl ::core::fmt::Debug for IActiveScriptProfilerControl4 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptProfilerControl4").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptProfilerControl4 {
    type Vtable = IActiveScriptProfilerControl4_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptProfilerControl4 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x160f94fd_9dbc_40d4_9eac_2b71db3132f4);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptProfilerControl4_Vtbl {
    pub base__: IActiveScriptProfilerControl3_Vtbl,
    pub SummarizeHeap: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, heapsummary: *mut PROFILER_HEAP_SUMMARY) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptProfilerControl5(::windows::core::IUnknown);
impl IActiveScriptProfilerControl5 {
    pub unsafe fn StartProfiling(&self, clsidprofilerobject: *const ::windows::core::GUID, dweventmask: u32, dwcontext: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.base__.base__.base__.StartProfiling)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(clsidprofilerobject), dweventmask, dwcontext).ok()
    }
    pub unsafe fn SetProfilerEventMask(&self, dweventmask: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.base__.base__.base__.SetProfilerEventMask)(::windows::core::Vtable::as_raw(self), dweventmask).ok()
    }
    pub unsafe fn StopProfiling(&self, hrshutdownreason: ::windows::core::HRESULT) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.base__.base__.base__.StopProfiling)(::windows::core::Vtable::as_raw(self), hrshutdownreason).ok()
    }
    pub unsafe fn CompleteProfilerStart(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.base__.base__.CompleteProfilerStart)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn PrepareProfilerStop(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.base__.base__.PrepareProfilerStop)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn EnumHeap(&self) -> ::windows::core::Result<IActiveScriptProfilerHeapEnum> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.EnumHeap)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IActiveScriptProfilerHeapEnum>(result__)
    }
    pub unsafe fn SummarizeHeap(&self, heapsummary: *mut PROFILER_HEAP_SUMMARY) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.SummarizeHeap)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(heapsummary)).ok()
    }
    pub unsafe fn EnumHeap2(&self, enumflags: PROFILER_HEAP_ENUM_FLAGS) -> ::windows::core::Result<IActiveScriptProfilerHeapEnum> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumHeap2)(::windows::core::Vtable::as_raw(self), enumflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IActiveScriptProfilerHeapEnum>(result__)
    }
}
::windows::core::interface_hierarchy!(IActiveScriptProfilerControl5, ::windows::core::IUnknown, IActiveScriptProfilerControl, IActiveScriptProfilerControl2, IActiveScriptProfilerControl3, IActiveScriptProfilerControl4);
impl ::core::clone::Clone for IActiveScriptProfilerControl5 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptProfilerControl5 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptProfilerControl5 {}
impl ::core::fmt::Debug for IActiveScriptProfilerControl5 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptProfilerControl5").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptProfilerControl5 {
    type Vtable = IActiveScriptProfilerControl5_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptProfilerControl5 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1c01a2d1_8f0f_46a5_9720_0d7ed2c62f0a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptProfilerControl5_Vtbl {
    pub base__: IActiveScriptProfilerControl4_Vtbl,
    pub EnumHeap2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enumflags: PROFILER_HEAP_ENUM_FLAGS, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptProfilerHeapEnum(::windows::core::IUnknown);
impl IActiveScriptProfilerHeapEnum {
    pub unsafe fn Next(&self, heapobjects: &mut [*mut PROFILER_HEAP_OBJECT], pceltfetched: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Next)(::windows::core::Vtable::as_raw(self), heapobjects.len() as _, ::core::mem::transmute(heapobjects.as_ptr()), ::core::mem::transmute(pceltfetched)).ok()
    }
    pub unsafe fn GetOptionalInfo(&self, heapobject: *const PROFILER_HEAP_OBJECT, optionalinfo: &mut [PROFILER_HEAP_OBJECT_OPTIONAL_INFO]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOptionalInfo)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(heapobject), optionalinfo.len() as _, ::core::mem::transmute(optionalinfo.as_ptr())).ok()
    }
    pub unsafe fn FreeObjectAndOptionalInfo(&self, heapobjects: &[*const PROFILER_HEAP_OBJECT]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).FreeObjectAndOptionalInfo)(::windows::core::Vtable::as_raw(self), heapobjects.len() as _, ::core::mem::transmute(heapobjects.as_ptr())).ok()
    }
    pub unsafe fn GetNameIdMap(&self, pnamelist: *mut *mut *mut ::windows::core::PWSTR, pcelt: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNameIdMap)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pnamelist), ::core::mem::transmute(pcelt)).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptProfilerHeapEnum, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptProfilerHeapEnum {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptProfilerHeapEnum {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptProfilerHeapEnum {}
impl ::core::fmt::Debug for IActiveScriptProfilerHeapEnum {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptProfilerHeapEnum").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptProfilerHeapEnum {
    type Vtable = IActiveScriptProfilerHeapEnum_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptProfilerHeapEnum {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x32e4694e_0d37_419b_b93d_fa20ded6e8ea);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptProfilerHeapEnum_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Next: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32, heapobjects: *mut *mut PROFILER_HEAP_OBJECT, pceltfetched: *mut u32) -> ::windows::core::HRESULT,
    pub GetOptionalInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, heapobject: *const PROFILER_HEAP_OBJECT, celt: u32, optionalinfo: *mut PROFILER_HEAP_OBJECT_OPTIONAL_INFO) -> ::windows::core::HRESULT,
    pub FreeObjectAndOptionalInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32, heapobjects: *const *const PROFILER_HEAP_OBJECT) -> ::windows::core::HRESULT,
    pub GetNameIdMap: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pnamelist: *mut *mut *mut ::windows::core::PWSTR, pcelt: *mut u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptProperty(::windows::core::IUnknown);
impl IActiveScriptProperty {
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn GetProperty(&self, dwproperty: u32, pvarindex: *const super::super::Com::VARIANT) -> ::windows::core::Result<super::super::Com::VARIANT> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProperty)(::windows::core::Vtable::as_raw(self), dwproperty, ::core::mem::transmute(pvarindex), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::VARIANT>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn SetProperty(&self, dwproperty: u32, pvarindex: *const super::super::Com::VARIANT, pvarvalue: *const super::super::Com::VARIANT) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetProperty)(::windows::core::Vtable::as_raw(self), dwproperty, ::core::mem::transmute(pvarindex), ::core::mem::transmute(pvarvalue)).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptProperty, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptProperty {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptProperty {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptProperty {}
impl ::core::fmt::Debug for IActiveScriptProperty {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptProperty").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptProperty {
    type Vtable = IActiveScriptProperty_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptProperty {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4954e0d0_fbc7_11d1_8410_006008c3fbfc);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptProperty_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub GetProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwproperty: u32, pvarindex: *const ::core::mem::ManuallyDrop<super::super::Com::VARIANT>, pvarvalue: *mut ::core::mem::ManuallyDrop<super::super::Com::VARIANT>) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
    GetProperty: usize,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub SetProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwproperty: u32, pvarindex: *const ::core::mem::ManuallyDrop<super::super::Com::VARIANT>, pvarvalue: *const ::core::mem::ManuallyDrop<super::super::Com::VARIANT>) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
    SetProperty: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptSIPInfo(::windows::core::IUnknown);
impl IActiveScriptSIPInfo {
    pub unsafe fn GetSIPOID(&self) -> ::windows::core::Result<::windows::core::GUID> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSIPOID)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__)
    }
}
::windows::core::interface_hierarchy!(IActiveScriptSIPInfo, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptSIPInfo {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptSIPInfo {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptSIPInfo {}
impl ::core::fmt::Debug for IActiveScriptSIPInfo {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptSIPInfo").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptSIPInfo {
    type Vtable = IActiveScriptSIPInfo_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptSIPInfo {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x764651d0_38de_11d4_a2a3_00104bd35090);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptSIPInfo_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetSIPOID: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, poid_sip: *mut ::windows::core::GUID) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptSite(::windows::core::IUnknown);
impl IActiveScriptSite {
    pub unsafe fn GetLCID(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetLCID)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn GetItemInfo<'a, P0>(&self, pstrname: P0, dwreturnmask: u32, ppiunkitem: *mut ::core::option::Option<::windows::core::IUnknown>, ppti: *mut ::core::option::Option<super::super::Com::ITypeInfo>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetItemInfo)(::windows::core::Vtable::as_raw(self), pstrname.into(), dwreturnmask, ::core::mem::transmute(ppiunkitem), ::core::mem::transmute(ppti)).ok()
    }
    pub unsafe fn GetDocVersionString(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDocVersionString)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn OnScriptTerminate(&self, pvarresult: *const super::super::Com::VARIANT, pexcepinfo: *const super::super::Com::EXCEPINFO) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OnScriptTerminate)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pvarresult), ::core::mem::transmute(pexcepinfo)).ok()
    }
    pub unsafe fn OnStateChange(&self, ssscriptstate: SCRIPTSTATE) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OnStateChange)(::windows::core::Vtable::as_raw(self), ssscriptstate).ok()
    }
    pub unsafe fn OnScriptError<'a, P0>(&self, pscripterror: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IActiveScriptError>>,
    {
        (::windows::core::Vtable::vtable(self).OnScriptError)(::windows::core::Vtable::as_raw(self), pscripterror.into().abi()).ok()
    }
    pub unsafe fn OnEnterScript(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OnEnterScript)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn OnLeaveScript(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OnLeaveScript)(::windows::core::Vtable::as_raw(self)).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptSite, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptSite {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptSite {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptSite {}
impl ::core::fmt::Debug for IActiveScriptSite {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptSite").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptSite {
    type Vtable = IActiveScriptSite_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptSite {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdb01a1e3_a42b_11cf_8f20_00805f2cd064);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptSite_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetLCID: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, plcid: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Com")]
    pub GetItemInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrname: ::windows::core::PCWSTR, dwreturnmask: u32, ppiunkitem: *mut *mut ::core::ffi::c_void, ppti: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    GetItemInfo: usize,
    pub GetDocVersionString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbstrversion: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub OnScriptTerminate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pvarresult: *const ::core::mem::ManuallyDrop<super::super::Com::VARIANT>, pexcepinfo: *const ::core::mem::ManuallyDrop<super::super::Com::EXCEPINFO>) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
    OnScriptTerminate: usize,
    pub OnStateChange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ssscriptstate: SCRIPTSTATE) -> ::windows::core::HRESULT,
    pub OnScriptError: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pscripterror: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnEnterScript: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnLeaveScript: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptSiteDebug32(::windows::core::IUnknown);
impl IActiveScriptSiteDebug32 {
    pub unsafe fn GetDocumentContextFromPosition(&self, dwsourcecontext: u32, ucharacteroffset: u32, unumchars: u32) -> ::windows::core::Result<IDebugDocumentContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDocumentContextFromPosition)(::windows::core::Vtable::as_raw(self), dwsourcecontext, ucharacteroffset, unumchars, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugDocumentContext>(result__)
    }
    pub unsafe fn GetApplication(&self) -> ::windows::core::Result<IDebugApplication32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetApplication)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplication32>(result__)
    }
    pub unsafe fn GetRootApplicationNode(&self) -> ::windows::core::Result<IDebugApplicationNode> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRootApplicationNode)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplicationNode>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OnScriptErrorDebug<'a, P0>(&self, perrordebug: P0, pfenterdebugger: *mut super::super::super::Foundation::BOOL, pfcallonscripterrorwhencontinuing: *mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IActiveScriptErrorDebug>>,
    {
        (::windows::core::Vtable::vtable(self).OnScriptErrorDebug)(::windows::core::Vtable::as_raw(self), perrordebug.into().abi(), ::core::mem::transmute(pfenterdebugger), ::core::mem::transmute(pfcallonscripterrorwhencontinuing)).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptSiteDebug32, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptSiteDebug32 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptSiteDebug32 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptSiteDebug32 {}
impl ::core::fmt::Debug for IActiveScriptSiteDebug32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptSiteDebug32").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptSiteDebug32 {
    type Vtable = IActiveScriptSiteDebug32_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptSiteDebug32 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c11_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptSiteDebug32_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetDocumentContextFromPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwsourcecontext: u32, ucharacteroffset: u32, unumchars: u32, ppsc: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetApplication: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppda: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetRootApplicationNode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppdanroot: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub OnScriptErrorDebug: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, perrordebug: *mut ::core::ffi::c_void, pfenterdebugger: *mut super::super::super::Foundation::BOOL, pfcallonscripterrorwhencontinuing: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OnScriptErrorDebug: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptSiteDebug64(::windows::core::IUnknown);
impl IActiveScriptSiteDebug64 {
    pub unsafe fn GetDocumentContextFromPosition(&self, dwsourcecontext: u64, ucharacteroffset: u32, unumchars: u32) -> ::windows::core::Result<IDebugDocumentContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDocumentContextFromPosition)(::windows::core::Vtable::as_raw(self), dwsourcecontext, ucharacteroffset, unumchars, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugDocumentContext>(result__)
    }
    pub unsafe fn GetApplication(&self) -> ::windows::core::Result<IDebugApplication64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetApplication)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplication64>(result__)
    }
    pub unsafe fn GetRootApplicationNode(&self) -> ::windows::core::Result<IDebugApplicationNode> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRootApplicationNode)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplicationNode>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OnScriptErrorDebug<'a, P0>(&self, perrordebug: P0, pfenterdebugger: *mut super::super::super::Foundation::BOOL, pfcallonscripterrorwhencontinuing: *mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IActiveScriptErrorDebug>>,
    {
        (::windows::core::Vtable::vtable(self).OnScriptErrorDebug)(::windows::core::Vtable::as_raw(self), perrordebug.into().abi(), ::core::mem::transmute(pfenterdebugger), ::core::mem::transmute(pfcallonscripterrorwhencontinuing)).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptSiteDebug64, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptSiteDebug64 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptSiteDebug64 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptSiteDebug64 {}
impl ::core::fmt::Debug for IActiveScriptSiteDebug64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptSiteDebug64").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptSiteDebug64 {
    type Vtable = IActiveScriptSiteDebug64_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptSiteDebug64 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd6b96b0a_7463_402c_92ac_89984226942f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptSiteDebug64_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetDocumentContextFromPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwsourcecontext: u64, ucharacteroffset: u32, unumchars: u32, ppsc: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetApplication: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppda: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetRootApplicationNode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppdanroot: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub OnScriptErrorDebug: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, perrordebug: *mut ::core::ffi::c_void, pfenterdebugger: *mut super::super::super::Foundation::BOOL, pfcallonscripterrorwhencontinuing: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OnScriptErrorDebug: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptSiteDebugEx(::windows::core::IUnknown);
impl IActiveScriptSiteDebugEx {
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OnCanNotJITScriptErrorDebug<'a, P0>(&self, perrordebug: P0) -> ::windows::core::Result<super::super::super::Foundation::BOOL>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IActiveScriptErrorDebug>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).OnCanNotJITScriptErrorDebug)(::windows::core::Vtable::as_raw(self), perrordebug.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::super::Foundation::BOOL>(result__)
    }
}
::windows::core::interface_hierarchy!(IActiveScriptSiteDebugEx, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptSiteDebugEx {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptSiteDebugEx {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptSiteDebugEx {}
impl ::core::fmt::Debug for IActiveScriptSiteDebugEx {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptSiteDebugEx").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptSiteDebugEx {
    type Vtable = IActiveScriptSiteDebugEx_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptSiteDebugEx {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbb722ccb_6ad2_41c6_b780_af9c03ee69f5);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptSiteDebugEx_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    #[cfg(feature = "Win32_Foundation")]
    pub OnCanNotJITScriptErrorDebug: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, perrordebug: *mut ::core::ffi::c_void, pfcallonscripterrorwhencontinuing: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OnCanNotJITScriptErrorDebug: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptSiteInterruptPoll(::windows::core::IUnknown);
impl IActiveScriptSiteInterruptPoll {
    pub unsafe fn QueryContinue(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).QueryContinue)(::windows::core::Vtable::as_raw(self)).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptSiteInterruptPoll, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptSiteInterruptPoll {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptSiteInterruptPoll {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptSiteInterruptPoll {}
impl ::core::fmt::Debug for IActiveScriptSiteInterruptPoll {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptSiteInterruptPoll").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptSiteInterruptPoll {
    type Vtable = IActiveScriptSiteInterruptPoll_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptSiteInterruptPoll {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x539698a0_cdca_11cf_a5eb_00aa0047a063);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptSiteInterruptPoll_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub QueryContinue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptSiteTraceInfo(::windows::core::IUnknown);
impl IActiveScriptSiteTraceInfo {
    pub unsafe fn SendScriptTraceInfo(&self, stieventtype: SCRIPTTRACEINFO, guidcontextid: ::windows::core::GUID, dwscriptcontextcookie: u32, lscriptstatementstart: i32, lscriptstatementend: i32, dwreserved: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SendScriptTraceInfo)(::windows::core::Vtable::as_raw(self), stieventtype, ::core::mem::transmute(guidcontextid), dwscriptcontextcookie, lscriptstatementstart, lscriptstatementend, dwreserved).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptSiteTraceInfo, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptSiteTraceInfo {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptSiteTraceInfo {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptSiteTraceInfo {}
impl ::core::fmt::Debug for IActiveScriptSiteTraceInfo {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptSiteTraceInfo").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptSiteTraceInfo {
    type Vtable = IActiveScriptSiteTraceInfo_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptSiteTraceInfo {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4b7272ae_1955_4bfe_98b0_780621888569);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptSiteTraceInfo_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub SendScriptTraceInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, stieventtype: SCRIPTTRACEINFO, guidcontextid: ::windows::core::GUID, dwscriptcontextcookie: u32, lscriptstatementstart: i32, lscriptstatementend: i32, dwreserved: u64) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptSiteUIControl(::windows::core::IUnknown);
impl IActiveScriptSiteUIControl {
    pub unsafe fn GetUIBehavior(&self, uicitem: SCRIPTUICITEM) -> ::windows::core::Result<SCRIPTUICHANDLING> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetUIBehavior)(::windows::core::Vtable::as_raw(self), uicitem, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<SCRIPTUICHANDLING>(result__)
    }
}
::windows::core::interface_hierarchy!(IActiveScriptSiteUIControl, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptSiteUIControl {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptSiteUIControl {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptSiteUIControl {}
impl ::core::fmt::Debug for IActiveScriptSiteUIControl {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptSiteUIControl").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptSiteUIControl {
    type Vtable = IActiveScriptSiteUIControl_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptSiteUIControl {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xaedae97e_d7ee_4796_b960_7f092ae844ab);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptSiteUIControl_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetUIBehavior: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uicitem: SCRIPTUICITEM, puichandling: *mut SCRIPTUICHANDLING) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptSiteWindow(::windows::core::IUnknown);
impl IActiveScriptSiteWindow {
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetWindow(&self) -> ::windows::core::Result<super::super::super::Foundation::HWND> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetWindow)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::super::Foundation::HWND>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn EnableModeless<'a, P0>(&self, fenable: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        (::windows::core::Vtable::vtable(self).EnableModeless)(::windows::core::Vtable::as_raw(self), fenable.into()).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptSiteWindow, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptSiteWindow {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptSiteWindow {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptSiteWindow {}
impl ::core::fmt::Debug for IActiveScriptSiteWindow {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptSiteWindow").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptSiteWindow {
    type Vtable = IActiveScriptSiteWindow_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptSiteWindow {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd10f6761_83e9_11cf_8f20_00805f2cd064);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptSiteWindow_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    #[cfg(feature = "Win32_Foundation")]
    pub GetWindow: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, phwnd: *mut super::super::super::Foundation::HWND) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetWindow: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub EnableModeless: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, fenable: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    EnableModeless: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptStats(::windows::core::IUnknown);
impl IActiveScriptStats {
    pub unsafe fn GetStat(&self, stid: u32, pluhi: *mut u32, plulo: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetStat)(::windows::core::Vtable::as_raw(self), stid, ::core::mem::transmute(pluhi), ::core::mem::transmute(plulo)).ok()
    }
    pub unsafe fn GetStatEx(&self, guid: *const ::windows::core::GUID, pluhi: *mut u32, plulo: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetStatEx)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pluhi), ::core::mem::transmute(plulo)).ok()
    }
    pub unsafe fn ResetStats(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ResetStats)(::windows::core::Vtable::as_raw(self)).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptStats, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptStats {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptStats {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptStats {}
impl ::core::fmt::Debug for IActiveScriptStats {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptStats").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptStats {
    type Vtable = IActiveScriptStats_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptStats {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb8da6310_e19b_11d0_933c_00a0c90dcaa9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptStats_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetStat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, stid: u32, pluhi: *mut u32, plulo: *mut u32) -> ::windows::core::HRESULT,
    pub GetStatEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, guid: *const ::windows::core::GUID, pluhi: *mut u32, plulo: *mut u32) -> ::windows::core::HRESULT,
    pub ResetStats: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptStringCompare(::windows::core::IUnknown);
impl IActiveScriptStringCompare {
    pub unsafe fn StrComp(&self, bszstr1: &::windows::core::BSTR, bszstr2: &::windows::core::BSTR) -> ::windows::core::Result<i32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).StrComp)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute_copy(bszstr1), ::core::mem::transmute_copy(bszstr2), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<i32>(result__)
    }
}
::windows::core::interface_hierarchy!(IActiveScriptStringCompare, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptStringCompare {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptStringCompare {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptStringCompare {}
impl ::core::fmt::Debug for IActiveScriptStringCompare {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptStringCompare").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptStringCompare {
    type Vtable = IActiveScriptStringCompare_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptStringCompare {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x58562769_ed52_42f7_8403_4963514e1f11);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptStringCompare_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub StrComp: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bszstr1: ::core::mem::ManuallyDrop<::windows::core::BSTR>, bszstr2: ::core::mem::ManuallyDrop<::windows::core::BSTR>, iret: *mut i32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptTraceInfo(::windows::core::IUnknown);
impl IActiveScriptTraceInfo {
    pub unsafe fn StartScriptTracing<'a, P0>(&self, psitetraceinfo: P0, guidcontextid: ::windows::core::GUID) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IActiveScriptSiteTraceInfo>>,
    {
        (::windows::core::Vtable::vtable(self).StartScriptTracing)(::windows::core::Vtable::as_raw(self), psitetraceinfo.into().abi(), ::core::mem::transmute(guidcontextid)).ok()
    }
    pub unsafe fn StopScriptTracing(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).StopScriptTracing)(::windows::core::Vtable::as_raw(self)).ok()
    }
}
::windows::core::interface_hierarchy!(IActiveScriptTraceInfo, ::windows::core::IUnknown);
impl ::core::clone::Clone for IActiveScriptTraceInfo {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptTraceInfo {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptTraceInfo {}
impl ::core::fmt::Debug for IActiveScriptTraceInfo {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptTraceInfo").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptTraceInfo {
    type Vtable = IActiveScriptTraceInfo_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptTraceInfo {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc35456e7_bebf_4a1b_86a9_24d56be8b369);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptTraceInfo_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub StartScriptTracing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psitetraceinfo: *mut ::core::ffi::c_void, guidcontextid: ::windows::core::GUID) -> ::windows::core::HRESULT,
    pub StopScriptTracing: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IActiveScriptWinRTErrorDebug(::windows::core::IUnknown);
impl IActiveScriptWinRTErrorDebug {
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn GetExceptionInfo(&self) -> ::windows::core::Result<super::super::Com::EXCEPINFO> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetExceptionInfo)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::EXCEPINFO>(result__)
    }
    pub unsafe fn GetSourcePosition(&self, pdwsourcecontext: *mut u32, pullinenumber: *mut u32, plcharacterposition: *mut i32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.GetSourcePosition)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pdwsourcecontext), ::core::mem::transmute(pullinenumber), ::core::mem::transmute(plcharacterposition)).ok()
    }
    pub unsafe fn GetSourceLineText(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetSourceLineText)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetRestrictedErrorString(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRestrictedErrorString)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetRestrictedErrorReference(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRestrictedErrorReference)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetCapabilitySid(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCapabilitySid)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
}
::windows::core::interface_hierarchy!(IActiveScriptWinRTErrorDebug, ::windows::core::IUnknown, IActiveScriptError);
impl ::core::clone::Clone for IActiveScriptWinRTErrorDebug {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IActiveScriptWinRTErrorDebug {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IActiveScriptWinRTErrorDebug {}
impl ::core::fmt::Debug for IActiveScriptWinRTErrorDebug {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IActiveScriptWinRTErrorDebug").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IActiveScriptWinRTErrorDebug {
    type Vtable = IActiveScriptWinRTErrorDebug_Vtbl;
}
unsafe impl ::windows::core::Interface for IActiveScriptWinRTErrorDebug {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x73a3f82a_0fe9_4b33_ba3b_fe095f697e0a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IActiveScriptWinRTErrorDebug_Vtbl {
    pub base__: IActiveScriptError_Vtbl,
    pub GetRestrictedErrorString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, errorstring: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub GetRestrictedErrorReference: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, referencestring: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub GetCapabilitySid: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, capabilitysid: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IApplicationDebugger(::windows::core::IUnknown);
impl IApplicationDebugger {
    pub unsafe fn QueryAlive(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).QueryAlive)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn CreateInstanceAtDebugger<'a, P0>(&self, rclsid: *const ::windows::core::GUID, punkouter: P0, dwclscontext: u32, riid: *const ::windows::core::GUID) -> ::windows::core::Result<::windows::core::IUnknown>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateInstanceAtDebugger)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(rclsid), punkouter.into().abi(), dwclscontext, ::core::mem::transmute(riid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::IUnknown>(result__)
    }
    pub unsafe fn onDebugOutput<'a, P0>(&self, pstr: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).onDebugOutput)(::windows::core::Vtable::as_raw(self), pstr.into()).ok()
    }
    pub unsafe fn onHandleBreakPoint<'a, P0, P1>(&self, prpt: P0, br: BREAKREASON, perror: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IRemoteDebugApplicationThread>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IActiveScriptErrorDebug>>,
    {
        (::windows::core::Vtable::vtable(self).onHandleBreakPoint)(::windows::core::Vtable::as_raw(self), prpt.into().abi(), br, perror.into().abi()).ok()
    }
    pub unsafe fn onClose(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).onClose)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn onDebuggerEvent<'a, P0>(&self, riid: *const ::windows::core::GUID, punk: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
    {
        (::windows::core::Vtable::vtable(self).onDebuggerEvent)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(riid), punk.into().abi()).ok()
    }
}
::windows::core::interface_hierarchy!(IApplicationDebugger, ::windows::core::IUnknown);
impl ::core::clone::Clone for IApplicationDebugger {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IApplicationDebugger {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IApplicationDebugger {}
impl ::core::fmt::Debug for IApplicationDebugger {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IApplicationDebugger").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IApplicationDebugger {
    type Vtable = IApplicationDebugger_Vtbl;
}
unsafe impl ::windows::core::Interface for IApplicationDebugger {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c2a_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IApplicationDebugger_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub QueryAlive: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateInstanceAtDebugger: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rclsid: *const ::windows::core::GUID, punkouter: *mut ::core::ffi::c_void, dwclscontext: u32, riid: *const ::windows::core::GUID, ppvobject: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub onDebugOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstr: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub onHandleBreakPoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prpt: *mut ::core::ffi::c_void, br: BREAKREASON, perror: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub onClose: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub onDebuggerEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, punk: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IApplicationDebuggerUI(::windows::core::IUnknown);
impl IApplicationDebuggerUI {
    pub unsafe fn BringDocumentToTop<'a, P0>(&self, pddt: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugDocumentText>>,
    {
        (::windows::core::Vtable::vtable(self).BringDocumentToTop)(::windows::core::Vtable::as_raw(self), pddt.into().abi()).ok()
    }
    pub unsafe fn BringDocumentContextToTop<'a, P0>(&self, pddc: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugDocumentContext>>,
    {
        (::windows::core::Vtable::vtable(self).BringDocumentContextToTop)(::windows::core::Vtable::as_raw(self), pddc.into().abi()).ok()
    }
}
::windows::core::interface_hierarchy!(IApplicationDebuggerUI, ::windows::core::IUnknown);
impl ::core::clone::Clone for IApplicationDebuggerUI {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IApplicationDebuggerUI {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IApplicationDebuggerUI {}
impl ::core::fmt::Debug for IApplicationDebuggerUI {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IApplicationDebuggerUI").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IApplicationDebuggerUI {
    type Vtable = IApplicationDebuggerUI_Vtbl;
}
unsafe impl ::windows::core::Interface for IApplicationDebuggerUI {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c2b_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IApplicationDebuggerUI_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub BringDocumentToTop: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pddt: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub BringDocumentContextToTop: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pddc: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IBindEventHandler(::windows::core::IUnknown);
impl IBindEventHandler {
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn BindHandler<'a, P0, P1>(&self, pstrevent: P0, pdisp: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, super::super::Com::IDispatch>>,
    {
        (::windows::core::Vtable::vtable(self).BindHandler)(::windows::core::Vtable::as_raw(self), pstrevent.into(), pdisp.into().abi()).ok()
    }
}
::windows::core::interface_hierarchy!(IBindEventHandler, ::windows::core::IUnknown);
impl ::core::clone::Clone for IBindEventHandler {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IBindEventHandler {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IBindEventHandler {}
impl ::core::fmt::Debug for IBindEventHandler {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IBindEventHandler").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IBindEventHandler {
    type Vtable = IBindEventHandler_Vtbl;
}
unsafe impl ::windows::core::Interface for IBindEventHandler {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x63cdbcb0_c1b1_11d0_9336_00a0c90dcaa9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IBindEventHandler_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    #[cfg(feature = "Win32_System_Com")]
    pub BindHandler: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrevent: ::windows::core::PCWSTR, pdisp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    BindHandler: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct ICodeAddressConcept(::windows::core::IUnknown);
impl ICodeAddressConcept {
    pub unsafe fn GetContainingSymbol<'a, P0>(&self, pcontextobject: P0) -> ::windows::core::Result<IDebugHostSymbol>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetContainingSymbol)(::windows::core::Vtable::as_raw(self), pcontextobject.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostSymbol>(result__)
    }
}
::windows::core::interface_hierarchy!(ICodeAddressConcept, ::windows::core::IUnknown);
impl ::core::clone::Clone for ICodeAddressConcept {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ICodeAddressConcept {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ICodeAddressConcept {}
impl ::core::fmt::Debug for ICodeAddressConcept {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ICodeAddressConcept").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for ICodeAddressConcept {
    type Vtable = ICodeAddressConcept_Vtbl;
}
unsafe impl ::windows::core::Interface for ICodeAddressConcept {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc7371568_5c78_4a00_a4ab_6ef8823184cb);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICodeAddressConcept_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetContainingSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pcontextobject: *mut ::core::ffi::c_void, ppsymbol: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IComparableConcept(::windows::core::IUnknown);
impl IComparableConcept {
    pub unsafe fn CompareObjects<'a, P0, P1>(&self, contextobject: P0, otherobject: P1) -> ::windows::core::Result<i32>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CompareObjects)(::windows::core::Vtable::as_raw(self), contextobject.into().abi(), otherobject.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<i32>(result__)
    }
}
::windows::core::interface_hierarchy!(IComparableConcept, ::windows::core::IUnknown);
impl ::core::clone::Clone for IComparableConcept {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IComparableConcept {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IComparableConcept {}
impl ::core::fmt::Debug for IComparableConcept {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IComparableConcept").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IComparableConcept {
    type Vtable = IComparableConcept_Vtbl;
}
unsafe impl ::windows::core::Interface for IComparableConcept {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa7830646_9f0c_4a31_ba19_503f33e6c8a3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IComparableConcept_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub CompareObjects: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, otherobject: *mut ::core::ffi::c_void, comparisonresult: *mut i32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDataModelConcept(::windows::core::IUnknown);
impl IDataModelConcept {
    pub unsafe fn InitializeObject<'a, P0, P1, P2>(&self, modelobject: P0, matchingtypesignature: P1, wildcardmatches: P2) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostTypeSignature>>,
        P2: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostSymbolEnumerator>>,
    {
        (::windows::core::Vtable::vtable(self).InitializeObject)(::windows::core::Vtable::as_raw(self), modelobject.into().abi(), matchingtypesignature.into().abi(), wildcardmatches.into().abi()).ok()
    }
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
}
::windows::core::interface_hierarchy!(IDataModelConcept, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDataModelConcept {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDataModelConcept {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDataModelConcept {}
impl ::core::fmt::Debug for IDataModelConcept {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDataModelConcept").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDataModelConcept {
    type Vtable = IDataModelConcept_Vtbl;
}
unsafe impl ::windows::core::Interface for IDataModelConcept {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfcb98d1d_1114_4fbf_b24c_effcb5def0d3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelConcept_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub InitializeObject: unsafe extern "system" fn(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,
    pub GetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, modelname: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDataModelManager(::windows::core::IUnknown);
impl IDataModelManager {
    pub unsafe fn Close(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Close)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn CreateNoValue(&self) -> ::windows::core::Result<IModelObject> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateNoValue)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn CreateErrorObject<'a, P0>(&self, hrerror: ::windows::core::HRESULT, pwszmessage: P0) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateErrorObject)(::windows::core::Vtable::as_raw(self), hrerror, pwszmessage.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn CreateTypedObject<'a, P0, P1>(&self, context: P0, objectlocation: Location, objecttype: P1) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostType>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateTypedObject)(::windows::core::Vtable::as_raw(self), context.into().abi(), ::core::mem::transmute(objectlocation), objecttype.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn CreateTypedObjectReference<'a, P0, P1>(&self, context: P0, objectlocation: Location, objecttype: P1) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostType>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateTypedObjectReference)(::windows::core::Vtable::as_raw(self), context.into().abi(), ::core::mem::transmute(objectlocation), objecttype.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn CreateSyntheticObject<'a, P0>(&self, context: P0) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateSyntheticObject)(::windows::core::Vtable::as_raw(self), context.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn CreateDataModelObject<'a, P0>(&self, datamodel: P0) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDataModelConcept>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateDataModelObject)(::windows::core::Vtable::as_raw(self), datamodel.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn CreateIntrinsicObject(&self, objectkind: ModelObjectKind, intrinsicdata: *const super::super::Com::VARIANT) -> ::windows::core::Result<IModelObject> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateIntrinsicObject)(::windows::core::Vtable::as_raw(self), objectkind, ::core::mem::transmute(intrinsicdata), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn CreateTypedIntrinsicObject<'a, P0>(&self, intrinsicdata: *const super::super::Com::VARIANT, r#type: P0) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostType>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateTypedIntrinsicObject)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(intrinsicdata), r#type.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn GetModelForTypeSignature<'a, P0>(&self, typesignature: P0) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostTypeSignature>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetModelForTypeSignature)(::windows::core::Vtable::as_raw(self), typesignature.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn GetModelForType<'a, P0>(&self, r#type: P0, datamodel: *mut ::core::option::Option<IModelObject>, typesignature: ::core::option::Option<*mut ::core::option::Option<IDebugHostTypeSignature>>, wildcardmatches: ::core::option::Option<*mut ::core::option::Option<IDebugHostSymbolEnumerator>>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostType>>,
    {
        (::windows::core::Vtable::vtable(self).GetModelForType)(::windows::core::Vtable::as_raw(self), r#type.into().abi(), ::core::mem::transmute(datamodel), ::core::mem::transmute(typesignature.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(wildcardmatches.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn RegisterModelForTypeSignature<'a, P0, P1>(&self, typesignature: P0, datamodel: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostTypeSignature>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).RegisterModelForTypeSignature)(::windows::core::Vtable::as_raw(self), typesignature.into().abi(), datamodel.into().abi()).ok()
    }
    pub unsafe fn UnregisterModelForTypeSignature<'a, P0, P1>(&self, datamodel: P0, typesignature: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostTypeSignature>>,
    {
        (::windows::core::Vtable::vtable(self).UnregisterModelForTypeSignature)(::windows::core::Vtable::as_raw(self), datamodel.into().abi(), typesignature.into().abi()).ok()
    }
    pub unsafe fn RegisterExtensionForTypeSignature<'a, P0, P1>(&self, typesignature: P0, datamodel: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostTypeSignature>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).RegisterExtensionForTypeSignature)(::windows::core::Vtable::as_raw(self), typesignature.into().abi(), datamodel.into().abi()).ok()
    }
    pub unsafe fn UnregisterExtensionForTypeSignature<'a, P0, P1>(&self, datamodel: P0, typesignature: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostTypeSignature>>,
    {
        (::windows::core::Vtable::vtable(self).UnregisterExtensionForTypeSignature)(::windows::core::Vtable::as_raw(self), datamodel.into().abi(), typesignature.into().abi()).ok()
    }
    pub unsafe fn CreateMetadataStore<'a, P0>(&self, parentstore: P0) -> ::windows::core::Result<IKeyStore>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IKeyStore>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateMetadataStore)(::windows::core::Vtable::as_raw(self), parentstore.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IKeyStore>(result__)
    }
    pub unsafe fn GetRootNamespace(&self) -> ::windows::core::Result<IModelObject> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRootNamespace)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn RegisterNamedModel<'a, P0, P1>(&self, modelname: P0, modeobject: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).RegisterNamedModel)(::windows::core::Vtable::as_raw(self), modelname.into(), modeobject.into().abi()).ok()
    }
    pub unsafe fn UnregisterNamedModel<'a, P0>(&self, modelname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).UnregisterNamedModel)(::windows::core::Vtable::as_raw(self), modelname.into()).ok()
    }
    pub unsafe fn AcquireNamedModel<'a, P0>(&self, modelname: P0) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AcquireNamedModel)(::windows::core::Vtable::as_raw(self), modelname.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
}
::windows::core::interface_hierarchy!(IDataModelManager, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDataModelManager {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDataModelManager {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDataModelManager {}
impl ::core::fmt::Debug for IDataModelManager {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDataModelManager").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDataModelManager {
    type Vtable = IDataModelManager_Vtbl;
}
unsafe impl ::windows::core::Interface for IDataModelManager {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x73fe19f4_a110_4500_8ed9_3c28896f508c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelManager_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Close: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateNoValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateErrorObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hrerror: ::windows::core::HRESULT, pwszmessage: ::windows::core::PCWSTR, object: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateTypedObject: unsafe extern "system" fn(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,
    pub CreateTypedObjectReference: unsafe extern "system" fn(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,
    pub CreateSyntheticObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateDataModelObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, datamodel: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub CreateIntrinsicObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, objectkind: ModelObjectKind, intrinsicdata: *const ::core::mem::ManuallyDrop<super::super::Com::VARIANT>, object: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
    CreateIntrinsicObject: usize,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub CreateTypedIntrinsicObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, intrinsicdata: *const ::core::mem::ManuallyDrop<super::super::Com::VARIANT>, r#type: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
    CreateTypedIntrinsicObject: usize,
    pub GetModelForTypeSignature: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, typesignature: *mut ::core::ffi::c_void, datamodel: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetModelForType: unsafe extern "system" fn(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,
    pub RegisterModelForTypeSignature: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, typesignature: *mut ::core::ffi::c_void, datamodel: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub UnregisterModelForTypeSignature: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, datamodel: *mut ::core::ffi::c_void, typesignature: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub RegisterExtensionForTypeSignature: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, typesignature: *mut ::core::ffi::c_void, datamodel: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub UnregisterExtensionForTypeSignature: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, datamodel: *mut ::core::ffi::c_void, typesignature: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateMetadataStore: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, parentstore: *mut ::core::ffi::c_void, metadatastore: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetRootNamespace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rootnamespace: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub RegisterNamedModel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, modelname: ::windows::core::PCWSTR, modeobject: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub UnregisterNamedModel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, modelname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub AcquireNamedModel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, modelname: ::windows::core::PCWSTR, modelobject: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDataModelManager2(::windows::core::IUnknown);
impl IDataModelManager2 {
    pub unsafe fn Close(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.Close)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn CreateNoValue(&self) -> ::windows::core::Result<IModelObject> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CreateNoValue)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn CreateErrorObject<'a, P0>(&self, hrerror: ::windows::core::HRESULT, pwszmessage: P0) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CreateErrorObject)(::windows::core::Vtable::as_raw(self), hrerror, pwszmessage.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn CreateTypedObject<'a, P0, P1>(&self, context: P0, objectlocation: Location, objecttype: P1) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostType>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CreateTypedObject)(::windows::core::Vtable::as_raw(self), context.into().abi(), ::core::mem::transmute(objectlocation), objecttype.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn CreateTypedObjectReference<'a, P0, P1>(&self, context: P0, objectlocation: Location, objecttype: P1) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostType>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CreateTypedObjectReference)(::windows::core::Vtable::as_raw(self), context.into().abi(), ::core::mem::transmute(objectlocation), objecttype.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn CreateSyntheticObject<'a, P0>(&self, context: P0) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CreateSyntheticObject)(::windows::core::Vtable::as_raw(self), context.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn CreateDataModelObject<'a, P0>(&self, datamodel: P0) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDataModelConcept>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CreateDataModelObject)(::windows::core::Vtable::as_raw(self), datamodel.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn CreateIntrinsicObject(&self, objectkind: ModelObjectKind, intrinsicdata: *const super::super::Com::VARIANT) -> ::windows::core::Result<IModelObject> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CreateIntrinsicObject)(::windows::core::Vtable::as_raw(self), objectkind, ::core::mem::transmute(intrinsicdata), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn CreateTypedIntrinsicObject<'a, P0>(&self, intrinsicdata: *const super::super::Com::VARIANT, r#type: P0) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostType>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CreateTypedIntrinsicObject)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(intrinsicdata), r#type.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn GetModelForTypeSignature<'a, P0>(&self, typesignature: P0) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostTypeSignature>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetModelForTypeSignature)(::windows::core::Vtable::as_raw(self), typesignature.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn GetModelForType<'a, P0>(&self, r#type: P0, datamodel: *mut ::core::option::Option<IModelObject>, typesignature: ::core::option::Option<*mut ::core::option::Option<IDebugHostTypeSignature>>, wildcardmatches: ::core::option::Option<*mut ::core::option::Option<IDebugHostSymbolEnumerator>>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostType>>,
    {
        (::windows::core::Vtable::vtable(self).base__.GetModelForType)(::windows::core::Vtable::as_raw(self), r#type.into().abi(), ::core::mem::transmute(datamodel), ::core::mem::transmute(typesignature.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(wildcardmatches.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn RegisterModelForTypeSignature<'a, P0, P1>(&self, typesignature: P0, datamodel: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostTypeSignature>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).base__.RegisterModelForTypeSignature)(::windows::core::Vtable::as_raw(self), typesignature.into().abi(), datamodel.into().abi()).ok()
    }
    pub unsafe fn UnregisterModelForTypeSignature<'a, P0, P1>(&self, datamodel: P0, typesignature: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostTypeSignature>>,
    {
        (::windows::core::Vtable::vtable(self).base__.UnregisterModelForTypeSignature)(::windows::core::Vtable::as_raw(self), datamodel.into().abi(), typesignature.into().abi()).ok()
    }
    pub unsafe fn RegisterExtensionForTypeSignature<'a, P0, P1>(&self, typesignature: P0, datamodel: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostTypeSignature>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).base__.RegisterExtensionForTypeSignature)(::windows::core::Vtable::as_raw(self), typesignature.into().abi(), datamodel.into().abi()).ok()
    }
    pub unsafe fn UnregisterExtensionForTypeSignature<'a, P0, P1>(&self, datamodel: P0, typesignature: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostTypeSignature>>,
    {
        (::windows::core::Vtable::vtable(self).base__.UnregisterExtensionForTypeSignature)(::windows::core::Vtable::as_raw(self), datamodel.into().abi(), typesignature.into().abi()).ok()
    }
    pub unsafe fn CreateMetadataStore<'a, P0>(&self, parentstore: P0) -> ::windows::core::Result<IKeyStore>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IKeyStore>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CreateMetadataStore)(::windows::core::Vtable::as_raw(self), parentstore.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IKeyStore>(result__)
    }
    pub unsafe fn GetRootNamespace(&self) -> ::windows::core::Result<IModelObject> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetRootNamespace)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn RegisterNamedModel<'a, P0, P1>(&self, modelname: P0, modeobject: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).base__.RegisterNamedModel)(::windows::core::Vtable::as_raw(self), modelname.into(), modeobject.into().abi()).ok()
    }
    pub unsafe fn UnregisterNamedModel<'a, P0>(&self, modelname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).base__.UnregisterNamedModel)(::windows::core::Vtable::as_raw(self), modelname.into()).ok()
    }
    pub unsafe fn AcquireNamedModel<'a, P0>(&self, modelname: P0) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.AcquireNamedModel)(::windows::core::Vtable::as_raw(self), modelname.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn AcquireSubNamespace<'a, P0, P1, P2, P3>(&self, modelname: P0, subnamespacemodelname: P1, accessname: P2, metadata: P3) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
        P3: ::std::convert::Into<::windows::core::InParam<'a, IKeyStore>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AcquireSubNamespace)(::windows::core::Vtable::as_raw(self), modelname.into(), subnamespacemodelname.into(), accessname.into(), metadata.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn CreateTypedIntrinsicObjectEx<'a, P0, P1>(&self, context: P0, intrinsicdata: *const super::super::Com::VARIANT, r#type: P1) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostType>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateTypedIntrinsicObjectEx)(::windows::core::Vtable::as_raw(self), context.into().abi(), ::core::mem::transmute(intrinsicdata), r#type.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
}
::windows::core::interface_hierarchy!(IDataModelManager2, ::windows::core::IUnknown, IDataModelManager);
impl ::core::clone::Clone for IDataModelManager2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDataModelManager2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDataModelManager2 {}
impl ::core::fmt::Debug for IDataModelManager2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDataModelManager2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDataModelManager2 {
    type Vtable = IDataModelManager2_Vtbl;
}
unsafe impl ::windows::core::Interface for IDataModelManager2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf412c5ea_2284_4622_a660_a697160d3312);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelManager2_Vtbl {
    pub base__: IDataModelManager_Vtbl,
    pub AcquireSubNamespace: unsafe extern "system" fn(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,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub CreateTypedIntrinsicObjectEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, intrinsicdata: *const ::core::mem::ManuallyDrop<super::super::Com::VARIANT>, r#type: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
    CreateTypedIntrinsicObjectEx: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDataModelNameBinder(::windows::core::IUnknown);
impl IDataModelNameBinder {
    pub unsafe fn BindValue<'a, P0, P1>(&self, contextobject: P0, name: P1, value: *mut ::core::option::Option<IModelObject>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).BindValue)(::windows::core::Vtable::as_raw(self), contextobject.into().abi(), name.into(), ::core::mem::transmute(value), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn BindReference<'a, P0, P1>(&self, contextobject: P0, name: P1, reference: *mut ::core::option::Option<IModelObject>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).BindReference)(::windows::core::Vtable::as_raw(self), contextobject.into().abi(), name.into(), ::core::mem::transmute(reference), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn EnumerateValues<'a, P0>(&self, contextobject: P0) -> ::windows::core::Result<IKeyEnumerator>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumerateValues)(::windows::core::Vtable::as_raw(self), contextobject.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IKeyEnumerator>(result__)
    }
    pub unsafe fn EnumerateReferences<'a, P0>(&self, contextobject: P0) -> ::windows::core::Result<IKeyEnumerator>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumerateReferences)(::windows::core::Vtable::as_raw(self), contextobject.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IKeyEnumerator>(result__)
    }
}
::windows::core::interface_hierarchy!(IDataModelNameBinder, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDataModelNameBinder {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDataModelNameBinder {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDataModelNameBinder {}
impl ::core::fmt::Debug for IDataModelNameBinder {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDataModelNameBinder").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDataModelNameBinder {
    type Vtable = IDataModelNameBinder_Vtbl;
}
unsafe impl ::windows::core::Interface for IDataModelNameBinder {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xaf352b7b_8292_4c01_b360_2dc3696c65e7);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelNameBinder_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub BindValue: unsafe extern "system" fn(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,
    pub BindReference: unsafe extern "system" fn(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,
    pub EnumerateValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, enumerator: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EnumerateReferences: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, enumerator: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDataModelScript(::windows::core::IUnknown);
impl IDataModelScript {
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn Rename<'a, P0>(&self, scriptname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).Rename)(::windows::core::Vtable::as_raw(self), scriptname.into()).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn Populate<'a, P0>(&self, contentstream: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Com::IStream>>,
    {
        (::windows::core::Vtable::vtable(self).Populate)(::windows::core::Vtable::as_raw(self), contentstream.into().abi()).ok()
    }
    pub unsafe fn Execute<'a, P0>(&self, client: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDataModelScriptClient>>,
    {
        (::windows::core::Vtable::vtable(self).Execute)(::windows::core::Vtable::as_raw(self), client.into().abi()).ok()
    }
    pub unsafe fn Unlink(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Unlink)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn IsInvocable(&self) -> ::windows::core::Result<bool> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).IsInvocable)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
    pub unsafe fn InvokeMain<'a, P0>(&self, client: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDataModelScriptClient>>,
    {
        (::windows::core::Vtable::vtable(self).InvokeMain)(::windows::core::Vtable::as_raw(self), client.into().abi()).ok()
    }
}
::windows::core::interface_hierarchy!(IDataModelScript, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDataModelScript {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDataModelScript {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDataModelScript {}
impl ::core::fmt::Debug for IDataModelScript {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDataModelScript").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDataModelScript {
    type Vtable = IDataModelScript_Vtbl;
}
unsafe impl ::windows::core::Interface for IDataModelScript {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7b4d30fc_b14a_49f8_8d87_d9a1480c97f7);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScript_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, scriptname: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub Rename: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, scriptname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Com")]
    pub Populate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contentstream: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    Populate: usize,
    pub Execute: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Unlink: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub IsInvocable: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, isinvocable: *mut bool) -> ::windows::core::HRESULT,
    pub InvokeMain: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDataModelScriptClient(::windows::core::IUnknown);
impl IDataModelScriptClient {
    pub unsafe fn ReportError<'a, P0>(&self, errclass: ErrorClass, hrfail: ::windows::core::HRESULT, message: P0, line: u32, position: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ReportError)(::windows::core::Vtable::as_raw(self), errclass, hrfail, message.into(), line, position).ok()
    }
}
::windows::core::interface_hierarchy!(IDataModelScriptClient, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDataModelScriptClient {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDataModelScriptClient {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDataModelScriptClient {}
impl ::core::fmt::Debug for IDataModelScriptClient {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDataModelScriptClient").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDataModelScriptClient {
    type Vtable = IDataModelScriptClient_Vtbl;
}
unsafe impl ::windows::core::Interface for IDataModelScriptClient {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3b362b0e_89f0_46c6_a663_dfdc95194aef);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptClient_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub ReportError: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, errclass: ErrorClass, hrfail: ::windows::core::HRESULT, message: ::windows::core::PCWSTR, line: u32, position: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDataModelScriptDebug(::windows::core::IUnknown);
impl IDataModelScriptDebug {
    pub unsafe fn GetDebugState(&self) -> ScriptDebugState {
        (::windows::core::Vtable::vtable(self).GetDebugState)(::windows::core::Vtable::as_raw(self))
    }
    pub unsafe fn GetCurrentPosition(&self, currentposition: *mut ScriptDebugPosition, positionspanend: ::core::option::Option<*mut ScriptDebugPosition>, linetext: ::core::option::Option<*mut ::windows::core::BSTR>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetCurrentPosition)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(currentposition), ::core::mem::transmute(positionspanend.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(linetext.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetStack(&self) -> ::windows::core::Result<IDataModelScriptDebugStack> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetStack)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptDebugStack>(result__)
    }
    pub unsafe fn SetBreakpoint(&self, lineposition: u32, columnposition: u32) -> ::windows::core::Result<IDataModelScriptDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).SetBreakpoint)(::windows::core::Vtable::as_raw(self), lineposition, columnposition, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptDebugBreakpoint>(result__)
    }
    pub unsafe fn FindBreakpointById(&self, breakpointid: u64) -> ::windows::core::Result<IDataModelScriptDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).FindBreakpointById)(::windows::core::Vtable::as_raw(self), breakpointid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptDebugBreakpoint>(result__)
    }
    pub unsafe fn EnumerateBreakpoints(&self) -> ::windows::core::Result<IDataModelScriptDebugBreakpointEnumerator> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumerateBreakpoints)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptDebugBreakpointEnumerator>(result__)
    }
    pub unsafe fn GetEventFilter(&self, eventfilter: ScriptDebugEventFilter) -> ::windows::core::Result<bool> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventFilter)(::windows::core::Vtable::as_raw(self), eventfilter, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
    pub unsafe fn SetEventFilter(&self, eventfilter: ScriptDebugEventFilter, isbreakenabled: u8) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetEventFilter)(::windows::core::Vtable::as_raw(self), eventfilter, isbreakenabled).ok()
    }
    pub unsafe fn StartDebugging<'a, P0>(&self, debugclient: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDataModelScriptDebugClient>>,
    {
        (::windows::core::Vtable::vtable(self).StartDebugging)(::windows::core::Vtable::as_raw(self), debugclient.into().abi()).ok()
    }
    pub unsafe fn StopDebugging<'a, P0>(&self, debugclient: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDataModelScriptDebugClient>>,
    {
        (::windows::core::Vtable::vtable(self).StopDebugging)(::windows::core::Vtable::as_raw(self), debugclient.into().abi()).ok()
    }
}
::windows::core::interface_hierarchy!(IDataModelScriptDebug, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDataModelScriptDebug {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDataModelScriptDebug {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDataModelScriptDebug {}
impl ::core::fmt::Debug for IDataModelScriptDebug {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDataModelScriptDebug").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDataModelScriptDebug {
    type Vtable = IDataModelScriptDebug_Vtbl;
}
unsafe impl ::windows::core::Interface for IDataModelScriptDebug {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xde8e0945_9750_4471_ab76_a8f79d6ec350);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptDebug_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetDebugState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ScriptDebugState,
    pub GetCurrentPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, currentposition: *mut ScriptDebugPosition, positionspanend: *mut ScriptDebugPosition, linetext: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub GetStack: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, stack: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, lineposition: u32, columnposition: u32, breakpoint: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub FindBreakpointById: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, breakpointid: u64, breakpoint: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EnumerateBreakpoints: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, breakpointenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetEventFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, eventfilter: ScriptDebugEventFilter, isbreakenabled: *mut bool) -> ::windows::core::HRESULT,
    pub SetEventFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, eventfilter: ScriptDebugEventFilter, isbreakenabled: u8) -> ::windows::core::HRESULT,
    pub StartDebugging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, debugclient: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub StopDebugging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, debugclient: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDataModelScriptDebug2(::windows::core::IUnknown);
impl IDataModelScriptDebug2 {
    pub unsafe fn GetDebugState(&self) -> ScriptDebugState {
        (::windows::core::Vtable::vtable(self).base__.GetDebugState)(::windows::core::Vtable::as_raw(self))
    }
    pub unsafe fn GetCurrentPosition(&self, currentposition: *mut ScriptDebugPosition, positionspanend: ::core::option::Option<*mut ScriptDebugPosition>, linetext: ::core::option::Option<*mut ::windows::core::BSTR>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.GetCurrentPosition)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(currentposition), ::core::mem::transmute(positionspanend.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(linetext.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetStack(&self) -> ::windows::core::Result<IDataModelScriptDebugStack> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetStack)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptDebugStack>(result__)
    }
    pub unsafe fn SetBreakpoint(&self, lineposition: u32, columnposition: u32) -> ::windows::core::Result<IDataModelScriptDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.SetBreakpoint)(::windows::core::Vtable::as_raw(self), lineposition, columnposition, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptDebugBreakpoint>(result__)
    }
    pub unsafe fn FindBreakpointById(&self, breakpointid: u64) -> ::windows::core::Result<IDataModelScriptDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.FindBreakpointById)(::windows::core::Vtable::as_raw(self), breakpointid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptDebugBreakpoint>(result__)
    }
    pub unsafe fn EnumerateBreakpoints(&self) -> ::windows::core::Result<IDataModelScriptDebugBreakpointEnumerator> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.EnumerateBreakpoints)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptDebugBreakpointEnumerator>(result__)
    }
    pub unsafe fn GetEventFilter(&self, eventfilter: ScriptDebugEventFilter) -> ::windows::core::Result<bool> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetEventFilter)(::windows::core::Vtable::as_raw(self), eventfilter, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
    pub unsafe fn SetEventFilter(&self, eventfilter: ScriptDebugEventFilter, isbreakenabled: u8) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.SetEventFilter)(::windows::core::Vtable::as_raw(self), eventfilter, isbreakenabled).ok()
    }
    pub unsafe fn StartDebugging<'a, P0>(&self, debugclient: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDataModelScriptDebugClient>>,
    {
        (::windows::core::Vtable::vtable(self).base__.StartDebugging)(::windows::core::Vtable::as_raw(self), debugclient.into().abi()).ok()
    }
    pub unsafe fn StopDebugging<'a, P0>(&self, debugclient: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDataModelScriptDebugClient>>,
    {
        (::windows::core::Vtable::vtable(self).base__.StopDebugging)(::windows::core::Vtable::as_raw(self), debugclient.into().abi()).ok()
    }
    pub unsafe fn SetBreakpointAtFunction<'a, P0>(&self, functionname: P0) -> ::windows::core::Result<IDataModelScriptDebugBreakpoint>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).SetBreakpointAtFunction)(::windows::core::Vtable::as_raw(self), functionname.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptDebugBreakpoint>(result__)
    }
}
::windows::core::interface_hierarchy!(IDataModelScriptDebug2, ::windows::core::IUnknown, IDataModelScriptDebug);
impl ::core::clone::Clone for IDataModelScriptDebug2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDataModelScriptDebug2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDataModelScriptDebug2 {}
impl ::core::fmt::Debug for IDataModelScriptDebug2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDataModelScriptDebug2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDataModelScriptDebug2 {
    type Vtable = IDataModelScriptDebug2_Vtbl;
}
unsafe impl ::windows::core::Interface for IDataModelScriptDebug2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xcbb10ed3_839e_426c_9243_e23535c1ae1a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptDebug2_Vtbl {
    pub base__: IDataModelScriptDebug_Vtbl,
    pub SetBreakpointAtFunction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, functionname: ::windows::core::PCWSTR, breakpoint: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDataModelScriptDebugBreakpoint(::windows::core::IUnknown);
impl IDataModelScriptDebugBreakpoint {
    pub unsafe fn GetId(&self) -> u64 {
        (::windows::core::Vtable::vtable(self).GetId)(::windows::core::Vtable::as_raw(self))
    }
    pub unsafe fn IsEnabled(&self) -> bool {
        (::windows::core::Vtable::vtable(self).IsEnabled)(::windows::core::Vtable::as_raw(self))
    }
    pub unsafe fn Enable(&self) {
        (::windows::core::Vtable::vtable(self).Enable)(::windows::core::Vtable::as_raw(self))
    }
    pub unsafe fn Disable(&self) {
        (::windows::core::Vtable::vtable(self).Disable)(::windows::core::Vtable::as_raw(self))
    }
    pub unsafe fn Remove(&self) {
        (::windows::core::Vtable::vtable(self).Remove)(::windows::core::Vtable::as_raw(self))
    }
    pub unsafe fn GetPosition(&self, position: *mut ScriptDebugPosition, positionspanend: ::core::option::Option<*mut ScriptDebugPosition>, linetext: ::core::option::Option<*mut ::windows::core::BSTR>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPosition)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(position), ::core::mem::transmute(positionspanend.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(linetext.unwrap_or(::std::ptr::null_mut()))).ok()
    }
}
::windows::core::interface_hierarchy!(IDataModelScriptDebugBreakpoint, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDataModelScriptDebugBreakpoint {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDataModelScriptDebugBreakpoint {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDataModelScriptDebugBreakpoint {}
impl ::core::fmt::Debug for IDataModelScriptDebugBreakpoint {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDataModelScriptDebugBreakpoint").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDataModelScriptDebugBreakpoint {
    type Vtable = IDataModelScriptDebugBreakpoint_Vtbl;
}
unsafe impl ::windows::core::Interface for IDataModelScriptDebugBreakpoint {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6bb27b35_02e6_47cb_90a0_5371244032de);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptDebugBreakpoint_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u64,
    pub IsEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> bool,
    pub Enable: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
    pub Disable: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
    pub Remove: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
    pub GetPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, position: *mut ScriptDebugPosition, positionspanend: *mut ScriptDebugPosition, linetext: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDataModelScriptDebugBreakpointEnumerator(::windows::core::IUnknown);
impl IDataModelScriptDebugBreakpointEnumerator {
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Reset)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetNext(&self) -> ::windows::core::Result<IDataModelScriptDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptDebugBreakpoint>(result__)
    }
}
::windows::core::interface_hierarchy!(IDataModelScriptDebugBreakpointEnumerator, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDataModelScriptDebugBreakpointEnumerator {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDataModelScriptDebugBreakpointEnumerator {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDataModelScriptDebugBreakpointEnumerator {}
impl ::core::fmt::Debug for IDataModelScriptDebugBreakpointEnumerator {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDataModelScriptDebugBreakpointEnumerator").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDataModelScriptDebugBreakpointEnumerator {
    type Vtable = IDataModelScriptDebugBreakpointEnumerator_Vtbl;
}
unsafe impl ::windows::core::Interface for IDataModelScriptDebugBreakpointEnumerator {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x39484a75_b4f3_4799_86da_691afa57b299);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptDebugBreakpointEnumerator_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetNext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, breakpoint: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDataModelScriptDebugClient(::windows::core::IUnknown);
impl IDataModelScriptDebugClient {
    pub unsafe fn NotifyDebugEvent<'a, P0, P1>(&self, peventinfo: *const ScriptDebugEventInformation, pscript: P0, peventdataobject: P1, resumeeventkind: *mut ScriptExecutionKind) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDataModelScript>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).NotifyDebugEvent)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(peventinfo), pscript.into().abi(), peventdataobject.into().abi(), ::core::mem::transmute(resumeeventkind)).ok()
    }
}
::windows::core::interface_hierarchy!(IDataModelScriptDebugClient, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDataModelScriptDebugClient {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDataModelScriptDebugClient {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDataModelScriptDebugClient {}
impl ::core::fmt::Debug for IDataModelScriptDebugClient {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDataModelScriptDebugClient").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDataModelScriptDebugClient {
    type Vtable = IDataModelScriptDebugClient_Vtbl;
}
unsafe impl ::windows::core::Interface for IDataModelScriptDebugClient {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x53159b6d_d4c4_471b_a863_5b110ca800ca);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptDebugClient_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub NotifyDebugEvent: unsafe extern "system" fn(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,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDataModelScriptDebugStack(::windows::core::IUnknown);
impl IDataModelScriptDebugStack {
    pub unsafe fn GetFrameCount(&self) -> u64 {
        (::windows::core::Vtable::vtable(self).GetFrameCount)(::windows::core::Vtable::as_raw(self))
    }
    pub unsafe fn GetStackFrame(&self, framenumber: u64) -> ::windows::core::Result<IDataModelScriptDebugStackFrame> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetStackFrame)(::windows::core::Vtable::as_raw(self), framenumber, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptDebugStackFrame>(result__)
    }
}
::windows::core::interface_hierarchy!(IDataModelScriptDebugStack, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDataModelScriptDebugStack {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDataModelScriptDebugStack {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDataModelScriptDebugStack {}
impl ::core::fmt::Debug for IDataModelScriptDebugStack {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDataModelScriptDebugStack").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDataModelScriptDebugStack {
    type Vtable = IDataModelScriptDebugStack_Vtbl;
}
unsafe impl ::windows::core::Interface for IDataModelScriptDebugStack {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x051364dd_e449_443e_9762_fe578f4a5473);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptDebugStack_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetFrameCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u64,
    pub GetStackFrame: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, framenumber: u64, stackframe: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDataModelScriptDebugStackFrame(::windows::core::IUnknown);
impl IDataModelScriptDebugStackFrame {
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetPosition(&self, position: *mut ScriptDebugPosition, positionspanend: ::core::option::Option<*mut ScriptDebugPosition>, linetext: ::core::option::Option<*mut ::windows::core::BSTR>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPosition)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(position), ::core::mem::transmute(positionspanend.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(linetext.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn IsTransitionPoint(&self) -> ::windows::core::Result<bool> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).IsTransitionPoint)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
    pub unsafe fn GetTransition(&self, transitionscript: *mut ::core::option::Option<IDataModelScript>, istransitioncontiguous: *mut bool) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTransition)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(transitionscript), ::core::mem::transmute(istransitioncontiguous)).ok()
    }
    pub unsafe fn Evaluate<'a, P0>(&self, pwszexpression: P0) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Evaluate)(::windows::core::Vtable::as_raw(self), pwszexpression.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn EnumerateLocals(&self) -> ::windows::core::Result<IDataModelScriptDebugVariableSetEnumerator> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumerateLocals)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptDebugVariableSetEnumerator>(result__)
    }
    pub unsafe fn EnumerateArguments(&self) -> ::windows::core::Result<IDataModelScriptDebugVariableSetEnumerator> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumerateArguments)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptDebugVariableSetEnumerator>(result__)
    }
}
::windows::core::interface_hierarchy!(IDataModelScriptDebugStackFrame, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDataModelScriptDebugStackFrame {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDataModelScriptDebugStackFrame {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDataModelScriptDebugStackFrame {}
impl ::core::fmt::Debug for IDataModelScriptDebugStackFrame {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDataModelScriptDebugStackFrame").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDataModelScriptDebugStackFrame {
    type Vtable = IDataModelScriptDebugStackFrame_Vtbl;
}
unsafe impl ::windows::core::Interface for IDataModelScriptDebugStackFrame {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdec6ed5e_6360_4941_ab4c_a26409de4f82);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptDebugStackFrame_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub GetPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, position: *mut ScriptDebugPosition, positionspanend: *mut ScriptDebugPosition, linetext: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub IsTransitionPoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, istransitionpoint: *mut bool) -> ::windows::core::HRESULT,
    pub GetTransition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, transitionscript: *mut *mut ::core::ffi::c_void, istransitioncontiguous: *mut bool) -> ::windows::core::HRESULT,
    pub Evaluate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pwszexpression: ::windows::core::PCWSTR, ppresult: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EnumerateLocals: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, variablesenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EnumerateArguments: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, variablesenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDataModelScriptDebugVariableSetEnumerator(::windows::core::IUnknown);
impl IDataModelScriptDebugVariableSetEnumerator {
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Reset)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetNext(&self, variablename: *mut ::windows::core::BSTR, variablevalue: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, variablemetadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(variablename), ::core::mem::transmute(variablevalue.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(variablemetadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
}
::windows::core::interface_hierarchy!(IDataModelScriptDebugVariableSetEnumerator, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDataModelScriptDebugVariableSetEnumerator {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDataModelScriptDebugVariableSetEnumerator {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDataModelScriptDebugVariableSetEnumerator {}
impl ::core::fmt::Debug for IDataModelScriptDebugVariableSetEnumerator {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDataModelScriptDebugVariableSetEnumerator").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDataModelScriptDebugVariableSetEnumerator {
    type Vtable = IDataModelScriptDebugVariableSetEnumerator_Vtbl;
}
unsafe impl ::windows::core::Interface for IDataModelScriptDebugVariableSetEnumerator {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0f9feed7_d045_4ac3_98a8_a98942cf6a35);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptDebugVariableSetEnumerator_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetNext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, variablename: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>, variablevalue: *mut *mut ::core::ffi::c_void, variablemetadata: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDataModelScriptHostContext(::windows::core::IUnknown);
impl IDataModelScriptHostContext {
    pub unsafe fn NotifyScriptChange<'a, P0>(&self, script: P0, changekind: ScriptChangeKind) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDataModelScript>>,
    {
        (::windows::core::Vtable::vtable(self).NotifyScriptChange)(::windows::core::Vtable::as_raw(self), script.into().abi(), changekind).ok()
    }
    pub unsafe fn GetNamespaceObject(&self) -> ::windows::core::Result<IModelObject> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNamespaceObject)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
}
::windows::core::interface_hierarchy!(IDataModelScriptHostContext, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDataModelScriptHostContext {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDataModelScriptHostContext {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDataModelScriptHostContext {}
impl ::core::fmt::Debug for IDataModelScriptHostContext {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDataModelScriptHostContext").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDataModelScriptHostContext {
    type Vtable = IDataModelScriptHostContext_Vtbl;
}
unsafe impl ::windows::core::Interface for IDataModelScriptHostContext {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x014d366a_1f23_4981_9219_b2db8b402054);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptHostContext_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub NotifyScriptChange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, script: *mut ::core::ffi::c_void, changekind: ScriptChangeKind) -> ::windows::core::HRESULT,
    pub GetNamespaceObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, namespaceobject: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDataModelScriptManager(::windows::core::IUnknown);
impl IDataModelScriptManager {
    pub unsafe fn GetDefaultNameBinder(&self) -> ::windows::core::Result<IDataModelNameBinder> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDefaultNameBinder)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelNameBinder>(result__)
    }
    pub unsafe fn RegisterScriptProvider<'a, P0>(&self, provider: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDataModelScriptProvider>>,
    {
        (::windows::core::Vtable::vtable(self).RegisterScriptProvider)(::windows::core::Vtable::as_raw(self), provider.into().abi()).ok()
    }
    pub unsafe fn UnregisterScriptProvider<'a, P0>(&self, provider: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDataModelScriptProvider>>,
    {
        (::windows::core::Vtable::vtable(self).UnregisterScriptProvider)(::windows::core::Vtable::as_raw(self), provider.into().abi()).ok()
    }
    pub unsafe fn FindProviderForScriptType<'a, P0>(&self, scripttype: P0) -> ::windows::core::Result<IDataModelScriptProvider>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).FindProviderForScriptType)(::windows::core::Vtable::as_raw(self), scripttype.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptProvider>(result__)
    }
    pub unsafe fn FindProviderForScriptExtension<'a, P0>(&self, scriptextension: P0) -> ::windows::core::Result<IDataModelScriptProvider>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).FindProviderForScriptExtension)(::windows::core::Vtable::as_raw(self), scriptextension.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptProvider>(result__)
    }
    pub unsafe fn EnumerateScriptProviders(&self) -> ::windows::core::Result<IDataModelScriptProviderEnumerator> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumerateScriptProviders)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptProviderEnumerator>(result__)
    }
}
::windows::core::interface_hierarchy!(IDataModelScriptManager, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDataModelScriptManager {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDataModelScriptManager {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDataModelScriptManager {}
impl ::core::fmt::Debug for IDataModelScriptManager {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDataModelScriptManager").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDataModelScriptManager {
    type Vtable = IDataModelScriptManager_Vtbl;
}
unsafe impl ::windows::core::Interface for IDataModelScriptManager {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6fd11e33_e5ad_410b_8011_68c6bc4bf80d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptManager_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetDefaultNameBinder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppnamebinder: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub RegisterScriptProvider: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, provider: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub UnregisterScriptProvider: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, provider: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub FindProviderForScriptType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, scripttype: ::windows::core::PCWSTR, provider: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub FindProviderForScriptExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, scriptextension: ::windows::core::PCWSTR, provider: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EnumerateScriptProviders: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enumerator: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDataModelScriptProvider(::windows::core::IUnknown);
impl IDataModelScriptProvider {
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetExtension(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExtension)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn CreateScript(&self) -> ::windows::core::Result<IDataModelScript> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateScript)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScript>(result__)
    }
    pub unsafe fn GetDefaultTemplateContent(&self) -> ::windows::core::Result<IDataModelScriptTemplate> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDefaultTemplateContent)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptTemplate>(result__)
    }
    pub unsafe fn EnumerateTemplates(&self) -> ::windows::core::Result<IDataModelScriptTemplateEnumerator> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumerateTemplates)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptTemplateEnumerator>(result__)
    }
}
::windows::core::interface_hierarchy!(IDataModelScriptProvider, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDataModelScriptProvider {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDataModelScriptProvider {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDataModelScriptProvider {}
impl ::core::fmt::Debug for IDataModelScriptProvider {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDataModelScriptProvider").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDataModelScriptProvider {
    type Vtable = IDataModelScriptProvider_Vtbl;
}
unsafe impl ::windows::core::Interface for IDataModelScriptProvider {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x513461e0_4fca_48ce_8658_32f3e2056f3b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptProvider_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub GetExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, extension: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub CreateScript: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, script: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetDefaultTemplateContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, templatecontent: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EnumerateTemplates: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enumerator: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDataModelScriptProviderEnumerator(::windows::core::IUnknown);
impl IDataModelScriptProviderEnumerator {
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Reset)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetNext(&self) -> ::windows::core::Result<IDataModelScriptProvider> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptProvider>(result__)
    }
}
::windows::core::interface_hierarchy!(IDataModelScriptProviderEnumerator, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDataModelScriptProviderEnumerator {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDataModelScriptProviderEnumerator {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDataModelScriptProviderEnumerator {}
impl ::core::fmt::Debug for IDataModelScriptProviderEnumerator {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDataModelScriptProviderEnumerator").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDataModelScriptProviderEnumerator {
    type Vtable = IDataModelScriptProviderEnumerator_Vtbl;
}
unsafe impl ::windows::core::Interface for IDataModelScriptProviderEnumerator {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x95ba00e2_704a_4fe2_a8f1_a7e7d8fb0941);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptProviderEnumerator_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetNext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, provider: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDataModelScriptTemplate(::windows::core::IUnknown);
impl IDataModelScriptTemplate {
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetDescription(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDescription)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn GetContent(&self) -> ::windows::core::Result<super::super::Com::IStream> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetContent)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::IStream>(result__)
    }
}
::windows::core::interface_hierarchy!(IDataModelScriptTemplate, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDataModelScriptTemplate {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDataModelScriptTemplate {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDataModelScriptTemplate {}
impl ::core::fmt::Debug for IDataModelScriptTemplate {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDataModelScriptTemplate").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDataModelScriptTemplate {
    type Vtable = IDataModelScriptTemplate_Vtbl;
}
unsafe impl ::windows::core::Interface for IDataModelScriptTemplate {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1303dec4_fa3b_4f1b_9224_b953d16babb5);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptTemplate_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, templatename: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub GetDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, templatedescription: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Com")]
    pub GetContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contentstream: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    GetContent: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDataModelScriptTemplateEnumerator(::windows::core::IUnknown);
impl IDataModelScriptTemplateEnumerator {
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Reset)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetNext(&self) -> ::windows::core::Result<IDataModelScriptTemplate> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptTemplate>(result__)
    }
}
::windows::core::interface_hierarchy!(IDataModelScriptTemplateEnumerator, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDataModelScriptTemplateEnumerator {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDataModelScriptTemplateEnumerator {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDataModelScriptTemplateEnumerator {}
impl ::core::fmt::Debug for IDataModelScriptTemplateEnumerator {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDataModelScriptTemplateEnumerator").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDataModelScriptTemplateEnumerator {
    type Vtable = IDataModelScriptTemplateEnumerator_Vtbl;
}
unsafe impl ::windows::core::Interface for IDataModelScriptTemplateEnumerator {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x69ce6ae2_2268_4e6f_b062_20ce62bfe677);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptTemplateEnumerator_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetNext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, templatecontent: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugAdvanced(::windows::core::IUnknown);
impl IDebugAdvanced {
    pub unsafe fn GetThreadContext(&self, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetThreadContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(context), contextsize).ok()
    }
    pub unsafe fn SetThreadContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetThreadContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(context), contextsize).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugAdvanced, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugAdvanced {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugAdvanced {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugAdvanced {}
impl ::core::fmt::Debug for IDebugAdvanced {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugAdvanced").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugAdvanced {
    type Vtable = IDebugAdvanced_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugAdvanced {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf2df5f53_071f_47bd_9de6_5734c3fed689);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugAdvanced_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetThreadContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT,
    pub SetThreadContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugAdvanced2(::windows::core::IUnknown);
impl IDebugAdvanced2 {
    pub unsafe fn GetThreadContext(&self, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetThreadContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(context), contextsize).ok()
    }
    pub unsafe fn SetThreadContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetThreadContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(context), contextsize).ok()
    }
    pub unsafe fn Request(&self, request: u32, inbuffer: ::core::option::Option<*const ::core::ffi::c_void>, inbuffersize: u32, outbuffer: ::core::option::Option<*mut ::core::ffi::c_void>, outbuffersize: u32, outsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Request)(::windows::core::Vtable::as_raw(self), request, ::core::mem::transmute(inbuffer.unwrap_or(::std::ptr::null())), inbuffersize, ::core::mem::transmute(outbuffer.unwrap_or(::std::ptr::null_mut())), outbuffersize, ::core::mem::transmute(outsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceFileInformation<'a, P0>(&self, which: u32, sourcefile: P0, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSourceFileInformation)(::windows::core::Vtable::as_raw(self), which, sourcefile.into(), arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn FindSourceFileAndToken<'a, P0>(&self, startelement: u32, modaddr: u64, file: P0, flags: u32, filetoken: ::core::option::Option<*const ::core::ffi::c_void>, filetokensize: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).FindSourceFileAndToken)(::windows::core::Vtable::as_raw(self), startelement, modaddr, file.into(), flags, ::core::mem::transmute(filetoken.unwrap_or(::std::ptr::null())), filetokensize, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>, stringbuffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolInformation)(::windows::core::Vtable::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(stringbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), stringbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSystemObjectInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemObjectInformation)(::windows::core::Vtable::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugAdvanced2, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugAdvanced2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugAdvanced2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugAdvanced2 {}
impl ::core::fmt::Debug for IDebugAdvanced2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugAdvanced2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugAdvanced2 {
    type Vtable = IDebugAdvanced2_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugAdvanced2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x716d14c9_119b_4ba5_af1f_0890e672416a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugAdvanced2_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetThreadContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT,
    pub SetThreadContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT,
    pub Request: unsafe extern "system" fn(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,
    pub GetSourceFileInformation: unsafe extern "system" fn(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,
    pub FindSourceFileAndToken: unsafe extern "system" fn(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,
    pub GetSymbolInformation: unsafe extern "system" fn(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,
    pub GetSystemObjectInformation: unsafe extern "system" fn(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,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugAdvanced3(::windows::core::IUnknown);
impl IDebugAdvanced3 {
    pub unsafe fn GetThreadContext(&self, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetThreadContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(context), contextsize).ok()
    }
    pub unsafe fn SetThreadContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetThreadContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(context), contextsize).ok()
    }
    pub unsafe fn Request(&self, request: u32, inbuffer: ::core::option::Option<*const ::core::ffi::c_void>, inbuffersize: u32, outbuffer: ::core::option::Option<*mut ::core::ffi::c_void>, outbuffersize: u32, outsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Request)(::windows::core::Vtable::as_raw(self), request, ::core::mem::transmute(inbuffer.unwrap_or(::std::ptr::null())), inbuffersize, ::core::mem::transmute(outbuffer.unwrap_or(::std::ptr::null_mut())), outbuffersize, ::core::mem::transmute(outsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceFileInformation<'a, P0>(&self, which: u32, sourcefile: P0, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSourceFileInformation)(::windows::core::Vtable::as_raw(self), which, sourcefile.into(), arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn FindSourceFileAndToken<'a, P0>(&self, startelement: u32, modaddr: u64, file: P0, flags: u32, filetoken: ::core::option::Option<*const ::core::ffi::c_void>, filetokensize: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).FindSourceFileAndToken)(::windows::core::Vtable::as_raw(self), startelement, modaddr, file.into(), flags, ::core::mem::transmute(filetoken.unwrap_or(::std::ptr::null())), filetokensize, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>, stringbuffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolInformation)(::windows::core::Vtable::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(stringbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), stringbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSystemObjectInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemObjectInformation)(::windows::core::Vtable::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceFileInformationWide<'a, P0>(&self, which: u32, sourcefile: P0, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSourceFileInformationWide)(::windows::core::Vtable::as_raw(self), which, sourcefile.into(), arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn FindSourceFileAndTokenWide<'a, P0>(&self, startelement: u32, modaddr: u64, file: P0, flags: u32, filetoken: ::core::option::Option<*const ::core::ffi::c_void>, filetokensize: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u16]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).FindSourceFileAndTokenWide)(::windows::core::Vtable::as_raw(self), startelement, modaddr, file.into(), flags, ::core::mem::transmute(filetoken.unwrap_or(::std::ptr::null())), filetokensize, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolInformationWide(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>, stringbuffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolInformationWide)(::windows::core::Vtable::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(stringbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), stringbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugAdvanced3, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugAdvanced3 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugAdvanced3 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugAdvanced3 {}
impl ::core::fmt::Debug for IDebugAdvanced3 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugAdvanced3").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugAdvanced3 {
    type Vtable = IDebugAdvanced3_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugAdvanced3 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xcba4abb4_84c4_444d_87ca_a04e13286739);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugAdvanced3_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetThreadContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT,
    pub SetThreadContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT,
    pub Request: unsafe extern "system" fn(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,
    pub GetSourceFileInformation: unsafe extern "system" fn(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,
    pub FindSourceFileAndToken: unsafe extern "system" fn(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,
    pub GetSymbolInformation: unsafe extern "system" fn(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,
    pub GetSystemObjectInformation: unsafe extern "system" fn(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,
    pub GetSourceFileInformationWide: unsafe extern "system" fn(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,
    pub FindSourceFileAndTokenWide: unsafe extern "system" fn(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,
    pub GetSymbolInformationWide: unsafe extern "system" fn(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,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugAdvanced4(::windows::core::IUnknown);
impl IDebugAdvanced4 {
    pub unsafe fn GetThreadContext(&self, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetThreadContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(context), contextsize).ok()
    }
    pub unsafe fn SetThreadContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetThreadContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(context), contextsize).ok()
    }
    pub unsafe fn Request(&self, request: u32, inbuffer: ::core::option::Option<*const ::core::ffi::c_void>, inbuffersize: u32, outbuffer: ::core::option::Option<*mut ::core::ffi::c_void>, outbuffersize: u32, outsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Request)(::windows::core::Vtable::as_raw(self), request, ::core::mem::transmute(inbuffer.unwrap_or(::std::ptr::null())), inbuffersize, ::core::mem::transmute(outbuffer.unwrap_or(::std::ptr::null_mut())), outbuffersize, ::core::mem::transmute(outsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceFileInformation<'a, P0>(&self, which: u32, sourcefile: P0, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSourceFileInformation)(::windows::core::Vtable::as_raw(self), which, sourcefile.into(), arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn FindSourceFileAndToken<'a, P0>(&self, startelement: u32, modaddr: u64, file: P0, flags: u32, filetoken: ::core::option::Option<*const ::core::ffi::c_void>, filetokensize: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).FindSourceFileAndToken)(::windows::core::Vtable::as_raw(self), startelement, modaddr, file.into(), flags, ::core::mem::transmute(filetoken.unwrap_or(::std::ptr::null())), filetokensize, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>, stringbuffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolInformation)(::windows::core::Vtable::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(stringbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), stringbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSystemObjectInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemObjectInformation)(::windows::core::Vtable::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceFileInformationWide<'a, P0>(&self, which: u32, sourcefile: P0, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSourceFileInformationWide)(::windows::core::Vtable::as_raw(self), which, sourcefile.into(), arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn FindSourceFileAndTokenWide<'a, P0>(&self, startelement: u32, modaddr: u64, file: P0, flags: u32, filetoken: ::core::option::Option<*const ::core::ffi::c_void>, filetokensize: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u16]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).FindSourceFileAndTokenWide)(::windows::core::Vtable::as_raw(self), startelement, modaddr, file.into(), flags, ::core::mem::transmute(filetoken.unwrap_or(::std::ptr::null())), filetokensize, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolInformationWide(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>, stringbuffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolInformationWide)(::windows::core::Vtable::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(stringbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), stringbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolInformationWideEx(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>, stringbuffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>, pinfoex: ::core::option::Option<*mut SYMBOL_INFO_EX>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolInformationWideEx)(
            ::windows::core::Vtable::as_raw(self),
            which,
            arg64,
            arg32,
            ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())),
            buffersize,
            ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(stringbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            stringbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(pinfoex.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
}
::windows::core::interface_hierarchy!(IDebugAdvanced4, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugAdvanced4 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugAdvanced4 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugAdvanced4 {}
impl ::core::fmt::Debug for IDebugAdvanced4 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugAdvanced4").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugAdvanced4 {
    type Vtable = IDebugAdvanced4_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugAdvanced4 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd1069067_2a65_4bf0_ae97_76184b67856b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugAdvanced4_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetThreadContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT,
    pub SetThreadContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT,
    pub Request: unsafe extern "system" fn(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,
    pub GetSourceFileInformation: unsafe extern "system" fn(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,
    pub FindSourceFileAndToken: unsafe extern "system" fn(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,
    pub GetSymbolInformation: unsafe extern "system" fn(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,
    pub GetSystemObjectInformation: unsafe extern "system" fn(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,
    pub GetSourceFileInformationWide: unsafe extern "system" fn(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,
    pub FindSourceFileAndTokenWide: unsafe extern "system" fn(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,
    pub GetSymbolInformationWide: unsafe extern "system" fn(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,
    pub GetSymbolInformationWideEx: unsafe extern "system" fn(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,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugApplication11032(::windows::core::IUnknown);
impl IDebugApplication11032 {
    pub unsafe fn SetDebuggerOptions(&self, mask: SCRIPT_DEBUGGER_OPTIONS, value: SCRIPT_DEBUGGER_OPTIONS) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.SetDebuggerOptions)(::windows::core::Vtable::as_raw(self), mask, value).ok()
    }
    pub unsafe fn GetCurrentDebuggerOptions(&self) -> ::windows::core::Result<SCRIPT_DEBUGGER_OPTIONS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetCurrentDebuggerOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<SCRIPT_DEBUGGER_OPTIONS>(result__)
    }
    pub unsafe fn GetMainThread(&self) -> ::windows::core::Result<IRemoteDebugApplicationThread> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetMainThread)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IRemoteDebugApplicationThread>(result__)
    }
    pub unsafe fn SynchronousCallInMainThread<'a, P0>(&self, pptc: P0, dwparam1: usize, dwparam2: usize, dwparam3: usize) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugThreadCall32>>,
    {
        (::windows::core::Vtable::vtable(self).SynchronousCallInMainThread)(::windows::core::Vtable::as_raw(self), pptc.into().abi(), dwparam1, dwparam2, dwparam3).ok()
    }
    pub unsafe fn AsynchronousCallInMainThread<'a, P0>(&self, pptc: P0, dwparam1: usize, dwparam2: usize, dwparam3: usize) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugThreadCall32>>,
    {
        (::windows::core::Vtable::vtable(self).AsynchronousCallInMainThread)(::windows::core::Vtable::as_raw(self), pptc.into().abi(), dwparam1, dwparam2, dwparam3).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn CallableWaitForHandles(&self, phandles: &[super::super::super::Foundation::HANDLE]) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CallableWaitForHandles)(::windows::core::Vtable::as_raw(self), phandles.len() as _, ::core::mem::transmute(phandles.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugApplication11032, ::windows::core::IUnknown, IRemoteDebugApplication110);
impl ::core::clone::Clone for IDebugApplication11032 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugApplication11032 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugApplication11032 {}
impl ::core::fmt::Debug for IDebugApplication11032 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugApplication11032").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugApplication11032 {
    type Vtable = IDebugApplication11032_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugApplication11032 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbdb3b5de_89f2_4e11_84a5_97445f941c7d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugApplication11032_Vtbl {
    pub base__: IRemoteDebugApplication110_Vtbl,
    pub SynchronousCallInMainThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pptc: *mut ::core::ffi::c_void, dwparam1: usize, dwparam2: usize, dwparam3: usize) -> ::windows::core::HRESULT,
    pub AsynchronousCallInMainThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pptc: *mut ::core::ffi::c_void, dwparam1: usize, dwparam2: usize, dwparam3: usize) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub CallableWaitForHandles: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handlecount: u32, phandles: *const super::super::super::Foundation::HANDLE, pindex: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    CallableWaitForHandles: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugApplication11064(::windows::core::IUnknown);
impl IDebugApplication11064 {
    pub unsafe fn SetDebuggerOptions(&self, mask: SCRIPT_DEBUGGER_OPTIONS, value: SCRIPT_DEBUGGER_OPTIONS) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.SetDebuggerOptions)(::windows::core::Vtable::as_raw(self), mask, value).ok()
    }
    pub unsafe fn GetCurrentDebuggerOptions(&self) -> ::windows::core::Result<SCRIPT_DEBUGGER_OPTIONS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetCurrentDebuggerOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<SCRIPT_DEBUGGER_OPTIONS>(result__)
    }
    pub unsafe fn GetMainThread(&self) -> ::windows::core::Result<IRemoteDebugApplicationThread> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetMainThread)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IRemoteDebugApplicationThread>(result__)
    }
    pub unsafe fn SynchronousCallInMainThread<'a, P0>(&self, pptc: P0, dwparam1: usize, dwparam2: usize, dwparam3: usize) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugThreadCall64>>,
    {
        (::windows::core::Vtable::vtable(self).SynchronousCallInMainThread)(::windows::core::Vtable::as_raw(self), pptc.into().abi(), dwparam1, dwparam2, dwparam3).ok()
    }
    pub unsafe fn AsynchronousCallInMainThread<'a, P0>(&self, pptc: P0, dwparam1: usize, dwparam2: usize, dwparam3: usize) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugThreadCall64>>,
    {
        (::windows::core::Vtable::vtable(self).AsynchronousCallInMainThread)(::windows::core::Vtable::as_raw(self), pptc.into().abi(), dwparam1, dwparam2, dwparam3).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn CallableWaitForHandles(&self, phandles: &[super::super::super::Foundation::HANDLE]) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CallableWaitForHandles)(::windows::core::Vtable::as_raw(self), phandles.len() as _, ::core::mem::transmute(phandles.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugApplication11064, ::windows::core::IUnknown, IRemoteDebugApplication110);
impl ::core::clone::Clone for IDebugApplication11064 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugApplication11064 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugApplication11064 {}
impl ::core::fmt::Debug for IDebugApplication11064 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugApplication11064").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugApplication11064 {
    type Vtable = IDebugApplication11064_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugApplication11064 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2039d958_4eeb_496a_87bb_2e5201eadeef);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugApplication11064_Vtbl {
    pub base__: IRemoteDebugApplication110_Vtbl,
    pub SynchronousCallInMainThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pptc: *mut ::core::ffi::c_void, dwparam1: usize, dwparam2: usize, dwparam3: usize) -> ::windows::core::HRESULT,
    pub AsynchronousCallInMainThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pptc: *mut ::core::ffi::c_void, dwparam1: usize, dwparam2: usize, dwparam3: usize) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub CallableWaitForHandles: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handlecount: u32, phandles: *const super::super::super::Foundation::HANDLE, pindex: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    CallableWaitForHandles: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugApplication32(::windows::core::IUnknown);
impl IDebugApplication32 {
    pub unsafe fn ResumeFromBreakPoint<'a, P0>(&self, prptfocus: P0, bra: BREAKRESUMEACTION, era: ERRORRESUMEACTION) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IRemoteDebugApplicationThread>>,
    {
        (::windows::core::Vtable::vtable(self).base__.ResumeFromBreakPoint)(::windows::core::Vtable::as_raw(self), prptfocus.into().abi(), bra, era).ok()
    }
    pub unsafe fn CauseBreak(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.CauseBreak)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn ConnectDebugger<'a, P0>(&self, pad: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IApplicationDebugger>>,
    {
        (::windows::core::Vtable::vtable(self).base__.ConnectDebugger)(::windows::core::Vtable::as_raw(self), pad.into().abi()).ok()
    }
    pub unsafe fn DisconnectDebugger(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.DisconnectDebugger)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetDebugger(&self) -> ::windows::core::Result<IApplicationDebugger> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetDebugger)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IApplicationDebugger>(result__)
    }
    pub unsafe fn CreateInstanceAtApplication<'a, P0>(&self, rclsid: *const ::windows::core::GUID, punkouter: P0, dwclscontext: u32, riid: *const ::windows::core::GUID) -> ::windows::core::Result<::windows::core::IUnknown>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CreateInstanceAtApplication)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(rclsid), punkouter.into().abi(), dwclscontext, ::core::mem::transmute(riid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::IUnknown>(result__)
    }
    pub unsafe fn QueryAlive(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.QueryAlive)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn EnumThreads(&self) -> ::windows::core::Result<IEnumRemoteDebugApplicationThreads> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.EnumThreads)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumRemoteDebugApplicationThreads>(result__)
    }
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetRootNode(&self) -> ::windows::core::Result<IDebugApplicationNode> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetRootNode)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplicationNode>(result__)
    }
    pub unsafe fn EnumGlobalExpressionContexts(&self) -> ::windows::core::Result<IEnumDebugExpressionContexts> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.EnumGlobalExpressionContexts)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugExpressionContexts>(result__)
    }
    pub unsafe fn SetName<'a, P0>(&self, pstrname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetName)(::windows::core::Vtable::as_raw(self), pstrname.into()).ok()
    }
    pub unsafe fn StepOutComplete(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).StepOutComplete)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn DebugOutput<'a, P0>(&self, pstr: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).DebugOutput)(::windows::core::Vtable::as_raw(self), pstr.into()).ok()
    }
    pub unsafe fn StartDebugSession(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).StartDebugSession)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn HandleBreakPoint(&self, br: BREAKREASON) -> ::windows::core::Result<BREAKRESUMEACTION> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).HandleBreakPoint)(::windows::core::Vtable::as_raw(self), br, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<BREAKRESUMEACTION>(result__)
    }
    pub unsafe fn Close(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Close)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetBreakFlags(&self, pabf: *mut u32, pprdatsteppingthread: *mut ::core::option::Option<IRemoteDebugApplicationThread>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetBreakFlags)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pabf), ::core::mem::transmute(pprdatsteppingthread)).ok()
    }
    pub unsafe fn GetCurrentThread(&self) -> ::windows::core::Result<IDebugApplicationThread> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThread)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplicationThread>(result__)
    }
    pub unsafe fn CreateAsyncDebugOperation<'a, P0>(&self, psdo: P0) -> ::windows::core::Result<IDebugAsyncOperation>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugSyncOperation>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateAsyncDebugOperation)(::windows::core::Vtable::as_raw(self), psdo.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugAsyncOperation>(result__)
    }
    pub unsafe fn AddStackFrameSniffer<'a, P0>(&self, pdsfs: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugStackFrameSniffer>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddStackFrameSniffer)(::windows::core::Vtable::as_raw(self), pdsfs.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn RemoveStackFrameSniffer(&self, dwcookie: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveStackFrameSniffer)(::windows::core::Vtable::as_raw(self), dwcookie).ok()
    }
    pub unsafe fn QueryCurrentThreadIsDebuggerThread(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).QueryCurrentThreadIsDebuggerThread)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn SynchronousCallInDebuggerThread<'a, P0>(&self, pptc: P0, dwparam1: u32, dwparam2: u32, dwparam3: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugThreadCall32>>,
    {
        (::windows::core::Vtable::vtable(self).SynchronousCallInDebuggerThread)(::windows::core::Vtable::as_raw(self), pptc.into().abi(), dwparam1, dwparam2, dwparam3).ok()
    }
    pub unsafe fn CreateApplicationNode(&self) -> ::windows::core::Result<IDebugApplicationNode> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateApplicationNode)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplicationNode>(result__)
    }
    pub unsafe fn FireDebuggerEvent<'a, P0>(&self, riid: *const ::windows::core::GUID, punk: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
    {
        (::windows::core::Vtable::vtable(self).FireDebuggerEvent)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(riid), punk.into().abi()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn HandleRuntimeError<'a, P0, P1>(&self, perrordebug: P0, pscriptsite: P1, pbra: *mut BREAKRESUMEACTION, perra: *mut ERRORRESUMEACTION, pfcallonscripterror: *mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IActiveScriptErrorDebug>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IActiveScriptSite>>,
    {
        (::windows::core::Vtable::vtable(self).HandleRuntimeError)(::windows::core::Vtable::as_raw(self), perrordebug.into().abi(), pscriptsite.into().abi(), ::core::mem::transmute(pbra), ::core::mem::transmute(perra), ::core::mem::transmute(pfcallonscripterror)).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn FCanJitDebug(&self) -> super::super::super::Foundation::BOOL {
        (::windows::core::Vtable::vtable(self).FCanJitDebug)(::windows::core::Vtable::as_raw(self))
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn FIsAutoJitDebugEnabled(&self) -> super::super::super::Foundation::BOOL {
        (::windows::core::Vtable::vtable(self).FIsAutoJitDebugEnabled)(::windows::core::Vtable::as_raw(self))
    }
    pub unsafe fn AddGlobalExpressionContextProvider<'a, P0>(&self, pdsfs: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IProvideExpressionContexts>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddGlobalExpressionContextProvider)(::windows::core::Vtable::as_raw(self), pdsfs.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn RemoveGlobalExpressionContextProvider(&self, dwcookie: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveGlobalExpressionContextProvider)(::windows::core::Vtable::as_raw(self), dwcookie).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugApplication32, ::windows::core::IUnknown, IRemoteDebugApplication);
impl ::core::clone::Clone for IDebugApplication32 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugApplication32 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugApplication32 {}
impl ::core::fmt::Debug for IDebugApplication32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugApplication32").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugApplication32 {
    type Vtable = IDebugApplication32_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugApplication32 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c32_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugApplication32_Vtbl {
    pub base__: IRemoteDebugApplication_Vtbl,
    pub SetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub StepOutComplete: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub DebugOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstr: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub StartDebugSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub HandleBreakPoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, br: BREAKREASON, pbra: *mut BREAKRESUMEACTION) -> ::windows::core::HRESULT,
    pub Close: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetBreakFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pabf: *mut u32, pprdatsteppingthread: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetCurrentThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pat: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateAsyncDebugOperation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psdo: *mut ::core::ffi::c_void, ppado: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddStackFrameSniffer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdsfs: *mut ::core::ffi::c_void, pdwcookie: *mut u32) -> ::windows::core::HRESULT,
    pub RemoveStackFrameSniffer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwcookie: u32) -> ::windows::core::HRESULT,
    pub QueryCurrentThreadIsDebuggerThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SynchronousCallInDebuggerThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pptc: *mut ::core::ffi::c_void, dwparam1: u32, dwparam2: u32, dwparam3: u32) -> ::windows::core::HRESULT,
    pub CreateApplicationNode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppdannew: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub FireDebuggerEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, punk: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub HandleRuntimeError: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, perrordebug: *mut ::core::ffi::c_void, pscriptsite: *mut ::core::ffi::c_void, pbra: *mut BREAKRESUMEACTION, perra: *mut ERRORRESUMEACTION, pfcallonscripterror: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    HandleRuntimeError: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub FCanJitDebug: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> super::super::super::Foundation::BOOL,
    #[cfg(not(feature = "Win32_Foundation"))]
    FCanJitDebug: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub FIsAutoJitDebugEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> super::super::super::Foundation::BOOL,
    #[cfg(not(feature = "Win32_Foundation"))]
    FIsAutoJitDebugEnabled: usize,
    pub AddGlobalExpressionContextProvider: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdsfs: *mut ::core::ffi::c_void, pdwcookie: *mut u32) -> ::windows::core::HRESULT,
    pub RemoveGlobalExpressionContextProvider: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwcookie: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugApplication64(::windows::core::IUnknown);
impl IDebugApplication64 {
    pub unsafe fn ResumeFromBreakPoint<'a, P0>(&self, prptfocus: P0, bra: BREAKRESUMEACTION, era: ERRORRESUMEACTION) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IRemoteDebugApplicationThread>>,
    {
        (::windows::core::Vtable::vtable(self).base__.ResumeFromBreakPoint)(::windows::core::Vtable::as_raw(self), prptfocus.into().abi(), bra, era).ok()
    }
    pub unsafe fn CauseBreak(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.CauseBreak)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn ConnectDebugger<'a, P0>(&self, pad: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IApplicationDebugger>>,
    {
        (::windows::core::Vtable::vtable(self).base__.ConnectDebugger)(::windows::core::Vtable::as_raw(self), pad.into().abi()).ok()
    }
    pub unsafe fn DisconnectDebugger(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.DisconnectDebugger)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetDebugger(&self) -> ::windows::core::Result<IApplicationDebugger> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetDebugger)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IApplicationDebugger>(result__)
    }
    pub unsafe fn CreateInstanceAtApplication<'a, P0>(&self, rclsid: *const ::windows::core::GUID, punkouter: P0, dwclscontext: u32, riid: *const ::windows::core::GUID) -> ::windows::core::Result<::windows::core::IUnknown>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CreateInstanceAtApplication)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(rclsid), punkouter.into().abi(), dwclscontext, ::core::mem::transmute(riid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::IUnknown>(result__)
    }
    pub unsafe fn QueryAlive(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.QueryAlive)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn EnumThreads(&self) -> ::windows::core::Result<IEnumRemoteDebugApplicationThreads> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.EnumThreads)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumRemoteDebugApplicationThreads>(result__)
    }
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetRootNode(&self) -> ::windows::core::Result<IDebugApplicationNode> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetRootNode)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplicationNode>(result__)
    }
    pub unsafe fn EnumGlobalExpressionContexts(&self) -> ::windows::core::Result<IEnumDebugExpressionContexts> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.EnumGlobalExpressionContexts)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugExpressionContexts>(result__)
    }
    pub unsafe fn SetName<'a, P0>(&self, pstrname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetName)(::windows::core::Vtable::as_raw(self), pstrname.into()).ok()
    }
    pub unsafe fn StepOutComplete(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).StepOutComplete)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn DebugOutput<'a, P0>(&self, pstr: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).DebugOutput)(::windows::core::Vtable::as_raw(self), pstr.into()).ok()
    }
    pub unsafe fn StartDebugSession(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).StartDebugSession)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn HandleBreakPoint(&self, br: BREAKREASON) -> ::windows::core::Result<BREAKRESUMEACTION> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).HandleBreakPoint)(::windows::core::Vtable::as_raw(self), br, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<BREAKRESUMEACTION>(result__)
    }
    pub unsafe fn Close(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Close)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetBreakFlags(&self, pabf: *mut u32, pprdatsteppingthread: *mut ::core::option::Option<IRemoteDebugApplicationThread>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetBreakFlags)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pabf), ::core::mem::transmute(pprdatsteppingthread)).ok()
    }
    pub unsafe fn GetCurrentThread(&self) -> ::windows::core::Result<IDebugApplicationThread> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThread)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplicationThread>(result__)
    }
    pub unsafe fn CreateAsyncDebugOperation<'a, P0>(&self, psdo: P0) -> ::windows::core::Result<IDebugAsyncOperation>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugSyncOperation>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateAsyncDebugOperation)(::windows::core::Vtable::as_raw(self), psdo.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugAsyncOperation>(result__)
    }
    pub unsafe fn AddStackFrameSniffer<'a, P0>(&self, pdsfs: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugStackFrameSniffer>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddStackFrameSniffer)(::windows::core::Vtable::as_raw(self), pdsfs.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn RemoveStackFrameSniffer(&self, dwcookie: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveStackFrameSniffer)(::windows::core::Vtable::as_raw(self), dwcookie).ok()
    }
    pub unsafe fn QueryCurrentThreadIsDebuggerThread(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).QueryCurrentThreadIsDebuggerThread)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn SynchronousCallInDebuggerThread<'a, P0>(&self, pptc: P0, dwparam1: u64, dwparam2: u64, dwparam3: u64) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugThreadCall64>>,
    {
        (::windows::core::Vtable::vtable(self).SynchronousCallInDebuggerThread)(::windows::core::Vtable::as_raw(self), pptc.into().abi(), dwparam1, dwparam2, dwparam3).ok()
    }
    pub unsafe fn CreateApplicationNode(&self) -> ::windows::core::Result<IDebugApplicationNode> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateApplicationNode)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplicationNode>(result__)
    }
    pub unsafe fn FireDebuggerEvent<'a, P0>(&self, riid: *const ::windows::core::GUID, punk: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
    {
        (::windows::core::Vtable::vtable(self).FireDebuggerEvent)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(riid), punk.into().abi()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn HandleRuntimeError<'a, P0, P1>(&self, perrordebug: P0, pscriptsite: P1, pbra: *mut BREAKRESUMEACTION, perra: *mut ERRORRESUMEACTION, pfcallonscripterror: *mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IActiveScriptErrorDebug>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IActiveScriptSite>>,
    {
        (::windows::core::Vtable::vtable(self).HandleRuntimeError)(::windows::core::Vtable::as_raw(self), perrordebug.into().abi(), pscriptsite.into().abi(), ::core::mem::transmute(pbra), ::core::mem::transmute(perra), ::core::mem::transmute(pfcallonscripterror)).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn FCanJitDebug(&self) -> super::super::super::Foundation::BOOL {
        (::windows::core::Vtable::vtable(self).FCanJitDebug)(::windows::core::Vtable::as_raw(self))
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn FIsAutoJitDebugEnabled(&self) -> super::super::super::Foundation::BOOL {
        (::windows::core::Vtable::vtable(self).FIsAutoJitDebugEnabled)(::windows::core::Vtable::as_raw(self))
    }
    pub unsafe fn AddGlobalExpressionContextProvider<'a, P0>(&self, pdsfs: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IProvideExpressionContexts>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddGlobalExpressionContextProvider)(::windows::core::Vtable::as_raw(self), pdsfs.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn RemoveGlobalExpressionContextProvider(&self, dwcookie: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveGlobalExpressionContextProvider)(::windows::core::Vtable::as_raw(self), dwcookie).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugApplication64, ::windows::core::IUnknown, IRemoteDebugApplication);
impl ::core::clone::Clone for IDebugApplication64 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugApplication64 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugApplication64 {}
impl ::core::fmt::Debug for IDebugApplication64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugApplication64").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugApplication64 {
    type Vtable = IDebugApplication64_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugApplication64 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4dedc754_04c7_4f10_9e60_16a390fe6e62);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugApplication64_Vtbl {
    pub base__: IRemoteDebugApplication_Vtbl,
    pub SetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub StepOutComplete: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub DebugOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstr: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub StartDebugSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub HandleBreakPoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, br: BREAKREASON, pbra: *mut BREAKRESUMEACTION) -> ::windows::core::HRESULT,
    pub Close: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetBreakFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pabf: *mut u32, pprdatsteppingthread: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetCurrentThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pat: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateAsyncDebugOperation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psdo: *mut ::core::ffi::c_void, ppado: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddStackFrameSniffer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdsfs: *mut ::core::ffi::c_void, pdwcookie: *mut u32) -> ::windows::core::HRESULT,
    pub RemoveStackFrameSniffer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwcookie: u32) -> ::windows::core::HRESULT,
    pub QueryCurrentThreadIsDebuggerThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SynchronousCallInDebuggerThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pptc: *mut ::core::ffi::c_void, dwparam1: u64, dwparam2: u64, dwparam3: u64) -> ::windows::core::HRESULT,
    pub CreateApplicationNode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppdannew: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub FireDebuggerEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, punk: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub HandleRuntimeError: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, perrordebug: *mut ::core::ffi::c_void, pscriptsite: *mut ::core::ffi::c_void, pbra: *mut BREAKRESUMEACTION, perra: *mut ERRORRESUMEACTION, pfcallonscripterror: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    HandleRuntimeError: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub FCanJitDebug: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> super::super::super::Foundation::BOOL,
    #[cfg(not(feature = "Win32_Foundation"))]
    FCanJitDebug: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub FIsAutoJitDebugEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> super::super::super::Foundation::BOOL,
    #[cfg(not(feature = "Win32_Foundation"))]
    FIsAutoJitDebugEnabled: usize,
    pub AddGlobalExpressionContextProvider: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdsfs: *mut ::core::ffi::c_void, pdwcookie: *mut u64) -> ::windows::core::HRESULT,
    pub RemoveGlobalExpressionContextProvider: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwcookie: u64) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugApplicationNode(::windows::core::IUnknown);
impl IDebugApplicationNode {
    pub unsafe fn GetName(&self, dnt: DOCUMENTNAMETYPE) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetName)(::windows::core::Vtable::as_raw(self), dnt, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetDocumentClassId(&self) -> ::windows::core::Result<::windows::core::GUID> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetDocumentClassId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__)
    }
    pub unsafe fn GetDocument(&self) -> ::windows::core::Result<IDebugDocument> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetDocument)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugDocument>(result__)
    }
    pub unsafe fn EnumChildren(&self) -> ::windows::core::Result<IEnumDebugApplicationNodes> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumChildren)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugApplicationNodes>(result__)
    }
    pub unsafe fn GetParent(&self) -> ::windows::core::Result<IDebugApplicationNode> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetParent)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplicationNode>(result__)
    }
    pub unsafe fn SetDocumentProvider<'a, P0>(&self, pddp: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugDocumentProvider>>,
    {
        (::windows::core::Vtable::vtable(self).SetDocumentProvider)(::windows::core::Vtable::as_raw(self), pddp.into().abi()).ok()
    }
    pub unsafe fn Close(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Close)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn Attach<'a, P0>(&self, pdanparent: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugApplicationNode>>,
    {
        (::windows::core::Vtable::vtable(self).Attach)(::windows::core::Vtable::as_raw(self), pdanparent.into().abi()).ok()
    }
    pub unsafe fn Detach(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Detach)(::windows::core::Vtable::as_raw(self)).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugApplicationNode, ::windows::core::IUnknown, IDebugDocumentInfo, IDebugDocumentProvider);
impl ::core::clone::Clone for IDebugApplicationNode {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugApplicationNode {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugApplicationNode {}
impl ::core::fmt::Debug for IDebugApplicationNode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugApplicationNode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugApplicationNode {
    type Vtable = IDebugApplicationNode_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugApplicationNode {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c34_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugApplicationNode_Vtbl {
    pub base__: IDebugDocumentProvider_Vtbl,
    pub EnumChildren: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pperddp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetParent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pprddp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetDocumentProvider: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pddp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Close: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Attach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdanparent: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Detach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugApplicationNode100(::windows::core::IUnknown);
impl IDebugApplicationNode100 {
    pub unsafe fn SetFilterForEventSink(&self, dwcookie: u32, filter: APPLICATION_NODE_EVENT_FILTER) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetFilterForEventSink)(::windows::core::Vtable::as_raw(self), dwcookie, filter).ok()
    }
    pub unsafe fn GetExcludedDocuments(&self, filter: APPLICATION_NODE_EVENT_FILTER) -> ::windows::core::Result<TEXT_DOCUMENT_ARRAY> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExcludedDocuments)(::windows::core::Vtable::as_raw(self), filter, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<TEXT_DOCUMENT_ARRAY>(result__)
    }
    pub unsafe fn QueryIsChildNode<'a, P0>(&self, psearchkey: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugDocument>>,
    {
        (::windows::core::Vtable::vtable(self).QueryIsChildNode)(::windows::core::Vtable::as_raw(self), psearchkey.into().abi()).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugApplicationNode100, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugApplicationNode100 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugApplicationNode100 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugApplicationNode100 {}
impl ::core::fmt::Debug for IDebugApplicationNode100 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugApplicationNode100").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugApplicationNode100 {
    type Vtable = IDebugApplicationNode100_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugApplicationNode100 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x90a7734e_841b_4f77_9384_a2891e76e7e2);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugApplicationNode100_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub SetFilterForEventSink: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwcookie: u32, filter: APPLICATION_NODE_EVENT_FILTER) -> ::windows::core::HRESULT,
    pub GetExcludedDocuments: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filter: APPLICATION_NODE_EVENT_FILTER, pdocuments: *mut TEXT_DOCUMENT_ARRAY) -> ::windows::core::HRESULT,
    pub QueryIsChildNode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psearchkey: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugApplicationNodeEvents(::windows::core::IUnknown);
impl IDebugApplicationNodeEvents {
    pub unsafe fn onAddChild<'a, P0>(&self, prddpchild: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugApplicationNode>>,
    {
        (::windows::core::Vtable::vtable(self).onAddChild)(::windows::core::Vtable::as_raw(self), prddpchild.into().abi()).ok()
    }
    pub unsafe fn onRemoveChild<'a, P0>(&self, prddpchild: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugApplicationNode>>,
    {
        (::windows::core::Vtable::vtable(self).onRemoveChild)(::windows::core::Vtable::as_raw(self), prddpchild.into().abi()).ok()
    }
    pub unsafe fn onDetach(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).onDetach)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn onAttach<'a, P0>(&self, prddpparent: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugApplicationNode>>,
    {
        (::windows::core::Vtable::vtable(self).onAttach)(::windows::core::Vtable::as_raw(self), prddpparent.into().abi()).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugApplicationNodeEvents, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugApplicationNodeEvents {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugApplicationNodeEvents {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugApplicationNodeEvents {}
impl ::core::fmt::Debug for IDebugApplicationNodeEvents {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugApplicationNodeEvents").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugApplicationNodeEvents {
    type Vtable = IDebugApplicationNodeEvents_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugApplicationNodeEvents {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c35_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugApplicationNodeEvents_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub onAddChild: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prddpchild: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub onRemoveChild: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prddpchild: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub onDetach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub onAttach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prddpparent: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugApplicationThread(::windows::core::IUnknown);
impl IDebugApplicationThread {
    pub unsafe fn GetSystemThreadId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetSystemThreadId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetApplication(&self) -> ::windows::core::Result<IRemoteDebugApplication> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetApplication)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IRemoteDebugApplication>(result__)
    }
    pub unsafe fn EnumStackFrames(&self) -> ::windows::core::Result<IEnumDebugStackFrames> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.EnumStackFrames)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugStackFrames>(result__)
    }
    pub unsafe fn GetDescription(&self, pbstrdescription: *mut ::windows::core::BSTR, pbstrstate: *mut ::windows::core::BSTR) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.GetDescription)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pbstrdescription), ::core::mem::transmute(pbstrstate)).ok()
    }
    pub unsafe fn SetNextStatement<'a, P0, P1>(&self, pstackframe: P0, pcodecontext: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugStackFrame>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IDebugCodeContext>>,
    {
        (::windows::core::Vtable::vtable(self).base__.SetNextStatement)(::windows::core::Vtable::as_raw(self), pstackframe.into().abi(), pcodecontext.into().abi()).ok()
    }
    pub unsafe fn GetState(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetState)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn Suspend(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.Suspend)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn Resume(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.Resume)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSuspendCount(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetSuspendCount)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SynchronousCallIntoThread32<'a, P0>(&self, pstcb: P0, dwparam1: u32, dwparam2: u32, dwparam3: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugThreadCall32>>,
    {
        (::windows::core::Vtable::vtable(self).SynchronousCallIntoThread32)(::windows::core::Vtable::as_raw(self), pstcb.into().abi(), dwparam1, dwparam2, dwparam3).ok()
    }
    pub unsafe fn QueryIsCurrentThread(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).QueryIsCurrentThread)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn QueryIsDebuggerThread(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).QueryIsDebuggerThread)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn SetDescription<'a, P0>(&self, pstrdescription: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetDescription)(::windows::core::Vtable::as_raw(self), pstrdescription.into()).ok()
    }
    pub unsafe fn SetStateString<'a, P0>(&self, pstrstate: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetStateString)(::windows::core::Vtable::as_raw(self), pstrstate.into()).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugApplicationThread, ::windows::core::IUnknown, IRemoteDebugApplicationThread);
impl ::core::clone::Clone for IDebugApplicationThread {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugApplicationThread {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugApplicationThread {}
impl ::core::fmt::Debug for IDebugApplicationThread {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugApplicationThread").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugApplicationThread {
    type Vtable = IDebugApplicationThread_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugApplicationThread {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c38_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugApplicationThread_Vtbl {
    pub base__: IRemoteDebugApplicationThread_Vtbl,
    pub SynchronousCallIntoThread32: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstcb: *mut ::core::ffi::c_void, dwparam1: u32, dwparam2: u32, dwparam3: u32) -> ::windows::core::HRESULT,
    pub QueryIsCurrentThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub QueryIsDebuggerThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrdescription: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub SetStateString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrstate: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugApplicationThread11032(::windows::core::IUnknown);
impl IDebugApplicationThread11032 {
    pub unsafe fn GetActiveThreadRequestCount(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetActiveThreadRequestCount)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn IsSuspendedForBreakPoint(&self) -> ::windows::core::Result<super::super::super::Foundation::BOOL> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).IsSuspendedForBreakPoint)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::super::Foundation::BOOL>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn IsThreadCallable(&self) -> ::windows::core::Result<super::super::super::Foundation::BOOL> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).IsThreadCallable)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::super::Foundation::BOOL>(result__)
    }
    pub unsafe fn AsynchronousCallIntoThread<'a, P0>(&self, pptc: P0, dwparam1: usize, dwparam2: usize, dwparam3: usize) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugThreadCall32>>,
    {
        (::windows::core::Vtable::vtable(self).AsynchronousCallIntoThread)(::windows::core::Vtable::as_raw(self), pptc.into().abi(), dwparam1, dwparam2, dwparam3).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugApplicationThread11032, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugApplicationThread11032 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugApplicationThread11032 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugApplicationThread11032 {}
impl ::core::fmt::Debug for IDebugApplicationThread11032 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugApplicationThread11032").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugApplicationThread11032 {
    type Vtable = IDebugApplicationThread11032_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugApplicationThread11032 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2194ac5c_6561_404a_a2e9_f57d72de3702);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugApplicationThread11032_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetActiveThreadRequestCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, puithreadrequests: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub IsSuspendedForBreakPoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pfissuspended: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    IsSuspendedForBreakPoint: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub IsThreadCallable: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pfiscallable: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    IsThreadCallable: usize,
    pub AsynchronousCallIntoThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pptc: *mut ::core::ffi::c_void, dwparam1: usize, dwparam2: usize, dwparam3: usize) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugApplicationThread11064(::windows::core::IUnknown);
impl IDebugApplicationThread11064 {
    pub unsafe fn GetActiveThreadRequestCount(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetActiveThreadRequestCount)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn IsSuspendedForBreakPoint(&self) -> ::windows::core::Result<super::super::super::Foundation::BOOL> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).IsSuspendedForBreakPoint)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::super::Foundation::BOOL>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn IsThreadCallable(&self) -> ::windows::core::Result<super::super::super::Foundation::BOOL> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).IsThreadCallable)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::super::Foundation::BOOL>(result__)
    }
    pub unsafe fn AsynchronousCallIntoThread<'a, P0>(&self, pptc: P0, dwparam1: usize, dwparam2: usize, dwparam3: usize) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugThreadCall64>>,
    {
        (::windows::core::Vtable::vtable(self).AsynchronousCallIntoThread)(::windows::core::Vtable::as_raw(self), pptc.into().abi(), dwparam1, dwparam2, dwparam3).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugApplicationThread11064, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugApplicationThread11064 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugApplicationThread11064 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugApplicationThread11064 {}
impl ::core::fmt::Debug for IDebugApplicationThread11064 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugApplicationThread11064").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugApplicationThread11064 {
    type Vtable = IDebugApplicationThread11064_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugApplicationThread11064 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x420aa4cc_efd8_4dac_983b_47127826917d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugApplicationThread11064_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetActiveThreadRequestCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, puithreadrequests: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub IsSuspendedForBreakPoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pfissuspended: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    IsSuspendedForBreakPoint: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub IsThreadCallable: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pfiscallable: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    IsThreadCallable: usize,
    pub AsynchronousCallIntoThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pptc: *mut ::core::ffi::c_void, dwparam1: usize, dwparam2: usize, dwparam3: usize) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugApplicationThread64(::windows::core::IUnknown);
impl IDebugApplicationThread64 {
    pub unsafe fn GetSystemThreadId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetSystemThreadId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetApplication(&self) -> ::windows::core::Result<IRemoteDebugApplication> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetApplication)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IRemoteDebugApplication>(result__)
    }
    pub unsafe fn EnumStackFrames(&self) -> ::windows::core::Result<IEnumDebugStackFrames> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.EnumStackFrames)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugStackFrames>(result__)
    }
    pub unsafe fn GetDescription(&self, pbstrdescription: *mut ::windows::core::BSTR, pbstrstate: *mut ::windows::core::BSTR) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.base__.GetDescription)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pbstrdescription), ::core::mem::transmute(pbstrstate)).ok()
    }
    pub unsafe fn SetNextStatement<'a, P0, P1>(&self, pstackframe: P0, pcodecontext: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugStackFrame>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IDebugCodeContext>>,
    {
        (::windows::core::Vtable::vtable(self).base__.base__.SetNextStatement)(::windows::core::Vtable::as_raw(self), pstackframe.into().abi(), pcodecontext.into().abi()).ok()
    }
    pub unsafe fn GetState(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetState)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn Suspend(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.Suspend)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn Resume(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.Resume)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSuspendCount(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetSuspendCount)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SynchronousCallIntoThread32<'a, P0>(&self, pstcb: P0, dwparam1: u32, dwparam2: u32, dwparam3: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugThreadCall32>>,
    {
        (::windows::core::Vtable::vtable(self).base__.SynchronousCallIntoThread32)(::windows::core::Vtable::as_raw(self), pstcb.into().abi(), dwparam1, dwparam2, dwparam3).ok()
    }
    pub unsafe fn QueryIsCurrentThread(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.QueryIsCurrentThread)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn QueryIsDebuggerThread(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.QueryIsDebuggerThread)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn SetDescription<'a, P0>(&self, pstrdescription: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).base__.SetDescription)(::windows::core::Vtable::as_raw(self), pstrdescription.into()).ok()
    }
    pub unsafe fn SetStateString<'a, P0>(&self, pstrstate: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).base__.SetStateString)(::windows::core::Vtable::as_raw(self), pstrstate.into()).ok()
    }
    pub unsafe fn SynchronousCallIntoThread64<'a, P0>(&self, pstcb: P0, dwparam1: u64, dwparam2: u64, dwparam3: u64) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugThreadCall64>>,
    {
        (::windows::core::Vtable::vtable(self).SynchronousCallIntoThread64)(::windows::core::Vtable::as_raw(self), pstcb.into().abi(), dwparam1, dwparam2, dwparam3).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugApplicationThread64, ::windows::core::IUnknown, IRemoteDebugApplicationThread, IDebugApplicationThread);
impl ::core::clone::Clone for IDebugApplicationThread64 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugApplicationThread64 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugApplicationThread64 {}
impl ::core::fmt::Debug for IDebugApplicationThread64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugApplicationThread64").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugApplicationThread64 {
    type Vtable = IDebugApplicationThread64_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugApplicationThread64 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9dac5886_dbad_456d_9dee_5dec39ab3dda);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugApplicationThread64_Vtbl {
    pub base__: IDebugApplicationThread_Vtbl,
    pub SynchronousCallIntoThread64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstcb: *mut ::core::ffi::c_void, dwparam1: u64, dwparam2: u64, dwparam3: u64) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugApplicationThreadEvents110(::windows::core::IUnknown);
impl IDebugApplicationThreadEvents110 {
    pub unsafe fn OnSuspendForBreakPoint(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OnSuspendForBreakPoint)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn OnResumeFromBreakPoint(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OnResumeFromBreakPoint)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn OnThreadRequestComplete(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OnThreadRequestComplete)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn OnBeginThreadRequest(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OnBeginThreadRequest)(::windows::core::Vtable::as_raw(self)).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugApplicationThreadEvents110, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugApplicationThreadEvents110 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugApplicationThreadEvents110 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugApplicationThreadEvents110 {}
impl ::core::fmt::Debug for IDebugApplicationThreadEvents110 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugApplicationThreadEvents110").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugApplicationThreadEvents110 {
    type Vtable = IDebugApplicationThreadEvents110_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugApplicationThreadEvents110 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x84e5e468_d5da_48a8_83f4_40366429007b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugApplicationThreadEvents110_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub OnSuspendForBreakPoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnResumeFromBreakPoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnThreadRequestComplete: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnBeginThreadRequest: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugAsyncOperation(::windows::core::IUnknown);
impl IDebugAsyncOperation {
    pub unsafe fn GetSyncDebugOperation(&self) -> ::windows::core::Result<IDebugSyncOperation> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSyncDebugOperation)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugSyncOperation>(result__)
    }
    pub unsafe fn Start<'a, P0>(&self, padocb: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugAsyncOperationCallBack>>,
    {
        (::windows::core::Vtable::vtable(self).Start)(::windows::core::Vtable::as_raw(self), padocb.into().abi()).ok()
    }
    pub unsafe fn Abort(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Abort)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn QueryIsComplete(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).QueryIsComplete)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetResult(&self, phrresult: *mut ::windows::core::HRESULT, ppunkresult: *mut ::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetResult)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(phrresult), ::core::mem::transmute(ppunkresult)).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugAsyncOperation, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugAsyncOperation {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugAsyncOperation {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugAsyncOperation {}
impl ::core::fmt::Debug for IDebugAsyncOperation {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugAsyncOperation").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugAsyncOperation {
    type Vtable = IDebugAsyncOperation_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugAsyncOperation {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c1b_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugAsyncOperation_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetSyncDebugOperation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppsdo: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Start: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, padocb: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Abort: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub QueryIsComplete: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetResult: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, phrresult: *mut ::windows::core::HRESULT, ppunkresult: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugAsyncOperationCallBack(::windows::core::IUnknown);
impl IDebugAsyncOperationCallBack {
    pub unsafe fn onComplete(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).onComplete)(::windows::core::Vtable::as_raw(self)).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugAsyncOperationCallBack, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugAsyncOperationCallBack {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugAsyncOperationCallBack {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugAsyncOperationCallBack {}
impl ::core::fmt::Debug for IDebugAsyncOperationCallBack {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugAsyncOperationCallBack").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugAsyncOperationCallBack {
    type Vtable = IDebugAsyncOperationCallBack_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugAsyncOperationCallBack {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c1c_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugAsyncOperationCallBack_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub onComplete: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugBreakpoint(::windows::core::IUnknown);
impl IDebugBreakpoint {
    pub unsafe fn GetId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetType(&self, breaktype: *mut u32, proctype: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(breaktype), ::core::mem::transmute(proctype)).ok()
    }
    pub unsafe fn GetAdder(&self) -> ::windows::core::Result<IDebugClient> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetAdder)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugClient>(result__)
    }
    pub unsafe fn GetFlags(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFlags)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddFlags(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddFlags)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn RemoveFlags(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveFlags)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn SetFlags(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetFlags)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn GetOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn SetOffset(&self, offset: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetOffset)(::windows::core::Vtable::as_raw(self), offset).ok()
    }
    pub unsafe fn GetDataParameters(&self, size: *mut u32, accesstype: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDataParameters)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(size), ::core::mem::transmute(accesstype)).ok()
    }
    pub unsafe fn SetDataParameters(&self, size: u32, accesstype: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetDataParameters)(::windows::core::Vtable::as_raw(self), size, accesstype).ok()
    }
    pub unsafe fn GetPassCount(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetPassCount)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetPassCount(&self, count: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetPassCount)(::windows::core::Vtable::as_raw(self), count).ok()
    }
    pub unsafe fn GetCurrentPassCount(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentPassCount)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetMatchThreadId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetMatchThreadId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetMatchThreadId(&self, thread: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetMatchThreadId)(::windows::core::Vtable::as_raw(self), thread).ok()
    }
    pub unsafe fn GetCommand(&self, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetCommand)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetCommand<'a, P0>(&self, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetCommand)(::windows::core::Vtable::as_raw(self), command.into()).ok()
    }
    pub unsafe fn GetOffsetExpression(&self, buffer: ::core::option::Option<&mut [u8]>, expressionsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOffsetExpression)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(expressionsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetOffsetExpression<'a, P0>(&self, expression: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetOffsetExpression)(::windows::core::Vtable::as_raw(self), expression.into()).ok()
    }
    pub unsafe fn GetParameters(&self) -> ::windows::core::Result<DEBUG_BREAKPOINT_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetParameters)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_BREAKPOINT_PARAMETERS>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugBreakpoint, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugBreakpoint {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugBreakpoint {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugBreakpoint {}
impl ::core::fmt::Debug for IDebugBreakpoint {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugBreakpoint").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugBreakpoint {
    type Vtable = IDebugBreakpoint_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugBreakpoint {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5bd9d474_5975_423a_b88b_65a8e7110e65);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugBreakpoint_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, breaktype: *mut u32, proctype: *mut u32) -> ::windows::core::HRESULT,
    pub GetAdder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, adder: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows::core::HRESULT,
    pub AddFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub RemoveFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub SetFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub GetOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub SetOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows::core::HRESULT,
    pub GetDataParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u32, accesstype: *mut u32) -> ::windows::core::HRESULT,
    pub SetDataParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: u32, accesstype: u32) -> ::windows::core::HRESULT,
    pub GetPassCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT,
    pub SetPassCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32) -> ::windows::core::HRESULT,
    pub GetCurrentPassCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT,
    pub GetMatchThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub SetMatchThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, thread: u32) -> ::windows::core::HRESULT,
    pub GetCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetOffsetExpression: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, expressionsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetOffsetExpression: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugBreakpoint2(::windows::core::IUnknown);
impl IDebugBreakpoint2 {
    pub unsafe fn GetId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetType(&self, breaktype: *mut u32, proctype: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(breaktype), ::core::mem::transmute(proctype)).ok()
    }
    pub unsafe fn GetAdder(&self) -> ::windows::core::Result<IDebugClient> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetAdder)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugClient>(result__)
    }
    pub unsafe fn GetFlags(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFlags)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddFlags(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddFlags)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn RemoveFlags(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveFlags)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn SetFlags(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetFlags)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn GetOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn SetOffset(&self, offset: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetOffset)(::windows::core::Vtable::as_raw(self), offset).ok()
    }
    pub unsafe fn GetDataParameters(&self, size: *mut u32, accesstype: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDataParameters)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(size), ::core::mem::transmute(accesstype)).ok()
    }
    pub unsafe fn SetDataParameters(&self, size: u32, accesstype: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetDataParameters)(::windows::core::Vtable::as_raw(self), size, accesstype).ok()
    }
    pub unsafe fn GetPassCount(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetPassCount)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetPassCount(&self, count: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetPassCount)(::windows::core::Vtable::as_raw(self), count).ok()
    }
    pub unsafe fn GetCurrentPassCount(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentPassCount)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetMatchThreadId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetMatchThreadId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetMatchThreadId(&self, thread: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetMatchThreadId)(::windows::core::Vtable::as_raw(self), thread).ok()
    }
    pub unsafe fn GetCommand(&self, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetCommand)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetCommand<'a, P0>(&self, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetCommand)(::windows::core::Vtable::as_raw(self), command.into()).ok()
    }
    pub unsafe fn GetOffsetExpression(&self, buffer: ::core::option::Option<&mut [u8]>, expressionsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOffsetExpression)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(expressionsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetOffsetExpression<'a, P0>(&self, expression: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetOffsetExpression)(::windows::core::Vtable::as_raw(self), expression.into()).ok()
    }
    pub unsafe fn GetParameters(&self) -> ::windows::core::Result<DEBUG_BREAKPOINT_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetParameters)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_BREAKPOINT_PARAMETERS>(result__)
    }
    pub unsafe fn GetCommandWide(&self, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetCommandWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetCommandWide<'a, P0>(&self, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetCommandWide)(::windows::core::Vtable::as_raw(self), command.into()).ok()
    }
    pub unsafe fn GetOffsetExpressionWide(&self, buffer: ::core::option::Option<&mut [u16]>, expressionsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOffsetExpressionWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(expressionsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetOffsetExpressionWide<'a, P0>(&self, expression: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetOffsetExpressionWide)(::windows::core::Vtable::as_raw(self), expression.into()).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugBreakpoint2, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugBreakpoint2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugBreakpoint2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugBreakpoint2 {}
impl ::core::fmt::Debug for IDebugBreakpoint2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugBreakpoint2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugBreakpoint2 {
    type Vtable = IDebugBreakpoint2_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugBreakpoint2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1b278d20_79f2_426e_a3f9_c1ddf375d48e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugBreakpoint2_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, breaktype: *mut u32, proctype: *mut u32) -> ::windows::core::HRESULT,
    pub GetAdder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, adder: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows::core::HRESULT,
    pub AddFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub RemoveFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub SetFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub GetOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub SetOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows::core::HRESULT,
    pub GetDataParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u32, accesstype: *mut u32) -> ::windows::core::HRESULT,
    pub SetDataParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: u32, accesstype: u32) -> ::windows::core::HRESULT,
    pub GetPassCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT,
    pub SetPassCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32) -> ::windows::core::HRESULT,
    pub GetCurrentPassCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT,
    pub GetMatchThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub SetMatchThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, thread: u32) -> ::windows::core::HRESULT,
    pub GetCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetOffsetExpression: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, expressionsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetOffsetExpression: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, command: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetOffsetExpressionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, expressionsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetOffsetExpressionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugBreakpoint3(::windows::core::IUnknown);
impl IDebugBreakpoint3 {
    pub unsafe fn GetId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetType(&self, breaktype: *mut u32, proctype: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(breaktype), ::core::mem::transmute(proctype)).ok()
    }
    pub unsafe fn GetAdder(&self) -> ::windows::core::Result<IDebugClient> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetAdder)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugClient>(result__)
    }
    pub unsafe fn GetFlags(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFlags)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddFlags(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddFlags)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn RemoveFlags(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveFlags)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn SetFlags(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetFlags)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn GetOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn SetOffset(&self, offset: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetOffset)(::windows::core::Vtable::as_raw(self), offset).ok()
    }
    pub unsafe fn GetDataParameters(&self, size: *mut u32, accesstype: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDataParameters)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(size), ::core::mem::transmute(accesstype)).ok()
    }
    pub unsafe fn SetDataParameters(&self, size: u32, accesstype: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetDataParameters)(::windows::core::Vtable::as_raw(self), size, accesstype).ok()
    }
    pub unsafe fn GetPassCount(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetPassCount)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetPassCount(&self, count: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetPassCount)(::windows::core::Vtable::as_raw(self), count).ok()
    }
    pub unsafe fn GetCurrentPassCount(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentPassCount)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetMatchThreadId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetMatchThreadId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetMatchThreadId(&self, thread: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetMatchThreadId)(::windows::core::Vtable::as_raw(self), thread).ok()
    }
    pub unsafe fn GetCommand(&self, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetCommand)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetCommand<'a, P0>(&self, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetCommand)(::windows::core::Vtable::as_raw(self), command.into()).ok()
    }
    pub unsafe fn GetOffsetExpression(&self, buffer: ::core::option::Option<&mut [u8]>, expressionsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOffsetExpression)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(expressionsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetOffsetExpression<'a, P0>(&self, expression: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetOffsetExpression)(::windows::core::Vtable::as_raw(self), expression.into()).ok()
    }
    pub unsafe fn GetParameters(&self) -> ::windows::core::Result<DEBUG_BREAKPOINT_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetParameters)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_BREAKPOINT_PARAMETERS>(result__)
    }
    pub unsafe fn GetCommandWide(&self, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetCommandWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetCommandWide<'a, P0>(&self, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetCommandWide)(::windows::core::Vtable::as_raw(self), command.into()).ok()
    }
    pub unsafe fn GetOffsetExpressionWide(&self, buffer: ::core::option::Option<&mut [u16]>, expressionsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOffsetExpressionWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(expressionsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetOffsetExpressionWide<'a, P0>(&self, expression: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetOffsetExpressionWide)(::windows::core::Vtable::as_raw(self), expression.into()).ok()
    }
    pub unsafe fn GetGuid(&self) -> ::windows::core::Result<::windows::core::GUID> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetGuid)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugBreakpoint3, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugBreakpoint3 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugBreakpoint3 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugBreakpoint3 {}
impl ::core::fmt::Debug for IDebugBreakpoint3 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugBreakpoint3").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugBreakpoint3 {
    type Vtable = IDebugBreakpoint3_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugBreakpoint3 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x38f5c249_b448_43bb_9835_579d4ec02249);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugBreakpoint3_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, breaktype: *mut u32, proctype: *mut u32) -> ::windows::core::HRESULT,
    pub GetAdder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, adder: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows::core::HRESULT,
    pub AddFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub RemoveFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub SetFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub GetOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub SetOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows::core::HRESULT,
    pub GetDataParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u32, accesstype: *mut u32) -> ::windows::core::HRESULT,
    pub SetDataParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: u32, accesstype: u32) -> ::windows::core::HRESULT,
    pub GetPassCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT,
    pub SetPassCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32) -> ::windows::core::HRESULT,
    pub GetCurrentPassCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT,
    pub GetMatchThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub SetMatchThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, thread: u32) -> ::windows::core::HRESULT,
    pub GetCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetOffsetExpression: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, expressionsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetOffsetExpression: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, command: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetOffsetExpressionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, expressionsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetOffsetExpressionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetGuid: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, guid: *mut ::windows::core::GUID) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugClient(::windows::core::IUnknown);
impl IDebugClient {
    pub unsafe fn AttachKernel<'a, P0>(&self, flags: u32, connectoptions: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AttachKernel)(::windows::core::Vtable::as_raw(self), flags, connectoptions.into()).ok()
    }
    pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetKernelConnectionOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetKernelConnectionOptions<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetKernelConnectionOptions)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn StartProcessServer<'a, P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartProcessServer)(::windows::core::Vtable::as_raw(self), flags, options.into(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
    }
    pub unsafe fn ConnectProcessServer<'a, P0>(&self, remoteoptions: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ConnectProcessServer)(::windows::core::Vtable::as_raw(self), remoteoptions.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DisconnectProcessServer)(::windows::core::Vtable::as_raw(self), server).ok()
    }
    pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIds)(::windows::core::Vtable::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualcount.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetRunningProcessSystemIdByExecutableName<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows::core::Vtable::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessDescription)(
            ::windows::core::Vtable::as_raw(self),
            server,
            systemid,
            flags,
            ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            exename.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AttachProcess)(::windows::core::Vtable::as_raw(self), server, processid, attachflags).ok()
    }
    pub unsafe fn CreateProcessA<'a, P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessA)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags).ok()
    }
    pub unsafe fn CreateProcessAndAttach<'a, P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttach)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags, processid, attachflags).ok()
    }
    pub unsafe fn GetProcessOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn OpenDumpFile<'a, P0>(&self, dumpfile: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenDumpFile)(::windows::core::Vtable::as_raw(self), dumpfile.into()).ok()
    }
    pub unsafe fn WriteDumpFile<'a, P0>(&self, dumpfile: P0, qualifier: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteDumpFile)(::windows::core::Vtable::as_raw(self), dumpfile.into(), qualifier).ok()
    }
    pub unsafe fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ConnectSession)(::windows::core::Vtable::as_raw(self), flags, historylimit).ok()
    }
    pub unsafe fn StartServer<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartServer)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn OutputServers<'a, P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputServers)(::windows::core::Vtable::as_raw(self), outputcontrol, machine.into(), flags).ok()
    }
    pub unsafe fn TerminateProcesses(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).TerminateProcesses)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn DetachProcesses(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DetachProcesses)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn EndSession(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndSession)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn GetExitCode(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExitCode)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn DispatchCallbacks(&self, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DispatchCallbacks)(::windows::core::Vtable::as_raw(self), timeout).ok()
    }
    pub unsafe fn ExitDispatch<'a, P0>(&self, client: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        (::windows::core::Vtable::vtable(self).ExitDispatch)(::windows::core::Vtable::as_raw(self), client.into().abi()).ok()
    }
    pub unsafe fn CreateClient(&self) -> ::windows::core::Result<IDebugClient> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateClient)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugClient>(result__)
    }
    pub unsafe fn GetInputCallbacks(&self) -> ::windows::core::Result<IDebugInputCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugInputCallbacks>(result__)
    }
    pub unsafe fn SetInputCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugInputCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetInputCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn GetOutputCallbacks(&self) -> ::windows::core::Result<IDebugOutputCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugOutputCallbacks>(result__)
    }
    pub unsafe fn SetOutputCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugOutputCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn GetOutputMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOutputMask(&self, mask: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetOutputMask)(::windows::core::Vtable::as_raw(self), mask).ok()
    }
    pub unsafe fn GetOtherOutputMask<'a, P0>(&self, client: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOtherOutputMask)(::windows::core::Vtable::as_raw(self), client.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOtherOutputMask<'a, P0>(&self, client: P0, mask: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        (::windows::core::Vtable::vtable(self).SetOtherOutputMask)(::windows::core::Vtable::as_raw(self), client.into().abi(), mask).ok()
    }
    pub unsafe fn GetOutputWidth(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputWidth)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetOutputWidth)(::windows::core::Vtable::as_raw(self), columns).ok()
    }
    pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOutputLinePrefix)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetOutputLinePrefix<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputLinePrefix)(::windows::core::Vtable::as_raw(self), prefix.into()).ok()
    }
    pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetIdentity)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputIdentity<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputIdentity)(::windows::core::Vtable::as_raw(self), outputcontrol, flags, format.into()).ok()
    }
    pub unsafe fn GetEventCallbacks(&self) -> ::windows::core::Result<IDebugEventCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugEventCallbacks>(result__)
    }
    pub unsafe fn SetEventCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugEventCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetEventCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn FlushCallbacks(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).FlushCallbacks)(::windows::core::Vtable::as_raw(self)).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugClient, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugClient {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugClient {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugClient {}
impl ::core::fmt::Debug for IDebugClient {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugClient").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugClient {
    type Vtable = IDebugClient_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugClient {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x27fe5639_8407_4f47_8364_ee118fb08ac8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugClient_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub AttachKernel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT,
    pub SetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub StartProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ConnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCSTR, server: *mut u64) -> ::windows::core::HRESULT,
    pub DisconnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessDescription: unsafe extern "system" fn(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,
    pub AttachProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessAndAttach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub GetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub OpenDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub WriteDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32) -> ::windows::core::HRESULT,
    pub ConnectSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows::core::HRESULT,
    pub StartServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputServers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub TerminateProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub DetachProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EndSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub GetExitCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows::core::HRESULT,
    pub DispatchCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT,
    pub ExitDispatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateClient: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub GetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub GetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows::core::HRESULT,
    pub GetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT,
    pub OutputIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub FlushCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugClient2(::windows::core::IUnknown);
impl IDebugClient2 {
    pub unsafe fn AttachKernel<'a, P0>(&self, flags: u32, connectoptions: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AttachKernel)(::windows::core::Vtable::as_raw(self), flags, connectoptions.into()).ok()
    }
    pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetKernelConnectionOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetKernelConnectionOptions<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetKernelConnectionOptions)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn StartProcessServer<'a, P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartProcessServer)(::windows::core::Vtable::as_raw(self), flags, options.into(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
    }
    pub unsafe fn ConnectProcessServer<'a, P0>(&self, remoteoptions: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ConnectProcessServer)(::windows::core::Vtable::as_raw(self), remoteoptions.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DisconnectProcessServer)(::windows::core::Vtable::as_raw(self), server).ok()
    }
    pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIds)(::windows::core::Vtable::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualcount.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetRunningProcessSystemIdByExecutableName<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows::core::Vtable::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessDescription)(
            ::windows::core::Vtable::as_raw(self),
            server,
            systemid,
            flags,
            ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            exename.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AttachProcess)(::windows::core::Vtable::as_raw(self), server, processid, attachflags).ok()
    }
    pub unsafe fn CreateProcessA<'a, P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessA)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags).ok()
    }
    pub unsafe fn CreateProcessAndAttach<'a, P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttach)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags, processid, attachflags).ok()
    }
    pub unsafe fn GetProcessOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn OpenDumpFile<'a, P0>(&self, dumpfile: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenDumpFile)(::windows::core::Vtable::as_raw(self), dumpfile.into()).ok()
    }
    pub unsafe fn WriteDumpFile<'a, P0>(&self, dumpfile: P0, qualifier: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteDumpFile)(::windows::core::Vtable::as_raw(self), dumpfile.into(), qualifier).ok()
    }
    pub unsafe fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ConnectSession)(::windows::core::Vtable::as_raw(self), flags, historylimit).ok()
    }
    pub unsafe fn StartServer<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartServer)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn OutputServers<'a, P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputServers)(::windows::core::Vtable::as_raw(self), outputcontrol, machine.into(), flags).ok()
    }
    pub unsafe fn TerminateProcesses(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).TerminateProcesses)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn DetachProcesses(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DetachProcesses)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn EndSession(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndSession)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn GetExitCode(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExitCode)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn DispatchCallbacks(&self, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DispatchCallbacks)(::windows::core::Vtable::as_raw(self), timeout).ok()
    }
    pub unsafe fn ExitDispatch<'a, P0>(&self, client: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        (::windows::core::Vtable::vtable(self).ExitDispatch)(::windows::core::Vtable::as_raw(self), client.into().abi()).ok()
    }
    pub unsafe fn CreateClient(&self) -> ::windows::core::Result<IDebugClient> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateClient)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugClient>(result__)
    }
    pub unsafe fn GetInputCallbacks(&self) -> ::windows::core::Result<IDebugInputCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugInputCallbacks>(result__)
    }
    pub unsafe fn SetInputCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugInputCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetInputCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn GetOutputCallbacks(&self) -> ::windows::core::Result<IDebugOutputCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugOutputCallbacks>(result__)
    }
    pub unsafe fn SetOutputCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugOutputCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn GetOutputMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOutputMask(&self, mask: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetOutputMask)(::windows::core::Vtable::as_raw(self), mask).ok()
    }
    pub unsafe fn GetOtherOutputMask<'a, P0>(&self, client: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOtherOutputMask)(::windows::core::Vtable::as_raw(self), client.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOtherOutputMask<'a, P0>(&self, client: P0, mask: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        (::windows::core::Vtable::vtable(self).SetOtherOutputMask)(::windows::core::Vtable::as_raw(self), client.into().abi(), mask).ok()
    }
    pub unsafe fn GetOutputWidth(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputWidth)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetOutputWidth)(::windows::core::Vtable::as_raw(self), columns).ok()
    }
    pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOutputLinePrefix)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetOutputLinePrefix<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputLinePrefix)(::windows::core::Vtable::as_raw(self), prefix.into()).ok()
    }
    pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetIdentity)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputIdentity<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputIdentity)(::windows::core::Vtable::as_raw(self), outputcontrol, flags, format.into()).ok()
    }
    pub unsafe fn GetEventCallbacks(&self) -> ::windows::core::Result<IDebugEventCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugEventCallbacks>(result__)
    }
    pub unsafe fn SetEventCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugEventCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetEventCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn FlushCallbacks(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).FlushCallbacks)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn WriteDumpFile2<'a, P0, P1>(&self, dumpfile: P0, qualifier: u32, formatflags: u32, comment: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteDumpFile2)(::windows::core::Vtable::as_raw(self), dumpfile.into(), qualifier, formatflags, comment.into()).ok()
    }
    pub unsafe fn AddDumpInformationFile<'a, P0>(&self, infofile: P0, r#type: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddDumpInformationFile)(::windows::core::Vtable::as_raw(self), infofile.into(), r#type).ok()
    }
    pub unsafe fn EndProcessServer(&self, server: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndProcessServer)(::windows::core::Vtable::as_raw(self), server).ok()
    }
    pub unsafe fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WaitForProcessServerEnd)(::windows::core::Vtable::as_raw(self), timeout).ok()
    }
    pub unsafe fn IsKernelDebuggerEnabled(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).IsKernelDebuggerEnabled)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn TerminateCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).TerminateCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn DetachCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DetachCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn AbandonCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AbandonCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugClient2, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugClient2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugClient2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugClient2 {}
impl ::core::fmt::Debug for IDebugClient2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugClient2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugClient2 {
    type Vtable = IDebugClient2_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugClient2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xedbed635_372e_4dab_bbfe_ed0d2f63be81);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugClient2_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub AttachKernel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT,
    pub SetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub StartProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ConnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCSTR, server: *mut u64) -> ::windows::core::HRESULT,
    pub DisconnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessDescription: unsafe extern "system" fn(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,
    pub AttachProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessAndAttach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub GetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub OpenDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub WriteDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32) -> ::windows::core::HRESULT,
    pub ConnectSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows::core::HRESULT,
    pub StartServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputServers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub TerminateProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub DetachProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EndSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub GetExitCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows::core::HRESULT,
    pub DispatchCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT,
    pub ExitDispatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateClient: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub GetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub GetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows::core::HRESULT,
    pub GetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT,
    pub OutputIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub FlushCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub WriteDumpFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AddDumpInformationFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, infofile: ::windows::core::PCSTR, r#type: u32) -> ::windows::core::HRESULT,
    pub EndProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT,
    pub WaitForProcessServerEnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT,
    pub IsKernelDebuggerEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub TerminateCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub DetachCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AbandonCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugClient3(::windows::core::IUnknown);
impl IDebugClient3 {
    pub unsafe fn AttachKernel<'a, P0>(&self, flags: u32, connectoptions: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AttachKernel)(::windows::core::Vtable::as_raw(self), flags, connectoptions.into()).ok()
    }
    pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetKernelConnectionOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetKernelConnectionOptions<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetKernelConnectionOptions)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn StartProcessServer<'a, P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartProcessServer)(::windows::core::Vtable::as_raw(self), flags, options.into(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
    }
    pub unsafe fn ConnectProcessServer<'a, P0>(&self, remoteoptions: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ConnectProcessServer)(::windows::core::Vtable::as_raw(self), remoteoptions.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DisconnectProcessServer)(::windows::core::Vtable::as_raw(self), server).ok()
    }
    pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIds)(::windows::core::Vtable::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualcount.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetRunningProcessSystemIdByExecutableName<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows::core::Vtable::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessDescription)(
            ::windows::core::Vtable::as_raw(self),
            server,
            systemid,
            flags,
            ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            exename.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AttachProcess)(::windows::core::Vtable::as_raw(self), server, processid, attachflags).ok()
    }
    pub unsafe fn CreateProcessA<'a, P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessA)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags).ok()
    }
    pub unsafe fn CreateProcessAndAttach<'a, P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttach)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags, processid, attachflags).ok()
    }
    pub unsafe fn GetProcessOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn OpenDumpFile<'a, P0>(&self, dumpfile: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenDumpFile)(::windows::core::Vtable::as_raw(self), dumpfile.into()).ok()
    }
    pub unsafe fn WriteDumpFile<'a, P0>(&self, dumpfile: P0, qualifier: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteDumpFile)(::windows::core::Vtable::as_raw(self), dumpfile.into(), qualifier).ok()
    }
    pub unsafe fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ConnectSession)(::windows::core::Vtable::as_raw(self), flags, historylimit).ok()
    }
    pub unsafe fn StartServer<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartServer)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn OutputServers<'a, P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputServers)(::windows::core::Vtable::as_raw(self), outputcontrol, machine.into(), flags).ok()
    }
    pub unsafe fn TerminateProcesses(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).TerminateProcesses)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn DetachProcesses(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DetachProcesses)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn EndSession(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndSession)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn GetExitCode(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExitCode)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn DispatchCallbacks(&self, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DispatchCallbacks)(::windows::core::Vtable::as_raw(self), timeout).ok()
    }
    pub unsafe fn ExitDispatch<'a, P0>(&self, client: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        (::windows::core::Vtable::vtable(self).ExitDispatch)(::windows::core::Vtable::as_raw(self), client.into().abi()).ok()
    }
    pub unsafe fn CreateClient(&self) -> ::windows::core::Result<IDebugClient> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateClient)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugClient>(result__)
    }
    pub unsafe fn GetInputCallbacks(&self) -> ::windows::core::Result<IDebugInputCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugInputCallbacks>(result__)
    }
    pub unsafe fn SetInputCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugInputCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetInputCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn GetOutputCallbacks(&self) -> ::windows::core::Result<IDebugOutputCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugOutputCallbacks>(result__)
    }
    pub unsafe fn SetOutputCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugOutputCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn GetOutputMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOutputMask(&self, mask: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetOutputMask)(::windows::core::Vtable::as_raw(self), mask).ok()
    }
    pub unsafe fn GetOtherOutputMask<'a, P0>(&self, client: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOtherOutputMask)(::windows::core::Vtable::as_raw(self), client.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOtherOutputMask<'a, P0>(&self, client: P0, mask: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        (::windows::core::Vtable::vtable(self).SetOtherOutputMask)(::windows::core::Vtable::as_raw(self), client.into().abi(), mask).ok()
    }
    pub unsafe fn GetOutputWidth(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputWidth)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetOutputWidth)(::windows::core::Vtable::as_raw(self), columns).ok()
    }
    pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOutputLinePrefix)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetOutputLinePrefix<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputLinePrefix)(::windows::core::Vtable::as_raw(self), prefix.into()).ok()
    }
    pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetIdentity)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputIdentity<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputIdentity)(::windows::core::Vtable::as_raw(self), outputcontrol, flags, format.into()).ok()
    }
    pub unsafe fn GetEventCallbacks(&self) -> ::windows::core::Result<IDebugEventCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugEventCallbacks>(result__)
    }
    pub unsafe fn SetEventCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugEventCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetEventCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn FlushCallbacks(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).FlushCallbacks)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn WriteDumpFile2<'a, P0, P1>(&self, dumpfile: P0, qualifier: u32, formatflags: u32, comment: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteDumpFile2)(::windows::core::Vtable::as_raw(self), dumpfile.into(), qualifier, formatflags, comment.into()).ok()
    }
    pub unsafe fn AddDumpInformationFile<'a, P0>(&self, infofile: P0, r#type: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddDumpInformationFile)(::windows::core::Vtable::as_raw(self), infofile.into(), r#type).ok()
    }
    pub unsafe fn EndProcessServer(&self, server: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndProcessServer)(::windows::core::Vtable::as_raw(self), server).ok()
    }
    pub unsafe fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WaitForProcessServerEnd)(::windows::core::Vtable::as_raw(self), timeout).ok()
    }
    pub unsafe fn IsKernelDebuggerEnabled(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).IsKernelDebuggerEnabled)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn TerminateCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).TerminateCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn DetachCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DetachCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn AbandonCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AbandonCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetRunningProcessSystemIdByExecutableNameWide<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(::windows::core::Vtable::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u16]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u16]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessDescriptionWide)(
            ::windows::core::Vtable::as_raw(self),
            server,
            systemid,
            flags,
            ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            exename.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn CreateProcessWide<'a, P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessWide)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags).ok()
    }
    pub unsafe fn CreateProcessAndAttachWide<'a, P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttachWide)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags, processid, attachflags).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugClient3, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugClient3 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugClient3 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugClient3 {}
impl ::core::fmt::Debug for IDebugClient3 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugClient3").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugClient3 {
    type Vtable = IDebugClient3_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugClient3 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdd492d7f_71b8_4ad6_a8dc_1c887479ff91);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugClient3_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub AttachKernel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT,
    pub SetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub StartProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ConnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCSTR, server: *mut u64) -> ::windows::core::HRESULT,
    pub DisconnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessDescription: unsafe extern "system" fn(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,
    pub AttachProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessAndAttach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub GetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub OpenDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub WriteDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32) -> ::windows::core::HRESULT,
    pub ConnectSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows::core::HRESULT,
    pub StartServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputServers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub TerminateProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub DetachProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EndSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub GetExitCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows::core::HRESULT,
    pub DispatchCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT,
    pub ExitDispatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateClient: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub GetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub GetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows::core::HRESULT,
    pub GetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT,
    pub OutputIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub FlushCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub WriteDumpFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AddDumpInformationFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, infofile: ::windows::core::PCSTR, r#type: u32) -> ::windows::core::HRESULT,
    pub EndProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT,
    pub WaitForProcessServerEnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT,
    pub IsKernelDebuggerEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub TerminateCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub DetachCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AbandonCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIdByExecutableNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCWSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessDescriptionWide: unsafe extern "system" fn(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,
    pub CreateProcessWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessAndAttachWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugClient4(::windows::core::IUnknown);
impl IDebugClient4 {
    pub unsafe fn AttachKernel<'a, P0>(&self, flags: u32, connectoptions: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AttachKernel)(::windows::core::Vtable::as_raw(self), flags, connectoptions.into()).ok()
    }
    pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetKernelConnectionOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetKernelConnectionOptions<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetKernelConnectionOptions)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn StartProcessServer<'a, P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartProcessServer)(::windows::core::Vtable::as_raw(self), flags, options.into(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
    }
    pub unsafe fn ConnectProcessServer<'a, P0>(&self, remoteoptions: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ConnectProcessServer)(::windows::core::Vtable::as_raw(self), remoteoptions.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DisconnectProcessServer)(::windows::core::Vtable::as_raw(self), server).ok()
    }
    pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIds)(::windows::core::Vtable::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualcount.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetRunningProcessSystemIdByExecutableName<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows::core::Vtable::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessDescription)(
            ::windows::core::Vtable::as_raw(self),
            server,
            systemid,
            flags,
            ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            exename.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AttachProcess)(::windows::core::Vtable::as_raw(self), server, processid, attachflags).ok()
    }
    pub unsafe fn CreateProcessA<'a, P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessA)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags).ok()
    }
    pub unsafe fn CreateProcessAndAttach<'a, P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttach)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags, processid, attachflags).ok()
    }
    pub unsafe fn GetProcessOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn OpenDumpFile<'a, P0>(&self, dumpfile: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenDumpFile)(::windows::core::Vtable::as_raw(self), dumpfile.into()).ok()
    }
    pub unsafe fn WriteDumpFile<'a, P0>(&self, dumpfile: P0, qualifier: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteDumpFile)(::windows::core::Vtable::as_raw(self), dumpfile.into(), qualifier).ok()
    }
    pub unsafe fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ConnectSession)(::windows::core::Vtable::as_raw(self), flags, historylimit).ok()
    }
    pub unsafe fn StartServer<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartServer)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn OutputServers<'a, P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputServers)(::windows::core::Vtable::as_raw(self), outputcontrol, machine.into(), flags).ok()
    }
    pub unsafe fn TerminateProcesses(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).TerminateProcesses)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn DetachProcesses(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DetachProcesses)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn EndSession(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndSession)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn GetExitCode(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExitCode)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn DispatchCallbacks(&self, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DispatchCallbacks)(::windows::core::Vtable::as_raw(self), timeout).ok()
    }
    pub unsafe fn ExitDispatch<'a, P0>(&self, client: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        (::windows::core::Vtable::vtable(self).ExitDispatch)(::windows::core::Vtable::as_raw(self), client.into().abi()).ok()
    }
    pub unsafe fn CreateClient(&self) -> ::windows::core::Result<IDebugClient> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateClient)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugClient>(result__)
    }
    pub unsafe fn GetInputCallbacks(&self) -> ::windows::core::Result<IDebugInputCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugInputCallbacks>(result__)
    }
    pub unsafe fn SetInputCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugInputCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetInputCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn GetOutputCallbacks(&self) -> ::windows::core::Result<IDebugOutputCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugOutputCallbacks>(result__)
    }
    pub unsafe fn SetOutputCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugOutputCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn GetOutputMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOutputMask(&self, mask: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetOutputMask)(::windows::core::Vtable::as_raw(self), mask).ok()
    }
    pub unsafe fn GetOtherOutputMask<'a, P0>(&self, client: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOtherOutputMask)(::windows::core::Vtable::as_raw(self), client.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOtherOutputMask<'a, P0>(&self, client: P0, mask: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        (::windows::core::Vtable::vtable(self).SetOtherOutputMask)(::windows::core::Vtable::as_raw(self), client.into().abi(), mask).ok()
    }
    pub unsafe fn GetOutputWidth(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputWidth)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetOutputWidth)(::windows::core::Vtable::as_raw(self), columns).ok()
    }
    pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOutputLinePrefix)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetOutputLinePrefix<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputLinePrefix)(::windows::core::Vtable::as_raw(self), prefix.into()).ok()
    }
    pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetIdentity)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputIdentity<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputIdentity)(::windows::core::Vtable::as_raw(self), outputcontrol, flags, format.into()).ok()
    }
    pub unsafe fn GetEventCallbacks(&self) -> ::windows::core::Result<IDebugEventCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugEventCallbacks>(result__)
    }
    pub unsafe fn SetEventCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugEventCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetEventCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn FlushCallbacks(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).FlushCallbacks)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn WriteDumpFile2<'a, P0, P1>(&self, dumpfile: P0, qualifier: u32, formatflags: u32, comment: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteDumpFile2)(::windows::core::Vtable::as_raw(self), dumpfile.into(), qualifier, formatflags, comment.into()).ok()
    }
    pub unsafe fn AddDumpInformationFile<'a, P0>(&self, infofile: P0, r#type: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddDumpInformationFile)(::windows::core::Vtable::as_raw(self), infofile.into(), r#type).ok()
    }
    pub unsafe fn EndProcessServer(&self, server: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndProcessServer)(::windows::core::Vtable::as_raw(self), server).ok()
    }
    pub unsafe fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WaitForProcessServerEnd)(::windows::core::Vtable::as_raw(self), timeout).ok()
    }
    pub unsafe fn IsKernelDebuggerEnabled(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).IsKernelDebuggerEnabled)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn TerminateCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).TerminateCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn DetachCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DetachCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn AbandonCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AbandonCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetRunningProcessSystemIdByExecutableNameWide<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(::windows::core::Vtable::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u16]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u16]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessDescriptionWide)(
            ::windows::core::Vtable::as_raw(self),
            server,
            systemid,
            flags,
            ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            exename.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn CreateProcessWide<'a, P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessWide)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags).ok()
    }
    pub unsafe fn CreateProcessAndAttachWide<'a, P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttachWide)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags, processid, attachflags).ok()
    }
    pub unsafe fn OpenDumpFileWide<'a, P0>(&self, filename: P0, filehandle: u64) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenDumpFileWide)(::windows::core::Vtable::as_raw(self), filename.into(), filehandle).ok()
    }
    pub unsafe fn WriteDumpFileWide<'a, P0, P1>(&self, filename: P0, filehandle: u64, qualifier: u32, formatflags: u32, comment: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteDumpFileWide)(::windows::core::Vtable::as_raw(self), filename.into(), filehandle, qualifier, formatflags, comment.into()).ok()
    }
    pub unsafe fn AddDumpInformationFileWide<'a, P0>(&self, filename: P0, filehandle: u64, r#type: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddDumpInformationFileWide)(::windows::core::Vtable::as_raw(self), filename.into(), filehandle, r#type).ok()
    }
    pub unsafe fn GetNumberDumpFiles(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberDumpFiles)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetDumpFile(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, handle: ::core::option::Option<*mut u64>, r#type: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDumpFile)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(handle.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(r#type)).ok()
    }
    pub unsafe fn GetDumpFileWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, handle: ::core::option::Option<*mut u64>, r#type: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDumpFileWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(handle.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(r#type)).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugClient4, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugClient4 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugClient4 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugClient4 {}
impl ::core::fmt::Debug for IDebugClient4 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugClient4").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugClient4 {
    type Vtable = IDebugClient4_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugClient4 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xca83c3de_5089_4cf8_93c8_d892387f2a5e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugClient4_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub AttachKernel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT,
    pub SetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub StartProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ConnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCSTR, server: *mut u64) -> ::windows::core::HRESULT,
    pub DisconnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessDescription: unsafe extern "system" fn(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,
    pub AttachProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessAndAttach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub GetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub OpenDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub WriteDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32) -> ::windows::core::HRESULT,
    pub ConnectSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows::core::HRESULT,
    pub StartServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputServers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub TerminateProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub DetachProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EndSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub GetExitCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows::core::HRESULT,
    pub DispatchCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT,
    pub ExitDispatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateClient: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub GetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub GetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows::core::HRESULT,
    pub GetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT,
    pub OutputIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub FlushCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub WriteDumpFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AddDumpInformationFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, infofile: ::windows::core::PCSTR, r#type: u32) -> ::windows::core::HRESULT,
    pub EndProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT,
    pub WaitForProcessServerEnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT,
    pub IsKernelDebuggerEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub TerminateCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub DetachCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AbandonCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIdByExecutableNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCWSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessDescriptionWide: unsafe extern "system" fn(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,
    pub CreateProcessWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessAndAttachWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub OpenDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64) -> ::windows::core::HRESULT,
    pub WriteDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, qualifier: u32, formatflags: u32, comment: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub AddDumpInformationFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, r#type: u32) -> ::windows::core::HRESULT,
    pub GetNumberDumpFiles: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetDumpFile: unsafe extern "system" fn(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,
    pub GetDumpFileWide: unsafe extern "system" fn(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,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugClient5(::windows::core::IUnknown);
impl IDebugClient5 {
    pub unsafe fn AttachKernel<'a, P0>(&self, flags: u32, connectoptions: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AttachKernel)(::windows::core::Vtable::as_raw(self), flags, connectoptions.into()).ok()
    }
    pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetKernelConnectionOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetKernelConnectionOptions<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetKernelConnectionOptions)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn StartProcessServer<'a, P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartProcessServer)(::windows::core::Vtable::as_raw(self), flags, options.into(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
    }
    pub unsafe fn ConnectProcessServer<'a, P0>(&self, remoteoptions: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ConnectProcessServer)(::windows::core::Vtable::as_raw(self), remoteoptions.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DisconnectProcessServer)(::windows::core::Vtable::as_raw(self), server).ok()
    }
    pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIds)(::windows::core::Vtable::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualcount.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetRunningProcessSystemIdByExecutableName<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows::core::Vtable::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessDescription)(
            ::windows::core::Vtable::as_raw(self),
            server,
            systemid,
            flags,
            ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            exename.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AttachProcess)(::windows::core::Vtable::as_raw(self), server, processid, attachflags).ok()
    }
    pub unsafe fn CreateProcessA<'a, P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessA)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags).ok()
    }
    pub unsafe fn CreateProcessAndAttach<'a, P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttach)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags, processid, attachflags).ok()
    }
    pub unsafe fn GetProcessOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn OpenDumpFile<'a, P0>(&self, dumpfile: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenDumpFile)(::windows::core::Vtable::as_raw(self), dumpfile.into()).ok()
    }
    pub unsafe fn WriteDumpFile<'a, P0>(&self, dumpfile: P0, qualifier: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteDumpFile)(::windows::core::Vtable::as_raw(self), dumpfile.into(), qualifier).ok()
    }
    pub unsafe fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ConnectSession)(::windows::core::Vtable::as_raw(self), flags, historylimit).ok()
    }
    pub unsafe fn StartServer<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartServer)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn OutputServers<'a, P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputServers)(::windows::core::Vtable::as_raw(self), outputcontrol, machine.into(), flags).ok()
    }
    pub unsafe fn TerminateProcesses(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).TerminateProcesses)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn DetachProcesses(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DetachProcesses)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn EndSession(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndSession)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn GetExitCode(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExitCode)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn DispatchCallbacks(&self, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DispatchCallbacks)(::windows::core::Vtable::as_raw(self), timeout).ok()
    }
    pub unsafe fn ExitDispatch<'a, P0>(&self, client: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        (::windows::core::Vtable::vtable(self).ExitDispatch)(::windows::core::Vtable::as_raw(self), client.into().abi()).ok()
    }
    pub unsafe fn CreateClient(&self) -> ::windows::core::Result<IDebugClient> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateClient)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugClient>(result__)
    }
    pub unsafe fn GetInputCallbacks(&self) -> ::windows::core::Result<IDebugInputCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugInputCallbacks>(result__)
    }
    pub unsafe fn SetInputCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugInputCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetInputCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn GetOutputCallbacks(&self) -> ::windows::core::Result<IDebugOutputCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugOutputCallbacks>(result__)
    }
    pub unsafe fn SetOutputCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugOutputCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn GetOutputMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOutputMask(&self, mask: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetOutputMask)(::windows::core::Vtable::as_raw(self), mask).ok()
    }
    pub unsafe fn GetOtherOutputMask<'a, P0>(&self, client: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOtherOutputMask)(::windows::core::Vtable::as_raw(self), client.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOtherOutputMask<'a, P0>(&self, client: P0, mask: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        (::windows::core::Vtable::vtable(self).SetOtherOutputMask)(::windows::core::Vtable::as_raw(self), client.into().abi(), mask).ok()
    }
    pub unsafe fn GetOutputWidth(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputWidth)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetOutputWidth)(::windows::core::Vtable::as_raw(self), columns).ok()
    }
    pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOutputLinePrefix)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetOutputLinePrefix<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputLinePrefix)(::windows::core::Vtable::as_raw(self), prefix.into()).ok()
    }
    pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetIdentity)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputIdentity<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputIdentity)(::windows::core::Vtable::as_raw(self), outputcontrol, flags, format.into()).ok()
    }
    pub unsafe fn GetEventCallbacks(&self) -> ::windows::core::Result<IDebugEventCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugEventCallbacks>(result__)
    }
    pub unsafe fn SetEventCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugEventCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetEventCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn FlushCallbacks(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).FlushCallbacks)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn WriteDumpFile2<'a, P0, P1>(&self, dumpfile: P0, qualifier: u32, formatflags: u32, comment: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteDumpFile2)(::windows::core::Vtable::as_raw(self), dumpfile.into(), qualifier, formatflags, comment.into()).ok()
    }
    pub unsafe fn AddDumpInformationFile<'a, P0>(&self, infofile: P0, r#type: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddDumpInformationFile)(::windows::core::Vtable::as_raw(self), infofile.into(), r#type).ok()
    }
    pub unsafe fn EndProcessServer(&self, server: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndProcessServer)(::windows::core::Vtable::as_raw(self), server).ok()
    }
    pub unsafe fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WaitForProcessServerEnd)(::windows::core::Vtable::as_raw(self), timeout).ok()
    }
    pub unsafe fn IsKernelDebuggerEnabled(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).IsKernelDebuggerEnabled)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn TerminateCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).TerminateCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn DetachCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DetachCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn AbandonCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AbandonCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetRunningProcessSystemIdByExecutableNameWide<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(::windows::core::Vtable::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u16]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u16]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessDescriptionWide)(
            ::windows::core::Vtable::as_raw(self),
            server,
            systemid,
            flags,
            ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            exename.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn CreateProcessWide<'a, P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessWide)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags).ok()
    }
    pub unsafe fn CreateProcessAndAttachWide<'a, P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttachWide)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags, processid, attachflags).ok()
    }
    pub unsafe fn OpenDumpFileWide<'a, P0>(&self, filename: P0, filehandle: u64) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenDumpFileWide)(::windows::core::Vtable::as_raw(self), filename.into(), filehandle).ok()
    }
    pub unsafe fn WriteDumpFileWide<'a, P0, P1>(&self, filename: P0, filehandle: u64, qualifier: u32, formatflags: u32, comment: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteDumpFileWide)(::windows::core::Vtable::as_raw(self), filename.into(), filehandle, qualifier, formatflags, comment.into()).ok()
    }
    pub unsafe fn AddDumpInformationFileWide<'a, P0>(&self, filename: P0, filehandle: u64, r#type: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddDumpInformationFileWide)(::windows::core::Vtable::as_raw(self), filename.into(), filehandle, r#type).ok()
    }
    pub unsafe fn GetNumberDumpFiles(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberDumpFiles)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetDumpFile(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, handle: ::core::option::Option<*mut u64>, r#type: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDumpFile)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(handle.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(r#type)).ok()
    }
    pub unsafe fn GetDumpFileWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, handle: ::core::option::Option<*mut u64>, r#type: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDumpFileWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(handle.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(r#type)).ok()
    }
    pub unsafe fn AttachKernelWide<'a, P0>(&self, flags: u32, connectoptions: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AttachKernelWide)(::windows::core::Vtable::as_raw(self), flags, connectoptions.into()).ok()
    }
    pub unsafe fn GetKernelConnectionOptionsWide(&self, buffer: ::core::option::Option<&mut [u16]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetKernelConnectionOptionsWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetKernelConnectionOptionsWide<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetKernelConnectionOptionsWide)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn StartProcessServerWide<'a, P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartProcessServerWide)(::windows::core::Vtable::as_raw(self), flags, options.into(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
    }
    pub unsafe fn ConnectProcessServerWide<'a, P0>(&self, remoteoptions: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ConnectProcessServerWide)(::windows::core::Vtable::as_raw(self), remoteoptions.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn StartServerWide<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartServerWide)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn OutputServersWide<'a, P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputServersWide)(::windows::core::Vtable::as_raw(self), outputcontrol, machine.into(), flags).ok()
    }
    pub unsafe fn GetOutputCallbacksWide(&self) -> ::windows::core::Result<IDebugOutputCallbacksWide> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputCallbacksWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugOutputCallbacksWide>(result__)
    }
    pub unsafe fn SetOutputCallbacksWide<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugOutputCallbacksWide>>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputCallbacksWide)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn GetOutputLinePrefixWide(&self, buffer: ::core::option::Option<&mut [u16]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOutputLinePrefixWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetOutputLinePrefixWide<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputLinePrefixWide)(::windows::core::Vtable::as_raw(self), prefix.into()).ok()
    }
    pub unsafe fn GetIdentityWide(&self, buffer: ::core::option::Option<&mut [u16]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetIdentityWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputIdentityWide<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputIdentityWide)(::windows::core::Vtable::as_raw(self), outputcontrol, flags, format.into()).ok()
    }
    pub unsafe fn GetEventCallbacksWide(&self) -> ::windows::core::Result<IDebugEventCallbacksWide> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventCallbacksWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugEventCallbacksWide>(result__)
    }
    pub unsafe fn SetEventCallbacksWide<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugEventCallbacksWide>>,
    {
        (::windows::core::Vtable::vtable(self).SetEventCallbacksWide)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn CreateProcess2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
        P2: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcess2)(::windows::core::Vtable::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into()).ok()
    }
    pub unsafe fn CreateProcess2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcess2Wide)(::windows::core::Vtable::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into()).ok()
    }
    pub unsafe fn CreateProcessAndAttach2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
        P2: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttach2)(::windows::core::Vtable::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into(), processid, attachflags).ok()
    }
    pub unsafe fn CreateProcessAndAttach2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttach2Wide)(::windows::core::Vtable::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into(), processid, attachflags).ok()
    }
    pub unsafe fn PushOutputLinePrefix<'a, P0>(&self, newprefix: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).PushOutputLinePrefix)(::windows::core::Vtable::as_raw(self), newprefix.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn PushOutputLinePrefixWide<'a, P0>(&self, newprefix: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).PushOutputLinePrefixWide)(::windows::core::Vtable::as_raw(self), newprefix.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn PopOutputLinePrefix(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).PopOutputLinePrefix)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn GetNumberInputCallbacks(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberInputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberOutputCallbacks(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberOutputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberEventCallbacks(&self, eventflags: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberEventCallbacks)(::windows::core::Vtable::as_raw(self), eventflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetQuitLockString(&self, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetQuitLockString)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetQuitLockString<'a, P0>(&self, string: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetQuitLockString)(::windows::core::Vtable::as_raw(self), string.into()).ok()
    }
    pub unsafe fn GetQuitLockStringWide(&self, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetQuitLockStringWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetQuitLockStringWide<'a, P0>(&self, string: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetQuitLockStringWide)(::windows::core::Vtable::as_raw(self), string.into()).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugClient5, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugClient5 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugClient5 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugClient5 {}
impl ::core::fmt::Debug for IDebugClient5 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugClient5").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugClient5 {
    type Vtable = IDebugClient5_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugClient5 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe3acb9d7_7ec2_4f0c_a0da_e81e0cbbe628);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugClient5_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub AttachKernel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT,
    pub SetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub StartProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ConnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCSTR, server: *mut u64) -> ::windows::core::HRESULT,
    pub DisconnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessDescription: unsafe extern "system" fn(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,
    pub AttachProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessAndAttach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub GetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub OpenDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub WriteDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32) -> ::windows::core::HRESULT,
    pub ConnectSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows::core::HRESULT,
    pub StartServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputServers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub TerminateProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub DetachProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EndSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub GetExitCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows::core::HRESULT,
    pub DispatchCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT,
    pub ExitDispatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateClient: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub GetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub GetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows::core::HRESULT,
    pub GetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT,
    pub OutputIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub FlushCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub WriteDumpFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AddDumpInformationFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, infofile: ::windows::core::PCSTR, r#type: u32) -> ::windows::core::HRESULT,
    pub EndProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT,
    pub WaitForProcessServerEnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT,
    pub IsKernelDebuggerEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub TerminateCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub DetachCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AbandonCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIdByExecutableNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCWSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessDescriptionWide: unsafe extern "system" fn(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,
    pub CreateProcessWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessAndAttachWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub OpenDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64) -> ::windows::core::HRESULT,
    pub WriteDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, qualifier: u32, formatflags: u32, comment: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub AddDumpInformationFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, r#type: u32) -> ::windows::core::HRESULT,
    pub GetNumberDumpFiles: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetDumpFile: unsafe extern "system" fn(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,
    pub GetDumpFileWide: unsafe extern "system" fn(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,
    pub AttachKernelWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetKernelConnectionOptionsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT,
    pub SetKernelConnectionOptionsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub StartProcessServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCWSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ConnectProcessServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCWSTR, server: *mut u64) -> ::windows::core::HRESULT,
    pub StartServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub OutputServersWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetOutputCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetOutputCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetIdentityWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT,
    pub OutputIdentityWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetEventCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetEventCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateProcess2: unsafe extern "system" fn(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,
    pub CreateProcess2Wide: unsafe extern "system" fn(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,
    pub CreateProcessAndAttach2: unsafe extern "system" fn(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,
    pub CreateProcessAndAttach2Wide: unsafe extern "system" fn(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,
    pub PushOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, newprefix: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub PushOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, newprefix: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub PopOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub GetNumberInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, eventflags: u32, count: *mut u32) -> ::windows::core::HRESULT,
    pub GetQuitLockString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetQuitLockString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, string: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetQuitLockStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetQuitLockStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, string: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugClient6(::windows::core::IUnknown);
impl IDebugClient6 {
    pub unsafe fn AttachKernel<'a, P0>(&self, flags: u32, connectoptions: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AttachKernel)(::windows::core::Vtable::as_raw(self), flags, connectoptions.into()).ok()
    }
    pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetKernelConnectionOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetKernelConnectionOptions<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetKernelConnectionOptions)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn StartProcessServer<'a, P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartProcessServer)(::windows::core::Vtable::as_raw(self), flags, options.into(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
    }
    pub unsafe fn ConnectProcessServer<'a, P0>(&self, remoteoptions: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ConnectProcessServer)(::windows::core::Vtable::as_raw(self), remoteoptions.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DisconnectProcessServer)(::windows::core::Vtable::as_raw(self), server).ok()
    }
    pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIds)(::windows::core::Vtable::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualcount.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetRunningProcessSystemIdByExecutableName<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows::core::Vtable::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessDescription)(
            ::windows::core::Vtable::as_raw(self),
            server,
            systemid,
            flags,
            ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            exename.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AttachProcess)(::windows::core::Vtable::as_raw(self), server, processid, attachflags).ok()
    }
    pub unsafe fn CreateProcessA<'a, P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessA)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags).ok()
    }
    pub unsafe fn CreateProcessAndAttach<'a, P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttach)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags, processid, attachflags).ok()
    }
    pub unsafe fn GetProcessOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn OpenDumpFile<'a, P0>(&self, dumpfile: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenDumpFile)(::windows::core::Vtable::as_raw(self), dumpfile.into()).ok()
    }
    pub unsafe fn WriteDumpFile<'a, P0>(&self, dumpfile: P0, qualifier: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteDumpFile)(::windows::core::Vtable::as_raw(self), dumpfile.into(), qualifier).ok()
    }
    pub unsafe fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ConnectSession)(::windows::core::Vtable::as_raw(self), flags, historylimit).ok()
    }
    pub unsafe fn StartServer<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartServer)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn OutputServers<'a, P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputServers)(::windows::core::Vtable::as_raw(self), outputcontrol, machine.into(), flags).ok()
    }
    pub unsafe fn TerminateProcesses(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).TerminateProcesses)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn DetachProcesses(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DetachProcesses)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn EndSession(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndSession)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn GetExitCode(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExitCode)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn DispatchCallbacks(&self, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DispatchCallbacks)(::windows::core::Vtable::as_raw(self), timeout).ok()
    }
    pub unsafe fn ExitDispatch<'a, P0>(&self, client: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        (::windows::core::Vtable::vtable(self).ExitDispatch)(::windows::core::Vtable::as_raw(self), client.into().abi()).ok()
    }
    pub unsafe fn CreateClient(&self) -> ::windows::core::Result<IDebugClient> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateClient)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugClient>(result__)
    }
    pub unsafe fn GetInputCallbacks(&self) -> ::windows::core::Result<IDebugInputCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugInputCallbacks>(result__)
    }
    pub unsafe fn SetInputCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugInputCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetInputCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn GetOutputCallbacks(&self) -> ::windows::core::Result<IDebugOutputCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugOutputCallbacks>(result__)
    }
    pub unsafe fn SetOutputCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugOutputCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn GetOutputMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOutputMask(&self, mask: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetOutputMask)(::windows::core::Vtable::as_raw(self), mask).ok()
    }
    pub unsafe fn GetOtherOutputMask<'a, P0>(&self, client: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOtherOutputMask)(::windows::core::Vtable::as_raw(self), client.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOtherOutputMask<'a, P0>(&self, client: P0, mask: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        (::windows::core::Vtable::vtable(self).SetOtherOutputMask)(::windows::core::Vtable::as_raw(self), client.into().abi(), mask).ok()
    }
    pub unsafe fn GetOutputWidth(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputWidth)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetOutputWidth)(::windows::core::Vtable::as_raw(self), columns).ok()
    }
    pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOutputLinePrefix)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetOutputLinePrefix<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputLinePrefix)(::windows::core::Vtable::as_raw(self), prefix.into()).ok()
    }
    pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetIdentity)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputIdentity<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputIdentity)(::windows::core::Vtable::as_raw(self), outputcontrol, flags, format.into()).ok()
    }
    pub unsafe fn GetEventCallbacks(&self) -> ::windows::core::Result<IDebugEventCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugEventCallbacks>(result__)
    }
    pub unsafe fn SetEventCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugEventCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetEventCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn FlushCallbacks(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).FlushCallbacks)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn WriteDumpFile2<'a, P0, P1>(&self, dumpfile: P0, qualifier: u32, formatflags: u32, comment: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteDumpFile2)(::windows::core::Vtable::as_raw(self), dumpfile.into(), qualifier, formatflags, comment.into()).ok()
    }
    pub unsafe fn AddDumpInformationFile<'a, P0>(&self, infofile: P0, r#type: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddDumpInformationFile)(::windows::core::Vtable::as_raw(self), infofile.into(), r#type).ok()
    }
    pub unsafe fn EndProcessServer(&self, server: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndProcessServer)(::windows::core::Vtable::as_raw(self), server).ok()
    }
    pub unsafe fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WaitForProcessServerEnd)(::windows::core::Vtable::as_raw(self), timeout).ok()
    }
    pub unsafe fn IsKernelDebuggerEnabled(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).IsKernelDebuggerEnabled)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn TerminateCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).TerminateCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn DetachCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DetachCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn AbandonCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AbandonCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetRunningProcessSystemIdByExecutableNameWide<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(::windows::core::Vtable::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u16]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u16]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessDescriptionWide)(
            ::windows::core::Vtable::as_raw(self),
            server,
            systemid,
            flags,
            ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            exename.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn CreateProcessWide<'a, P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessWide)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags).ok()
    }
    pub unsafe fn CreateProcessAndAttachWide<'a, P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttachWide)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags, processid, attachflags).ok()
    }
    pub unsafe fn OpenDumpFileWide<'a, P0>(&self, filename: P0, filehandle: u64) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenDumpFileWide)(::windows::core::Vtable::as_raw(self), filename.into(), filehandle).ok()
    }
    pub unsafe fn WriteDumpFileWide<'a, P0, P1>(&self, filename: P0, filehandle: u64, qualifier: u32, formatflags: u32, comment: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteDumpFileWide)(::windows::core::Vtable::as_raw(self), filename.into(), filehandle, qualifier, formatflags, comment.into()).ok()
    }
    pub unsafe fn AddDumpInformationFileWide<'a, P0>(&self, filename: P0, filehandle: u64, r#type: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddDumpInformationFileWide)(::windows::core::Vtable::as_raw(self), filename.into(), filehandle, r#type).ok()
    }
    pub unsafe fn GetNumberDumpFiles(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberDumpFiles)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetDumpFile(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, handle: ::core::option::Option<*mut u64>, r#type: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDumpFile)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(handle.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(r#type)).ok()
    }
    pub unsafe fn GetDumpFileWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, handle: ::core::option::Option<*mut u64>, r#type: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDumpFileWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(handle.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(r#type)).ok()
    }
    pub unsafe fn AttachKernelWide<'a, P0>(&self, flags: u32, connectoptions: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AttachKernelWide)(::windows::core::Vtable::as_raw(self), flags, connectoptions.into()).ok()
    }
    pub unsafe fn GetKernelConnectionOptionsWide(&self, buffer: ::core::option::Option<&mut [u16]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetKernelConnectionOptionsWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetKernelConnectionOptionsWide<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetKernelConnectionOptionsWide)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn StartProcessServerWide<'a, P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartProcessServerWide)(::windows::core::Vtable::as_raw(self), flags, options.into(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
    }
    pub unsafe fn ConnectProcessServerWide<'a, P0>(&self, remoteoptions: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ConnectProcessServerWide)(::windows::core::Vtable::as_raw(self), remoteoptions.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn StartServerWide<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartServerWide)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn OutputServersWide<'a, P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputServersWide)(::windows::core::Vtable::as_raw(self), outputcontrol, machine.into(), flags).ok()
    }
    pub unsafe fn GetOutputCallbacksWide(&self) -> ::windows::core::Result<IDebugOutputCallbacksWide> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputCallbacksWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugOutputCallbacksWide>(result__)
    }
    pub unsafe fn SetOutputCallbacksWide<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugOutputCallbacksWide>>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputCallbacksWide)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn GetOutputLinePrefixWide(&self, buffer: ::core::option::Option<&mut [u16]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOutputLinePrefixWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetOutputLinePrefixWide<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputLinePrefixWide)(::windows::core::Vtable::as_raw(self), prefix.into()).ok()
    }
    pub unsafe fn GetIdentityWide(&self, buffer: ::core::option::Option<&mut [u16]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetIdentityWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputIdentityWide<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputIdentityWide)(::windows::core::Vtable::as_raw(self), outputcontrol, flags, format.into()).ok()
    }
    pub unsafe fn GetEventCallbacksWide(&self) -> ::windows::core::Result<IDebugEventCallbacksWide> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventCallbacksWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugEventCallbacksWide>(result__)
    }
    pub unsafe fn SetEventCallbacksWide<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugEventCallbacksWide>>,
    {
        (::windows::core::Vtable::vtable(self).SetEventCallbacksWide)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn CreateProcess2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
        P2: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcess2)(::windows::core::Vtable::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into()).ok()
    }
    pub unsafe fn CreateProcess2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcess2Wide)(::windows::core::Vtable::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into()).ok()
    }
    pub unsafe fn CreateProcessAndAttach2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
        P2: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttach2)(::windows::core::Vtable::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into(), processid, attachflags).ok()
    }
    pub unsafe fn CreateProcessAndAttach2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttach2Wide)(::windows::core::Vtable::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into(), processid, attachflags).ok()
    }
    pub unsafe fn PushOutputLinePrefix<'a, P0>(&self, newprefix: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).PushOutputLinePrefix)(::windows::core::Vtable::as_raw(self), newprefix.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn PushOutputLinePrefixWide<'a, P0>(&self, newprefix: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).PushOutputLinePrefixWide)(::windows::core::Vtable::as_raw(self), newprefix.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn PopOutputLinePrefix(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).PopOutputLinePrefix)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn GetNumberInputCallbacks(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberInputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberOutputCallbacks(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberOutputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberEventCallbacks(&self, eventflags: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberEventCallbacks)(::windows::core::Vtable::as_raw(self), eventflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetQuitLockString(&self, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetQuitLockString)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetQuitLockString<'a, P0>(&self, string: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetQuitLockString)(::windows::core::Vtable::as_raw(self), string.into()).ok()
    }
    pub unsafe fn GetQuitLockStringWide(&self, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetQuitLockStringWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetQuitLockStringWide<'a, P0>(&self, string: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetQuitLockStringWide)(::windows::core::Vtable::as_raw(self), string.into()).ok()
    }
    pub unsafe fn SetEventContextCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugEventContextCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetEventContextCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugClient6, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugClient6 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugClient6 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugClient6 {}
impl ::core::fmt::Debug for IDebugClient6 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugClient6").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugClient6 {
    type Vtable = IDebugClient6_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugClient6 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xfd28b4c5_c498_4686_a28e_62cad2154eb3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugClient6_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub AttachKernel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT,
    pub SetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub StartProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ConnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCSTR, server: *mut u64) -> ::windows::core::HRESULT,
    pub DisconnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessDescription: unsafe extern "system" fn(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,
    pub AttachProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessAndAttach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub GetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub OpenDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub WriteDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32) -> ::windows::core::HRESULT,
    pub ConnectSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows::core::HRESULT,
    pub StartServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputServers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub TerminateProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub DetachProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EndSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub GetExitCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows::core::HRESULT,
    pub DispatchCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT,
    pub ExitDispatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateClient: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub GetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub GetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows::core::HRESULT,
    pub GetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT,
    pub OutputIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub FlushCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub WriteDumpFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AddDumpInformationFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, infofile: ::windows::core::PCSTR, r#type: u32) -> ::windows::core::HRESULT,
    pub EndProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT,
    pub WaitForProcessServerEnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT,
    pub IsKernelDebuggerEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub TerminateCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub DetachCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AbandonCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIdByExecutableNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCWSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessDescriptionWide: unsafe extern "system" fn(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,
    pub CreateProcessWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessAndAttachWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub OpenDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64) -> ::windows::core::HRESULT,
    pub WriteDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, qualifier: u32, formatflags: u32, comment: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub AddDumpInformationFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, r#type: u32) -> ::windows::core::HRESULT,
    pub GetNumberDumpFiles: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetDumpFile: unsafe extern "system" fn(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,
    pub GetDumpFileWide: unsafe extern "system" fn(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,
    pub AttachKernelWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetKernelConnectionOptionsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT,
    pub SetKernelConnectionOptionsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub StartProcessServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCWSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ConnectProcessServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCWSTR, server: *mut u64) -> ::windows::core::HRESULT,
    pub StartServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub OutputServersWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetOutputCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetOutputCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetIdentityWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT,
    pub OutputIdentityWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetEventCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetEventCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateProcess2: unsafe extern "system" fn(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,
    pub CreateProcess2Wide: unsafe extern "system" fn(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,
    pub CreateProcessAndAttach2: unsafe extern "system" fn(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,
    pub CreateProcessAndAttach2Wide: unsafe extern "system" fn(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,
    pub PushOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, newprefix: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub PushOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, newprefix: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub PopOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub GetNumberInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, eventflags: u32, count: *mut u32) -> ::windows::core::HRESULT,
    pub GetQuitLockString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetQuitLockString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, string: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetQuitLockStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetQuitLockStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, string: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub SetEventContextCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugClient7(::windows::core::IUnknown);
impl IDebugClient7 {
    pub unsafe fn AttachKernel<'a, P0>(&self, flags: u32, connectoptions: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AttachKernel)(::windows::core::Vtable::as_raw(self), flags, connectoptions.into()).ok()
    }
    pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetKernelConnectionOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetKernelConnectionOptions<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetKernelConnectionOptions)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn StartProcessServer<'a, P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartProcessServer)(::windows::core::Vtable::as_raw(self), flags, options.into(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
    }
    pub unsafe fn ConnectProcessServer<'a, P0>(&self, remoteoptions: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ConnectProcessServer)(::windows::core::Vtable::as_raw(self), remoteoptions.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DisconnectProcessServer)(::windows::core::Vtable::as_raw(self), server).ok()
    }
    pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIds)(::windows::core::Vtable::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualcount.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetRunningProcessSystemIdByExecutableName<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows::core::Vtable::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessDescription)(
            ::windows::core::Vtable::as_raw(self),
            server,
            systemid,
            flags,
            ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            exename.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AttachProcess)(::windows::core::Vtable::as_raw(self), server, processid, attachflags).ok()
    }
    pub unsafe fn CreateProcessA<'a, P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessA)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags).ok()
    }
    pub unsafe fn CreateProcessAndAttach<'a, P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttach)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags, processid, attachflags).ok()
    }
    pub unsafe fn GetProcessOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn OpenDumpFile<'a, P0>(&self, dumpfile: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenDumpFile)(::windows::core::Vtable::as_raw(self), dumpfile.into()).ok()
    }
    pub unsafe fn WriteDumpFile<'a, P0>(&self, dumpfile: P0, qualifier: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteDumpFile)(::windows::core::Vtable::as_raw(self), dumpfile.into(), qualifier).ok()
    }
    pub unsafe fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ConnectSession)(::windows::core::Vtable::as_raw(self), flags, historylimit).ok()
    }
    pub unsafe fn StartServer<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartServer)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn OutputServers<'a, P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputServers)(::windows::core::Vtable::as_raw(self), outputcontrol, machine.into(), flags).ok()
    }
    pub unsafe fn TerminateProcesses(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).TerminateProcesses)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn DetachProcesses(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DetachProcesses)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn EndSession(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndSession)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn GetExitCode(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExitCode)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn DispatchCallbacks(&self, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DispatchCallbacks)(::windows::core::Vtable::as_raw(self), timeout).ok()
    }
    pub unsafe fn ExitDispatch<'a, P0>(&self, client: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        (::windows::core::Vtable::vtable(self).ExitDispatch)(::windows::core::Vtable::as_raw(self), client.into().abi()).ok()
    }
    pub unsafe fn CreateClient(&self) -> ::windows::core::Result<IDebugClient> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateClient)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugClient>(result__)
    }
    pub unsafe fn GetInputCallbacks(&self) -> ::windows::core::Result<IDebugInputCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugInputCallbacks>(result__)
    }
    pub unsafe fn SetInputCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugInputCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetInputCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn GetOutputCallbacks(&self) -> ::windows::core::Result<IDebugOutputCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugOutputCallbacks>(result__)
    }
    pub unsafe fn SetOutputCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugOutputCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn GetOutputMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOutputMask(&self, mask: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetOutputMask)(::windows::core::Vtable::as_raw(self), mask).ok()
    }
    pub unsafe fn GetOtherOutputMask<'a, P0>(&self, client: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOtherOutputMask)(::windows::core::Vtable::as_raw(self), client.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOtherOutputMask<'a, P0>(&self, client: P0, mask: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        (::windows::core::Vtable::vtable(self).SetOtherOutputMask)(::windows::core::Vtable::as_raw(self), client.into().abi(), mask).ok()
    }
    pub unsafe fn GetOutputWidth(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputWidth)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetOutputWidth)(::windows::core::Vtable::as_raw(self), columns).ok()
    }
    pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOutputLinePrefix)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetOutputLinePrefix<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputLinePrefix)(::windows::core::Vtable::as_raw(self), prefix.into()).ok()
    }
    pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetIdentity)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputIdentity<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputIdentity)(::windows::core::Vtable::as_raw(self), outputcontrol, flags, format.into()).ok()
    }
    pub unsafe fn GetEventCallbacks(&self) -> ::windows::core::Result<IDebugEventCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugEventCallbacks>(result__)
    }
    pub unsafe fn SetEventCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugEventCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetEventCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn FlushCallbacks(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).FlushCallbacks)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn WriteDumpFile2<'a, P0, P1>(&self, dumpfile: P0, qualifier: u32, formatflags: u32, comment: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteDumpFile2)(::windows::core::Vtable::as_raw(self), dumpfile.into(), qualifier, formatflags, comment.into()).ok()
    }
    pub unsafe fn AddDumpInformationFile<'a, P0>(&self, infofile: P0, r#type: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddDumpInformationFile)(::windows::core::Vtable::as_raw(self), infofile.into(), r#type).ok()
    }
    pub unsafe fn EndProcessServer(&self, server: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndProcessServer)(::windows::core::Vtable::as_raw(self), server).ok()
    }
    pub unsafe fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WaitForProcessServerEnd)(::windows::core::Vtable::as_raw(self), timeout).ok()
    }
    pub unsafe fn IsKernelDebuggerEnabled(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).IsKernelDebuggerEnabled)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn TerminateCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).TerminateCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn DetachCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DetachCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn AbandonCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AbandonCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetRunningProcessSystemIdByExecutableNameWide<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(::windows::core::Vtable::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u16]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u16]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessDescriptionWide)(
            ::windows::core::Vtable::as_raw(self),
            server,
            systemid,
            flags,
            ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            exename.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn CreateProcessWide<'a, P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessWide)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags).ok()
    }
    pub unsafe fn CreateProcessAndAttachWide<'a, P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttachWide)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags, processid, attachflags).ok()
    }
    pub unsafe fn OpenDumpFileWide<'a, P0>(&self, filename: P0, filehandle: u64) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenDumpFileWide)(::windows::core::Vtable::as_raw(self), filename.into(), filehandle).ok()
    }
    pub unsafe fn WriteDumpFileWide<'a, P0, P1>(&self, filename: P0, filehandle: u64, qualifier: u32, formatflags: u32, comment: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteDumpFileWide)(::windows::core::Vtable::as_raw(self), filename.into(), filehandle, qualifier, formatflags, comment.into()).ok()
    }
    pub unsafe fn AddDumpInformationFileWide<'a, P0>(&self, filename: P0, filehandle: u64, r#type: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddDumpInformationFileWide)(::windows::core::Vtable::as_raw(self), filename.into(), filehandle, r#type).ok()
    }
    pub unsafe fn GetNumberDumpFiles(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberDumpFiles)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetDumpFile(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, handle: ::core::option::Option<*mut u64>, r#type: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDumpFile)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(handle.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(r#type)).ok()
    }
    pub unsafe fn GetDumpFileWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, handle: ::core::option::Option<*mut u64>, r#type: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDumpFileWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(handle.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(r#type)).ok()
    }
    pub unsafe fn AttachKernelWide<'a, P0>(&self, flags: u32, connectoptions: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AttachKernelWide)(::windows::core::Vtable::as_raw(self), flags, connectoptions.into()).ok()
    }
    pub unsafe fn GetKernelConnectionOptionsWide(&self, buffer: ::core::option::Option<&mut [u16]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetKernelConnectionOptionsWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetKernelConnectionOptionsWide<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetKernelConnectionOptionsWide)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn StartProcessServerWide<'a, P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartProcessServerWide)(::windows::core::Vtable::as_raw(self), flags, options.into(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
    }
    pub unsafe fn ConnectProcessServerWide<'a, P0>(&self, remoteoptions: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ConnectProcessServerWide)(::windows::core::Vtable::as_raw(self), remoteoptions.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn StartServerWide<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartServerWide)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn OutputServersWide<'a, P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputServersWide)(::windows::core::Vtable::as_raw(self), outputcontrol, machine.into(), flags).ok()
    }
    pub unsafe fn GetOutputCallbacksWide(&self) -> ::windows::core::Result<IDebugOutputCallbacksWide> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputCallbacksWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugOutputCallbacksWide>(result__)
    }
    pub unsafe fn SetOutputCallbacksWide<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugOutputCallbacksWide>>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputCallbacksWide)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn GetOutputLinePrefixWide(&self, buffer: ::core::option::Option<&mut [u16]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOutputLinePrefixWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetOutputLinePrefixWide<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputLinePrefixWide)(::windows::core::Vtable::as_raw(self), prefix.into()).ok()
    }
    pub unsafe fn GetIdentityWide(&self, buffer: ::core::option::Option<&mut [u16]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetIdentityWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputIdentityWide<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputIdentityWide)(::windows::core::Vtable::as_raw(self), outputcontrol, flags, format.into()).ok()
    }
    pub unsafe fn GetEventCallbacksWide(&self) -> ::windows::core::Result<IDebugEventCallbacksWide> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventCallbacksWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugEventCallbacksWide>(result__)
    }
    pub unsafe fn SetEventCallbacksWide<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugEventCallbacksWide>>,
    {
        (::windows::core::Vtable::vtable(self).SetEventCallbacksWide)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn CreateProcess2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
        P2: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcess2)(::windows::core::Vtable::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into()).ok()
    }
    pub unsafe fn CreateProcess2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcess2Wide)(::windows::core::Vtable::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into()).ok()
    }
    pub unsafe fn CreateProcessAndAttach2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
        P2: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttach2)(::windows::core::Vtable::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into(), processid, attachflags).ok()
    }
    pub unsafe fn CreateProcessAndAttach2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttach2Wide)(::windows::core::Vtable::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into(), processid, attachflags).ok()
    }
    pub unsafe fn PushOutputLinePrefix<'a, P0>(&self, newprefix: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).PushOutputLinePrefix)(::windows::core::Vtable::as_raw(self), newprefix.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn PushOutputLinePrefixWide<'a, P0>(&self, newprefix: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).PushOutputLinePrefixWide)(::windows::core::Vtable::as_raw(self), newprefix.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn PopOutputLinePrefix(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).PopOutputLinePrefix)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn GetNumberInputCallbacks(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberInputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberOutputCallbacks(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberOutputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberEventCallbacks(&self, eventflags: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberEventCallbacks)(::windows::core::Vtable::as_raw(self), eventflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetQuitLockString(&self, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetQuitLockString)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetQuitLockString<'a, P0>(&self, string: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetQuitLockString)(::windows::core::Vtable::as_raw(self), string.into()).ok()
    }
    pub unsafe fn GetQuitLockStringWide(&self, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetQuitLockStringWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetQuitLockStringWide<'a, P0>(&self, string: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetQuitLockStringWide)(::windows::core::Vtable::as_raw(self), string.into()).ok()
    }
    pub unsafe fn SetEventContextCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugEventContextCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetEventContextCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn SetClientContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetClientContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(context), contextsize).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugClient7, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugClient7 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugClient7 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugClient7 {}
impl ::core::fmt::Debug for IDebugClient7 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugClient7").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugClient7 {
    type Vtable = IDebugClient7_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugClient7 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x13586be3_542e_481e_b1f2_8497ba74f9a9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugClient7_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub AttachKernel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT,
    pub SetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub StartProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ConnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCSTR, server: *mut u64) -> ::windows::core::HRESULT,
    pub DisconnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessDescription: unsafe extern "system" fn(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,
    pub AttachProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessAndAttach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub GetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub OpenDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub WriteDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32) -> ::windows::core::HRESULT,
    pub ConnectSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows::core::HRESULT,
    pub StartServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputServers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub TerminateProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub DetachProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EndSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub GetExitCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows::core::HRESULT,
    pub DispatchCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT,
    pub ExitDispatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateClient: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub GetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub GetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows::core::HRESULT,
    pub GetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT,
    pub OutputIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub FlushCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub WriteDumpFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AddDumpInformationFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, infofile: ::windows::core::PCSTR, r#type: u32) -> ::windows::core::HRESULT,
    pub EndProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT,
    pub WaitForProcessServerEnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT,
    pub IsKernelDebuggerEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub TerminateCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub DetachCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AbandonCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIdByExecutableNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCWSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessDescriptionWide: unsafe extern "system" fn(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,
    pub CreateProcessWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessAndAttachWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub OpenDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64) -> ::windows::core::HRESULT,
    pub WriteDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, qualifier: u32, formatflags: u32, comment: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub AddDumpInformationFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, r#type: u32) -> ::windows::core::HRESULT,
    pub GetNumberDumpFiles: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetDumpFile: unsafe extern "system" fn(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,
    pub GetDumpFileWide: unsafe extern "system" fn(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,
    pub AttachKernelWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetKernelConnectionOptionsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT,
    pub SetKernelConnectionOptionsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub StartProcessServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCWSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ConnectProcessServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCWSTR, server: *mut u64) -> ::windows::core::HRESULT,
    pub StartServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub OutputServersWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetOutputCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetOutputCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetIdentityWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT,
    pub OutputIdentityWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetEventCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetEventCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateProcess2: unsafe extern "system" fn(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,
    pub CreateProcess2Wide: unsafe extern "system" fn(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,
    pub CreateProcessAndAttach2: unsafe extern "system" fn(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,
    pub CreateProcessAndAttach2Wide: unsafe extern "system" fn(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,
    pub PushOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, newprefix: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub PushOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, newprefix: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub PopOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub GetNumberInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, eventflags: u32, count: *mut u32) -> ::windows::core::HRESULT,
    pub GetQuitLockString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetQuitLockString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, string: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetQuitLockStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetQuitLockStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, string: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub SetEventContextCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetClientContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugClient8(::windows::core::IUnknown);
impl IDebugClient8 {
    pub unsafe fn AttachKernel<'a, P0>(&self, flags: u32, connectoptions: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AttachKernel)(::windows::core::Vtable::as_raw(self), flags, connectoptions.into()).ok()
    }
    pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetKernelConnectionOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetKernelConnectionOptions<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetKernelConnectionOptions)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn StartProcessServer<'a, P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartProcessServer)(::windows::core::Vtable::as_raw(self), flags, options.into(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
    }
    pub unsafe fn ConnectProcessServer<'a, P0>(&self, remoteoptions: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ConnectProcessServer)(::windows::core::Vtable::as_raw(self), remoteoptions.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DisconnectProcessServer)(::windows::core::Vtable::as_raw(self), server).ok()
    }
    pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIds)(::windows::core::Vtable::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualcount.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetRunningProcessSystemIdByExecutableName<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows::core::Vtable::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessDescription)(
            ::windows::core::Vtable::as_raw(self),
            server,
            systemid,
            flags,
            ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            exename.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AttachProcess)(::windows::core::Vtable::as_raw(self), server, processid, attachflags).ok()
    }
    pub unsafe fn CreateProcessA<'a, P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessA)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags).ok()
    }
    pub unsafe fn CreateProcessAndAttach<'a, P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttach)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags, processid, attachflags).ok()
    }
    pub unsafe fn GetProcessOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetProcessOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetProcessOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn OpenDumpFile<'a, P0>(&self, dumpfile: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenDumpFile)(::windows::core::Vtable::as_raw(self), dumpfile.into()).ok()
    }
    pub unsafe fn WriteDumpFile<'a, P0>(&self, dumpfile: P0, qualifier: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteDumpFile)(::windows::core::Vtable::as_raw(self), dumpfile.into(), qualifier).ok()
    }
    pub unsafe fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ConnectSession)(::windows::core::Vtable::as_raw(self), flags, historylimit).ok()
    }
    pub unsafe fn StartServer<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartServer)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn OutputServers<'a, P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputServers)(::windows::core::Vtable::as_raw(self), outputcontrol, machine.into(), flags).ok()
    }
    pub unsafe fn TerminateProcesses(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).TerminateProcesses)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn DetachProcesses(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DetachProcesses)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn EndSession(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndSession)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn GetExitCode(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExitCode)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn DispatchCallbacks(&self, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DispatchCallbacks)(::windows::core::Vtable::as_raw(self), timeout).ok()
    }
    pub unsafe fn ExitDispatch<'a, P0>(&self, client: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        (::windows::core::Vtable::vtable(self).ExitDispatch)(::windows::core::Vtable::as_raw(self), client.into().abi()).ok()
    }
    pub unsafe fn CreateClient(&self) -> ::windows::core::Result<IDebugClient> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateClient)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugClient>(result__)
    }
    pub unsafe fn GetInputCallbacks(&self) -> ::windows::core::Result<IDebugInputCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugInputCallbacks>(result__)
    }
    pub unsafe fn SetInputCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugInputCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetInputCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn GetOutputCallbacks(&self) -> ::windows::core::Result<IDebugOutputCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugOutputCallbacks>(result__)
    }
    pub unsafe fn SetOutputCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugOutputCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn GetOutputMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOutputMask(&self, mask: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetOutputMask)(::windows::core::Vtable::as_raw(self), mask).ok()
    }
    pub unsafe fn GetOtherOutputMask<'a, P0>(&self, client: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOtherOutputMask)(::windows::core::Vtable::as_raw(self), client.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOtherOutputMask<'a, P0>(&self, client: P0, mask: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugClient>>,
    {
        (::windows::core::Vtable::vtable(self).SetOtherOutputMask)(::windows::core::Vtable::as_raw(self), client.into().abi(), mask).ok()
    }
    pub unsafe fn GetOutputWidth(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputWidth)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetOutputWidth)(::windows::core::Vtable::as_raw(self), columns).ok()
    }
    pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOutputLinePrefix)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetOutputLinePrefix<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputLinePrefix)(::windows::core::Vtable::as_raw(self), prefix.into()).ok()
    }
    pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetIdentity)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputIdentity<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputIdentity)(::windows::core::Vtable::as_raw(self), outputcontrol, flags, format.into()).ok()
    }
    pub unsafe fn GetEventCallbacks(&self) -> ::windows::core::Result<IDebugEventCallbacks> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugEventCallbacks>(result__)
    }
    pub unsafe fn SetEventCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugEventCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetEventCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn FlushCallbacks(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).FlushCallbacks)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn WriteDumpFile2<'a, P0, P1>(&self, dumpfile: P0, qualifier: u32, formatflags: u32, comment: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteDumpFile2)(::windows::core::Vtable::as_raw(self), dumpfile.into(), qualifier, formatflags, comment.into()).ok()
    }
    pub unsafe fn AddDumpInformationFile<'a, P0>(&self, infofile: P0, r#type: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddDumpInformationFile)(::windows::core::Vtable::as_raw(self), infofile.into(), r#type).ok()
    }
    pub unsafe fn EndProcessServer(&self, server: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndProcessServer)(::windows::core::Vtable::as_raw(self), server).ok()
    }
    pub unsafe fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WaitForProcessServerEnd)(::windows::core::Vtable::as_raw(self), timeout).ok()
    }
    pub unsafe fn IsKernelDebuggerEnabled(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).IsKernelDebuggerEnabled)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn TerminateCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).TerminateCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn DetachCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DetachCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn AbandonCurrentProcess(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AbandonCurrentProcess)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetRunningProcessSystemIdByExecutableNameWide<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(::windows::core::Vtable::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u16]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u16]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRunningProcessDescriptionWide)(
            ::windows::core::Vtable::as_raw(self),
            server,
            systemid,
            flags,
            ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            exename.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn CreateProcessWide<'a, P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessWide)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags).ok()
    }
    pub unsafe fn CreateProcessAndAttachWide<'a, P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttachWide)(::windows::core::Vtable::as_raw(self), server, commandline.into(), createflags, processid, attachflags).ok()
    }
    pub unsafe fn OpenDumpFileWide<'a, P0>(&self, filename: P0, filehandle: u64) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenDumpFileWide)(::windows::core::Vtable::as_raw(self), filename.into(), filehandle).ok()
    }
    pub unsafe fn WriteDumpFileWide<'a, P0, P1>(&self, filename: P0, filehandle: u64, qualifier: u32, formatflags: u32, comment: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteDumpFileWide)(::windows::core::Vtable::as_raw(self), filename.into(), filehandle, qualifier, formatflags, comment.into()).ok()
    }
    pub unsafe fn AddDumpInformationFileWide<'a, P0>(&self, filename: P0, filehandle: u64, r#type: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddDumpInformationFileWide)(::windows::core::Vtable::as_raw(self), filename.into(), filehandle, r#type).ok()
    }
    pub unsafe fn GetNumberDumpFiles(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberDumpFiles)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetDumpFile(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, handle: ::core::option::Option<*mut u64>, r#type: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDumpFile)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(handle.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(r#type)).ok()
    }
    pub unsafe fn GetDumpFileWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, handle: ::core::option::Option<*mut u64>, r#type: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDumpFileWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(handle.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(r#type)).ok()
    }
    pub unsafe fn AttachKernelWide<'a, P0>(&self, flags: u32, connectoptions: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AttachKernelWide)(::windows::core::Vtable::as_raw(self), flags, connectoptions.into()).ok()
    }
    pub unsafe fn GetKernelConnectionOptionsWide(&self, buffer: ::core::option::Option<&mut [u16]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetKernelConnectionOptionsWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetKernelConnectionOptionsWide<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetKernelConnectionOptionsWide)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn StartProcessServerWide<'a, P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartProcessServerWide)(::windows::core::Vtable::as_raw(self), flags, options.into(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
    }
    pub unsafe fn ConnectProcessServerWide<'a, P0>(&self, remoteoptions: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ConnectProcessServerWide)(::windows::core::Vtable::as_raw(self), remoteoptions.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn StartServerWide<'a, P0>(&self, options: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).StartServerWide)(::windows::core::Vtable::as_raw(self), options.into()).ok()
    }
    pub unsafe fn OutputServersWide<'a, P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputServersWide)(::windows::core::Vtable::as_raw(self), outputcontrol, machine.into(), flags).ok()
    }
    pub unsafe fn GetOutputCallbacksWide(&self) -> ::windows::core::Result<IDebugOutputCallbacksWide> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOutputCallbacksWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugOutputCallbacksWide>(result__)
    }
    pub unsafe fn SetOutputCallbacksWide<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugOutputCallbacksWide>>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputCallbacksWide)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn GetOutputLinePrefixWide(&self, buffer: ::core::option::Option<&mut [u16]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOutputLinePrefixWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetOutputLinePrefixWide<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetOutputLinePrefixWide)(::windows::core::Vtable::as_raw(self), prefix.into()).ok()
    }
    pub unsafe fn GetIdentityWide(&self, buffer: ::core::option::Option<&mut [u16]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetIdentityWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputIdentityWide<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputIdentityWide)(::windows::core::Vtable::as_raw(self), outputcontrol, flags, format.into()).ok()
    }
    pub unsafe fn GetEventCallbacksWide(&self) -> ::windows::core::Result<IDebugEventCallbacksWide> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventCallbacksWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugEventCallbacksWide>(result__)
    }
    pub unsafe fn SetEventCallbacksWide<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugEventCallbacksWide>>,
    {
        (::windows::core::Vtable::vtable(self).SetEventCallbacksWide)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn CreateProcess2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
        P2: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcess2)(::windows::core::Vtable::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into()).ok()
    }
    pub unsafe fn CreateProcess2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcess2Wide)(::windows::core::Vtable::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into()).ok()
    }
    pub unsafe fn CreateProcessAndAttach2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
        P2: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttach2)(::windows::core::Vtable::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into(), processid, attachflags).ok()
    }
    pub unsafe fn CreateProcessAndAttach2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessAndAttach2Wide)(::windows::core::Vtable::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into(), processid, attachflags).ok()
    }
    pub unsafe fn PushOutputLinePrefix<'a, P0>(&self, newprefix: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).PushOutputLinePrefix)(::windows::core::Vtable::as_raw(self), newprefix.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn PushOutputLinePrefixWide<'a, P0>(&self, newprefix: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).PushOutputLinePrefixWide)(::windows::core::Vtable::as_raw(self), newprefix.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn PopOutputLinePrefix(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).PopOutputLinePrefix)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn GetNumberInputCallbacks(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberInputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberOutputCallbacks(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberOutputCallbacks)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberEventCallbacks(&self, eventflags: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberEventCallbacks)(::windows::core::Vtable::as_raw(self), eventflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetQuitLockString(&self, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetQuitLockString)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetQuitLockString<'a, P0>(&self, string: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetQuitLockString)(::windows::core::Vtable::as_raw(self), string.into()).ok()
    }
    pub unsafe fn GetQuitLockStringWide(&self, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetQuitLockStringWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetQuitLockStringWide<'a, P0>(&self, string: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetQuitLockStringWide)(::windows::core::Vtable::as_raw(self), string.into()).ok()
    }
    pub unsafe fn SetEventContextCallbacks<'a, P0>(&self, callbacks: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugEventContextCallbacks>>,
    {
        (::windows::core::Vtable::vtable(self).SetEventContextCallbacks)(::windows::core::Vtable::as_raw(self), callbacks.into().abi()).ok()
    }
    pub unsafe fn SetClientContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetClientContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(context), contextsize).ok()
    }
    pub unsafe fn OpenDumpFileWide2<'a, P0>(&self, filename: P0, filehandle: u64, alternatearch: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenDumpFileWide2)(::windows::core::Vtable::as_raw(self), filename.into(), filehandle, alternatearch).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugClient8, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugClient8 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugClient8 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugClient8 {}
impl ::core::fmt::Debug for IDebugClient8 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugClient8").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugClient8 {
    type Vtable = IDebugClient8_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugClient8 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xcec43add_6375_469e_83d5_414e4033c19a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugClient8_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub AttachKernel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT,
    pub SetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub StartProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ConnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCSTR, server: *mut u64) -> ::windows::core::HRESULT,
    pub DisconnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessDescription: unsafe extern "system" fn(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,
    pub AttachProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessAndAttach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub GetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub OpenDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub WriteDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32) -> ::windows::core::HRESULT,
    pub ConnectSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows::core::HRESULT,
    pub StartServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputServers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub TerminateProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub DetachProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EndSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub GetExitCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows::core::HRESULT,
    pub DispatchCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT,
    pub ExitDispatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateClient: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub GetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub GetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows::core::HRESULT,
    pub GetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT,
    pub OutputIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub FlushCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub WriteDumpFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows::core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AddDumpInformationFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, infofile: ::windows::core::PCSTR, r#type: u32) -> ::windows::core::HRESULT,
    pub EndProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows::core::HRESULT,
    pub WaitForProcessServerEnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT,
    pub IsKernelDebuggerEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub TerminateCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub DetachCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AbandonCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetRunningProcessSystemIdByExecutableNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows::core::PCWSTR, flags: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetRunningProcessDescriptionWide: unsafe extern "system" fn(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,
    pub CreateProcessWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32) -> ::windows::core::HRESULT,
    pub CreateProcessAndAttachWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows::core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows::core::HRESULT,
    pub OpenDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64) -> ::windows::core::HRESULT,
    pub WriteDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, qualifier: u32, formatflags: u32, comment: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub AddDumpInformationFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, r#type: u32) -> ::windows::core::HRESULT,
    pub GetNumberDumpFiles: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetDumpFile: unsafe extern "system" fn(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,
    pub GetDumpFileWide: unsafe extern "system" fn(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,
    pub AttachKernelWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetKernelConnectionOptionsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, optionssize: *mut u32) -> ::windows::core::HRESULT,
    pub SetKernelConnectionOptionsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub StartProcessServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows::core::PCWSTR, reserved: *const ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ConnectProcessServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows::core::PCWSTR, server: *mut u64) -> ::windows::core::HRESULT,
    pub StartServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub OutputServersWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetOutputCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetOutputCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetIdentityWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, identitysize: *mut u32) -> ::windows::core::HRESULT,
    pub OutputIdentityWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetEventCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetEventCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateProcess2: unsafe extern "system" fn(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,
    pub CreateProcess2Wide: unsafe extern "system" fn(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,
    pub CreateProcessAndAttach2: unsafe extern "system" fn(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,
    pub CreateProcessAndAttach2Wide: unsafe extern "system" fn(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,
    pub PushOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, newprefix: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub PushOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, newprefix: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub PopOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub GetNumberInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, eventflags: u32, count: *mut u32) -> ::windows::core::HRESULT,
    pub GetQuitLockString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetQuitLockString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, string: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetQuitLockStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetQuitLockStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, string: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub SetEventContextCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetClientContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT,
    pub OpenDumpFileWide2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows::core::PCWSTR, filehandle: u64, alternatearch: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugCodeContext(::windows::core::IUnknown);
impl IDebugCodeContext {
    pub unsafe fn GetDocumentContext(&self) -> ::windows::core::Result<IDebugDocumentContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDocumentContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugDocumentContext>(result__)
    }
    pub unsafe fn SetBreakPoint(&self, bps: BREAKPOINT_STATE) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetBreakPoint)(::windows::core::Vtable::as_raw(self), bps).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugCodeContext, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugCodeContext {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugCodeContext {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugCodeContext {}
impl ::core::fmt::Debug for IDebugCodeContext {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugCodeContext").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugCodeContext {
    type Vtable = IDebugCodeContext_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugCodeContext {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c13_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugCodeContext_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetDocumentContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppsc: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetBreakPoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bps: BREAKPOINT_STATE) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugControl(::windows::core::IUnknown);
impl IDebugControl {
    pub unsafe fn GetInterrupt(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetInterrupt)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn SetInterrupt(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetInterrupt)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn GetInterruptTimeout(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInterruptTimeout)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetInterruptTimeout(&self, seconds: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetInterruptTimeout)(::windows::core::Vtable::as_raw(self), seconds).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLogFile)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(append)).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OpenLogFile<'a, P0, P1>(&self, file: P0, append: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        (::windows::core::Vtable::vtable(self).OpenLogFile)(::windows::core::Vtable::as_raw(self), file.into(), append.into()).ok()
    }
    pub unsafe fn CloseLogFile(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).CloseLogFile)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetLogMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetLogMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetLogMask(&self, mask: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetLogMask)(::windows::core::Vtable::as_raw(self), mask).ok()
    }
    pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Input)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReturnInput<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ReturnInput)(::windows::core::Vtable::as_raw(self), buffer.into()).ok()
    }
    pub unsafe fn Output<'a, P0>(&self, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Output)(::windows::core::Vtable::as_raw(self), mask, format.into()).ok()
    }
    pub unsafe fn OutputVaList<'a, P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputVaList)(::windows::core::Vtable::as_raw(self), mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn ControlledOutput<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutput)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into()).ok()
    }
    pub unsafe fn ControlledOutputVaList<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutputVaList)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn OutputPrompt<'a, P0>(&self, outputcontrol: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPrompt)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into()).ok()
    }
    pub unsafe fn OutputPromptVaList<'a, P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPromptVaList)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPromptText)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputCurrentState)(::windows::core::Vtable::as_raw(self), outputcontrol, flags).ok()
    }
    pub unsafe fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputVersionInformation)(::windows::core::Vtable::as_raw(self), outputcontrol).ok()
    }
    pub unsafe fn GetNotifyEventHandle(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNotifyEventHandle)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn SetNotifyEventHandle(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetNotifyEventHandle)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn Assemble<'a, P0>(&self, offset: u64, instr: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Assemble)(::windows::core::Vtable::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Disassemble)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset)).ok()
    }
    pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDisassembleEffectiveOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).OutputDisassembly)(::windows::core::Vtable::as_raw(self), outputcontrol, offset, flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<*mut u32>, startoffset: ::core::option::Option<*mut u64>, endoffset: ::core::option::Option<*mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputDisassemblyLines)(::windows::core::Vtable::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len() as _), offset, flags, ::core::mem::transmute(offsetline.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(startoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok()
    }
    pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNearInstruction)(::windows::core::Vtable::as_raw(self), offset, delta, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetStackTrace)(::windows::core::Vtable::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetReturnOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetReturnOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputStackTrace)(::windows::core::Vtable::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), flags).ok()
    }
    pub unsafe fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDebuggeeType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(class), ::core::mem::transmute(qualifier)).ok()
    }
    pub unsafe fn GetActualProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetActualProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetExecutingProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExecutingProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Vtable::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok()
    }
    pub unsafe fn GetNumberProcessors(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberProcessors)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<*mut u32>, servicepacknumber: *mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemVersion)(
            ::windows::core::Vtable::as_raw(self),
            ::core::mem::transmute(platformid),
            ::core::mem::transmute(major),
            ::core::mem::transmute(minor),
            ::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            servicepackstring.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(servicepackstringused.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(servicepacknumber),
            ::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            buildstring.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(buildstringused.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetPageSize(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetPageSize)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn IsPointer64Bit(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).IsPointer64Bit)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadBugCheckData)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(code), ::core::mem::transmute(arg1), ::core::mem::transmute(arg2), ::core::mem::transmute(arg3), ::core::mem::transmute(arg4)).ok()
    }
    pub unsafe fn GetNumberSupportedProcessorTypes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberSupportedProcessorTypes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSupportedProcessorTypes)(::windows::core::Vtable::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok()
    }
    pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetProcessorTypeNames)(
            ::windows::core::Vtable::as_raw(self),
            r#type,
            ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEffectiveProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetEffectiveProcessorType)(::windows::core::Vtable::as_raw(self), r#type).ok()
    }
    pub unsafe fn GetExecutionStatus(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExecutionStatus)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetExecutionStatus(&self, status: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetExecutionStatus)(::windows::core::Vtable::as_raw(self), status).ok()
    }
    pub unsafe fn GetCodeLevel(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCodeLevel)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetCodeLevel(&self, level: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetCodeLevel)(::windows::core::Vtable::as_raw(self), level).ok()
    }
    pub unsafe fn GetEngineOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEngineOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemErrorControl)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(outputlevel), ::core::mem::transmute(breaklevel)).ok()
    }
    pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetSystemErrorControl)(::windows::core::Vtable::as_raw(self), outputlevel, breaklevel).ok()
    }
    pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTextMacro)(::windows::core::Vtable::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetTextMacro<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextMacro)(::windows::core::Vtable::as_raw(self), slot, r#macro.into()).ok()
    }
    pub unsafe fn GetRadix(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRadix)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetRadix(&self, radix: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetRadix)(::windows::core::Vtable::as_raw(self), radix).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn Evaluate<'a, P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Evaluate)(::windows::core::Vtable::as_raw(self), expression.into(), desiredtype, ::core::mem::transmute(value), ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32) -> ::windows::core::Result<DEBUG_VALUE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CoerceValue)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(r#in), outtype, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_VALUE>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32) -> ::windows::core::Result<DEBUG_VALUE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CoerceValues)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(r#in), ::core::mem::transmute(outtypes), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_VALUE>(result__)
    }
    pub unsafe fn Execute<'a, P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Execute)(::windows::core::Vtable::as_raw(self), outputcontrol, command.into(), flags).ok()
    }
    pub unsafe fn ExecuteCommandFile<'a, P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ExecuteCommandFile)(::windows::core::Vtable::as_raw(self), outputcontrol, commandfile.into(), flags).ok()
    }
    pub unsafe fn GetNumberBreakpoints(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberBreakpoints)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointByIndex)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn GetBreakpointById(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointById)(::windows::core::Vtable::as_raw(self), id, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<*const u32>, start: u32) -> ::windows::core::Result<DEBUG_BREAKPOINT_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointParameters)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_BREAKPOINT_PARAMETERS>(result__)
    }
    pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddBreakpoint)(::windows::core::Vtable::as_raw(self), r#type, desiredid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn RemoveBreakpoint<'a, P0>(&self, bp: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugBreakpoint>>,
    {
        (::windows::core::Vtable::vtable(self).RemoveBreakpoint)(::windows::core::Vtable::as_raw(self), bp.into().abi()).ok()
    }
    pub unsafe fn AddExtension<'a, P0>(&self, path: P0, flags: u32) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddExtension)(::windows::core::Vtable::as_raw(self), path.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn RemoveExtension(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveExtension)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn GetExtensionByPath<'a, P0>(&self, path: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExtensionByPath)(::windows::core::Vtable::as_raw(self), path.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn CallExtension<'a, P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CallExtension)(::windows::core::Vtable::as_raw(self), handle, function.into(), arguments.into()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetExtensionFunction<'a, P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetExtensionFunction)(::windows::core::Vtable::as_raw(self), handle, funcname.into(), ::core::mem::transmute(function)).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Kernel\"`*"]
    #[cfg(feature = "Win32_System_Kernel")]
    pub unsafe fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetWindbgExtensionApis32)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(api)).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Kernel\"`*"]
    #[cfg(feature = "Win32_System_Kernel")]
    pub unsafe fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetWindbgExtensionApis64)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(api)).ok()
    }
    pub unsafe fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNumberEventFilters)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(specificevents), ::core::mem::transmute(specificexceptions), ::core::mem::transmute(arbitraryexceptions)).ok()
    }
    pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterText)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterCommand)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetEventFilterCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetEventFilterCommand)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSpecificFilterParameters)(::windows::core::Vtable::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetSpecificFilterParameters)(::windows::core::Vtable::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSpecificFilterArgument)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSpecificFilterArgument<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSpecificFilterArgument)(::windows::core::Vtable::as_raw(self), index, argument.into()).ok()
    }
    pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<*const u32>, start: u32) -> ::windows::core::Result<DEBUG_EXCEPTION_FILTER_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExceptionFilterParameters)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(codes.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_EXCEPTION_FILTER_PARAMETERS>(result__)
    }
    pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetExceptionFilterParameters)(::windows::core::Vtable::as_raw(self), params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetExceptionFilterSecondCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetExceptionFilterSecondCommand)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WaitForEvent)(::windows::core::Vtable::as_raw(self), flags, timeout).ok()
    }
    pub unsafe fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLastEventInformation)(
            ::windows::core::Vtable::as_raw(self),
            ::core::mem::transmute(r#type),
            ::core::mem::transmute(processid),
            ::core::mem::transmute(threadid),
            ::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
            extrainformationsize,
            ::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
}
::windows::core::interface_hierarchy!(IDebugControl, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugControl {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugControl {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugControl {}
impl ::core::fmt::Debug for IDebugControl {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugControl").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugControl {
    type Vtable = IDebugControl_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugControl {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5182e668_105e_416e_ad92_24ef800424ba);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugControl_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub GetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows::core::HRESULT,
    pub SetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetLogFile: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OpenLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, append: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OpenLogFile: usize,
    pub CloseLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub Input: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT,
    pub ReturnInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub Output: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub ControlledOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub ControlledOutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub OutputPrompt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputPromptVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub GetPromptText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub OutputCurrentState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT,
    pub OutputVersionInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows::core::HRESULT,
    pub GetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT,
    pub SetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub Assemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCSTR, endoffset: *mut u64) -> ::windows::core::HRESULT,
    pub Disassemble: unsafe extern "system" fn(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,
    pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub OutputDisassembly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows::core::HRESULT,
    pub OutputDisassemblyLines: unsafe extern "system" fn(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,
    pub GetNearInstruction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetStackTrace: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetStackTrace: usize,
    pub GetReturnOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub OutputStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OutputStackTrace: usize,
    pub GetDebuggeeType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows::core::HRESULT,
    pub GetActualProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub GetExecutingProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberProcessors: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetSystemVersion: unsafe extern "system" fn(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,
    pub GetPageSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows::core::HRESULT,
    pub IsPointer64Bit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ReadBugCheckData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::HRESULT,
    pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT,
    pub GetProcessorTypeNames: unsafe extern "system" fn(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,
    pub GetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub SetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows::core::HRESULT,
    pub GetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows::core::HRESULT,
    pub SetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: u32) -> ::windows::core::HRESULT,
    pub GetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows::core::HRESULT,
    pub SetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: u32) -> ::windows::core::HRESULT,
    pub GetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub GetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::HRESULT,
    pub SetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows::core::HRESULT,
    pub GetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT,
    pub SetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows::core::HRESULT,
    pub SetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub Evaluate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    Evaluate: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub CoerceValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    CoerceValue: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub CoerceValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    CoerceValues: usize,
    pub Execute: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub ExecuteCommandFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetNumberBreakpoints: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetBreakpointByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetBreakpointById: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetBreakpointParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::HRESULT,
    pub AddBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub RemoveBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT,
    pub RemoveExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub GetExtensionByPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub CallExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCSTR, arguments: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetExtensionFunction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCSTR, function: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetExtensionFunction: usize,
    #[cfg(feature = "Win32_System_Kernel")]
    pub GetWindbgExtensionApis32: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Kernel"))]
    GetWindbgExtensionApis32: usize,
    #[cfg(feature = "Win32_System_Kernel")]
    pub GetWindbgExtensionApis64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Kernel"))]
    GetWindbgExtensionApis64: usize,
    pub GetNumberEventFilters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventFilterText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub SetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub SetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub WaitForEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows::core::HRESULT,
    pub GetLastEventInformation: unsafe extern "system" fn(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,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugControl2(::windows::core::IUnknown);
impl IDebugControl2 {
    pub unsafe fn GetInterrupt(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetInterrupt)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn SetInterrupt(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetInterrupt)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn GetInterruptTimeout(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInterruptTimeout)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetInterruptTimeout(&self, seconds: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetInterruptTimeout)(::windows::core::Vtable::as_raw(self), seconds).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLogFile)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(append)).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OpenLogFile<'a, P0, P1>(&self, file: P0, append: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        (::windows::core::Vtable::vtable(self).OpenLogFile)(::windows::core::Vtable::as_raw(self), file.into(), append.into()).ok()
    }
    pub unsafe fn CloseLogFile(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).CloseLogFile)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetLogMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetLogMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetLogMask(&self, mask: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetLogMask)(::windows::core::Vtable::as_raw(self), mask).ok()
    }
    pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Input)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReturnInput<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ReturnInput)(::windows::core::Vtable::as_raw(self), buffer.into()).ok()
    }
    pub unsafe fn Output<'a, P0>(&self, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Output)(::windows::core::Vtable::as_raw(self), mask, format.into()).ok()
    }
    pub unsafe fn OutputVaList<'a, P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputVaList)(::windows::core::Vtable::as_raw(self), mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn ControlledOutput<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutput)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into()).ok()
    }
    pub unsafe fn ControlledOutputVaList<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutputVaList)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn OutputPrompt<'a, P0>(&self, outputcontrol: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPrompt)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into()).ok()
    }
    pub unsafe fn OutputPromptVaList<'a, P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPromptVaList)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPromptText)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputCurrentState)(::windows::core::Vtable::as_raw(self), outputcontrol, flags).ok()
    }
    pub unsafe fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputVersionInformation)(::windows::core::Vtable::as_raw(self), outputcontrol).ok()
    }
    pub unsafe fn GetNotifyEventHandle(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNotifyEventHandle)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn SetNotifyEventHandle(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetNotifyEventHandle)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn Assemble<'a, P0>(&self, offset: u64, instr: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Assemble)(::windows::core::Vtable::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Disassemble)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset)).ok()
    }
    pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDisassembleEffectiveOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).OutputDisassembly)(::windows::core::Vtable::as_raw(self), outputcontrol, offset, flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<*mut u32>, startoffset: ::core::option::Option<*mut u64>, endoffset: ::core::option::Option<*mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputDisassemblyLines)(::windows::core::Vtable::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len() as _), offset, flags, ::core::mem::transmute(offsetline.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(startoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok()
    }
    pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNearInstruction)(::windows::core::Vtable::as_raw(self), offset, delta, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetStackTrace)(::windows::core::Vtable::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetReturnOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetReturnOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputStackTrace)(::windows::core::Vtable::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), flags).ok()
    }
    pub unsafe fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDebuggeeType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(class), ::core::mem::transmute(qualifier)).ok()
    }
    pub unsafe fn GetActualProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetActualProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetExecutingProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExecutingProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Vtable::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok()
    }
    pub unsafe fn GetNumberProcessors(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberProcessors)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<*mut u32>, servicepacknumber: *mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemVersion)(
            ::windows::core::Vtable::as_raw(self),
            ::core::mem::transmute(platformid),
            ::core::mem::transmute(major),
            ::core::mem::transmute(minor),
            ::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            servicepackstring.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(servicepackstringused.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(servicepacknumber),
            ::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            buildstring.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(buildstringused.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetPageSize(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetPageSize)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn IsPointer64Bit(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).IsPointer64Bit)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadBugCheckData)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(code), ::core::mem::transmute(arg1), ::core::mem::transmute(arg2), ::core::mem::transmute(arg3), ::core::mem::transmute(arg4)).ok()
    }
    pub unsafe fn GetNumberSupportedProcessorTypes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberSupportedProcessorTypes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSupportedProcessorTypes)(::windows::core::Vtable::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok()
    }
    pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetProcessorTypeNames)(
            ::windows::core::Vtable::as_raw(self),
            r#type,
            ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEffectiveProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetEffectiveProcessorType)(::windows::core::Vtable::as_raw(self), r#type).ok()
    }
    pub unsafe fn GetExecutionStatus(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExecutionStatus)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetExecutionStatus(&self, status: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetExecutionStatus)(::windows::core::Vtable::as_raw(self), status).ok()
    }
    pub unsafe fn GetCodeLevel(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCodeLevel)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetCodeLevel(&self, level: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetCodeLevel)(::windows::core::Vtable::as_raw(self), level).ok()
    }
    pub unsafe fn GetEngineOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEngineOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemErrorControl)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(outputlevel), ::core::mem::transmute(breaklevel)).ok()
    }
    pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetSystemErrorControl)(::windows::core::Vtable::as_raw(self), outputlevel, breaklevel).ok()
    }
    pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTextMacro)(::windows::core::Vtable::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetTextMacro<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextMacro)(::windows::core::Vtable::as_raw(self), slot, r#macro.into()).ok()
    }
    pub unsafe fn GetRadix(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRadix)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetRadix(&self, radix: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetRadix)(::windows::core::Vtable::as_raw(self), radix).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn Evaluate<'a, P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Evaluate)(::windows::core::Vtable::as_raw(self), expression.into(), desiredtype, ::core::mem::transmute(value), ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32) -> ::windows::core::Result<DEBUG_VALUE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CoerceValue)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(r#in), outtype, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_VALUE>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32) -> ::windows::core::Result<DEBUG_VALUE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CoerceValues)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(r#in), ::core::mem::transmute(outtypes), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_VALUE>(result__)
    }
    pub unsafe fn Execute<'a, P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Execute)(::windows::core::Vtable::as_raw(self), outputcontrol, command.into(), flags).ok()
    }
    pub unsafe fn ExecuteCommandFile<'a, P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ExecuteCommandFile)(::windows::core::Vtable::as_raw(self), outputcontrol, commandfile.into(), flags).ok()
    }
    pub unsafe fn GetNumberBreakpoints(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberBreakpoints)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointByIndex)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn GetBreakpointById(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointById)(::windows::core::Vtable::as_raw(self), id, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<*const u32>, start: u32) -> ::windows::core::Result<DEBUG_BREAKPOINT_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointParameters)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_BREAKPOINT_PARAMETERS>(result__)
    }
    pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddBreakpoint)(::windows::core::Vtable::as_raw(self), r#type, desiredid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn RemoveBreakpoint<'a, P0>(&self, bp: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugBreakpoint>>,
    {
        (::windows::core::Vtable::vtable(self).RemoveBreakpoint)(::windows::core::Vtable::as_raw(self), bp.into().abi()).ok()
    }
    pub unsafe fn AddExtension<'a, P0>(&self, path: P0, flags: u32) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddExtension)(::windows::core::Vtable::as_raw(self), path.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn RemoveExtension(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveExtension)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn GetExtensionByPath<'a, P0>(&self, path: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExtensionByPath)(::windows::core::Vtable::as_raw(self), path.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn CallExtension<'a, P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CallExtension)(::windows::core::Vtable::as_raw(self), handle, function.into(), arguments.into()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetExtensionFunction<'a, P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetExtensionFunction)(::windows::core::Vtable::as_raw(self), handle, funcname.into(), ::core::mem::transmute(function)).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Kernel\"`*"]
    #[cfg(feature = "Win32_System_Kernel")]
    pub unsafe fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetWindbgExtensionApis32)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(api)).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Kernel\"`*"]
    #[cfg(feature = "Win32_System_Kernel")]
    pub unsafe fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetWindbgExtensionApis64)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(api)).ok()
    }
    pub unsafe fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNumberEventFilters)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(specificevents), ::core::mem::transmute(specificexceptions), ::core::mem::transmute(arbitraryexceptions)).ok()
    }
    pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterText)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterCommand)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetEventFilterCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetEventFilterCommand)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSpecificFilterParameters)(::windows::core::Vtable::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetSpecificFilterParameters)(::windows::core::Vtable::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSpecificFilterArgument)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSpecificFilterArgument<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSpecificFilterArgument)(::windows::core::Vtable::as_raw(self), index, argument.into()).ok()
    }
    pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<*const u32>, start: u32) -> ::windows::core::Result<DEBUG_EXCEPTION_FILTER_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExceptionFilterParameters)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(codes.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_EXCEPTION_FILTER_PARAMETERS>(result__)
    }
    pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetExceptionFilterParameters)(::windows::core::Vtable::as_raw(self), params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetExceptionFilterSecondCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetExceptionFilterSecondCommand)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WaitForEvent)(::windows::core::Vtable::as_raw(self), flags, timeout).ok()
    }
    pub unsafe fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLastEventInformation)(
            ::windows::core::Vtable::as_raw(self),
            ::core::mem::transmute(r#type),
            ::core::mem::transmute(processid),
            ::core::mem::transmute(threadid),
            ::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
            extrainformationsize,
            ::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetCurrentTimeDate(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentTimeDate)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentSystemUpTime(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentSystemUpTime)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetDumpFormatFlags(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDumpFormatFlags)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberTextReplacements(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberTextReplacements)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetTextReplacement<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u8]>, srcsize: ::core::option::Option<*mut u32>, dstbuffer: ::core::option::Option<&mut [u8]>, dstsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetTextReplacement)(
            ::windows::core::Vtable::as_raw(self),
            srctext.into(),
            index,
            ::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            srcbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(srcsize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            dstbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(dstsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn SetTextReplacement<'a, P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextReplacement)(::windows::core::Vtable::as_raw(self), srctext.into(), dsttext.into()).ok()
    }
    pub unsafe fn RemoveTextReplacements(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveTextReplacements)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn OutputTextReplacements(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputTextReplacements)(::windows::core::Vtable::as_raw(self), outputcontrol, flags).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugControl2, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugControl2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugControl2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugControl2 {}
impl ::core::fmt::Debug for IDebugControl2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugControl2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugControl2 {
    type Vtable = IDebugControl2_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugControl2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd4366723_44df_4bed_8c7e_4c05424f4588);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugControl2_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub GetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows::core::HRESULT,
    pub SetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetLogFile: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OpenLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, append: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OpenLogFile: usize,
    pub CloseLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub Input: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT,
    pub ReturnInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub Output: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub ControlledOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub ControlledOutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub OutputPrompt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputPromptVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub GetPromptText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub OutputCurrentState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT,
    pub OutputVersionInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows::core::HRESULT,
    pub GetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT,
    pub SetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub Assemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCSTR, endoffset: *mut u64) -> ::windows::core::HRESULT,
    pub Disassemble: unsafe extern "system" fn(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,
    pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub OutputDisassembly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows::core::HRESULT,
    pub OutputDisassemblyLines: unsafe extern "system" fn(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,
    pub GetNearInstruction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetStackTrace: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetStackTrace: usize,
    pub GetReturnOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub OutputStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OutputStackTrace: usize,
    pub GetDebuggeeType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows::core::HRESULT,
    pub GetActualProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub GetExecutingProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberProcessors: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetSystemVersion: unsafe extern "system" fn(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,
    pub GetPageSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows::core::HRESULT,
    pub IsPointer64Bit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ReadBugCheckData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::HRESULT,
    pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT,
    pub GetProcessorTypeNames: unsafe extern "system" fn(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,
    pub GetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub SetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows::core::HRESULT,
    pub GetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows::core::HRESULT,
    pub SetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: u32) -> ::windows::core::HRESULT,
    pub GetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows::core::HRESULT,
    pub SetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: u32) -> ::windows::core::HRESULT,
    pub GetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub GetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::HRESULT,
    pub SetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows::core::HRESULT,
    pub GetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT,
    pub SetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows::core::HRESULT,
    pub SetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub Evaluate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    Evaluate: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub CoerceValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    CoerceValue: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub CoerceValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    CoerceValues: usize,
    pub Execute: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub ExecuteCommandFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetNumberBreakpoints: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetBreakpointByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetBreakpointById: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetBreakpointParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::HRESULT,
    pub AddBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub RemoveBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT,
    pub RemoveExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub GetExtensionByPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub CallExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCSTR, arguments: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetExtensionFunction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCSTR, function: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetExtensionFunction: usize,
    #[cfg(feature = "Win32_System_Kernel")]
    pub GetWindbgExtensionApis32: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Kernel"))]
    GetWindbgExtensionApis32: usize,
    #[cfg(feature = "Win32_System_Kernel")]
    pub GetWindbgExtensionApis64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Kernel"))]
    GetWindbgExtensionApis64: usize,
    pub GetNumberEventFilters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventFilterText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub SetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub SetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub WaitForEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows::core::HRESULT,
    pub GetLastEventInformation: unsafe extern "system" fn(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,
    pub GetCurrentTimeDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timedate: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentSystemUpTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows::core::HRESULT,
    pub GetDumpFormatFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, formatflags: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numrepl: *mut u32) -> ::windows::core::HRESULT,
    pub GetTextReplacement: unsafe extern "system" fn(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,
    pub SetTextReplacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCSTR, dsttext: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub RemoveTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OutputTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugControl3(::windows::core::IUnknown);
impl IDebugControl3 {
    pub unsafe fn GetInterrupt(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetInterrupt)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn SetInterrupt(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetInterrupt)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn GetInterruptTimeout(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInterruptTimeout)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetInterruptTimeout(&self, seconds: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetInterruptTimeout)(::windows::core::Vtable::as_raw(self), seconds).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLogFile)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(append)).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OpenLogFile<'a, P0, P1>(&self, file: P0, append: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        (::windows::core::Vtable::vtable(self).OpenLogFile)(::windows::core::Vtable::as_raw(self), file.into(), append.into()).ok()
    }
    pub unsafe fn CloseLogFile(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).CloseLogFile)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetLogMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetLogMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetLogMask(&self, mask: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetLogMask)(::windows::core::Vtable::as_raw(self), mask).ok()
    }
    pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Input)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReturnInput<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ReturnInput)(::windows::core::Vtable::as_raw(self), buffer.into()).ok()
    }
    pub unsafe fn Output<'a, P0>(&self, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Output)(::windows::core::Vtable::as_raw(self), mask, format.into()).ok()
    }
    pub unsafe fn OutputVaList<'a, P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputVaList)(::windows::core::Vtable::as_raw(self), mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn ControlledOutput<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutput)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into()).ok()
    }
    pub unsafe fn ControlledOutputVaList<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutputVaList)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn OutputPrompt<'a, P0>(&self, outputcontrol: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPrompt)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into()).ok()
    }
    pub unsafe fn OutputPromptVaList<'a, P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPromptVaList)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPromptText)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputCurrentState)(::windows::core::Vtable::as_raw(self), outputcontrol, flags).ok()
    }
    pub unsafe fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputVersionInformation)(::windows::core::Vtable::as_raw(self), outputcontrol).ok()
    }
    pub unsafe fn GetNotifyEventHandle(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNotifyEventHandle)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn SetNotifyEventHandle(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetNotifyEventHandle)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn Assemble<'a, P0>(&self, offset: u64, instr: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Assemble)(::windows::core::Vtable::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Disassemble)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset)).ok()
    }
    pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDisassembleEffectiveOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).OutputDisassembly)(::windows::core::Vtable::as_raw(self), outputcontrol, offset, flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<*mut u32>, startoffset: ::core::option::Option<*mut u64>, endoffset: ::core::option::Option<*mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputDisassemblyLines)(::windows::core::Vtable::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len() as _), offset, flags, ::core::mem::transmute(offsetline.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(startoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok()
    }
    pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNearInstruction)(::windows::core::Vtable::as_raw(self), offset, delta, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetStackTrace)(::windows::core::Vtable::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetReturnOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetReturnOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputStackTrace)(::windows::core::Vtable::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), flags).ok()
    }
    pub unsafe fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDebuggeeType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(class), ::core::mem::transmute(qualifier)).ok()
    }
    pub unsafe fn GetActualProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetActualProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetExecutingProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExecutingProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Vtable::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok()
    }
    pub unsafe fn GetNumberProcessors(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberProcessors)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<*mut u32>, servicepacknumber: *mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemVersion)(
            ::windows::core::Vtable::as_raw(self),
            ::core::mem::transmute(platformid),
            ::core::mem::transmute(major),
            ::core::mem::transmute(minor),
            ::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            servicepackstring.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(servicepackstringused.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(servicepacknumber),
            ::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            buildstring.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(buildstringused.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetPageSize(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetPageSize)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn IsPointer64Bit(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).IsPointer64Bit)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadBugCheckData)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(code), ::core::mem::transmute(arg1), ::core::mem::transmute(arg2), ::core::mem::transmute(arg3), ::core::mem::transmute(arg4)).ok()
    }
    pub unsafe fn GetNumberSupportedProcessorTypes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberSupportedProcessorTypes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSupportedProcessorTypes)(::windows::core::Vtable::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok()
    }
    pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetProcessorTypeNames)(
            ::windows::core::Vtable::as_raw(self),
            r#type,
            ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEffectiveProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetEffectiveProcessorType)(::windows::core::Vtable::as_raw(self), r#type).ok()
    }
    pub unsafe fn GetExecutionStatus(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExecutionStatus)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetExecutionStatus(&self, status: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetExecutionStatus)(::windows::core::Vtable::as_raw(self), status).ok()
    }
    pub unsafe fn GetCodeLevel(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCodeLevel)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetCodeLevel(&self, level: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetCodeLevel)(::windows::core::Vtable::as_raw(self), level).ok()
    }
    pub unsafe fn GetEngineOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEngineOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemErrorControl)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(outputlevel), ::core::mem::transmute(breaklevel)).ok()
    }
    pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetSystemErrorControl)(::windows::core::Vtable::as_raw(self), outputlevel, breaklevel).ok()
    }
    pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTextMacro)(::windows::core::Vtable::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetTextMacro<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextMacro)(::windows::core::Vtable::as_raw(self), slot, r#macro.into()).ok()
    }
    pub unsafe fn GetRadix(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRadix)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetRadix(&self, radix: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetRadix)(::windows::core::Vtable::as_raw(self), radix).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn Evaluate<'a, P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Evaluate)(::windows::core::Vtable::as_raw(self), expression.into(), desiredtype, ::core::mem::transmute(value), ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32) -> ::windows::core::Result<DEBUG_VALUE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CoerceValue)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(r#in), outtype, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_VALUE>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32) -> ::windows::core::Result<DEBUG_VALUE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CoerceValues)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(r#in), ::core::mem::transmute(outtypes), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_VALUE>(result__)
    }
    pub unsafe fn Execute<'a, P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Execute)(::windows::core::Vtable::as_raw(self), outputcontrol, command.into(), flags).ok()
    }
    pub unsafe fn ExecuteCommandFile<'a, P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ExecuteCommandFile)(::windows::core::Vtable::as_raw(self), outputcontrol, commandfile.into(), flags).ok()
    }
    pub unsafe fn GetNumberBreakpoints(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberBreakpoints)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointByIndex)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn GetBreakpointById(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointById)(::windows::core::Vtable::as_raw(self), id, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<*const u32>, start: u32) -> ::windows::core::Result<DEBUG_BREAKPOINT_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointParameters)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_BREAKPOINT_PARAMETERS>(result__)
    }
    pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddBreakpoint)(::windows::core::Vtable::as_raw(self), r#type, desiredid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn RemoveBreakpoint<'a, P0>(&self, bp: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugBreakpoint>>,
    {
        (::windows::core::Vtable::vtable(self).RemoveBreakpoint)(::windows::core::Vtable::as_raw(self), bp.into().abi()).ok()
    }
    pub unsafe fn AddExtension<'a, P0>(&self, path: P0, flags: u32) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddExtension)(::windows::core::Vtable::as_raw(self), path.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn RemoveExtension(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveExtension)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn GetExtensionByPath<'a, P0>(&self, path: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExtensionByPath)(::windows::core::Vtable::as_raw(self), path.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn CallExtension<'a, P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CallExtension)(::windows::core::Vtable::as_raw(self), handle, function.into(), arguments.into()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetExtensionFunction<'a, P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetExtensionFunction)(::windows::core::Vtable::as_raw(self), handle, funcname.into(), ::core::mem::transmute(function)).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Kernel\"`*"]
    #[cfg(feature = "Win32_System_Kernel")]
    pub unsafe fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetWindbgExtensionApis32)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(api)).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Kernel\"`*"]
    #[cfg(feature = "Win32_System_Kernel")]
    pub unsafe fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetWindbgExtensionApis64)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(api)).ok()
    }
    pub unsafe fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNumberEventFilters)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(specificevents), ::core::mem::transmute(specificexceptions), ::core::mem::transmute(arbitraryexceptions)).ok()
    }
    pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterText)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterCommand)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetEventFilterCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetEventFilterCommand)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSpecificFilterParameters)(::windows::core::Vtable::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetSpecificFilterParameters)(::windows::core::Vtable::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSpecificFilterArgument)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSpecificFilterArgument<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSpecificFilterArgument)(::windows::core::Vtable::as_raw(self), index, argument.into()).ok()
    }
    pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<*const u32>, start: u32) -> ::windows::core::Result<DEBUG_EXCEPTION_FILTER_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExceptionFilterParameters)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(codes.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_EXCEPTION_FILTER_PARAMETERS>(result__)
    }
    pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetExceptionFilterParameters)(::windows::core::Vtable::as_raw(self), params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetExceptionFilterSecondCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetExceptionFilterSecondCommand)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WaitForEvent)(::windows::core::Vtable::as_raw(self), flags, timeout).ok()
    }
    pub unsafe fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLastEventInformation)(
            ::windows::core::Vtable::as_raw(self),
            ::core::mem::transmute(r#type),
            ::core::mem::transmute(processid),
            ::core::mem::transmute(threadid),
            ::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
            extrainformationsize,
            ::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetCurrentTimeDate(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentTimeDate)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentSystemUpTime(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentSystemUpTime)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetDumpFormatFlags(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDumpFormatFlags)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberTextReplacements(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberTextReplacements)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetTextReplacement<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u8]>, srcsize: ::core::option::Option<*mut u32>, dstbuffer: ::core::option::Option<&mut [u8]>, dstsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetTextReplacement)(
            ::windows::core::Vtable::as_raw(self),
            srctext.into(),
            index,
            ::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            srcbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(srcsize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            dstbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(dstsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn SetTextReplacement<'a, P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextReplacement)(::windows::core::Vtable::as_raw(self), srctext.into(), dsttext.into()).ok()
    }
    pub unsafe fn RemoveTextReplacements(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveTextReplacements)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn OutputTextReplacements(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputTextReplacements)(::windows::core::Vtable::as_raw(self), outputcontrol, flags).ok()
    }
    pub unsafe fn GetAssemblyOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetAssemblyOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddAssemblyOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveAssemblyOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetAssemblyOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn GetExpressionSyntax(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExpressionSyntax)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetExpressionSyntax(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetExpressionSyntax)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn SetExpressionSyntaxByName<'a, P0>(&self, abbrevname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetExpressionSyntaxByName)(::windows::core::Vtable::as_raw(self), abbrevname.into()).ok()
    }
    pub unsafe fn GetNumberExpressionSyntaxes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberExpressionSyntaxes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetExpressionSyntaxNames)(
            ::windows::core::Vtable::as_raw(self),
            index,
            ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetNumberEvents(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberEvents)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetEventIndexDescription<'a, P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventIndexDescription)(::windows::core::Vtable::as_raw(self), index, which, buffer.into(), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentEventIndex(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentEventIndex)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetNextEventIndex(&self, relation: u32, value: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).SetNextEventIndex)(::windows::core::Vtable::as_raw(self), relation, value, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugControl3, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugControl3 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugControl3 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugControl3 {}
impl ::core::fmt::Debug for IDebugControl3 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugControl3").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugControl3 {
    type Vtable = IDebugControl3_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugControl3 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7df74a86_b03f_407f_90ab_a20dadcead08);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugControl3_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub GetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows::core::HRESULT,
    pub SetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetLogFile: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OpenLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, append: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OpenLogFile: usize,
    pub CloseLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub Input: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT,
    pub ReturnInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub Output: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub ControlledOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub ControlledOutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub OutputPrompt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputPromptVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub GetPromptText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub OutputCurrentState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT,
    pub OutputVersionInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows::core::HRESULT,
    pub GetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT,
    pub SetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub Assemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCSTR, endoffset: *mut u64) -> ::windows::core::HRESULT,
    pub Disassemble: unsafe extern "system" fn(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,
    pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub OutputDisassembly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows::core::HRESULT,
    pub OutputDisassemblyLines: unsafe extern "system" fn(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,
    pub GetNearInstruction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetStackTrace: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetStackTrace: usize,
    pub GetReturnOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub OutputStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OutputStackTrace: usize,
    pub GetDebuggeeType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows::core::HRESULT,
    pub GetActualProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub GetExecutingProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberProcessors: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetSystemVersion: unsafe extern "system" fn(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,
    pub GetPageSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows::core::HRESULT,
    pub IsPointer64Bit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ReadBugCheckData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::HRESULT,
    pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT,
    pub GetProcessorTypeNames: unsafe extern "system" fn(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,
    pub GetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub SetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows::core::HRESULT,
    pub GetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows::core::HRESULT,
    pub SetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: u32) -> ::windows::core::HRESULT,
    pub GetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows::core::HRESULT,
    pub SetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: u32) -> ::windows::core::HRESULT,
    pub GetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub GetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::HRESULT,
    pub SetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows::core::HRESULT,
    pub GetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT,
    pub SetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows::core::HRESULT,
    pub SetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub Evaluate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    Evaluate: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub CoerceValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    CoerceValue: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub CoerceValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    CoerceValues: usize,
    pub Execute: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub ExecuteCommandFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetNumberBreakpoints: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetBreakpointByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetBreakpointById: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetBreakpointParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::HRESULT,
    pub AddBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub RemoveBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT,
    pub RemoveExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub GetExtensionByPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub CallExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCSTR, arguments: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetExtensionFunction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCSTR, function: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetExtensionFunction: usize,
    #[cfg(feature = "Win32_System_Kernel")]
    pub GetWindbgExtensionApis32: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Kernel"))]
    GetWindbgExtensionApis32: usize,
    #[cfg(feature = "Win32_System_Kernel")]
    pub GetWindbgExtensionApis64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Kernel"))]
    GetWindbgExtensionApis64: usize,
    pub GetNumberEventFilters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventFilterText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub SetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub SetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub WaitForEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows::core::HRESULT,
    pub GetLastEventInformation: unsafe extern "system" fn(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,
    pub GetCurrentTimeDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timedate: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentSystemUpTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows::core::HRESULT,
    pub GetDumpFormatFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, formatflags: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numrepl: *mut u32) -> ::windows::core::HRESULT,
    pub GetTextReplacement: unsafe extern "system" fn(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,
    pub SetTextReplacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCSTR, dsttext: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub RemoveTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OutputTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT,
    pub GetAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub GetExpressionSyntax: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows::core::HRESULT,
    pub SetExpressionSyntax: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub SetExpressionSyntaxByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, abbrevname: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetNumberExpressionSyntaxes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetExpressionSyntaxNames: unsafe extern "system" fn(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,
    pub GetNumberEvents: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, events: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventIndexDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows::core::PCSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentEventIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows::core::HRESULT,
    pub SetNextEventIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, relation: u32, value: u32, nextindex: *mut u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugControl4(::windows::core::IUnknown);
impl IDebugControl4 {
    pub unsafe fn GetInterrupt(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetInterrupt)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn SetInterrupt(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetInterrupt)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn GetInterruptTimeout(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInterruptTimeout)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetInterruptTimeout(&self, seconds: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetInterruptTimeout)(::windows::core::Vtable::as_raw(self), seconds).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLogFile)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(append)).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OpenLogFile<'a, P0, P1>(&self, file: P0, append: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        (::windows::core::Vtable::vtable(self).OpenLogFile)(::windows::core::Vtable::as_raw(self), file.into(), append.into()).ok()
    }
    pub unsafe fn CloseLogFile(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).CloseLogFile)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetLogMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetLogMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetLogMask(&self, mask: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetLogMask)(::windows::core::Vtable::as_raw(self), mask).ok()
    }
    pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Input)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReturnInput<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ReturnInput)(::windows::core::Vtable::as_raw(self), buffer.into()).ok()
    }
    pub unsafe fn Output<'a, P0>(&self, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Output)(::windows::core::Vtable::as_raw(self), mask, format.into()).ok()
    }
    pub unsafe fn OutputVaList<'a, P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputVaList)(::windows::core::Vtable::as_raw(self), mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn ControlledOutput<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutput)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into()).ok()
    }
    pub unsafe fn ControlledOutputVaList<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutputVaList)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn OutputPrompt<'a, P0>(&self, outputcontrol: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPrompt)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into()).ok()
    }
    pub unsafe fn OutputPromptVaList<'a, P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPromptVaList)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPromptText)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputCurrentState)(::windows::core::Vtable::as_raw(self), outputcontrol, flags).ok()
    }
    pub unsafe fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputVersionInformation)(::windows::core::Vtable::as_raw(self), outputcontrol).ok()
    }
    pub unsafe fn GetNotifyEventHandle(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNotifyEventHandle)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn SetNotifyEventHandle(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetNotifyEventHandle)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn Assemble<'a, P0>(&self, offset: u64, instr: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Assemble)(::windows::core::Vtable::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Disassemble)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset)).ok()
    }
    pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDisassembleEffectiveOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).OutputDisassembly)(::windows::core::Vtable::as_raw(self), outputcontrol, offset, flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<*mut u32>, startoffset: ::core::option::Option<*mut u64>, endoffset: ::core::option::Option<*mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputDisassemblyLines)(::windows::core::Vtable::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len() as _), offset, flags, ::core::mem::transmute(offsetline.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(startoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok()
    }
    pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNearInstruction)(::windows::core::Vtable::as_raw(self), offset, delta, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetStackTrace)(::windows::core::Vtable::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetReturnOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetReturnOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputStackTrace)(::windows::core::Vtable::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), flags).ok()
    }
    pub unsafe fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDebuggeeType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(class), ::core::mem::transmute(qualifier)).ok()
    }
    pub unsafe fn GetActualProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetActualProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetExecutingProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExecutingProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Vtable::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok()
    }
    pub unsafe fn GetNumberProcessors(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberProcessors)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<*mut u32>, servicepacknumber: *mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemVersion)(
            ::windows::core::Vtable::as_raw(self),
            ::core::mem::transmute(platformid),
            ::core::mem::transmute(major),
            ::core::mem::transmute(minor),
            ::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            servicepackstring.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(servicepackstringused.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(servicepacknumber),
            ::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            buildstring.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(buildstringused.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetPageSize(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetPageSize)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn IsPointer64Bit(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).IsPointer64Bit)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadBugCheckData)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(code), ::core::mem::transmute(arg1), ::core::mem::transmute(arg2), ::core::mem::transmute(arg3), ::core::mem::transmute(arg4)).ok()
    }
    pub unsafe fn GetNumberSupportedProcessorTypes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberSupportedProcessorTypes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSupportedProcessorTypes)(::windows::core::Vtable::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok()
    }
    pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetProcessorTypeNames)(
            ::windows::core::Vtable::as_raw(self),
            r#type,
            ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEffectiveProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetEffectiveProcessorType)(::windows::core::Vtable::as_raw(self), r#type).ok()
    }
    pub unsafe fn GetExecutionStatus(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExecutionStatus)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetExecutionStatus(&self, status: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetExecutionStatus)(::windows::core::Vtable::as_raw(self), status).ok()
    }
    pub unsafe fn GetCodeLevel(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCodeLevel)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetCodeLevel(&self, level: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetCodeLevel)(::windows::core::Vtable::as_raw(self), level).ok()
    }
    pub unsafe fn GetEngineOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEngineOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemErrorControl)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(outputlevel), ::core::mem::transmute(breaklevel)).ok()
    }
    pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetSystemErrorControl)(::windows::core::Vtable::as_raw(self), outputlevel, breaklevel).ok()
    }
    pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTextMacro)(::windows::core::Vtable::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetTextMacro<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextMacro)(::windows::core::Vtable::as_raw(self), slot, r#macro.into()).ok()
    }
    pub unsafe fn GetRadix(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRadix)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetRadix(&self, radix: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetRadix)(::windows::core::Vtable::as_raw(self), radix).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn Evaluate<'a, P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Evaluate)(::windows::core::Vtable::as_raw(self), expression.into(), desiredtype, ::core::mem::transmute(value), ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32) -> ::windows::core::Result<DEBUG_VALUE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CoerceValue)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(r#in), outtype, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_VALUE>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32) -> ::windows::core::Result<DEBUG_VALUE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CoerceValues)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(r#in), ::core::mem::transmute(outtypes), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_VALUE>(result__)
    }
    pub unsafe fn Execute<'a, P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Execute)(::windows::core::Vtable::as_raw(self), outputcontrol, command.into(), flags).ok()
    }
    pub unsafe fn ExecuteCommandFile<'a, P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ExecuteCommandFile)(::windows::core::Vtable::as_raw(self), outputcontrol, commandfile.into(), flags).ok()
    }
    pub unsafe fn GetNumberBreakpoints(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberBreakpoints)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointByIndex)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn GetBreakpointById(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointById)(::windows::core::Vtable::as_raw(self), id, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<*const u32>, start: u32) -> ::windows::core::Result<DEBUG_BREAKPOINT_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointParameters)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_BREAKPOINT_PARAMETERS>(result__)
    }
    pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddBreakpoint)(::windows::core::Vtable::as_raw(self), r#type, desiredid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn RemoveBreakpoint<'a, P0>(&self, bp: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugBreakpoint>>,
    {
        (::windows::core::Vtable::vtable(self).RemoveBreakpoint)(::windows::core::Vtable::as_raw(self), bp.into().abi()).ok()
    }
    pub unsafe fn AddExtension<'a, P0>(&self, path: P0, flags: u32) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddExtension)(::windows::core::Vtable::as_raw(self), path.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn RemoveExtension(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveExtension)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn GetExtensionByPath<'a, P0>(&self, path: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExtensionByPath)(::windows::core::Vtable::as_raw(self), path.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn CallExtension<'a, P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CallExtension)(::windows::core::Vtable::as_raw(self), handle, function.into(), arguments.into()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetExtensionFunction<'a, P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetExtensionFunction)(::windows::core::Vtable::as_raw(self), handle, funcname.into(), ::core::mem::transmute(function)).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Kernel\"`*"]
    #[cfg(feature = "Win32_System_Kernel")]
    pub unsafe fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetWindbgExtensionApis32)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(api)).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Kernel\"`*"]
    #[cfg(feature = "Win32_System_Kernel")]
    pub unsafe fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetWindbgExtensionApis64)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(api)).ok()
    }
    pub unsafe fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNumberEventFilters)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(specificevents), ::core::mem::transmute(specificexceptions), ::core::mem::transmute(arbitraryexceptions)).ok()
    }
    pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterText)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterCommand)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetEventFilterCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetEventFilterCommand)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSpecificFilterParameters)(::windows::core::Vtable::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetSpecificFilterParameters)(::windows::core::Vtable::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSpecificFilterArgument)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSpecificFilterArgument<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSpecificFilterArgument)(::windows::core::Vtable::as_raw(self), index, argument.into()).ok()
    }
    pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<*const u32>, start: u32) -> ::windows::core::Result<DEBUG_EXCEPTION_FILTER_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExceptionFilterParameters)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(codes.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_EXCEPTION_FILTER_PARAMETERS>(result__)
    }
    pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetExceptionFilterParameters)(::windows::core::Vtable::as_raw(self), params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetExceptionFilterSecondCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetExceptionFilterSecondCommand)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WaitForEvent)(::windows::core::Vtable::as_raw(self), flags, timeout).ok()
    }
    pub unsafe fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLastEventInformation)(
            ::windows::core::Vtable::as_raw(self),
            ::core::mem::transmute(r#type),
            ::core::mem::transmute(processid),
            ::core::mem::transmute(threadid),
            ::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
            extrainformationsize,
            ::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetCurrentTimeDate(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentTimeDate)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentSystemUpTime(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentSystemUpTime)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetDumpFormatFlags(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDumpFormatFlags)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberTextReplacements(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberTextReplacements)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetTextReplacement<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u8]>, srcsize: ::core::option::Option<*mut u32>, dstbuffer: ::core::option::Option<&mut [u8]>, dstsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetTextReplacement)(
            ::windows::core::Vtable::as_raw(self),
            srctext.into(),
            index,
            ::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            srcbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(srcsize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            dstbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(dstsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn SetTextReplacement<'a, P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextReplacement)(::windows::core::Vtable::as_raw(self), srctext.into(), dsttext.into()).ok()
    }
    pub unsafe fn RemoveTextReplacements(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveTextReplacements)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn OutputTextReplacements(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputTextReplacements)(::windows::core::Vtable::as_raw(self), outputcontrol, flags).ok()
    }
    pub unsafe fn GetAssemblyOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetAssemblyOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddAssemblyOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveAssemblyOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetAssemblyOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn GetExpressionSyntax(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExpressionSyntax)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetExpressionSyntax(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetExpressionSyntax)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn SetExpressionSyntaxByName<'a, P0>(&self, abbrevname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetExpressionSyntaxByName)(::windows::core::Vtable::as_raw(self), abbrevname.into()).ok()
    }
    pub unsafe fn GetNumberExpressionSyntaxes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberExpressionSyntaxes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetExpressionSyntaxNames)(
            ::windows::core::Vtable::as_raw(self),
            index,
            ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetNumberEvents(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberEvents)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetEventIndexDescription<'a, P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventIndexDescription)(::windows::core::Vtable::as_raw(self), index, which, buffer.into(), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentEventIndex(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentEventIndex)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetNextEventIndex(&self, relation: u32, value: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).SetNextEventIndex)(::windows::core::Vtable::as_raw(self), relation, value, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetLogFileWide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLogFileWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(append)).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OpenLogFileWide<'a, P0, P1>(&self, file: P0, append: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        (::windows::core::Vtable::vtable(self).OpenLogFileWide)(::windows::core::Vtable::as_raw(self), file.into(), append.into()).ok()
    }
    pub unsafe fn InputWide(&self, buffer: &mut [u16], inputsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).InputWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReturnInputWide<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ReturnInputWide)(::windows::core::Vtable::as_raw(self), buffer.into()).ok()
    }
    pub unsafe fn OutputWide<'a, P0>(&self, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputWide)(::windows::core::Vtable::as_raw(self), mask, format.into()).ok()
    }
    pub unsafe fn OutputVaListWide<'a, P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputVaListWide)(::windows::core::Vtable::as_raw(self), mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn ControlledOutputWide<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutputWide)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into()).ok()
    }
    pub unsafe fn ControlledOutputVaListWide<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutputVaListWide)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn OutputPromptWide<'a, P0>(&self, outputcontrol: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPromptWide)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into()).ok()
    }
    pub unsafe fn OutputPromptVaListWide<'a, P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPromptVaListWide)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn GetPromptTextWide(&self, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPromptTextWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn AssembleWide<'a, P0>(&self, offset: u64, instr: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AssembleWide)(::windows::core::Vtable::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn DisassembleWide(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u16]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DisassembleWide)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset)).ok()
    }
    pub unsafe fn GetProcessorTypeNamesWide(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetProcessorTypeNamesWide)(
            ::windows::core::Vtable::as_raw(self),
            r#type,
            ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetTextMacroWide(&self, slot: u32, buffer: ::core::option::Option<&mut [u16]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTextMacroWide)(::windows::core::Vtable::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetTextMacroWide<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextMacroWide)(::windows::core::Vtable::as_raw(self), slot, r#macro.into()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn EvaluateWide<'a, P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).EvaluateWide)(::windows::core::Vtable::as_raw(self), expression.into(), desiredtype, ::core::mem::transmute(value), ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ExecuteWide<'a, P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ExecuteWide)(::windows::core::Vtable::as_raw(self), outputcontrol, command.into(), flags).ok()
    }
    pub unsafe fn ExecuteCommandFileWide<'a, P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ExecuteCommandFileWide)(::windows::core::Vtable::as_raw(self), outputcontrol, commandfile.into(), flags).ok()
    }
    pub unsafe fn GetBreakpointByIndex2(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint2> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointByIndex2)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint2>(result__)
    }
    pub unsafe fn GetBreakpointById2(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint2> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointById2)(::windows::core::Vtable::as_raw(self), id, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint2>(result__)
    }
    pub unsafe fn AddBreakpoint2(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint2> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddBreakpoint2)(::windows::core::Vtable::as_raw(self), r#type, desiredid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint2>(result__)
    }
    pub unsafe fn RemoveBreakpoint2<'a, P0>(&self, bp: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugBreakpoint2>>,
    {
        (::windows::core::Vtable::vtable(self).RemoveBreakpoint2)(::windows::core::Vtable::as_raw(self), bp.into().abi()).ok()
    }
    pub unsafe fn AddExtensionWide<'a, P0>(&self, path: P0, flags: u32) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddExtensionWide)(::windows::core::Vtable::as_raw(self), path.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetExtensionByPathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExtensionByPathWide)(::windows::core::Vtable::as_raw(self), path.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn CallExtensionWide<'a, P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CallExtensionWide)(::windows::core::Vtable::as_raw(self), handle, function.into(), arguments.into()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetExtensionFunctionWide<'a, P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetExtensionFunctionWide)(::windows::core::Vtable::as_raw(self), handle, funcname.into(), ::core::mem::transmute(function)).ok()
    }
    pub unsafe fn GetEventFilterTextWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterTextWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetEventFilterCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterCommandWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetEventFilterCommandWide<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetEventFilterCommandWide)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSpecificFilterArgumentWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSpecificFilterArgumentWide<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSpecificFilterArgumentWide)(::windows::core::Vtable::as_raw(self), index, argument.into()).ok()
    }
    pub unsafe fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetExceptionFilterSecondCommandWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetExceptionFilterSecondCommandWide<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetExceptionFilterSecondCommandWide)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn GetLastEventInformationWide(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u16]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLastEventInformationWide)(
            ::windows::core::Vtable::as_raw(self),
            ::core::mem::transmute(r#type),
            ::core::mem::transmute(processid),
            ::core::mem::transmute(threadid),
            ::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
            extrainformationsize,
            ::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetTextReplacementWide<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u16]>, srcsize: ::core::option::Option<*mut u32>, dstbuffer: ::core::option::Option<&mut [u16]>, dstsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetTextReplacementWide)(
            ::windows::core::Vtable::as_raw(self),
            srctext.into(),
            index,
            ::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            srcbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(srcsize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            dstbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(dstsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn SetTextReplacementWide<'a, P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextReplacementWide)(::windows::core::Vtable::as_raw(self), srctext.into(), dsttext.into()).ok()
    }
    pub unsafe fn SetExpressionSyntaxByNameWide<'a, P0>(&self, abbrevname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetExpressionSyntaxByNameWide)(::windows::core::Vtable::as_raw(self), abbrevname.into()).ok()
    }
    pub unsafe fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetExpressionSyntaxNamesWide)(
            ::windows::core::Vtable::as_raw(self),
            index,
            ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetEventIndexDescriptionWide<'a, P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventIndexDescriptionWide)(::windows::core::Vtable::as_raw(self), index, which, buffer.into(), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetLogFile2(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, flags: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLogFile2)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(flags)).ok()
    }
    pub unsafe fn OpenLogFile2<'a, P0>(&self, file: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenLogFile2)(::windows::core::Vtable::as_raw(self), file.into(), flags).ok()
    }
    pub unsafe fn GetLogFile2Wide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, flags: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLogFile2Wide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(flags)).ok()
    }
    pub unsafe fn OpenLogFile2Wide<'a, P0>(&self, file: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenLogFile2Wide)(::windows::core::Vtable::as_raw(self), file.into(), flags).ok()
    }
    pub unsafe fn GetSystemVersionValues(&self, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: ::core::option::Option<*mut u32>, kdminor: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemVersionValues)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(platformid), ::core::mem::transmute(win32major), ::core::mem::transmute(win32minor), ::core::mem::transmute(kdmajor.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(kdminor.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSystemVersionString(&self, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemVersionString)(::windows::core::Vtable::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSystemVersionStringWide(&self, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemVersionStringWide)(::windows::core::Vtable::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetContextStackTrace(&self, startcontext: ::core::option::Option<*const ::core::ffi::c_void>, startcontextsize: u32, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME]>, framecontexts: ::core::option::Option<*mut ::core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetContextStackTrace)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(startcontext.unwrap_or(::std::ptr::null())), startcontextsize, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(framecontexts.unwrap_or(::std::ptr::null_mut())), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OutputContextStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputContextStackTrace)(::windows::core::Vtable::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, flags).ok()
    }
    pub unsafe fn GetStoredEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, context: ::core::option::Option<*mut ::core::ffi::c_void>, contextsize: u32, contextused: ::core::option::Option<*mut u32>, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetStoredEventInformation)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(r#type), ::core::mem::transmute(processid), ::core::mem::transmute(threadid), ::core::mem::transmute(context.unwrap_or(::std::ptr::null_mut())), contextsize, ::core::mem::transmute(contextused.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())), extrainformationsize, ::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetManagedStatus(&self, flags: ::core::option::Option<*mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u8]>, stringneeded: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetManagedStatus)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(flags.unwrap_or(::std::ptr::null_mut())), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringneeded.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetManagedStatusWide(&self, flags: ::core::option::Option<*mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u16]>, stringneeded: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetManagedStatusWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(flags.unwrap_or(::std::ptr::null_mut())), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringneeded.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ResetManagedStatus(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ResetManagedStatus)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugControl4, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugControl4 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugControl4 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugControl4 {}
impl ::core::fmt::Debug for IDebugControl4 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugControl4").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugControl4 {
    type Vtable = IDebugControl4_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugControl4 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x94e60ce9_9b41_4b19_9fc0_6d9eb35272b3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugControl4_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub GetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows::core::HRESULT,
    pub SetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetLogFile: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OpenLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, append: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OpenLogFile: usize,
    pub CloseLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub Input: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT,
    pub ReturnInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub Output: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub ControlledOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub ControlledOutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub OutputPrompt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputPromptVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub GetPromptText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub OutputCurrentState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT,
    pub OutputVersionInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows::core::HRESULT,
    pub GetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT,
    pub SetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub Assemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCSTR, endoffset: *mut u64) -> ::windows::core::HRESULT,
    pub Disassemble: unsafe extern "system" fn(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,
    pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub OutputDisassembly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows::core::HRESULT,
    pub OutputDisassemblyLines: unsafe extern "system" fn(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,
    pub GetNearInstruction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetStackTrace: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetStackTrace: usize,
    pub GetReturnOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub OutputStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OutputStackTrace: usize,
    pub GetDebuggeeType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows::core::HRESULT,
    pub GetActualProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub GetExecutingProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberProcessors: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetSystemVersion: unsafe extern "system" fn(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,
    pub GetPageSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows::core::HRESULT,
    pub IsPointer64Bit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ReadBugCheckData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::HRESULT,
    pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT,
    pub GetProcessorTypeNames: unsafe extern "system" fn(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,
    pub GetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub SetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows::core::HRESULT,
    pub GetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows::core::HRESULT,
    pub SetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: u32) -> ::windows::core::HRESULT,
    pub GetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows::core::HRESULT,
    pub SetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: u32) -> ::windows::core::HRESULT,
    pub GetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub GetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::HRESULT,
    pub SetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows::core::HRESULT,
    pub GetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT,
    pub SetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows::core::HRESULT,
    pub SetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub Evaluate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    Evaluate: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub CoerceValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    CoerceValue: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub CoerceValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    CoerceValues: usize,
    pub Execute: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub ExecuteCommandFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetNumberBreakpoints: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetBreakpointByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetBreakpointById: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetBreakpointParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::HRESULT,
    pub AddBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub RemoveBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT,
    pub RemoveExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub GetExtensionByPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub CallExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCSTR, arguments: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetExtensionFunction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCSTR, function: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetExtensionFunction: usize,
    #[cfg(feature = "Win32_System_Kernel")]
    pub GetWindbgExtensionApis32: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Kernel"))]
    GetWindbgExtensionApis32: usize,
    #[cfg(feature = "Win32_System_Kernel")]
    pub GetWindbgExtensionApis64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Kernel"))]
    GetWindbgExtensionApis64: usize,
    pub GetNumberEventFilters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventFilterText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub SetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub SetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub WaitForEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows::core::HRESULT,
    pub GetLastEventInformation: unsafe extern "system" fn(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,
    pub GetCurrentTimeDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timedate: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentSystemUpTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows::core::HRESULT,
    pub GetDumpFormatFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, formatflags: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numrepl: *mut u32) -> ::windows::core::HRESULT,
    pub GetTextReplacement: unsafe extern "system" fn(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,
    pub SetTextReplacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCSTR, dsttext: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub RemoveTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OutputTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT,
    pub GetAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub GetExpressionSyntax: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows::core::HRESULT,
    pub SetExpressionSyntax: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub SetExpressionSyntaxByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, abbrevname: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetNumberExpressionSyntaxes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetExpressionSyntaxNames: unsafe extern "system" fn(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,
    pub GetNumberEvents: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, events: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventIndexDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows::core::PCSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentEventIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows::core::HRESULT,
    pub SetNextEventIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, relation: u32, value: u32, nextindex: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetLogFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetLogFileWide: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OpenLogFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, append: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OpenLogFileWide: usize,
    pub InputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT,
    pub ReturnInputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub OutputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub OutputVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub ControlledOutputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub ControlledOutputVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub OutputPromptWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub OutputPromptVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub GetPromptTextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub AssembleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCWSTR, endoffset: *mut u64) -> ::windows::core::HRESULT,
    pub DisassembleWide: unsafe extern "system" fn(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,
    pub GetProcessorTypeNamesWide: unsafe extern "system" fn(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,
    pub GetTextMacroWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PWSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT,
    pub SetTextMacroWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub EvaluateWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCWSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    EvaluateWide: usize,
    pub ExecuteWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT,
    pub ExecuteCommandFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetBreakpointByIndex2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetBreakpointById2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddBreakpoint2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub RemoveBreakpoint2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddExtensionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetExtensionByPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub CallExtensionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCWSTR, arguments: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetExtensionFunctionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCWSTR, function: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetExtensionFunctionWide: usize,
    pub GetEventFilterTextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventFilterCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetEventFilterCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetSpecificFilterArgumentWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSpecificFilterArgumentWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetExceptionFilterSecondCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetExceptionFilterSecondCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetLastEventInformationWide: unsafe extern "system" fn(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,
    pub GetTextReplacementWide: unsafe extern "system" fn(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,
    pub SetTextReplacementWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCWSTR, dsttext: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub SetExpressionSyntaxByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, abbrevname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetExpressionSyntaxNamesWide: unsafe extern "system" fn(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,
    pub GetEventIndexDescriptionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows::core::PCWSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetLogFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::HRESULT,
    pub OpenLogFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetLogFile2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::HRESULT,
    pub OpenLogFile2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetSystemVersionValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: *mut u32, kdminor: *mut u32) -> ::windows::core::HRESULT,
    pub GetSystemVersionString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetSystemVersionStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetContextStackTrace: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetContextStackTrace: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OutputContextStackTrace: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    OutputContextStackTrace: usize,
    pub GetStoredEventInformation: unsafe extern "system" fn(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,
    pub GetManagedStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows::core::PSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::HRESULT,
    pub GetManagedStatusWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows::core::PWSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::HRESULT,
    pub ResetManagedStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugControl5(::windows::core::IUnknown);
impl IDebugControl5 {
    pub unsafe fn GetInterrupt(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetInterrupt)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn SetInterrupt(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetInterrupt)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn GetInterruptTimeout(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInterruptTimeout)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetInterruptTimeout(&self, seconds: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetInterruptTimeout)(::windows::core::Vtable::as_raw(self), seconds).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLogFile)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(append)).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OpenLogFile<'a, P0, P1>(&self, file: P0, append: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        (::windows::core::Vtable::vtable(self).OpenLogFile)(::windows::core::Vtable::as_raw(self), file.into(), append.into()).ok()
    }
    pub unsafe fn CloseLogFile(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).CloseLogFile)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetLogMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetLogMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetLogMask(&self, mask: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetLogMask)(::windows::core::Vtable::as_raw(self), mask).ok()
    }
    pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Input)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReturnInput<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ReturnInput)(::windows::core::Vtable::as_raw(self), buffer.into()).ok()
    }
    pub unsafe fn Output<'a, P0>(&self, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Output)(::windows::core::Vtable::as_raw(self), mask, format.into()).ok()
    }
    pub unsafe fn OutputVaList<'a, P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputVaList)(::windows::core::Vtable::as_raw(self), mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn ControlledOutput<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutput)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into()).ok()
    }
    pub unsafe fn ControlledOutputVaList<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutputVaList)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn OutputPrompt<'a, P0>(&self, outputcontrol: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPrompt)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into()).ok()
    }
    pub unsafe fn OutputPromptVaList<'a, P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPromptVaList)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPromptText)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputCurrentState)(::windows::core::Vtable::as_raw(self), outputcontrol, flags).ok()
    }
    pub unsafe fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputVersionInformation)(::windows::core::Vtable::as_raw(self), outputcontrol).ok()
    }
    pub unsafe fn GetNotifyEventHandle(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNotifyEventHandle)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn SetNotifyEventHandle(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetNotifyEventHandle)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn Assemble<'a, P0>(&self, offset: u64, instr: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Assemble)(::windows::core::Vtable::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Disassemble)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset)).ok()
    }
    pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDisassembleEffectiveOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).OutputDisassembly)(::windows::core::Vtable::as_raw(self), outputcontrol, offset, flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<*mut u32>, startoffset: ::core::option::Option<*mut u64>, endoffset: ::core::option::Option<*mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputDisassemblyLines)(::windows::core::Vtable::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len() as _), offset, flags, ::core::mem::transmute(offsetline.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(startoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok()
    }
    pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNearInstruction)(::windows::core::Vtable::as_raw(self), offset, delta, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetStackTrace)(::windows::core::Vtable::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetReturnOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetReturnOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputStackTrace)(::windows::core::Vtable::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), flags).ok()
    }
    pub unsafe fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDebuggeeType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(class), ::core::mem::transmute(qualifier)).ok()
    }
    pub unsafe fn GetActualProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetActualProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetExecutingProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExecutingProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Vtable::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok()
    }
    pub unsafe fn GetNumberProcessors(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberProcessors)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<*mut u32>, servicepacknumber: *mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemVersion)(
            ::windows::core::Vtable::as_raw(self),
            ::core::mem::transmute(platformid),
            ::core::mem::transmute(major),
            ::core::mem::transmute(minor),
            ::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            servicepackstring.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(servicepackstringused.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(servicepacknumber),
            ::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            buildstring.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(buildstringused.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetPageSize(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetPageSize)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn IsPointer64Bit(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).IsPointer64Bit)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadBugCheckData)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(code), ::core::mem::transmute(arg1), ::core::mem::transmute(arg2), ::core::mem::transmute(arg3), ::core::mem::transmute(arg4)).ok()
    }
    pub unsafe fn GetNumberSupportedProcessorTypes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberSupportedProcessorTypes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSupportedProcessorTypes)(::windows::core::Vtable::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok()
    }
    pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetProcessorTypeNames)(
            ::windows::core::Vtable::as_raw(self),
            r#type,
            ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEffectiveProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetEffectiveProcessorType)(::windows::core::Vtable::as_raw(self), r#type).ok()
    }
    pub unsafe fn GetExecutionStatus(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExecutionStatus)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetExecutionStatus(&self, status: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetExecutionStatus)(::windows::core::Vtable::as_raw(self), status).ok()
    }
    pub unsafe fn GetCodeLevel(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCodeLevel)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetCodeLevel(&self, level: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetCodeLevel)(::windows::core::Vtable::as_raw(self), level).ok()
    }
    pub unsafe fn GetEngineOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEngineOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemErrorControl)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(outputlevel), ::core::mem::transmute(breaklevel)).ok()
    }
    pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetSystemErrorControl)(::windows::core::Vtable::as_raw(self), outputlevel, breaklevel).ok()
    }
    pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTextMacro)(::windows::core::Vtable::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetTextMacro<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextMacro)(::windows::core::Vtable::as_raw(self), slot, r#macro.into()).ok()
    }
    pub unsafe fn GetRadix(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRadix)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetRadix(&self, radix: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetRadix)(::windows::core::Vtable::as_raw(self), radix).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn Evaluate<'a, P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Evaluate)(::windows::core::Vtable::as_raw(self), expression.into(), desiredtype, ::core::mem::transmute(value), ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32) -> ::windows::core::Result<DEBUG_VALUE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CoerceValue)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(r#in), outtype, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_VALUE>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32) -> ::windows::core::Result<DEBUG_VALUE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CoerceValues)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(r#in), ::core::mem::transmute(outtypes), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_VALUE>(result__)
    }
    pub unsafe fn Execute<'a, P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Execute)(::windows::core::Vtable::as_raw(self), outputcontrol, command.into(), flags).ok()
    }
    pub unsafe fn ExecuteCommandFile<'a, P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ExecuteCommandFile)(::windows::core::Vtable::as_raw(self), outputcontrol, commandfile.into(), flags).ok()
    }
    pub unsafe fn GetNumberBreakpoints(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberBreakpoints)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointByIndex)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn GetBreakpointById(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointById)(::windows::core::Vtable::as_raw(self), id, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<*const u32>, start: u32) -> ::windows::core::Result<DEBUG_BREAKPOINT_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointParameters)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_BREAKPOINT_PARAMETERS>(result__)
    }
    pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddBreakpoint)(::windows::core::Vtable::as_raw(self), r#type, desiredid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn RemoveBreakpoint<'a, P0>(&self, bp: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugBreakpoint>>,
    {
        (::windows::core::Vtable::vtable(self).RemoveBreakpoint)(::windows::core::Vtable::as_raw(self), bp.into().abi()).ok()
    }
    pub unsafe fn AddExtension<'a, P0>(&self, path: P0, flags: u32) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddExtension)(::windows::core::Vtable::as_raw(self), path.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn RemoveExtension(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveExtension)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn GetExtensionByPath<'a, P0>(&self, path: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExtensionByPath)(::windows::core::Vtable::as_raw(self), path.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn CallExtension<'a, P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CallExtension)(::windows::core::Vtable::as_raw(self), handle, function.into(), arguments.into()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetExtensionFunction<'a, P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetExtensionFunction)(::windows::core::Vtable::as_raw(self), handle, funcname.into(), ::core::mem::transmute(function)).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Kernel\"`*"]
    #[cfg(feature = "Win32_System_Kernel")]
    pub unsafe fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetWindbgExtensionApis32)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(api)).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Kernel\"`*"]
    #[cfg(feature = "Win32_System_Kernel")]
    pub unsafe fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetWindbgExtensionApis64)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(api)).ok()
    }
    pub unsafe fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNumberEventFilters)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(specificevents), ::core::mem::transmute(specificexceptions), ::core::mem::transmute(arbitraryexceptions)).ok()
    }
    pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterText)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterCommand)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetEventFilterCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetEventFilterCommand)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSpecificFilterParameters)(::windows::core::Vtable::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetSpecificFilterParameters)(::windows::core::Vtable::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSpecificFilterArgument)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSpecificFilterArgument<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSpecificFilterArgument)(::windows::core::Vtable::as_raw(self), index, argument.into()).ok()
    }
    pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<*const u32>, start: u32) -> ::windows::core::Result<DEBUG_EXCEPTION_FILTER_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExceptionFilterParameters)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(codes.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_EXCEPTION_FILTER_PARAMETERS>(result__)
    }
    pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetExceptionFilterParameters)(::windows::core::Vtable::as_raw(self), params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetExceptionFilterSecondCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetExceptionFilterSecondCommand)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WaitForEvent)(::windows::core::Vtable::as_raw(self), flags, timeout).ok()
    }
    pub unsafe fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLastEventInformation)(
            ::windows::core::Vtable::as_raw(self),
            ::core::mem::transmute(r#type),
            ::core::mem::transmute(processid),
            ::core::mem::transmute(threadid),
            ::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
            extrainformationsize,
            ::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetCurrentTimeDate(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentTimeDate)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentSystemUpTime(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentSystemUpTime)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetDumpFormatFlags(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDumpFormatFlags)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberTextReplacements(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberTextReplacements)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetTextReplacement<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u8]>, srcsize: ::core::option::Option<*mut u32>, dstbuffer: ::core::option::Option<&mut [u8]>, dstsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetTextReplacement)(
            ::windows::core::Vtable::as_raw(self),
            srctext.into(),
            index,
            ::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            srcbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(srcsize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            dstbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(dstsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn SetTextReplacement<'a, P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextReplacement)(::windows::core::Vtable::as_raw(self), srctext.into(), dsttext.into()).ok()
    }
    pub unsafe fn RemoveTextReplacements(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveTextReplacements)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn OutputTextReplacements(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputTextReplacements)(::windows::core::Vtable::as_raw(self), outputcontrol, flags).ok()
    }
    pub unsafe fn GetAssemblyOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetAssemblyOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddAssemblyOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveAssemblyOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetAssemblyOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn GetExpressionSyntax(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExpressionSyntax)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetExpressionSyntax(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetExpressionSyntax)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn SetExpressionSyntaxByName<'a, P0>(&self, abbrevname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetExpressionSyntaxByName)(::windows::core::Vtable::as_raw(self), abbrevname.into()).ok()
    }
    pub unsafe fn GetNumberExpressionSyntaxes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberExpressionSyntaxes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetExpressionSyntaxNames)(
            ::windows::core::Vtable::as_raw(self),
            index,
            ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetNumberEvents(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberEvents)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetEventIndexDescription<'a, P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventIndexDescription)(::windows::core::Vtable::as_raw(self), index, which, buffer.into(), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentEventIndex(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentEventIndex)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetNextEventIndex(&self, relation: u32, value: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).SetNextEventIndex)(::windows::core::Vtable::as_raw(self), relation, value, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetLogFileWide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLogFileWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(append)).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OpenLogFileWide<'a, P0, P1>(&self, file: P0, append: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        (::windows::core::Vtable::vtable(self).OpenLogFileWide)(::windows::core::Vtable::as_raw(self), file.into(), append.into()).ok()
    }
    pub unsafe fn InputWide(&self, buffer: &mut [u16], inputsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).InputWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReturnInputWide<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ReturnInputWide)(::windows::core::Vtable::as_raw(self), buffer.into()).ok()
    }
    pub unsafe fn OutputWide<'a, P0>(&self, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputWide)(::windows::core::Vtable::as_raw(self), mask, format.into()).ok()
    }
    pub unsafe fn OutputVaListWide<'a, P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputVaListWide)(::windows::core::Vtable::as_raw(self), mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn ControlledOutputWide<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutputWide)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into()).ok()
    }
    pub unsafe fn ControlledOutputVaListWide<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutputVaListWide)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn OutputPromptWide<'a, P0>(&self, outputcontrol: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPromptWide)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into()).ok()
    }
    pub unsafe fn OutputPromptVaListWide<'a, P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPromptVaListWide)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn GetPromptTextWide(&self, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPromptTextWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn AssembleWide<'a, P0>(&self, offset: u64, instr: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AssembleWide)(::windows::core::Vtable::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn DisassembleWide(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u16]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DisassembleWide)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset)).ok()
    }
    pub unsafe fn GetProcessorTypeNamesWide(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetProcessorTypeNamesWide)(
            ::windows::core::Vtable::as_raw(self),
            r#type,
            ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetTextMacroWide(&self, slot: u32, buffer: ::core::option::Option<&mut [u16]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTextMacroWide)(::windows::core::Vtable::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetTextMacroWide<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextMacroWide)(::windows::core::Vtable::as_raw(self), slot, r#macro.into()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn EvaluateWide<'a, P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).EvaluateWide)(::windows::core::Vtable::as_raw(self), expression.into(), desiredtype, ::core::mem::transmute(value), ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ExecuteWide<'a, P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ExecuteWide)(::windows::core::Vtable::as_raw(self), outputcontrol, command.into(), flags).ok()
    }
    pub unsafe fn ExecuteCommandFileWide<'a, P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ExecuteCommandFileWide)(::windows::core::Vtable::as_raw(self), outputcontrol, commandfile.into(), flags).ok()
    }
    pub unsafe fn GetBreakpointByIndex2(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint2> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointByIndex2)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint2>(result__)
    }
    pub unsafe fn GetBreakpointById2(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint2> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointById2)(::windows::core::Vtable::as_raw(self), id, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint2>(result__)
    }
    pub unsafe fn AddBreakpoint2(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint2> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddBreakpoint2)(::windows::core::Vtable::as_raw(self), r#type, desiredid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint2>(result__)
    }
    pub unsafe fn RemoveBreakpoint2<'a, P0>(&self, bp: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugBreakpoint2>>,
    {
        (::windows::core::Vtable::vtable(self).RemoveBreakpoint2)(::windows::core::Vtable::as_raw(self), bp.into().abi()).ok()
    }
    pub unsafe fn AddExtensionWide<'a, P0>(&self, path: P0, flags: u32) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddExtensionWide)(::windows::core::Vtable::as_raw(self), path.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetExtensionByPathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExtensionByPathWide)(::windows::core::Vtable::as_raw(self), path.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn CallExtensionWide<'a, P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CallExtensionWide)(::windows::core::Vtable::as_raw(self), handle, function.into(), arguments.into()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetExtensionFunctionWide<'a, P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetExtensionFunctionWide)(::windows::core::Vtable::as_raw(self), handle, funcname.into(), ::core::mem::transmute(function)).ok()
    }
    pub unsafe fn GetEventFilterTextWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterTextWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetEventFilterCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterCommandWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetEventFilterCommandWide<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetEventFilterCommandWide)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSpecificFilterArgumentWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSpecificFilterArgumentWide<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSpecificFilterArgumentWide)(::windows::core::Vtable::as_raw(self), index, argument.into()).ok()
    }
    pub unsafe fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetExceptionFilterSecondCommandWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetExceptionFilterSecondCommandWide<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetExceptionFilterSecondCommandWide)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn GetLastEventInformationWide(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u16]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLastEventInformationWide)(
            ::windows::core::Vtable::as_raw(self),
            ::core::mem::transmute(r#type),
            ::core::mem::transmute(processid),
            ::core::mem::transmute(threadid),
            ::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
            extrainformationsize,
            ::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetTextReplacementWide<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u16]>, srcsize: ::core::option::Option<*mut u32>, dstbuffer: ::core::option::Option<&mut [u16]>, dstsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetTextReplacementWide)(
            ::windows::core::Vtable::as_raw(self),
            srctext.into(),
            index,
            ::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            srcbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(srcsize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            dstbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(dstsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn SetTextReplacementWide<'a, P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextReplacementWide)(::windows::core::Vtable::as_raw(self), srctext.into(), dsttext.into()).ok()
    }
    pub unsafe fn SetExpressionSyntaxByNameWide<'a, P0>(&self, abbrevname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetExpressionSyntaxByNameWide)(::windows::core::Vtable::as_raw(self), abbrevname.into()).ok()
    }
    pub unsafe fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetExpressionSyntaxNamesWide)(
            ::windows::core::Vtable::as_raw(self),
            index,
            ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetEventIndexDescriptionWide<'a, P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventIndexDescriptionWide)(::windows::core::Vtable::as_raw(self), index, which, buffer.into(), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetLogFile2(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, flags: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLogFile2)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(flags)).ok()
    }
    pub unsafe fn OpenLogFile2<'a, P0>(&self, file: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenLogFile2)(::windows::core::Vtable::as_raw(self), file.into(), flags).ok()
    }
    pub unsafe fn GetLogFile2Wide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, flags: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLogFile2Wide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(flags)).ok()
    }
    pub unsafe fn OpenLogFile2Wide<'a, P0>(&self, file: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenLogFile2Wide)(::windows::core::Vtable::as_raw(self), file.into(), flags).ok()
    }
    pub unsafe fn GetSystemVersionValues(&self, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: ::core::option::Option<*mut u32>, kdminor: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemVersionValues)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(platformid), ::core::mem::transmute(win32major), ::core::mem::transmute(win32minor), ::core::mem::transmute(kdmajor.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(kdminor.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSystemVersionString(&self, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemVersionString)(::windows::core::Vtable::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSystemVersionStringWide(&self, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemVersionStringWide)(::windows::core::Vtable::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetContextStackTrace(&self, startcontext: ::core::option::Option<*const ::core::ffi::c_void>, startcontextsize: u32, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME]>, framecontexts: ::core::option::Option<*mut ::core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetContextStackTrace)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(startcontext.unwrap_or(::std::ptr::null())), startcontextsize, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(framecontexts.unwrap_or(::std::ptr::null_mut())), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OutputContextStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputContextStackTrace)(::windows::core::Vtable::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, flags).ok()
    }
    pub unsafe fn GetStoredEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, context: ::core::option::Option<*mut ::core::ffi::c_void>, contextsize: u32, contextused: ::core::option::Option<*mut u32>, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetStoredEventInformation)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(r#type), ::core::mem::transmute(processid), ::core::mem::transmute(threadid), ::core::mem::transmute(context.unwrap_or(::std::ptr::null_mut())), contextsize, ::core::mem::transmute(contextused.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())), extrainformationsize, ::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetManagedStatus(&self, flags: ::core::option::Option<*mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u8]>, stringneeded: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetManagedStatus)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(flags.unwrap_or(::std::ptr::null_mut())), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringneeded.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetManagedStatusWide(&self, flags: ::core::option::Option<*mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u16]>, stringneeded: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetManagedStatusWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(flags.unwrap_or(::std::ptr::null_mut())), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringneeded.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ResetManagedStatus(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ResetManagedStatus)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetStackTraceEx(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME_EX], framesfilled: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetStackTraceEx)(::windows::core::Vtable::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OutputStackTraceEx(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME_EX]>, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputStackTraceEx)(::windows::core::Vtable::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), flags).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetContextStackTraceEx(&self, startcontext: ::core::option::Option<*const ::core::ffi::c_void>, startcontextsize: u32, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME_EX]>, framecontexts: ::core::option::Option<*mut ::core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetContextStackTraceEx)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(startcontext.unwrap_or(::std::ptr::null())), startcontextsize, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(framecontexts.unwrap_or(::std::ptr::null_mut())), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OutputContextStackTraceEx(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME_EX], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputContextStackTraceEx)(::windows::core::Vtable::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, flags).ok()
    }
    pub unsafe fn GetBreakpointByGuid(&self, guid: *const ::windows::core::GUID) -> ::windows::core::Result<IDebugBreakpoint3> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointByGuid)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint3>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugControl5, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugControl5 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugControl5 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugControl5 {}
impl ::core::fmt::Debug for IDebugControl5 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugControl5").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugControl5 {
    type Vtable = IDebugControl5_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugControl5 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb2ffe162_2412_429f_8d1d_5bf6dd824696);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugControl5_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub GetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows::core::HRESULT,
    pub SetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetLogFile: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OpenLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, append: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OpenLogFile: usize,
    pub CloseLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub Input: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT,
    pub ReturnInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub Output: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub ControlledOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub ControlledOutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub OutputPrompt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputPromptVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub GetPromptText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub OutputCurrentState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT,
    pub OutputVersionInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows::core::HRESULT,
    pub GetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT,
    pub SetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub Assemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCSTR, endoffset: *mut u64) -> ::windows::core::HRESULT,
    pub Disassemble: unsafe extern "system" fn(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,
    pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub OutputDisassembly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows::core::HRESULT,
    pub OutputDisassemblyLines: unsafe extern "system" fn(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,
    pub GetNearInstruction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetStackTrace: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetStackTrace: usize,
    pub GetReturnOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub OutputStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OutputStackTrace: usize,
    pub GetDebuggeeType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows::core::HRESULT,
    pub GetActualProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub GetExecutingProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberProcessors: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetSystemVersion: unsafe extern "system" fn(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,
    pub GetPageSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows::core::HRESULT,
    pub IsPointer64Bit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ReadBugCheckData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::HRESULT,
    pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT,
    pub GetProcessorTypeNames: unsafe extern "system" fn(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,
    pub GetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub SetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows::core::HRESULT,
    pub GetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows::core::HRESULT,
    pub SetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: u32) -> ::windows::core::HRESULT,
    pub GetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows::core::HRESULT,
    pub SetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: u32) -> ::windows::core::HRESULT,
    pub GetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub GetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::HRESULT,
    pub SetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows::core::HRESULT,
    pub GetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT,
    pub SetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows::core::HRESULT,
    pub SetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub Evaluate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    Evaluate: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub CoerceValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    CoerceValue: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub CoerceValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    CoerceValues: usize,
    pub Execute: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub ExecuteCommandFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetNumberBreakpoints: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetBreakpointByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetBreakpointById: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetBreakpointParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::HRESULT,
    pub AddBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub RemoveBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT,
    pub RemoveExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub GetExtensionByPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub CallExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCSTR, arguments: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetExtensionFunction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCSTR, function: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetExtensionFunction: usize,
    #[cfg(feature = "Win32_System_Kernel")]
    pub GetWindbgExtensionApis32: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Kernel"))]
    GetWindbgExtensionApis32: usize,
    #[cfg(feature = "Win32_System_Kernel")]
    pub GetWindbgExtensionApis64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Kernel"))]
    GetWindbgExtensionApis64: usize,
    pub GetNumberEventFilters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventFilterText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub SetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub SetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub WaitForEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows::core::HRESULT,
    pub GetLastEventInformation: unsafe extern "system" fn(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,
    pub GetCurrentTimeDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timedate: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentSystemUpTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows::core::HRESULT,
    pub GetDumpFormatFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, formatflags: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numrepl: *mut u32) -> ::windows::core::HRESULT,
    pub GetTextReplacement: unsafe extern "system" fn(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,
    pub SetTextReplacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCSTR, dsttext: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub RemoveTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OutputTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT,
    pub GetAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub GetExpressionSyntax: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows::core::HRESULT,
    pub SetExpressionSyntax: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub SetExpressionSyntaxByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, abbrevname: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetNumberExpressionSyntaxes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetExpressionSyntaxNames: unsafe extern "system" fn(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,
    pub GetNumberEvents: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, events: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventIndexDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows::core::PCSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentEventIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows::core::HRESULT,
    pub SetNextEventIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, relation: u32, value: u32, nextindex: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetLogFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetLogFileWide: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OpenLogFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, append: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OpenLogFileWide: usize,
    pub InputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT,
    pub ReturnInputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub OutputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub OutputVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub ControlledOutputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub ControlledOutputVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub OutputPromptWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub OutputPromptVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub GetPromptTextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub AssembleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCWSTR, endoffset: *mut u64) -> ::windows::core::HRESULT,
    pub DisassembleWide: unsafe extern "system" fn(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,
    pub GetProcessorTypeNamesWide: unsafe extern "system" fn(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,
    pub GetTextMacroWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PWSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT,
    pub SetTextMacroWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub EvaluateWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCWSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    EvaluateWide: usize,
    pub ExecuteWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT,
    pub ExecuteCommandFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetBreakpointByIndex2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetBreakpointById2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddBreakpoint2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub RemoveBreakpoint2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddExtensionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetExtensionByPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub CallExtensionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCWSTR, arguments: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetExtensionFunctionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCWSTR, function: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetExtensionFunctionWide: usize,
    pub GetEventFilterTextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventFilterCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetEventFilterCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetSpecificFilterArgumentWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSpecificFilterArgumentWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetExceptionFilterSecondCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetExceptionFilterSecondCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetLastEventInformationWide: unsafe extern "system" fn(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,
    pub GetTextReplacementWide: unsafe extern "system" fn(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,
    pub SetTextReplacementWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCWSTR, dsttext: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub SetExpressionSyntaxByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, abbrevname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetExpressionSyntaxNamesWide: unsafe extern "system" fn(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,
    pub GetEventIndexDescriptionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows::core::PCWSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetLogFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::HRESULT,
    pub OpenLogFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetLogFile2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::HRESULT,
    pub OpenLogFile2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetSystemVersionValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: *mut u32, kdminor: *mut u32) -> ::windows::core::HRESULT,
    pub GetSystemVersionString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetSystemVersionStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetContextStackTrace: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetContextStackTrace: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OutputContextStackTrace: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    OutputContextStackTrace: usize,
    pub GetStoredEventInformation: unsafe extern "system" fn(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,
    pub GetManagedStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows::core::PSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::HRESULT,
    pub GetManagedStatusWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows::core::PWSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::HRESULT,
    pub ResetManagedStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetStackTraceEx: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetStackTraceEx: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OutputStackTraceEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, flags: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OutputStackTraceEx: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub GetContextStackTraceEx: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetContextStackTraceEx: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OutputContextStackTraceEx: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    OutputContextStackTraceEx: usize,
    pub GetBreakpointByGuid: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, guid: *const ::windows::core::GUID, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugControl6(::windows::core::IUnknown);
impl IDebugControl6 {
    pub unsafe fn GetInterrupt(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetInterrupt)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn SetInterrupt(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetInterrupt)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn GetInterruptTimeout(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInterruptTimeout)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetInterruptTimeout(&self, seconds: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetInterruptTimeout)(::windows::core::Vtable::as_raw(self), seconds).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLogFile)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(append)).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OpenLogFile<'a, P0, P1>(&self, file: P0, append: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        (::windows::core::Vtable::vtable(self).OpenLogFile)(::windows::core::Vtable::as_raw(self), file.into(), append.into()).ok()
    }
    pub unsafe fn CloseLogFile(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).CloseLogFile)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetLogMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetLogMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetLogMask(&self, mask: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetLogMask)(::windows::core::Vtable::as_raw(self), mask).ok()
    }
    pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Input)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReturnInput<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ReturnInput)(::windows::core::Vtable::as_raw(self), buffer.into()).ok()
    }
    pub unsafe fn Output<'a, P0>(&self, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Output)(::windows::core::Vtable::as_raw(self), mask, format.into()).ok()
    }
    pub unsafe fn OutputVaList<'a, P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputVaList)(::windows::core::Vtable::as_raw(self), mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn ControlledOutput<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutput)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into()).ok()
    }
    pub unsafe fn ControlledOutputVaList<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutputVaList)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn OutputPrompt<'a, P0>(&self, outputcontrol: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPrompt)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into()).ok()
    }
    pub unsafe fn OutputPromptVaList<'a, P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPromptVaList)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPromptText)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputCurrentState)(::windows::core::Vtable::as_raw(self), outputcontrol, flags).ok()
    }
    pub unsafe fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputVersionInformation)(::windows::core::Vtable::as_raw(self), outputcontrol).ok()
    }
    pub unsafe fn GetNotifyEventHandle(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNotifyEventHandle)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn SetNotifyEventHandle(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetNotifyEventHandle)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn Assemble<'a, P0>(&self, offset: u64, instr: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Assemble)(::windows::core::Vtable::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Disassemble)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset)).ok()
    }
    pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDisassembleEffectiveOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).OutputDisassembly)(::windows::core::Vtable::as_raw(self), outputcontrol, offset, flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<*mut u32>, startoffset: ::core::option::Option<*mut u64>, endoffset: ::core::option::Option<*mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputDisassemblyLines)(::windows::core::Vtable::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len() as _), offset, flags, ::core::mem::transmute(offsetline.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(startoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok()
    }
    pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNearInstruction)(::windows::core::Vtable::as_raw(self), offset, delta, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetStackTrace)(::windows::core::Vtable::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetReturnOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetReturnOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputStackTrace)(::windows::core::Vtable::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), flags).ok()
    }
    pub unsafe fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDebuggeeType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(class), ::core::mem::transmute(qualifier)).ok()
    }
    pub unsafe fn GetActualProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetActualProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetExecutingProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExecutingProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Vtable::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok()
    }
    pub unsafe fn GetNumberProcessors(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberProcessors)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<*mut u32>, servicepacknumber: *mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemVersion)(
            ::windows::core::Vtable::as_raw(self),
            ::core::mem::transmute(platformid),
            ::core::mem::transmute(major),
            ::core::mem::transmute(minor),
            ::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            servicepackstring.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(servicepackstringused.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(servicepacknumber),
            ::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            buildstring.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(buildstringused.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetPageSize(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetPageSize)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn IsPointer64Bit(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).IsPointer64Bit)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadBugCheckData)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(code), ::core::mem::transmute(arg1), ::core::mem::transmute(arg2), ::core::mem::transmute(arg3), ::core::mem::transmute(arg4)).ok()
    }
    pub unsafe fn GetNumberSupportedProcessorTypes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberSupportedProcessorTypes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSupportedProcessorTypes)(::windows::core::Vtable::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok()
    }
    pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetProcessorTypeNames)(
            ::windows::core::Vtable::as_raw(self),
            r#type,
            ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEffectiveProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetEffectiveProcessorType)(::windows::core::Vtable::as_raw(self), r#type).ok()
    }
    pub unsafe fn GetExecutionStatus(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExecutionStatus)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetExecutionStatus(&self, status: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetExecutionStatus)(::windows::core::Vtable::as_raw(self), status).ok()
    }
    pub unsafe fn GetCodeLevel(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCodeLevel)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetCodeLevel(&self, level: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetCodeLevel)(::windows::core::Vtable::as_raw(self), level).ok()
    }
    pub unsafe fn GetEngineOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEngineOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemErrorControl)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(outputlevel), ::core::mem::transmute(breaklevel)).ok()
    }
    pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetSystemErrorControl)(::windows::core::Vtable::as_raw(self), outputlevel, breaklevel).ok()
    }
    pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTextMacro)(::windows::core::Vtable::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetTextMacro<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextMacro)(::windows::core::Vtable::as_raw(self), slot, r#macro.into()).ok()
    }
    pub unsafe fn GetRadix(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRadix)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetRadix(&self, radix: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetRadix)(::windows::core::Vtable::as_raw(self), radix).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn Evaluate<'a, P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Evaluate)(::windows::core::Vtable::as_raw(self), expression.into(), desiredtype, ::core::mem::transmute(value), ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32) -> ::windows::core::Result<DEBUG_VALUE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CoerceValue)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(r#in), outtype, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_VALUE>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32) -> ::windows::core::Result<DEBUG_VALUE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CoerceValues)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(r#in), ::core::mem::transmute(outtypes), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_VALUE>(result__)
    }
    pub unsafe fn Execute<'a, P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Execute)(::windows::core::Vtable::as_raw(self), outputcontrol, command.into(), flags).ok()
    }
    pub unsafe fn ExecuteCommandFile<'a, P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ExecuteCommandFile)(::windows::core::Vtable::as_raw(self), outputcontrol, commandfile.into(), flags).ok()
    }
    pub unsafe fn GetNumberBreakpoints(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberBreakpoints)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointByIndex)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn GetBreakpointById(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointById)(::windows::core::Vtable::as_raw(self), id, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<*const u32>, start: u32) -> ::windows::core::Result<DEBUG_BREAKPOINT_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointParameters)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_BREAKPOINT_PARAMETERS>(result__)
    }
    pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddBreakpoint)(::windows::core::Vtable::as_raw(self), r#type, desiredid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn RemoveBreakpoint<'a, P0>(&self, bp: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugBreakpoint>>,
    {
        (::windows::core::Vtable::vtable(self).RemoveBreakpoint)(::windows::core::Vtable::as_raw(self), bp.into().abi()).ok()
    }
    pub unsafe fn AddExtension<'a, P0>(&self, path: P0, flags: u32) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddExtension)(::windows::core::Vtable::as_raw(self), path.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn RemoveExtension(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveExtension)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn GetExtensionByPath<'a, P0>(&self, path: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExtensionByPath)(::windows::core::Vtable::as_raw(self), path.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn CallExtension<'a, P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CallExtension)(::windows::core::Vtable::as_raw(self), handle, function.into(), arguments.into()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetExtensionFunction<'a, P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetExtensionFunction)(::windows::core::Vtable::as_raw(self), handle, funcname.into(), ::core::mem::transmute(function)).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Kernel\"`*"]
    #[cfg(feature = "Win32_System_Kernel")]
    pub unsafe fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetWindbgExtensionApis32)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(api)).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Kernel\"`*"]
    #[cfg(feature = "Win32_System_Kernel")]
    pub unsafe fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetWindbgExtensionApis64)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(api)).ok()
    }
    pub unsafe fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNumberEventFilters)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(specificevents), ::core::mem::transmute(specificexceptions), ::core::mem::transmute(arbitraryexceptions)).ok()
    }
    pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterText)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterCommand)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetEventFilterCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetEventFilterCommand)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSpecificFilterParameters)(::windows::core::Vtable::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetSpecificFilterParameters)(::windows::core::Vtable::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSpecificFilterArgument)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSpecificFilterArgument<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSpecificFilterArgument)(::windows::core::Vtable::as_raw(self), index, argument.into()).ok()
    }
    pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<*const u32>, start: u32) -> ::windows::core::Result<DEBUG_EXCEPTION_FILTER_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExceptionFilterParameters)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(codes.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_EXCEPTION_FILTER_PARAMETERS>(result__)
    }
    pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetExceptionFilterParameters)(::windows::core::Vtable::as_raw(self), params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetExceptionFilterSecondCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetExceptionFilterSecondCommand)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WaitForEvent)(::windows::core::Vtable::as_raw(self), flags, timeout).ok()
    }
    pub unsafe fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLastEventInformation)(
            ::windows::core::Vtable::as_raw(self),
            ::core::mem::transmute(r#type),
            ::core::mem::transmute(processid),
            ::core::mem::transmute(threadid),
            ::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
            extrainformationsize,
            ::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetCurrentTimeDate(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentTimeDate)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentSystemUpTime(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentSystemUpTime)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetDumpFormatFlags(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDumpFormatFlags)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberTextReplacements(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberTextReplacements)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetTextReplacement<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u8]>, srcsize: ::core::option::Option<*mut u32>, dstbuffer: ::core::option::Option<&mut [u8]>, dstsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetTextReplacement)(
            ::windows::core::Vtable::as_raw(self),
            srctext.into(),
            index,
            ::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            srcbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(srcsize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            dstbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(dstsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn SetTextReplacement<'a, P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextReplacement)(::windows::core::Vtable::as_raw(self), srctext.into(), dsttext.into()).ok()
    }
    pub unsafe fn RemoveTextReplacements(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveTextReplacements)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn OutputTextReplacements(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputTextReplacements)(::windows::core::Vtable::as_raw(self), outputcontrol, flags).ok()
    }
    pub unsafe fn GetAssemblyOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetAssemblyOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddAssemblyOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveAssemblyOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetAssemblyOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn GetExpressionSyntax(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExpressionSyntax)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetExpressionSyntax(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetExpressionSyntax)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn SetExpressionSyntaxByName<'a, P0>(&self, abbrevname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetExpressionSyntaxByName)(::windows::core::Vtable::as_raw(self), abbrevname.into()).ok()
    }
    pub unsafe fn GetNumberExpressionSyntaxes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberExpressionSyntaxes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetExpressionSyntaxNames)(
            ::windows::core::Vtable::as_raw(self),
            index,
            ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetNumberEvents(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberEvents)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetEventIndexDescription<'a, P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventIndexDescription)(::windows::core::Vtable::as_raw(self), index, which, buffer.into(), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentEventIndex(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentEventIndex)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetNextEventIndex(&self, relation: u32, value: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).SetNextEventIndex)(::windows::core::Vtable::as_raw(self), relation, value, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetLogFileWide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLogFileWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(append)).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OpenLogFileWide<'a, P0, P1>(&self, file: P0, append: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        (::windows::core::Vtable::vtable(self).OpenLogFileWide)(::windows::core::Vtable::as_raw(self), file.into(), append.into()).ok()
    }
    pub unsafe fn InputWide(&self, buffer: &mut [u16], inputsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).InputWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReturnInputWide<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ReturnInputWide)(::windows::core::Vtable::as_raw(self), buffer.into()).ok()
    }
    pub unsafe fn OutputWide<'a, P0>(&self, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputWide)(::windows::core::Vtable::as_raw(self), mask, format.into()).ok()
    }
    pub unsafe fn OutputVaListWide<'a, P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputVaListWide)(::windows::core::Vtable::as_raw(self), mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn ControlledOutputWide<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutputWide)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into()).ok()
    }
    pub unsafe fn ControlledOutputVaListWide<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutputVaListWide)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn OutputPromptWide<'a, P0>(&self, outputcontrol: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPromptWide)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into()).ok()
    }
    pub unsafe fn OutputPromptVaListWide<'a, P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPromptVaListWide)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn GetPromptTextWide(&self, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPromptTextWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn AssembleWide<'a, P0>(&self, offset: u64, instr: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AssembleWide)(::windows::core::Vtable::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn DisassembleWide(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u16]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DisassembleWide)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset)).ok()
    }
    pub unsafe fn GetProcessorTypeNamesWide(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetProcessorTypeNamesWide)(
            ::windows::core::Vtable::as_raw(self),
            r#type,
            ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetTextMacroWide(&self, slot: u32, buffer: ::core::option::Option<&mut [u16]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTextMacroWide)(::windows::core::Vtable::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetTextMacroWide<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextMacroWide)(::windows::core::Vtable::as_raw(self), slot, r#macro.into()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn EvaluateWide<'a, P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).EvaluateWide)(::windows::core::Vtable::as_raw(self), expression.into(), desiredtype, ::core::mem::transmute(value), ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ExecuteWide<'a, P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ExecuteWide)(::windows::core::Vtable::as_raw(self), outputcontrol, command.into(), flags).ok()
    }
    pub unsafe fn ExecuteCommandFileWide<'a, P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ExecuteCommandFileWide)(::windows::core::Vtable::as_raw(self), outputcontrol, commandfile.into(), flags).ok()
    }
    pub unsafe fn GetBreakpointByIndex2(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint2> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointByIndex2)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint2>(result__)
    }
    pub unsafe fn GetBreakpointById2(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint2> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointById2)(::windows::core::Vtable::as_raw(self), id, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint2>(result__)
    }
    pub unsafe fn AddBreakpoint2(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint2> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddBreakpoint2)(::windows::core::Vtable::as_raw(self), r#type, desiredid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint2>(result__)
    }
    pub unsafe fn RemoveBreakpoint2<'a, P0>(&self, bp: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugBreakpoint2>>,
    {
        (::windows::core::Vtable::vtable(self).RemoveBreakpoint2)(::windows::core::Vtable::as_raw(self), bp.into().abi()).ok()
    }
    pub unsafe fn AddExtensionWide<'a, P0>(&self, path: P0, flags: u32) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddExtensionWide)(::windows::core::Vtable::as_raw(self), path.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetExtensionByPathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExtensionByPathWide)(::windows::core::Vtable::as_raw(self), path.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn CallExtensionWide<'a, P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CallExtensionWide)(::windows::core::Vtable::as_raw(self), handle, function.into(), arguments.into()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetExtensionFunctionWide<'a, P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetExtensionFunctionWide)(::windows::core::Vtable::as_raw(self), handle, funcname.into(), ::core::mem::transmute(function)).ok()
    }
    pub unsafe fn GetEventFilterTextWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterTextWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetEventFilterCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterCommandWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetEventFilterCommandWide<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetEventFilterCommandWide)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSpecificFilterArgumentWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSpecificFilterArgumentWide<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSpecificFilterArgumentWide)(::windows::core::Vtable::as_raw(self), index, argument.into()).ok()
    }
    pub unsafe fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetExceptionFilterSecondCommandWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetExceptionFilterSecondCommandWide<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetExceptionFilterSecondCommandWide)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn GetLastEventInformationWide(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u16]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLastEventInformationWide)(
            ::windows::core::Vtable::as_raw(self),
            ::core::mem::transmute(r#type),
            ::core::mem::transmute(processid),
            ::core::mem::transmute(threadid),
            ::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
            extrainformationsize,
            ::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetTextReplacementWide<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u16]>, srcsize: ::core::option::Option<*mut u32>, dstbuffer: ::core::option::Option<&mut [u16]>, dstsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetTextReplacementWide)(
            ::windows::core::Vtable::as_raw(self),
            srctext.into(),
            index,
            ::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            srcbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(srcsize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            dstbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(dstsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn SetTextReplacementWide<'a, P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextReplacementWide)(::windows::core::Vtable::as_raw(self), srctext.into(), dsttext.into()).ok()
    }
    pub unsafe fn SetExpressionSyntaxByNameWide<'a, P0>(&self, abbrevname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetExpressionSyntaxByNameWide)(::windows::core::Vtable::as_raw(self), abbrevname.into()).ok()
    }
    pub unsafe fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetExpressionSyntaxNamesWide)(
            ::windows::core::Vtable::as_raw(self),
            index,
            ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetEventIndexDescriptionWide<'a, P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventIndexDescriptionWide)(::windows::core::Vtable::as_raw(self), index, which, buffer.into(), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetLogFile2(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, flags: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLogFile2)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(flags)).ok()
    }
    pub unsafe fn OpenLogFile2<'a, P0>(&self, file: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenLogFile2)(::windows::core::Vtable::as_raw(self), file.into(), flags).ok()
    }
    pub unsafe fn GetLogFile2Wide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, flags: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLogFile2Wide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(flags)).ok()
    }
    pub unsafe fn OpenLogFile2Wide<'a, P0>(&self, file: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenLogFile2Wide)(::windows::core::Vtable::as_raw(self), file.into(), flags).ok()
    }
    pub unsafe fn GetSystemVersionValues(&self, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: ::core::option::Option<*mut u32>, kdminor: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemVersionValues)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(platformid), ::core::mem::transmute(win32major), ::core::mem::transmute(win32minor), ::core::mem::transmute(kdmajor.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(kdminor.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSystemVersionString(&self, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemVersionString)(::windows::core::Vtable::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSystemVersionStringWide(&self, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemVersionStringWide)(::windows::core::Vtable::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetContextStackTrace(&self, startcontext: ::core::option::Option<*const ::core::ffi::c_void>, startcontextsize: u32, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME]>, framecontexts: ::core::option::Option<*mut ::core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetContextStackTrace)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(startcontext.unwrap_or(::std::ptr::null())), startcontextsize, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(framecontexts.unwrap_or(::std::ptr::null_mut())), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OutputContextStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputContextStackTrace)(::windows::core::Vtable::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, flags).ok()
    }
    pub unsafe fn GetStoredEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, context: ::core::option::Option<*mut ::core::ffi::c_void>, contextsize: u32, contextused: ::core::option::Option<*mut u32>, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetStoredEventInformation)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(r#type), ::core::mem::transmute(processid), ::core::mem::transmute(threadid), ::core::mem::transmute(context.unwrap_or(::std::ptr::null_mut())), contextsize, ::core::mem::transmute(contextused.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())), extrainformationsize, ::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetManagedStatus(&self, flags: ::core::option::Option<*mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u8]>, stringneeded: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetManagedStatus)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(flags.unwrap_or(::std::ptr::null_mut())), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringneeded.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetManagedStatusWide(&self, flags: ::core::option::Option<*mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u16]>, stringneeded: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetManagedStatusWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(flags.unwrap_or(::std::ptr::null_mut())), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringneeded.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ResetManagedStatus(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ResetManagedStatus)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetStackTraceEx(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME_EX], framesfilled: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetStackTraceEx)(::windows::core::Vtable::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OutputStackTraceEx(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME_EX]>, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputStackTraceEx)(::windows::core::Vtable::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), flags).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetContextStackTraceEx(&self, startcontext: ::core::option::Option<*const ::core::ffi::c_void>, startcontextsize: u32, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME_EX]>, framecontexts: ::core::option::Option<*mut ::core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetContextStackTraceEx)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(startcontext.unwrap_or(::std::ptr::null())), startcontextsize, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(framecontexts.unwrap_or(::std::ptr::null_mut())), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OutputContextStackTraceEx(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME_EX], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputContextStackTraceEx)(::windows::core::Vtable::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, flags).ok()
    }
    pub unsafe fn GetBreakpointByGuid(&self, guid: *const ::windows::core::GUID) -> ::windows::core::Result<IDebugBreakpoint3> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointByGuid)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint3>(result__)
    }
    pub unsafe fn GetExecutionStatusEx(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExecutionStatusEx)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSynchronizationStatus(&self, sendsattempted: *mut u32, secondssincelastresponse: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSynchronizationStatus)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(sendsattempted), ::core::mem::transmute(secondssincelastresponse)).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugControl6, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugControl6 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugControl6 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugControl6 {}
impl ::core::fmt::Debug for IDebugControl6 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugControl6").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugControl6 {
    type Vtable = IDebugControl6_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugControl6 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbc0d583f_126d_43a1_9cc4_a860ab1d537b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugControl6_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub GetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows::core::HRESULT,
    pub SetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetLogFile: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OpenLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, append: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OpenLogFile: usize,
    pub CloseLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub Input: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT,
    pub ReturnInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub Output: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub ControlledOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub ControlledOutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub OutputPrompt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputPromptVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub GetPromptText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub OutputCurrentState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT,
    pub OutputVersionInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows::core::HRESULT,
    pub GetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT,
    pub SetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub Assemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCSTR, endoffset: *mut u64) -> ::windows::core::HRESULT,
    pub Disassemble: unsafe extern "system" fn(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,
    pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub OutputDisassembly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows::core::HRESULT,
    pub OutputDisassemblyLines: unsafe extern "system" fn(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,
    pub GetNearInstruction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetStackTrace: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetStackTrace: usize,
    pub GetReturnOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub OutputStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OutputStackTrace: usize,
    pub GetDebuggeeType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows::core::HRESULT,
    pub GetActualProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub GetExecutingProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberProcessors: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetSystemVersion: unsafe extern "system" fn(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,
    pub GetPageSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows::core::HRESULT,
    pub IsPointer64Bit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ReadBugCheckData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::HRESULT,
    pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT,
    pub GetProcessorTypeNames: unsafe extern "system" fn(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,
    pub GetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub SetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows::core::HRESULT,
    pub GetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows::core::HRESULT,
    pub SetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: u32) -> ::windows::core::HRESULT,
    pub GetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows::core::HRESULT,
    pub SetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: u32) -> ::windows::core::HRESULT,
    pub GetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub GetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::HRESULT,
    pub SetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows::core::HRESULT,
    pub GetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT,
    pub SetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows::core::HRESULT,
    pub SetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub Evaluate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    Evaluate: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub CoerceValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    CoerceValue: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub CoerceValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    CoerceValues: usize,
    pub Execute: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub ExecuteCommandFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetNumberBreakpoints: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetBreakpointByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetBreakpointById: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetBreakpointParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::HRESULT,
    pub AddBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub RemoveBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT,
    pub RemoveExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub GetExtensionByPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub CallExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCSTR, arguments: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetExtensionFunction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCSTR, function: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetExtensionFunction: usize,
    #[cfg(feature = "Win32_System_Kernel")]
    pub GetWindbgExtensionApis32: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Kernel"))]
    GetWindbgExtensionApis32: usize,
    #[cfg(feature = "Win32_System_Kernel")]
    pub GetWindbgExtensionApis64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Kernel"))]
    GetWindbgExtensionApis64: usize,
    pub GetNumberEventFilters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventFilterText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub SetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub SetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub WaitForEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows::core::HRESULT,
    pub GetLastEventInformation: unsafe extern "system" fn(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,
    pub GetCurrentTimeDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timedate: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentSystemUpTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows::core::HRESULT,
    pub GetDumpFormatFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, formatflags: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numrepl: *mut u32) -> ::windows::core::HRESULT,
    pub GetTextReplacement: unsafe extern "system" fn(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,
    pub SetTextReplacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCSTR, dsttext: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub RemoveTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OutputTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT,
    pub GetAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub GetExpressionSyntax: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows::core::HRESULT,
    pub SetExpressionSyntax: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub SetExpressionSyntaxByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, abbrevname: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetNumberExpressionSyntaxes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetExpressionSyntaxNames: unsafe extern "system" fn(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,
    pub GetNumberEvents: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, events: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventIndexDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows::core::PCSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentEventIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows::core::HRESULT,
    pub SetNextEventIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, relation: u32, value: u32, nextindex: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetLogFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetLogFileWide: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OpenLogFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, append: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OpenLogFileWide: usize,
    pub InputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT,
    pub ReturnInputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub OutputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub OutputVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub ControlledOutputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub ControlledOutputVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub OutputPromptWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub OutputPromptVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub GetPromptTextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub AssembleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCWSTR, endoffset: *mut u64) -> ::windows::core::HRESULT,
    pub DisassembleWide: unsafe extern "system" fn(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,
    pub GetProcessorTypeNamesWide: unsafe extern "system" fn(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,
    pub GetTextMacroWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PWSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT,
    pub SetTextMacroWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub EvaluateWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCWSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    EvaluateWide: usize,
    pub ExecuteWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT,
    pub ExecuteCommandFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetBreakpointByIndex2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetBreakpointById2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddBreakpoint2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub RemoveBreakpoint2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddExtensionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetExtensionByPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub CallExtensionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCWSTR, arguments: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetExtensionFunctionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCWSTR, function: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetExtensionFunctionWide: usize,
    pub GetEventFilterTextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventFilterCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetEventFilterCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetSpecificFilterArgumentWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSpecificFilterArgumentWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetExceptionFilterSecondCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetExceptionFilterSecondCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetLastEventInformationWide: unsafe extern "system" fn(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,
    pub GetTextReplacementWide: unsafe extern "system" fn(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,
    pub SetTextReplacementWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCWSTR, dsttext: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub SetExpressionSyntaxByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, abbrevname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetExpressionSyntaxNamesWide: unsafe extern "system" fn(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,
    pub GetEventIndexDescriptionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows::core::PCWSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetLogFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::HRESULT,
    pub OpenLogFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetLogFile2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::HRESULT,
    pub OpenLogFile2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetSystemVersionValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: *mut u32, kdminor: *mut u32) -> ::windows::core::HRESULT,
    pub GetSystemVersionString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetSystemVersionStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetContextStackTrace: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetContextStackTrace: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OutputContextStackTrace: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    OutputContextStackTrace: usize,
    pub GetStoredEventInformation: unsafe extern "system" fn(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,
    pub GetManagedStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows::core::PSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::HRESULT,
    pub GetManagedStatusWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows::core::PWSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::HRESULT,
    pub ResetManagedStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetStackTraceEx: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetStackTraceEx: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OutputStackTraceEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, flags: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OutputStackTraceEx: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub GetContextStackTraceEx: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetContextStackTraceEx: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OutputContextStackTraceEx: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    OutputContextStackTraceEx: usize,
    pub GetBreakpointByGuid: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, guid: *const ::windows::core::GUID, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetExecutionStatusEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows::core::HRESULT,
    pub GetSynchronizationStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sendsattempted: *mut u32, secondssincelastresponse: *mut u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugControl7(::windows::core::IUnknown);
impl IDebugControl7 {
    pub unsafe fn GetInterrupt(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetInterrupt)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn SetInterrupt(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetInterrupt)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn GetInterruptTimeout(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInterruptTimeout)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetInterruptTimeout(&self, seconds: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetInterruptTimeout)(::windows::core::Vtable::as_raw(self), seconds).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLogFile)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(append)).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OpenLogFile<'a, P0, P1>(&self, file: P0, append: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        (::windows::core::Vtable::vtable(self).OpenLogFile)(::windows::core::Vtable::as_raw(self), file.into(), append.into()).ok()
    }
    pub unsafe fn CloseLogFile(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).CloseLogFile)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetLogMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetLogMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetLogMask(&self, mask: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetLogMask)(::windows::core::Vtable::as_raw(self), mask).ok()
    }
    pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Input)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReturnInput<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ReturnInput)(::windows::core::Vtable::as_raw(self), buffer.into()).ok()
    }
    pub unsafe fn Output<'a, P0>(&self, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Output)(::windows::core::Vtable::as_raw(self), mask, format.into()).ok()
    }
    pub unsafe fn OutputVaList<'a, P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputVaList)(::windows::core::Vtable::as_raw(self), mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn ControlledOutput<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutput)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into()).ok()
    }
    pub unsafe fn ControlledOutputVaList<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutputVaList)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn OutputPrompt<'a, P0>(&self, outputcontrol: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPrompt)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into()).ok()
    }
    pub unsafe fn OutputPromptVaList<'a, P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPromptVaList)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPromptText)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputCurrentState)(::windows::core::Vtable::as_raw(self), outputcontrol, flags).ok()
    }
    pub unsafe fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputVersionInformation)(::windows::core::Vtable::as_raw(self), outputcontrol).ok()
    }
    pub unsafe fn GetNotifyEventHandle(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNotifyEventHandle)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn SetNotifyEventHandle(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetNotifyEventHandle)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn Assemble<'a, P0>(&self, offset: u64, instr: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Assemble)(::windows::core::Vtable::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Disassemble)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset)).ok()
    }
    pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDisassembleEffectiveOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).OutputDisassembly)(::windows::core::Vtable::as_raw(self), outputcontrol, offset, flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<*mut u32>, startoffset: ::core::option::Option<*mut u64>, endoffset: ::core::option::Option<*mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputDisassemblyLines)(::windows::core::Vtable::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len() as _), offset, flags, ::core::mem::transmute(offsetline.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(startoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok()
    }
    pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNearInstruction)(::windows::core::Vtable::as_raw(self), offset, delta, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetStackTrace)(::windows::core::Vtable::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetReturnOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetReturnOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputStackTrace)(::windows::core::Vtable::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), flags).ok()
    }
    pub unsafe fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDebuggeeType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(class), ::core::mem::transmute(qualifier)).ok()
    }
    pub unsafe fn GetActualProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetActualProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetExecutingProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExecutingProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Vtable::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok()
    }
    pub unsafe fn GetNumberProcessors(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberProcessors)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<*mut u32>, servicepacknumber: *mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemVersion)(
            ::windows::core::Vtable::as_raw(self),
            ::core::mem::transmute(platformid),
            ::core::mem::transmute(major),
            ::core::mem::transmute(minor),
            ::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            servicepackstring.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(servicepackstringused.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(servicepacknumber),
            ::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            buildstring.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(buildstringused.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetPageSize(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetPageSize)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn IsPointer64Bit(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).IsPointer64Bit)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadBugCheckData)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(code), ::core::mem::transmute(arg1), ::core::mem::transmute(arg2), ::core::mem::transmute(arg3), ::core::mem::transmute(arg4)).ok()
    }
    pub unsafe fn GetNumberSupportedProcessorTypes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberSupportedProcessorTypes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSupportedProcessorTypes)(::windows::core::Vtable::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok()
    }
    pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetProcessorTypeNames)(
            ::windows::core::Vtable::as_raw(self),
            r#type,
            ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEffectiveProcessorType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetEffectiveProcessorType)(::windows::core::Vtable::as_raw(self), r#type).ok()
    }
    pub unsafe fn GetExecutionStatus(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExecutionStatus)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetExecutionStatus(&self, status: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetExecutionStatus)(::windows::core::Vtable::as_raw(self), status).ok()
    }
    pub unsafe fn GetCodeLevel(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCodeLevel)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetCodeLevel(&self, level: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetCodeLevel)(::windows::core::Vtable::as_raw(self), level).ok()
    }
    pub unsafe fn GetEngineOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEngineOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetEngineOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetEngineOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemErrorControl)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(outputlevel), ::core::mem::transmute(breaklevel)).ok()
    }
    pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetSystemErrorControl)(::windows::core::Vtable::as_raw(self), outputlevel, breaklevel).ok()
    }
    pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTextMacro)(::windows::core::Vtable::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetTextMacro<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextMacro)(::windows::core::Vtable::as_raw(self), slot, r#macro.into()).ok()
    }
    pub unsafe fn GetRadix(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRadix)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetRadix(&self, radix: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetRadix)(::windows::core::Vtable::as_raw(self), radix).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn Evaluate<'a, P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Evaluate)(::windows::core::Vtable::as_raw(self), expression.into(), desiredtype, ::core::mem::transmute(value), ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32) -> ::windows::core::Result<DEBUG_VALUE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CoerceValue)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(r#in), outtype, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_VALUE>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32) -> ::windows::core::Result<DEBUG_VALUE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CoerceValues)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(r#in), ::core::mem::transmute(outtypes), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_VALUE>(result__)
    }
    pub unsafe fn Execute<'a, P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Execute)(::windows::core::Vtable::as_raw(self), outputcontrol, command.into(), flags).ok()
    }
    pub unsafe fn ExecuteCommandFile<'a, P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).ExecuteCommandFile)(::windows::core::Vtable::as_raw(self), outputcontrol, commandfile.into(), flags).ok()
    }
    pub unsafe fn GetNumberBreakpoints(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberBreakpoints)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointByIndex)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn GetBreakpointById(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointById)(::windows::core::Vtable::as_raw(self), id, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<*const u32>, start: u32) -> ::windows::core::Result<DEBUG_BREAKPOINT_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointParameters)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_BREAKPOINT_PARAMETERS>(result__)
    }
    pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddBreakpoint)(::windows::core::Vtable::as_raw(self), r#type, desiredid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint>(result__)
    }
    pub unsafe fn RemoveBreakpoint<'a, P0>(&self, bp: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugBreakpoint>>,
    {
        (::windows::core::Vtable::vtable(self).RemoveBreakpoint)(::windows::core::Vtable::as_raw(self), bp.into().abi()).ok()
    }
    pub unsafe fn AddExtension<'a, P0>(&self, path: P0, flags: u32) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddExtension)(::windows::core::Vtable::as_raw(self), path.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn RemoveExtension(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveExtension)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn GetExtensionByPath<'a, P0>(&self, path: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExtensionByPath)(::windows::core::Vtable::as_raw(self), path.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn CallExtension<'a, P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CallExtension)(::windows::core::Vtable::as_raw(self), handle, function.into(), arguments.into()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetExtensionFunction<'a, P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetExtensionFunction)(::windows::core::Vtable::as_raw(self), handle, funcname.into(), ::core::mem::transmute(function)).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Kernel\"`*"]
    #[cfg(feature = "Win32_System_Kernel")]
    pub unsafe fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetWindbgExtensionApis32)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(api)).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Kernel\"`*"]
    #[cfg(feature = "Win32_System_Kernel")]
    pub unsafe fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetWindbgExtensionApis64)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(api)).ok()
    }
    pub unsafe fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNumberEventFilters)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(specificevents), ::core::mem::transmute(specificexceptions), ::core::mem::transmute(arbitraryexceptions)).ok()
    }
    pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterText)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterCommand)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetEventFilterCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetEventFilterCommand)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSpecificFilterParameters)(::windows::core::Vtable::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetSpecificFilterParameters)(::windows::core::Vtable::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSpecificFilterArgument)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSpecificFilterArgument<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSpecificFilterArgument)(::windows::core::Vtable::as_raw(self), index, argument.into()).ok()
    }
    pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<*const u32>, start: u32) -> ::windows::core::Result<DEBUG_EXCEPTION_FILTER_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExceptionFilterParameters)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(codes.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_EXCEPTION_FILTER_PARAMETERS>(result__)
    }
    pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetExceptionFilterParameters)(::windows::core::Vtable::as_raw(self), params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetExceptionFilterSecondCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetExceptionFilterSecondCommand)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WaitForEvent)(::windows::core::Vtable::as_raw(self), flags, timeout).ok()
    }
    pub unsafe fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLastEventInformation)(
            ::windows::core::Vtable::as_raw(self),
            ::core::mem::transmute(r#type),
            ::core::mem::transmute(processid),
            ::core::mem::transmute(threadid),
            ::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
            extrainformationsize,
            ::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetCurrentTimeDate(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentTimeDate)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentSystemUpTime(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentSystemUpTime)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetDumpFormatFlags(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDumpFormatFlags)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberTextReplacements(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberTextReplacements)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetTextReplacement<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u8]>, srcsize: ::core::option::Option<*mut u32>, dstbuffer: ::core::option::Option<&mut [u8]>, dstsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetTextReplacement)(
            ::windows::core::Vtable::as_raw(self),
            srctext.into(),
            index,
            ::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            srcbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(srcsize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            dstbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(dstsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn SetTextReplacement<'a, P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextReplacement)(::windows::core::Vtable::as_raw(self), srctext.into(), dsttext.into()).ok()
    }
    pub unsafe fn RemoveTextReplacements(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveTextReplacements)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn OutputTextReplacements(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputTextReplacements)(::windows::core::Vtable::as_raw(self), outputcontrol, flags).ok()
    }
    pub unsafe fn GetAssemblyOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetAssemblyOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddAssemblyOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveAssemblyOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetAssemblyOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetAssemblyOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn GetExpressionSyntax(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExpressionSyntax)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetExpressionSyntax(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetExpressionSyntax)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    pub unsafe fn SetExpressionSyntaxByName<'a, P0>(&self, abbrevname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetExpressionSyntaxByName)(::windows::core::Vtable::as_raw(self), abbrevname.into()).ok()
    }
    pub unsafe fn GetNumberExpressionSyntaxes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberExpressionSyntaxes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetExpressionSyntaxNames)(
            ::windows::core::Vtable::as_raw(self),
            index,
            ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetNumberEvents(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberEvents)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetEventIndexDescription<'a, P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventIndexDescription)(::windows::core::Vtable::as_raw(self), index, which, buffer.into(), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentEventIndex(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentEventIndex)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetNextEventIndex(&self, relation: u32, value: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).SetNextEventIndex)(::windows::core::Vtable::as_raw(self), relation, value, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetLogFileWide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLogFileWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(append)).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OpenLogFileWide<'a, P0, P1>(&self, file: P0, append: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        (::windows::core::Vtable::vtable(self).OpenLogFileWide)(::windows::core::Vtable::as_raw(self), file.into(), append.into()).ok()
    }
    pub unsafe fn InputWide(&self, buffer: &mut [u16], inputsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).InputWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReturnInputWide<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ReturnInputWide)(::windows::core::Vtable::as_raw(self), buffer.into()).ok()
    }
    pub unsafe fn OutputWide<'a, P0>(&self, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputWide)(::windows::core::Vtable::as_raw(self), mask, format.into()).ok()
    }
    pub unsafe fn OutputVaListWide<'a, P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputVaListWide)(::windows::core::Vtable::as_raw(self), mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn ControlledOutputWide<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutputWide)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into()).ok()
    }
    pub unsafe fn ControlledOutputVaListWide<'a, P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ControlledOutputVaListWide)(::windows::core::Vtable::as_raw(self), outputcontrol, mask, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn OutputPromptWide<'a, P0>(&self, outputcontrol: u32, format: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPromptWide)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into()).ok()
    }
    pub unsafe fn OutputPromptVaListWide<'a, P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputPromptVaListWide)(::windows::core::Vtable::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok()
    }
    pub unsafe fn GetPromptTextWide(&self, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPromptTextWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn AssembleWide<'a, P0>(&self, offset: u64, instr: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AssembleWide)(::windows::core::Vtable::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn DisassembleWide(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u16]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DisassembleWide)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset)).ok()
    }
    pub unsafe fn GetProcessorTypeNamesWide(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetProcessorTypeNamesWide)(
            ::windows::core::Vtable::as_raw(self),
            r#type,
            ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetTextMacroWide(&self, slot: u32, buffer: ::core::option::Option<&mut [u16]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTextMacroWide)(::windows::core::Vtable::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetTextMacroWide<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextMacroWide)(::windows::core::Vtable::as_raw(self), slot, r#macro.into()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn EvaluateWide<'a, P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).EvaluateWide)(::windows::core::Vtable::as_raw(self), expression.into(), desiredtype, ::core::mem::transmute(value), ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ExecuteWide<'a, P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ExecuteWide)(::windows::core::Vtable::as_raw(self), outputcontrol, command.into(), flags).ok()
    }
    pub unsafe fn ExecuteCommandFileWide<'a, P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ExecuteCommandFileWide)(::windows::core::Vtable::as_raw(self), outputcontrol, commandfile.into(), flags).ok()
    }
    pub unsafe fn GetBreakpointByIndex2(&self, index: u32) -> ::windows::core::Result<IDebugBreakpoint2> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointByIndex2)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint2>(result__)
    }
    pub unsafe fn GetBreakpointById2(&self, id: u32) -> ::windows::core::Result<IDebugBreakpoint2> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointById2)(::windows::core::Vtable::as_raw(self), id, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint2>(result__)
    }
    pub unsafe fn AddBreakpoint2(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result<IDebugBreakpoint2> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddBreakpoint2)(::windows::core::Vtable::as_raw(self), r#type, desiredid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint2>(result__)
    }
    pub unsafe fn RemoveBreakpoint2<'a, P0>(&self, bp: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugBreakpoint2>>,
    {
        (::windows::core::Vtable::vtable(self).RemoveBreakpoint2)(::windows::core::Vtable::as_raw(self), bp.into().abi()).ok()
    }
    pub unsafe fn AddExtensionWide<'a, P0>(&self, path: P0, flags: u32) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddExtensionWide)(::windows::core::Vtable::as_raw(self), path.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetExtensionByPathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExtensionByPathWide)(::windows::core::Vtable::as_raw(self), path.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn CallExtensionWide<'a, P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CallExtensionWide)(::windows::core::Vtable::as_raw(self), handle, function.into(), arguments.into()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetExtensionFunctionWide<'a, P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::Foundation::FARPROC) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetExtensionFunctionWide)(::windows::core::Vtable::as_raw(self), handle, funcname.into(), ::core::mem::transmute(function)).ok()
    }
    pub unsafe fn GetEventFilterTextWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterTextWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetEventFilterCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventFilterCommandWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetEventFilterCommandWide<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetEventFilterCommandWide)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSpecificFilterArgumentWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSpecificFilterArgumentWide<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSpecificFilterArgumentWide)(::windows::core::Vtable::as_raw(self), index, argument.into()).ok()
    }
    pub unsafe fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetExceptionFilterSecondCommandWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetExceptionFilterSecondCommandWide<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetExceptionFilterSecondCommandWide)(::windows::core::Vtable::as_raw(self), index, command.into()).ok()
    }
    pub unsafe fn GetLastEventInformationWide(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u16]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLastEventInformationWide)(
            ::windows::core::Vtable::as_raw(self),
            ::core::mem::transmute(r#type),
            ::core::mem::transmute(processid),
            ::core::mem::transmute(threadid),
            ::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
            extrainformationsize,
            ::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            description.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetTextReplacementWide<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u16]>, srcsize: ::core::option::Option<*mut u32>, dstbuffer: ::core::option::Option<&mut [u16]>, dstsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetTextReplacementWide)(
            ::windows::core::Vtable::as_raw(self),
            srctext.into(),
            index,
            ::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            srcbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(srcsize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            dstbuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(dstsize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn SetTextReplacementWide<'a, P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetTextReplacementWide)(::windows::core::Vtable::as_raw(self), srctext.into(), dsttext.into()).ok()
    }
    pub unsafe fn SetExpressionSyntaxByNameWide<'a, P0>(&self, abbrevname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetExpressionSyntaxByNameWide)(::windows::core::Vtable::as_raw(self), abbrevname.into()).ok()
    }
    pub unsafe fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetExpressionSyntaxNamesWide)(
            ::windows::core::Vtable::as_raw(self),
            index,
            ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetEventIndexDescriptionWide<'a, P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventIndexDescriptionWide)(::windows::core::Vtable::as_raw(self), index, which, buffer.into(), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetLogFile2(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, flags: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLogFile2)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(flags)).ok()
    }
    pub unsafe fn OpenLogFile2<'a, P0>(&self, file: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenLogFile2)(::windows::core::Vtable::as_raw(self), file.into(), flags).ok()
    }
    pub unsafe fn GetLogFile2Wide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, flags: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLogFile2Wide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(flags)).ok()
    }
    pub unsafe fn OpenLogFile2Wide<'a, P0>(&self, file: P0, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OpenLogFile2Wide)(::windows::core::Vtable::as_raw(self), file.into(), flags).ok()
    }
    pub unsafe fn GetSystemVersionValues(&self, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: ::core::option::Option<*mut u32>, kdminor: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemVersionValues)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(platformid), ::core::mem::transmute(win32major), ::core::mem::transmute(win32minor), ::core::mem::transmute(kdmajor.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(kdminor.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSystemVersionString(&self, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemVersionString)(::windows::core::Vtable::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSystemVersionStringWide(&self, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemVersionStringWide)(::windows::core::Vtable::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetContextStackTrace(&self, startcontext: ::core::option::Option<*const ::core::ffi::c_void>, startcontextsize: u32, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME]>, framecontexts: ::core::option::Option<*mut ::core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetContextStackTrace)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(startcontext.unwrap_or(::std::ptr::null())), startcontextsize, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(framecontexts.unwrap_or(::std::ptr::null_mut())), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OutputContextStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputContextStackTrace)(::windows::core::Vtable::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, flags).ok()
    }
    pub unsafe fn GetStoredEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, context: ::core::option::Option<*mut ::core::ffi::c_void>, contextsize: u32, contextused: ::core::option::Option<*mut u32>, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetStoredEventInformation)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(r#type), ::core::mem::transmute(processid), ::core::mem::transmute(threadid), ::core::mem::transmute(context.unwrap_or(::std::ptr::null_mut())), contextsize, ::core::mem::transmute(contextused.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())), extrainformationsize, ::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetManagedStatus(&self, flags: ::core::option::Option<*mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u8]>, stringneeded: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetManagedStatus)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(flags.unwrap_or(::std::ptr::null_mut())), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringneeded.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetManagedStatusWide(&self, flags: ::core::option::Option<*mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u16]>, stringneeded: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetManagedStatusWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(flags.unwrap_or(::std::ptr::null_mut())), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringneeded.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ResetManagedStatus(&self, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ResetManagedStatus)(::windows::core::Vtable::as_raw(self), flags).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetStackTraceEx(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME_EX], framesfilled: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetStackTraceEx)(::windows::core::Vtable::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OutputStackTraceEx(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME_EX]>, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputStackTraceEx)(::windows::core::Vtable::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), flags).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetContextStackTraceEx(&self, startcontext: ::core::option::Option<*const ::core::ffi::c_void>, startcontextsize: u32, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME_EX]>, framecontexts: ::core::option::Option<*mut ::core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetContextStackTraceEx)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(startcontext.unwrap_or(::std::ptr::null())), startcontextsize, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(framecontexts.unwrap_or(::std::ptr::null_mut())), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn OutputContextStackTraceEx(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME_EX], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputContextStackTraceEx)(::windows::core::Vtable::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, flags).ok()
    }
    pub unsafe fn GetBreakpointByGuid(&self, guid: *const ::windows::core::GUID) -> ::windows::core::Result<IDebugBreakpoint3> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBreakpointByGuid)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugBreakpoint3>(result__)
    }
    pub unsafe fn GetExecutionStatusEx(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExecutionStatusEx)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSynchronizationStatus(&self, sendsattempted: *mut u32, secondssincelastresponse: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSynchronizationStatus)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(sendsattempted), ::core::mem::transmute(secondssincelastresponse)).ok()
    }
    pub unsafe fn GetDebuggeeType2(&self, flags: u32, class: *mut u32, qualifier: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDebuggeeType2)(::windows::core::Vtable::as_raw(self), flags, ::core::mem::transmute(class), ::core::mem::transmute(qualifier)).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugControl7, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugControl7 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugControl7 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugControl7 {}
impl ::core::fmt::Debug for IDebugControl7 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugControl7").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugControl7 {
    type Vtable = IDebugControl7_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugControl7 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb86fb3b1_80d4_475b_aea3_cf06539cf63a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugControl7_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub GetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows::core::HRESULT,
    pub SetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetLogFile: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OpenLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, append: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OpenLogFile: usize,
    pub CloseLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub SetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows::core::HRESULT,
    pub Input: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT,
    pub ReturnInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub Output: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub ControlledOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub ControlledOutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub OutputPrompt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputPromptVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub GetPromptText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub OutputCurrentState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT,
    pub OutputVersionInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows::core::HRESULT,
    pub GetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT,
    pub SetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub Assemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCSTR, endoffset: *mut u64) -> ::windows::core::HRESULT,
    pub Disassemble: unsafe extern "system" fn(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,
    pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub OutputDisassembly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows::core::HRESULT,
    pub OutputDisassemblyLines: unsafe extern "system" fn(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,
    pub GetNearInstruction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetStackTrace: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetStackTrace: usize,
    pub GetReturnOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub OutputStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OutputStackTrace: usize,
    pub GetDebuggeeType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows::core::HRESULT,
    pub GetActualProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub GetExecutingProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberProcessors: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetSystemVersion: unsafe extern "system" fn(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,
    pub GetPageSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows::core::HRESULT,
    pub IsPointer64Bit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ReadBugCheckData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows::core::HRESULT,
    pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows::core::HRESULT,
    pub GetProcessorTypeNames: unsafe extern "system" fn(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,
    pub GetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows::core::HRESULT,
    pub SetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows::core::HRESULT,
    pub GetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows::core::HRESULT,
    pub SetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: u32) -> ::windows::core::HRESULT,
    pub GetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows::core::HRESULT,
    pub SetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: u32) -> ::windows::core::HRESULT,
    pub GetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub GetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows::core::HRESULT,
    pub SetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows::core::HRESULT,
    pub GetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT,
    pub SetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows::core::HRESULT,
    pub SetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub Evaluate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    Evaluate: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub CoerceValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    CoerceValue: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub CoerceValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    CoerceValues: usize,
    pub Execute: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub ExecuteCommandFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetNumberBreakpoints: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetBreakpointByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetBreakpointById: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetBreakpointParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::HRESULT,
    pub AddBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub RemoveBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT,
    pub RemoveExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub GetExtensionByPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub CallExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCSTR, arguments: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetExtensionFunction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCSTR, function: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetExtensionFunction: usize,
    #[cfg(feature = "Win32_System_Kernel")]
    pub GetWindbgExtensionApis32: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Kernel"))]
    GetWindbgExtensionApis32: usize,
    #[cfg(feature = "Win32_System_Kernel")]
    pub GetWindbgExtensionApis64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Kernel"))]
    GetWindbgExtensionApis64: usize,
    pub GetNumberEventFilters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventFilterText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub SetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub SetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub WaitForEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows::core::HRESULT,
    pub GetLastEventInformation: unsafe extern "system" fn(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,
    pub GetCurrentTimeDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timedate: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentSystemUpTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows::core::HRESULT,
    pub GetDumpFormatFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, formatflags: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numrepl: *mut u32) -> ::windows::core::HRESULT,
    pub GetTextReplacement: unsafe extern "system" fn(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,
    pub SetTextReplacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCSTR, dsttext: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub RemoveTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OutputTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT,
    pub GetAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub GetExpressionSyntax: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows::core::HRESULT,
    pub SetExpressionSyntax: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    pub SetExpressionSyntaxByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, abbrevname: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetNumberExpressionSyntaxes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetExpressionSyntaxNames: unsafe extern "system" fn(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,
    pub GetNumberEvents: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, events: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventIndexDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows::core::PCSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentEventIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows::core::HRESULT,
    pub SetNextEventIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, relation: u32, value: u32, nextindex: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetLogFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetLogFileWide: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OpenLogFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, append: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OpenLogFileWide: usize,
    pub InputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, inputsize: *mut u32) -> ::windows::core::HRESULT,
    pub ReturnInputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub OutputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub OutputVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub ControlledOutputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub ControlledOutputVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub OutputPromptWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub OutputPromptVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows::core::PCWSTR, args: *const i8) -> ::windows::core::HRESULT,
    pub GetPromptTextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub AssembleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows::core::PCWSTR, endoffset: *mut u64) -> ::windows::core::HRESULT,
    pub DisassembleWide: unsafe extern "system" fn(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,
    pub GetProcessorTypeNamesWide: unsafe extern "system" fn(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,
    pub GetTextMacroWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows::core::PWSTR, buffersize: u32, macrosize: *mut u32) -> ::windows::core::HRESULT,
    pub SetTextMacroWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub EvaluateWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows::core::PCWSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    EvaluateWide: usize,
    pub ExecuteWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT,
    pub ExecuteCommandFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetBreakpointByIndex2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetBreakpointById2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddBreakpoint2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub RemoveBreakpoint2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddExtensionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR, flags: u32, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetExtensionByPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub CallExtensionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows::core::PCWSTR, arguments: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetExtensionFunctionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows::core::PCWSTR, function: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetExtensionFunctionWide: usize,
    pub GetEventFilterTextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventFilterCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetEventFilterCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetSpecificFilterArgumentWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSpecificFilterArgumentWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetExceptionFilterSecondCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetExceptionFilterSecondCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetLastEventInformationWide: unsafe extern "system" fn(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,
    pub GetTextReplacementWide: unsafe extern "system" fn(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,
    pub SetTextReplacementWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows::core::PCWSTR, dsttext: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub SetExpressionSyntaxByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, abbrevname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetExpressionSyntaxNamesWide: unsafe extern "system" fn(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,
    pub GetEventIndexDescriptionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows::core::PCWSTR, buffersize: u32, descsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetLogFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::HRESULT,
    pub OpenLogFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetLogFile2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows::core::HRESULT,
    pub OpenLogFile2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT,
    pub GetSystemVersionValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: *mut u32, kdminor: *mut u32) -> ::windows::core::HRESULT,
    pub GetSystemVersionString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetSystemVersionStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetContextStackTrace: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetContextStackTrace: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OutputContextStackTrace: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    OutputContextStackTrace: usize,
    pub GetStoredEventInformation: unsafe extern "system" fn(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,
    pub GetManagedStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows::core::PSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::HRESULT,
    pub GetManagedStatusWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows::core::PWSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows::core::HRESULT,
    pub ResetManagedStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetStackTraceEx: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetStackTraceEx: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OutputStackTraceEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, flags: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    OutputStackTraceEx: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub GetContextStackTraceEx: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetContextStackTraceEx: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub OutputContextStackTraceEx: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    OutputContextStackTraceEx: usize,
    pub GetBreakpointByGuid: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, guid: *const ::windows::core::GUID, bp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetExecutionStatusEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows::core::HRESULT,
    pub GetSynchronizationStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sendsattempted: *mut u32, secondssincelastresponse: *mut u32) -> ::windows::core::HRESULT,
    pub GetDebuggeeType2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, class: *mut u32, qualifier: *mut u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugCookie(::windows::core::IUnknown);
impl IDebugCookie {
    pub unsafe fn SetDebugCookie(&self, dwdebugappcookie: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetDebugCookie)(::windows::core::Vtable::as_raw(self), dwdebugappcookie).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugCookie, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugCookie {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugCookie {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugCookie {}
impl ::core::fmt::Debug for IDebugCookie {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugCookie").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugCookie {
    type Vtable = IDebugCookie_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugCookie {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c39_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugCookie_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub SetDebugCookie: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwdebugappcookie: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugDataSpaces(::windows::core::IUnknown);
impl IDebugDataSpaces {
    pub unsafe fn ReadVirtual(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadVirtual)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteVirtual(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteVirtual)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SearchVirtual(&self, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).SearchVirtual)(::windows::core::Vtable::as_raw(self), offset, length, ::core::mem::transmute(pattern), patternsize, patterngranularity, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn ReadVirtualUncached(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadVirtualUncached)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteVirtualUncached(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteVirtualUncached)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn ReadPointersVirtual(&self, offset: u64, ptrs: &mut [u64]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadPointersVirtual)(::windows::core::Vtable::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(ptrs.as_ptr())).ok()
    }
    pub unsafe fn WritePointersVirtual(&self, offset: u64, ptrs: &[u64]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WritePointersVirtual)(::windows::core::Vtable::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(ptrs.as_ptr())).ok()
    }
    pub unsafe fn ReadPhysical(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadPhysical)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WritePhysical(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WritePhysical)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn ReadControl(&self, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadControl)(::windows::core::Vtable::as_raw(self), processor, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteControl(&self, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteControl)(::windows::core::Vtable::as_raw(self), processor, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn ReadIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadIo)(::windows::core::Vtable::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteIo)(::windows::core::Vtable::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn ReadMsr(&self, msr: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ReadMsr)(::windows::core::Vtable::as_raw(self), msr, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn WriteMsr(&self, msr: u32, value: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WriteMsr)(::windows::core::Vtable::as_raw(self), msr, value).ok()
    }
    pub unsafe fn ReadBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadBusData)(::windows::core::Vtable::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteBusData)(::windows::core::Vtable::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn CheckLowMemory(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).CheckLowMemory)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn ReadDebuggerData(&self, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadDebuggerData)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReadProcessorSystemData(&self, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadProcessorSystemData)(::windows::core::Vtable::as_raw(self), processor, index, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugDataSpaces, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugDataSpaces {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugDataSpaces {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugDataSpaces {}
impl ::core::fmt::Debug for IDebugDataSpaces {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugDataSpaces").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugDataSpaces {
    type Vtable = IDebugDataSpaces_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugDataSpaces {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x88f7dfab_3ea7_4c3a_aefb_c4e8106173aa);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugDataSpaces_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub ReadVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT,
    pub WriteVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT,
    pub SearchVirtual: unsafe extern "system" fn(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,
    pub ReadVirtualUncached: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT,
    pub WriteVirtualUncached: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT,
    pub ReadPointersVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *mut u64) -> ::windows::core::HRESULT,
    pub WritePointersVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *const u64) -> ::windows::core::HRESULT,
    pub ReadPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT,
    pub WritePhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT,
    pub ReadControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT,
    pub WriteControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT,
    pub ReadIo: unsafe extern "system" fn(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,
    pub WriteIo: unsafe extern "system" fn(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,
    pub ReadMsr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, msr: u32, value: *mut u64) -> ::windows::core::HRESULT,
    pub WriteMsr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, msr: u32, value: u64) -> ::windows::core::HRESULT,
    pub ReadBusData: unsafe extern "system" fn(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,
    pub WriteBusData: unsafe extern "system" fn(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,
    pub CheckLowMemory: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ReadDebuggerData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT,
    pub ReadProcessorSystemData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugDataSpaces2(::windows::core::IUnknown);
impl IDebugDataSpaces2 {
    pub unsafe fn ReadVirtual(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadVirtual)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteVirtual(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteVirtual)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SearchVirtual(&self, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).SearchVirtual)(::windows::core::Vtable::as_raw(self), offset, length, ::core::mem::transmute(pattern), patternsize, patterngranularity, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn ReadVirtualUncached(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadVirtualUncached)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteVirtualUncached(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteVirtualUncached)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn ReadPointersVirtual(&self, offset: u64, ptrs: &mut [u64]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadPointersVirtual)(::windows::core::Vtable::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(ptrs.as_ptr())).ok()
    }
    pub unsafe fn WritePointersVirtual(&self, offset: u64, ptrs: &[u64]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WritePointersVirtual)(::windows::core::Vtable::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(ptrs.as_ptr())).ok()
    }
    pub unsafe fn ReadPhysical(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadPhysical)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WritePhysical(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WritePhysical)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn ReadControl(&self, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadControl)(::windows::core::Vtable::as_raw(self), processor, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteControl(&self, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteControl)(::windows::core::Vtable::as_raw(self), processor, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn ReadIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadIo)(::windows::core::Vtable::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteIo)(::windows::core::Vtable::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn ReadMsr(&self, msr: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ReadMsr)(::windows::core::Vtable::as_raw(self), msr, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn WriteMsr(&self, msr: u32, value: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WriteMsr)(::windows::core::Vtable::as_raw(self), msr, value).ok()
    }
    pub unsafe fn ReadBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadBusData)(::windows::core::Vtable::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteBusData)(::windows::core::Vtable::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn CheckLowMemory(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).CheckLowMemory)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn ReadDebuggerData(&self, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadDebuggerData)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReadProcessorSystemData(&self, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadProcessorSystemData)(::windows::core::Vtable::as_raw(self), processor, index, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn VirtualToPhysical(&self, r#virtual: u64) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).VirtualToPhysical)(::windows::core::Vtable::as_raw(self), r#virtual, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetVirtualTranslationPhysicalOffsets(&self, r#virtual: u64, offsets: ::core::option::Option<&mut [u64]>, levels: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetVirtualTranslationPhysicalOffsets)(::windows::core::Vtable::as_raw(self), r#virtual, ::core::mem::transmute(offsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), offsets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(levels.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReadHandleData(&self, handle: u64, datatype: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadHandleData)(::windows::core::Vtable::as_raw(self), handle, datatype, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn FillVirtual(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).FillVirtual)(::windows::core::Vtable::as_raw(self), start, size, ::core::mem::transmute(pattern), patternsize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn FillPhysical(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).FillPhysical)(::windows::core::Vtable::as_raw(self), start, size, ::core::mem::transmute(pattern), patternsize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: `\"Win32_System_Memory\"`*"]
    #[cfg(feature = "Win32_System_Memory")]
    pub unsafe fn QueryVirtual(&self, offset: u64) -> ::windows::core::Result<super::super::Memory::MEMORY_BASIC_INFORMATION64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).QueryVirtual)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Memory::MEMORY_BASIC_INFORMATION64>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugDataSpaces2, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugDataSpaces2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugDataSpaces2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugDataSpaces2 {}
impl ::core::fmt::Debug for IDebugDataSpaces2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugDataSpaces2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugDataSpaces2 {
    type Vtable = IDebugDataSpaces2_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugDataSpaces2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7a5e852f_96e9_468f_ac1b_0b3addc4a049);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugDataSpaces2_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub ReadVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT,
    pub WriteVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT,
    pub SearchVirtual: unsafe extern "system" fn(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,
    pub ReadVirtualUncached: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT,
    pub WriteVirtualUncached: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT,
    pub ReadPointersVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *mut u64) -> ::windows::core::HRESULT,
    pub WritePointersVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *const u64) -> ::windows::core::HRESULT,
    pub ReadPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT,
    pub WritePhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT,
    pub ReadControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT,
    pub WriteControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT,
    pub ReadIo: unsafe extern "system" fn(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,
    pub WriteIo: unsafe extern "system" fn(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,
    pub ReadMsr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, msr: u32, value: *mut u64) -> ::windows::core::HRESULT,
    pub WriteMsr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, msr: u32, value: u64) -> ::windows::core::HRESULT,
    pub ReadBusData: unsafe extern "system" fn(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,
    pub WriteBusData: unsafe extern "system" fn(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,
    pub CheckLowMemory: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ReadDebuggerData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT,
    pub ReadProcessorSystemData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT,
    pub VirtualToPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#virtual: u64, physical: *mut u64) -> ::windows::core::HRESULT,
    pub GetVirtualTranslationPhysicalOffsets: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#virtual: u64, offsets: *mut u64, offsetssize: u32, levels: *mut u32) -> ::windows::core::HRESULT,
    pub ReadHandleData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, datatype: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT,
    pub FillVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows::core::HRESULT,
    pub FillPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Memory")]
    pub QueryVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, info: *mut super::super::Memory::MEMORY_BASIC_INFORMATION64) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Memory"))]
    QueryVirtual: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugDataSpaces3(::windows::core::IUnknown);
impl IDebugDataSpaces3 {
    pub unsafe fn ReadVirtual(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadVirtual)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteVirtual(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteVirtual)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SearchVirtual(&self, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).SearchVirtual)(::windows::core::Vtable::as_raw(self), offset, length, ::core::mem::transmute(pattern), patternsize, patterngranularity, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn ReadVirtualUncached(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadVirtualUncached)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteVirtualUncached(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteVirtualUncached)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn ReadPointersVirtual(&self, offset: u64, ptrs: &mut [u64]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadPointersVirtual)(::windows::core::Vtable::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(ptrs.as_ptr())).ok()
    }
    pub unsafe fn WritePointersVirtual(&self, offset: u64, ptrs: &[u64]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WritePointersVirtual)(::windows::core::Vtable::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(ptrs.as_ptr())).ok()
    }
    pub unsafe fn ReadPhysical(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadPhysical)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WritePhysical(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WritePhysical)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn ReadControl(&self, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadControl)(::windows::core::Vtable::as_raw(self), processor, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteControl(&self, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteControl)(::windows::core::Vtable::as_raw(self), processor, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn ReadIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadIo)(::windows::core::Vtable::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteIo)(::windows::core::Vtable::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn ReadMsr(&self, msr: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ReadMsr)(::windows::core::Vtable::as_raw(self), msr, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn WriteMsr(&self, msr: u32, value: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WriteMsr)(::windows::core::Vtable::as_raw(self), msr, value).ok()
    }
    pub unsafe fn ReadBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadBusData)(::windows::core::Vtable::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteBusData)(::windows::core::Vtable::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn CheckLowMemory(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).CheckLowMemory)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn ReadDebuggerData(&self, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadDebuggerData)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReadProcessorSystemData(&self, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadProcessorSystemData)(::windows::core::Vtable::as_raw(self), processor, index, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn VirtualToPhysical(&self, r#virtual: u64) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).VirtualToPhysical)(::windows::core::Vtable::as_raw(self), r#virtual, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetVirtualTranslationPhysicalOffsets(&self, r#virtual: u64, offsets: ::core::option::Option<&mut [u64]>, levels: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetVirtualTranslationPhysicalOffsets)(::windows::core::Vtable::as_raw(self), r#virtual, ::core::mem::transmute(offsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), offsets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(levels.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReadHandleData(&self, handle: u64, datatype: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadHandleData)(::windows::core::Vtable::as_raw(self), handle, datatype, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn FillVirtual(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).FillVirtual)(::windows::core::Vtable::as_raw(self), start, size, ::core::mem::transmute(pattern), patternsize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn FillPhysical(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).FillPhysical)(::windows::core::Vtable::as_raw(self), start, size, ::core::mem::transmute(pattern), patternsize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: `\"Win32_System_Memory\"`*"]
    #[cfg(feature = "Win32_System_Memory")]
    pub unsafe fn QueryVirtual(&self, offset: u64) -> ::windows::core::Result<super::super::Memory::MEMORY_BASIC_INFORMATION64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).QueryVirtual)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Memory::MEMORY_BASIC_INFORMATION64>(result__)
    }
    #[doc = "*Required features: `\"Win32_System_SystemInformation\"`*"]
    #[cfg(feature = "Win32_System_SystemInformation")]
    pub unsafe fn ReadImageNtHeaders(&self, imagebase: u64) -> ::windows::core::Result<IMAGE_NT_HEADERS64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ReadImageNtHeaders)(::windows::core::Vtable::as_raw(self), imagebase, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IMAGE_NT_HEADERS64>(result__)
    }
    pub unsafe fn ReadTagged(&self, tag: *const ::windows::core::GUID, offset: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, totalsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadTagged)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(tag), offset, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(totalsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn StartEnumTagged(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).StartEnumTagged)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNextTagged(&self, handle: u64, tag: *mut ::windows::core::GUID, size: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNextTagged)(::windows::core::Vtable::as_raw(self), handle, ::core::mem::transmute(tag), ::core::mem::transmute(size)).ok()
    }
    pub unsafe fn EndEnumTagged(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndEnumTagged)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugDataSpaces3, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugDataSpaces3 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugDataSpaces3 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugDataSpaces3 {}
impl ::core::fmt::Debug for IDebugDataSpaces3 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugDataSpaces3").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugDataSpaces3 {
    type Vtable = IDebugDataSpaces3_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugDataSpaces3 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x23f79d6c_8aaf_4f7c_a607_9995f5407e63);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugDataSpaces3_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub ReadVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT,
    pub WriteVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT,
    pub SearchVirtual: unsafe extern "system" fn(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,
    pub ReadVirtualUncached: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT,
    pub WriteVirtualUncached: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT,
    pub ReadPointersVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *mut u64) -> ::windows::core::HRESULT,
    pub WritePointersVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *const u64) -> ::windows::core::HRESULT,
    pub ReadPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT,
    pub WritePhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT,
    pub ReadControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT,
    pub WriteControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT,
    pub ReadIo: unsafe extern "system" fn(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,
    pub WriteIo: unsafe extern "system" fn(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,
    pub ReadMsr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, msr: u32, value: *mut u64) -> ::windows::core::HRESULT,
    pub WriteMsr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, msr: u32, value: u64) -> ::windows::core::HRESULT,
    pub ReadBusData: unsafe extern "system" fn(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,
    pub WriteBusData: unsafe extern "system" fn(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,
    pub CheckLowMemory: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ReadDebuggerData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT,
    pub ReadProcessorSystemData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT,
    pub VirtualToPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#virtual: u64, physical: *mut u64) -> ::windows::core::HRESULT,
    pub GetVirtualTranslationPhysicalOffsets: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#virtual: u64, offsets: *mut u64, offsetssize: u32, levels: *mut u32) -> ::windows::core::HRESULT,
    pub ReadHandleData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, datatype: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT,
    pub FillVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows::core::HRESULT,
    pub FillPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Memory")]
    pub QueryVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, info: *mut super::super::Memory::MEMORY_BASIC_INFORMATION64) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Memory"))]
    QueryVirtual: usize,
    #[cfg(feature = "Win32_System_SystemInformation")]
    pub ReadImageNtHeaders: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, imagebase: u64, headers: *mut IMAGE_NT_HEADERS64) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_SystemInformation"))]
    ReadImageNtHeaders: usize,
    pub ReadTagged: unsafe extern "system" fn(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,
    pub StartEnumTagged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetNextTagged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, tag: *mut ::windows::core::GUID, size: *mut u32) -> ::windows::core::HRESULT,
    pub EndEnumTagged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugDataSpaces4(::windows::core::IUnknown);
impl IDebugDataSpaces4 {
    pub unsafe fn ReadVirtual(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadVirtual)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteVirtual(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteVirtual)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SearchVirtual(&self, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).SearchVirtual)(::windows::core::Vtable::as_raw(self), offset, length, ::core::mem::transmute(pattern), patternsize, patterngranularity, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn ReadVirtualUncached(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadVirtualUncached)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteVirtualUncached(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteVirtualUncached)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn ReadPointersVirtual(&self, offset: u64, ptrs: &mut [u64]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadPointersVirtual)(::windows::core::Vtable::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(ptrs.as_ptr())).ok()
    }
    pub unsafe fn WritePointersVirtual(&self, offset: u64, ptrs: &[u64]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WritePointersVirtual)(::windows::core::Vtable::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(ptrs.as_ptr())).ok()
    }
    pub unsafe fn ReadPhysical(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadPhysical)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WritePhysical(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WritePhysical)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn ReadControl(&self, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadControl)(::windows::core::Vtable::as_raw(self), processor, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteControl(&self, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteControl)(::windows::core::Vtable::as_raw(self), processor, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn ReadIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadIo)(::windows::core::Vtable::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteIo)(::windows::core::Vtable::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn ReadMsr(&self, msr: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ReadMsr)(::windows::core::Vtable::as_raw(self), msr, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn WriteMsr(&self, msr: u32, value: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WriteMsr)(::windows::core::Vtable::as_raw(self), msr, value).ok()
    }
    pub unsafe fn ReadBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadBusData)(::windows::core::Vtable::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteBusData)(::windows::core::Vtable::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn CheckLowMemory(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).CheckLowMemory)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn ReadDebuggerData(&self, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadDebuggerData)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReadProcessorSystemData(&self, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadProcessorSystemData)(::windows::core::Vtable::as_raw(self), processor, index, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn VirtualToPhysical(&self, r#virtual: u64) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).VirtualToPhysical)(::windows::core::Vtable::as_raw(self), r#virtual, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetVirtualTranslationPhysicalOffsets(&self, r#virtual: u64, offsets: ::core::option::Option<&mut [u64]>, levels: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetVirtualTranslationPhysicalOffsets)(::windows::core::Vtable::as_raw(self), r#virtual, ::core::mem::transmute(offsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), offsets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(levels.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReadHandleData(&self, handle: u64, datatype: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadHandleData)(::windows::core::Vtable::as_raw(self), handle, datatype, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn FillVirtual(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).FillVirtual)(::windows::core::Vtable::as_raw(self), start, size, ::core::mem::transmute(pattern), patternsize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn FillPhysical(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).FillPhysical)(::windows::core::Vtable::as_raw(self), start, size, ::core::mem::transmute(pattern), patternsize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: `\"Win32_System_Memory\"`*"]
    #[cfg(feature = "Win32_System_Memory")]
    pub unsafe fn QueryVirtual(&self, offset: u64) -> ::windows::core::Result<super::super::Memory::MEMORY_BASIC_INFORMATION64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).QueryVirtual)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Memory::MEMORY_BASIC_INFORMATION64>(result__)
    }
    #[doc = "*Required features: `\"Win32_System_SystemInformation\"`*"]
    #[cfg(feature = "Win32_System_SystemInformation")]
    pub unsafe fn ReadImageNtHeaders(&self, imagebase: u64) -> ::windows::core::Result<IMAGE_NT_HEADERS64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ReadImageNtHeaders)(::windows::core::Vtable::as_raw(self), imagebase, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IMAGE_NT_HEADERS64>(result__)
    }
    pub unsafe fn ReadTagged(&self, tag: *const ::windows::core::GUID, offset: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, totalsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadTagged)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(tag), offset, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(totalsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn StartEnumTagged(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).StartEnumTagged)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNextTagged(&self, handle: u64, tag: *mut ::windows::core::GUID, size: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNextTagged)(::windows::core::Vtable::as_raw(self), handle, ::core::mem::transmute(tag), ::core::mem::transmute(size)).ok()
    }
    pub unsafe fn EndEnumTagged(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndEnumTagged)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn GetOffsetInformation(&self, space: u32, which: u32, offset: u64, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOffsetInformation)(::windows::core::Vtable::as_raw(self), space, which, offset, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetNextDifferentlyValidOffsetVirtual(&self, offset: u64) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNextDifferentlyValidOffsetVirtual)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetValidRegionVirtual(&self, base: u64, size: u32, validbase: *mut u64, validsize: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetValidRegionVirtual)(::windows::core::Vtable::as_raw(self), base, size, ::core::mem::transmute(validbase), ::core::mem::transmute(validsize)).ok()
    }
    pub unsafe fn SearchVirtual2(&self, offset: u64, length: u64, flags: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).SearchVirtual2)(::windows::core::Vtable::as_raw(self), offset, length, flags, ::core::mem::transmute(pattern), patternsize, patterngranularity, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn ReadMultiByteStringVirtual(&self, offset: u64, maxbytes: u32, buffer: ::core::option::Option<&mut [u8]>, stringbytes: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadMultiByteStringVirtual)(::windows::core::Vtable::as_raw(self), offset, maxbytes, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringbytes.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReadMultiByteStringVirtualWide(&self, offset: u64, maxbytes: u32, codepage: u32, buffer: ::core::option::Option<&mut [u16]>, stringbytes: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadMultiByteStringVirtualWide)(::windows::core::Vtable::as_raw(self), offset, maxbytes, codepage, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringbytes.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReadUnicodeStringVirtual(&self, offset: u64, maxbytes: u32, codepage: u32, buffer: ::core::option::Option<&mut [u8]>, stringbytes: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadUnicodeStringVirtual)(::windows::core::Vtable::as_raw(self), offset, maxbytes, codepage, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringbytes.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReadUnicodeStringVirtualWide(&self, offset: u64, maxbytes: u32, buffer: ::core::option::Option<&mut [u16]>, stringbytes: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadUnicodeStringVirtualWide)(::windows::core::Vtable::as_raw(self), offset, maxbytes, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringbytes.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReadPhysical2(&self, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadPhysical2)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WritePhysical2(&self, offset: u64, flags: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WritePhysical2)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugDataSpaces4, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugDataSpaces4 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugDataSpaces4 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugDataSpaces4 {}
impl ::core::fmt::Debug for IDebugDataSpaces4 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugDataSpaces4").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugDataSpaces4 {
    type Vtable = IDebugDataSpaces4_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugDataSpaces4 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd98ada1f_29e9_4ef5_a6c0_e53349883212);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugDataSpaces4_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub ReadVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT,
    pub WriteVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT,
    pub SearchVirtual: unsafe extern "system" fn(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,
    pub ReadVirtualUncached: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT,
    pub WriteVirtualUncached: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT,
    pub ReadPointersVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *mut u64) -> ::windows::core::HRESULT,
    pub WritePointersVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *const u64) -> ::windows::core::HRESULT,
    pub ReadPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT,
    pub WritePhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT,
    pub ReadControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT,
    pub WriteControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT,
    pub ReadIo: unsafe extern "system" fn(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,
    pub WriteIo: unsafe extern "system" fn(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,
    pub ReadMsr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, msr: u32, value: *mut u64) -> ::windows::core::HRESULT,
    pub WriteMsr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, msr: u32, value: u64) -> ::windows::core::HRESULT,
    pub ReadBusData: unsafe extern "system" fn(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,
    pub WriteBusData: unsafe extern "system" fn(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,
    pub CheckLowMemory: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ReadDebuggerData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT,
    pub ReadProcessorSystemData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT,
    pub VirtualToPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#virtual: u64, physical: *mut u64) -> ::windows::core::HRESULT,
    pub GetVirtualTranslationPhysicalOffsets: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#virtual: u64, offsets: *mut u64, offsetssize: u32, levels: *mut u32) -> ::windows::core::HRESULT,
    pub ReadHandleData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, datatype: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows::core::HRESULT,
    pub FillVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows::core::HRESULT,
    pub FillPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Memory")]
    pub QueryVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, info: *mut super::super::Memory::MEMORY_BASIC_INFORMATION64) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Memory"))]
    QueryVirtual: usize,
    #[cfg(feature = "Win32_System_SystemInformation")]
    pub ReadImageNtHeaders: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, imagebase: u64, headers: *mut IMAGE_NT_HEADERS64) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_SystemInformation"))]
    ReadImageNtHeaders: usize,
    pub ReadTagged: unsafe extern "system" fn(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,
    pub StartEnumTagged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetNextTagged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, tag: *mut ::windows::core::GUID, size: *mut u32) -> ::windows::core::HRESULT,
    pub EndEnumTagged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub GetOffsetInformation: unsafe extern "system" fn(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,
    pub GetNextDifferentlyValidOffsetVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, nextoffset: *mut u64) -> ::windows::core::HRESULT,
    pub GetValidRegionVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, base: u64, size: u32, validbase: *mut u64, validsize: *mut u32) -> ::windows::core::HRESULT,
    pub SearchVirtual2: unsafe extern "system" fn(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,
    pub ReadMultiByteStringVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, maxbytes: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringbytes: *mut u32) -> ::windows::core::HRESULT,
    pub ReadMultiByteStringVirtualWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, maxbytes: u32, codepage: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringbytes: *mut u32) -> ::windows::core::HRESULT,
    pub ReadUnicodeStringVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, maxbytes: u32, codepage: u32, buffer: ::windows::core::PSTR, buffersize: u32, stringbytes: *mut u32) -> ::windows::core::HRESULT,
    pub ReadUnicodeStringVirtualWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, maxbytes: u32, buffer: ::windows::core::PWSTR, buffersize: u32, stringbytes: *mut u32) -> ::windows::core::HRESULT,
    pub ReadPhysical2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT,
    pub WritePhysical2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugDocument(::windows::core::IUnknown);
impl IDebugDocument {
    pub unsafe fn GetName(&self, dnt: DOCUMENTNAMETYPE) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetName)(::windows::core::Vtable::as_raw(self), dnt, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetDocumentClassId(&self) -> ::windows::core::Result<::windows::core::GUID> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetDocumentClassId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugDocument, ::windows::core::IUnknown, IDebugDocumentInfo);
impl ::core::clone::Clone for IDebugDocument {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugDocument {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugDocument {}
impl ::core::fmt::Debug for IDebugDocument {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugDocument").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugDocument {
    type Vtable = IDebugDocument_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugDocument {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c21_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugDocument_Vtbl {
    pub base__: IDebugDocumentInfo_Vtbl,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugDocumentContext(::windows::core::IUnknown);
impl IDebugDocumentContext {
    pub unsafe fn GetDocument(&self) -> ::windows::core::Result<IDebugDocument> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDocument)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugDocument>(result__)
    }
    pub unsafe fn EnumCodeContexts(&self) -> ::windows::core::Result<IEnumDebugCodeContexts> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumCodeContexts)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugCodeContexts>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugDocumentContext, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugDocumentContext {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugDocumentContext {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugDocumentContext {}
impl ::core::fmt::Debug for IDebugDocumentContext {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugDocumentContext").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugDocumentContext {
    type Vtable = IDebugDocumentContext_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugDocumentContext {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c28_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugDocumentContext_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetDocument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppsd: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EnumCodeContexts: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppescc: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugDocumentHelper32(::windows::core::IUnknown);
impl IDebugDocumentHelper32 {
    pub unsafe fn Init<'a, P0, P1, P2>(&self, pda: P0, pszshortname: P1, pszlongname: P2, docattr: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugApplication32>>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).Init)(::windows::core::Vtable::as_raw(self), pda.into().abi(), pszshortname.into(), pszlongname.into(), docattr).ok()
    }
    pub unsafe fn Attach<'a, P0>(&self, pddhparent: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugDocumentHelper32>>,
    {
        (::windows::core::Vtable::vtable(self).Attach)(::windows::core::Vtable::as_raw(self), pddhparent.into().abi()).ok()
    }
    pub unsafe fn Detach(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Detach)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn AddUnicodeText<'a, P0>(&self, psztext: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddUnicodeText)(::windows::core::Vtable::as_raw(self), psztext.into()).ok()
    }
    pub unsafe fn AddDBCSText<'a, P0>(&self, psztext: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddDBCSText)(::windows::core::Vtable::as_raw(self), psztext.into()).ok()
    }
    pub unsafe fn SetDebugDocumentHost<'a, P0>(&self, pddh: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugDocumentHost>>,
    {
        (::windows::core::Vtable::vtable(self).SetDebugDocumentHost)(::windows::core::Vtable::as_raw(self), pddh.into().abi()).ok()
    }
    pub unsafe fn AddDeferredText(&self, cchars: u32, dwtextstartcookie: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddDeferredText)(::windows::core::Vtable::as_raw(self), cchars, dwtextstartcookie).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn DefineScriptBlock<'a, P0, P1>(&self, ulcharoffset: u32, cchars: u32, pas: P0, fscriptlet: P1) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IActiveScript>>,
        P1: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).DefineScriptBlock)(::windows::core::Vtable::as_raw(self), ulcharoffset, cchars, pas.into().abi(), fscriptlet.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetDefaultTextAttr(&self, statextattr: u16) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetDefaultTextAttr)(::windows::core::Vtable::as_raw(self), statextattr).ok()
    }
    pub unsafe fn SetTextAttributes(&self, ulcharoffset: u32, pstatextattr: &[u16]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetTextAttributes)(::windows::core::Vtable::as_raw(self), ulcharoffset, pstatextattr.len() as _, ::core::mem::transmute(pstatextattr.as_ptr())).ok()
    }
    pub unsafe fn SetLongName<'a, P0>(&self, pszlongname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetLongName)(::windows::core::Vtable::as_raw(self), pszlongname.into()).ok()
    }
    pub unsafe fn SetShortName<'a, P0>(&self, pszshortname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetShortName)(::windows::core::Vtable::as_raw(self), pszshortname.into()).ok()
    }
    pub unsafe fn SetDocumentAttr(&self, pszattributes: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetDocumentAttr)(::windows::core::Vtable::as_raw(self), pszattributes).ok()
    }
    pub unsafe fn GetDebugApplicationNode(&self) -> ::windows::core::Result<IDebugApplicationNode> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDebugApplicationNode)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplicationNode>(result__)
    }
    pub unsafe fn GetScriptBlockInfo(&self, dwsourcecontext: u32, ppasd: *mut ::core::option::Option<IActiveScript>, picharpos: *mut u32, pcchars: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetScriptBlockInfo)(::windows::core::Vtable::as_raw(self), dwsourcecontext, ::core::mem::transmute(ppasd), ::core::mem::transmute(picharpos), ::core::mem::transmute(pcchars)).ok()
    }
    pub unsafe fn CreateDebugDocumentContext(&self, icharpos: u32, cchars: u32) -> ::windows::core::Result<IDebugDocumentContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateDebugDocumentContext)(::windows::core::Vtable::as_raw(self), icharpos, cchars, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugDocumentContext>(result__)
    }
    pub unsafe fn BringDocumentToTop(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).BringDocumentToTop)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn BringDocumentContextToTop<'a, P0>(&self, pddc: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugDocumentContext>>,
    {
        (::windows::core::Vtable::vtable(self).BringDocumentContextToTop)(::windows::core::Vtable::as_raw(self), pddc.into().abi()).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugDocumentHelper32, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugDocumentHelper32 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugDocumentHelper32 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugDocumentHelper32 {}
impl ::core::fmt::Debug for IDebugDocumentHelper32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugDocumentHelper32").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugDocumentHelper32 {
    type Vtable = IDebugDocumentHelper32_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugDocumentHelper32 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c26_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugDocumentHelper32_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Init: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pda: *mut ::core::ffi::c_void, pszshortname: ::windows::core::PCWSTR, pszlongname: ::windows::core::PCWSTR, docattr: u32) -> ::windows::core::HRESULT,
    pub Attach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pddhparent: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Detach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddUnicodeText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psztext: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub AddDBCSText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psztext: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub SetDebugDocumentHost: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pddh: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddDeferredText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cchars: u32, dwtextstartcookie: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub DefineScriptBlock: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ulcharoffset: u32, cchars: u32, pas: *mut ::core::ffi::c_void, fscriptlet: super::super::super::Foundation::BOOL, pdwsourcecontext: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    DefineScriptBlock: usize,
    pub SetDefaultTextAttr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, statextattr: u16) -> ::windows::core::HRESULT,
    pub SetTextAttributes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ulcharoffset: u32, cchars: u32, pstatextattr: *const u16) -> ::windows::core::HRESULT,
    pub SetLongName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszlongname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub SetShortName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszshortname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub SetDocumentAttr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszattributes: u32) -> ::windows::core::HRESULT,
    pub GetDebugApplicationNode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppdan: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetScriptBlockInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwsourcecontext: u32, ppasd: *mut *mut ::core::ffi::c_void, picharpos: *mut u32, pcchars: *mut u32) -> ::windows::core::HRESULT,
    pub CreateDebugDocumentContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, icharpos: u32, cchars: u32, ppddc: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub BringDocumentToTop: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub BringDocumentContextToTop: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pddc: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugDocumentHelper64(::windows::core::IUnknown);
impl IDebugDocumentHelper64 {
    pub unsafe fn Init<'a, P0, P1, P2>(&self, pda: P0, pszshortname: P1, pszlongname: P2, docattr: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugApplication64>>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).Init)(::windows::core::Vtable::as_raw(self), pda.into().abi(), pszshortname.into(), pszlongname.into(), docattr).ok()
    }
    pub unsafe fn Attach<'a, P0>(&self, pddhparent: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugDocumentHelper64>>,
    {
        (::windows::core::Vtable::vtable(self).Attach)(::windows::core::Vtable::as_raw(self), pddhparent.into().abi()).ok()
    }
    pub unsafe fn Detach(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Detach)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn AddUnicodeText<'a, P0>(&self, psztext: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddUnicodeText)(::windows::core::Vtable::as_raw(self), psztext.into()).ok()
    }
    pub unsafe fn AddDBCSText<'a, P0>(&self, psztext: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddDBCSText)(::windows::core::Vtable::as_raw(self), psztext.into()).ok()
    }
    pub unsafe fn SetDebugDocumentHost<'a, P0>(&self, pddh: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugDocumentHost>>,
    {
        (::windows::core::Vtable::vtable(self).SetDebugDocumentHost)(::windows::core::Vtable::as_raw(self), pddh.into().abi()).ok()
    }
    pub unsafe fn AddDeferredText(&self, cchars: u32, dwtextstartcookie: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddDeferredText)(::windows::core::Vtable::as_raw(self), cchars, dwtextstartcookie).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn DefineScriptBlock<'a, P0, P1>(&self, ulcharoffset: u32, cchars: u32, pas: P0, fscriptlet: P1) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IActiveScript>>,
        P1: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).DefineScriptBlock)(::windows::core::Vtable::as_raw(self), ulcharoffset, cchars, pas.into().abi(), fscriptlet.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn SetDefaultTextAttr(&self, statextattr: u16) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetDefaultTextAttr)(::windows::core::Vtable::as_raw(self), statextattr).ok()
    }
    pub unsafe fn SetTextAttributes(&self, ulcharoffset: u32, pstatextattr: &[u16]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetTextAttributes)(::windows::core::Vtable::as_raw(self), ulcharoffset, pstatextattr.len() as _, ::core::mem::transmute(pstatextattr.as_ptr())).ok()
    }
    pub unsafe fn SetLongName<'a, P0>(&self, pszlongname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetLongName)(::windows::core::Vtable::as_raw(self), pszlongname.into()).ok()
    }
    pub unsafe fn SetShortName<'a, P0>(&self, pszshortname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetShortName)(::windows::core::Vtable::as_raw(self), pszshortname.into()).ok()
    }
    pub unsafe fn SetDocumentAttr(&self, pszattributes: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetDocumentAttr)(::windows::core::Vtable::as_raw(self), pszattributes).ok()
    }
    pub unsafe fn GetDebugApplicationNode(&self) -> ::windows::core::Result<IDebugApplicationNode> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDebugApplicationNode)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplicationNode>(result__)
    }
    pub unsafe fn GetScriptBlockInfo(&self, dwsourcecontext: u64, ppasd: *mut ::core::option::Option<IActiveScript>, picharpos: *mut u32, pcchars: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetScriptBlockInfo)(::windows::core::Vtable::as_raw(self), dwsourcecontext, ::core::mem::transmute(ppasd), ::core::mem::transmute(picharpos), ::core::mem::transmute(pcchars)).ok()
    }
    pub unsafe fn CreateDebugDocumentContext(&self, icharpos: u32, cchars: u32) -> ::windows::core::Result<IDebugDocumentContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateDebugDocumentContext)(::windows::core::Vtable::as_raw(self), icharpos, cchars, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugDocumentContext>(result__)
    }
    pub unsafe fn BringDocumentToTop(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).BringDocumentToTop)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn BringDocumentContextToTop<'a, P0>(&self, pddc: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugDocumentContext>>,
    {
        (::windows::core::Vtable::vtable(self).BringDocumentContextToTop)(::windows::core::Vtable::as_raw(self), pddc.into().abi()).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugDocumentHelper64, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugDocumentHelper64 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugDocumentHelper64 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugDocumentHelper64 {}
impl ::core::fmt::Debug for IDebugDocumentHelper64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugDocumentHelper64").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugDocumentHelper64 {
    type Vtable = IDebugDocumentHelper64_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugDocumentHelper64 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc4c7363c_20fd_47f9_bd82_4855e0150871);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugDocumentHelper64_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Init: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pda: *mut ::core::ffi::c_void, pszshortname: ::windows::core::PCWSTR, pszlongname: ::windows::core::PCWSTR, docattr: u32) -> ::windows::core::HRESULT,
    pub Attach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pddhparent: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Detach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddUnicodeText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psztext: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub AddDBCSText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psztext: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub SetDebugDocumentHost: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pddh: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddDeferredText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cchars: u32, dwtextstartcookie: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub DefineScriptBlock: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ulcharoffset: u32, cchars: u32, pas: *mut ::core::ffi::c_void, fscriptlet: super::super::super::Foundation::BOOL, pdwsourcecontext: *mut u64) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    DefineScriptBlock: usize,
    pub SetDefaultTextAttr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, statextattr: u16) -> ::windows::core::HRESULT,
    pub SetTextAttributes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ulcharoffset: u32, cchars: u32, pstatextattr: *const u16) -> ::windows::core::HRESULT,
    pub SetLongName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszlongname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub SetShortName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszshortname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub SetDocumentAttr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszattributes: u32) -> ::windows::core::HRESULT,
    pub GetDebugApplicationNode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppdan: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetScriptBlockInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwsourcecontext: u64, ppasd: *mut *mut ::core::ffi::c_void, picharpos: *mut u32, pcchars: *mut u32) -> ::windows::core::HRESULT,
    pub CreateDebugDocumentContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, icharpos: u32, cchars: u32, ppddc: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub BringDocumentToTop: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub BringDocumentContextToTop: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pddc: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugDocumentHost(::windows::core::IUnknown);
impl IDebugDocumentHost {
    pub unsafe fn GetDeferredText(&self, dwtextstartcookie: u32, pchartext: ::windows::core::PWSTR, pstatextattr: *mut u16, pcnumchars: *mut u32, cmaxchars: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDeferredText)(::windows::core::Vtable::as_raw(self), dwtextstartcookie, ::core::mem::transmute(pchartext), ::core::mem::transmute(pstatextattr), ::core::mem::transmute(pcnumchars), cmaxchars).ok()
    }
    pub unsafe fn GetScriptTextAttributes<'a, P0, P1>(&self, pstrcode: P0, unumcodechars: u32, pstrdelimiter: P1, dwflags: u32, pattr: *mut u16) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetScriptTextAttributes)(::windows::core::Vtable::as_raw(self), pstrcode.into(), unumcodechars, pstrdelimiter.into(), dwflags, ::core::mem::transmute(pattr)).ok()
    }
    pub unsafe fn OnCreateDocumentContext(&self) -> ::windows::core::Result<::windows::core::IUnknown> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).OnCreateDocumentContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::IUnknown>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetPathName(&self, pbstrlongname: *mut ::windows::core::BSTR, pfisoriginalfile: *mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPathName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pbstrlongname), ::core::mem::transmute(pfisoriginalfile)).ok()
    }
    pub unsafe fn GetFileName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFileName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn NotifyChanged(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).NotifyChanged)(::windows::core::Vtable::as_raw(self)).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugDocumentHost, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugDocumentHost {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugDocumentHost {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugDocumentHost {}
impl ::core::fmt::Debug for IDebugDocumentHost {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugDocumentHost").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugDocumentHost {
    type Vtable = IDebugDocumentHost_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugDocumentHost {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c27_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugDocumentHost_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetDeferredText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwtextstartcookie: u32, pchartext: ::windows::core::PWSTR, pstatextattr: *mut u16, pcnumchars: *mut u32, cmaxchars: u32) -> ::windows::core::HRESULT,
    pub GetScriptTextAttributes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrcode: ::windows::core::PCWSTR, unumcodechars: u32, pstrdelimiter: ::windows::core::PCWSTR, dwflags: u32, pattr: *mut u16) -> ::windows::core::HRESULT,
    pub OnCreateDocumentContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppunkouter: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetPathName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbstrlongname: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>, pfisoriginalfile: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetPathName: usize,
    pub GetFileName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbstrshortname: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub NotifyChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugDocumentInfo(::windows::core::IUnknown);
impl IDebugDocumentInfo {
    pub unsafe fn GetName(&self, dnt: DOCUMENTNAMETYPE) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetName)(::windows::core::Vtable::as_raw(self), dnt, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetDocumentClassId(&self) -> ::windows::core::Result<::windows::core::GUID> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDocumentClassId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugDocumentInfo, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugDocumentInfo {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugDocumentInfo {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugDocumentInfo {}
impl ::core::fmt::Debug for IDebugDocumentInfo {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugDocumentInfo").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugDocumentInfo {
    type Vtable = IDebugDocumentInfo_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugDocumentInfo {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c1f_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugDocumentInfo_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dnt: DOCUMENTNAMETYPE, pbstrname: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub GetDocumentClassId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pclsiddocument: *mut ::windows::core::GUID) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugDocumentProvider(::windows::core::IUnknown);
impl IDebugDocumentProvider {
    pub unsafe fn GetName(&self, dnt: DOCUMENTNAMETYPE) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetName)(::windows::core::Vtable::as_raw(self), dnt, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetDocumentClassId(&self) -> ::windows::core::Result<::windows::core::GUID> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetDocumentClassId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__)
    }
    pub unsafe fn GetDocument(&self) -> ::windows::core::Result<IDebugDocument> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDocument)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugDocument>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugDocumentProvider, ::windows::core::IUnknown, IDebugDocumentInfo);
impl ::core::clone::Clone for IDebugDocumentProvider {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugDocumentProvider {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugDocumentProvider {}
impl ::core::fmt::Debug for IDebugDocumentProvider {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugDocumentProvider").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugDocumentProvider {
    type Vtable = IDebugDocumentProvider_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugDocumentProvider {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c20_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugDocumentProvider_Vtbl {
    pub base__: IDebugDocumentInfo_Vtbl,
    pub GetDocument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppssd: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugDocumentText(::windows::core::IUnknown);
impl IDebugDocumentText {
    pub unsafe fn GetName(&self, dnt: DOCUMENTNAMETYPE) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetName)(::windows::core::Vtable::as_raw(self), dnt, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetDocumentClassId(&self) -> ::windows::core::Result<::windows::core::GUID> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetDocumentClassId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__)
    }
    pub unsafe fn GetDocumentAttributes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDocumentAttributes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSize(&self, pcnumlines: *mut u32, pcnumchars: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSize)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pcnumlines), ::core::mem::transmute(pcnumchars)).ok()
    }
    pub unsafe fn GetPositionOfLine(&self, clinenumber: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetPositionOfLine)(::windows::core::Vtable::as_raw(self), clinenumber, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetLineOfPosition(&self, ccharacterposition: u32, pclinenumber: *mut u32, pccharacteroffsetinline: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLineOfPosition)(::windows::core::Vtable::as_raw(self), ccharacterposition, ::core::mem::transmute(pclinenumber), ::core::mem::transmute(pccharacteroffsetinline)).ok()
    }
    pub unsafe fn GetText(&self, ccharacterposition: u32, pchartext: &mut [u16], pstatextattr: ::core::option::Option<*mut u16>, pcnumchars: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetText)(::windows::core::Vtable::as_raw(self), ccharacterposition, ::core::mem::transmute(pchartext.as_ptr()), ::core::mem::transmute(pstatextattr.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pcnumchars), pchartext.len() as _).ok()
    }
    pub unsafe fn GetPositionOfContext<'a, P0>(&self, psc: P0, pccharacterposition: *mut u32, cnumchars: *mut u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugDocumentContext>>,
    {
        (::windows::core::Vtable::vtable(self).GetPositionOfContext)(::windows::core::Vtable::as_raw(self), psc.into().abi(), ::core::mem::transmute(pccharacterposition), ::core::mem::transmute(cnumchars)).ok()
    }
    pub unsafe fn GetContextOfPosition(&self, ccharacterposition: u32, cnumchars: u32) -> ::windows::core::Result<IDebugDocumentContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetContextOfPosition)(::windows::core::Vtable::as_raw(self), ccharacterposition, cnumchars, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugDocumentContext>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugDocumentText, ::windows::core::IUnknown, IDebugDocumentInfo, IDebugDocument);
impl ::core::clone::Clone for IDebugDocumentText {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugDocumentText {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugDocumentText {}
impl ::core::fmt::Debug for IDebugDocumentText {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugDocumentText").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugDocumentText {
    type Vtable = IDebugDocumentText_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugDocumentText {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c22_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugDocumentText_Vtbl {
    pub base__: IDebugDocument_Vtbl,
    pub GetDocumentAttributes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ptextdocattr: *mut u32) -> ::windows::core::HRESULT,
    pub GetSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pcnumlines: *mut u32, pcnumchars: *mut u32) -> ::windows::core::HRESULT,
    pub GetPositionOfLine: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, clinenumber: u32, pccharacterposition: *mut u32) -> ::windows::core::HRESULT,
    pub GetLineOfPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ccharacterposition: u32, pclinenumber: *mut u32, pccharacteroffsetinline: *mut u32) -> ::windows::core::HRESULT,
    pub GetText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ccharacterposition: u32, pchartext: ::windows::core::PWSTR, pstatextattr: *mut u16, pcnumchars: *mut u32, cmaxchars: u32) -> ::windows::core::HRESULT,
    pub GetPositionOfContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psc: *mut ::core::ffi::c_void, pccharacterposition: *mut u32, cnumchars: *mut u32) -> ::windows::core::HRESULT,
    pub GetContextOfPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ccharacterposition: u32, cnumchars: u32, ppsc: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugDocumentTextAuthor(::windows::core::IUnknown);
impl IDebugDocumentTextAuthor {
    pub unsafe fn GetName(&self, dnt: DOCUMENTNAMETYPE) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.base__.GetName)(::windows::core::Vtable::as_raw(self), dnt, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetDocumentClassId(&self) -> ::windows::core::Result<::windows::core::GUID> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.base__.GetDocumentClassId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__)
    }
    pub unsafe fn GetDocumentAttributes(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetDocumentAttributes)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSize(&self, pcnumlines: *mut u32, pcnumchars: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.GetSize)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pcnumlines), ::core::mem::transmute(pcnumchars)).ok()
    }
    pub unsafe fn GetPositionOfLine(&self, clinenumber: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetPositionOfLine)(::windows::core::Vtable::as_raw(self), clinenumber, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetLineOfPosition(&self, ccharacterposition: u32, pclinenumber: *mut u32, pccharacteroffsetinline: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.GetLineOfPosition)(::windows::core::Vtable::as_raw(self), ccharacterposition, ::core::mem::transmute(pclinenumber), ::core::mem::transmute(pccharacteroffsetinline)).ok()
    }
    pub unsafe fn GetText(&self, ccharacterposition: u32, pchartext: &mut [u16], pstatextattr: ::core::option::Option<*mut u16>, pcnumchars: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.GetText)(::windows::core::Vtable::as_raw(self), ccharacterposition, ::core::mem::transmute(pchartext.as_ptr()), ::core::mem::transmute(pstatextattr.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pcnumchars), pchartext.len() as _).ok()
    }
    pub unsafe fn GetPositionOfContext<'a, P0>(&self, psc: P0, pccharacterposition: *mut u32, cnumchars: *mut u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugDocumentContext>>,
    {
        (::windows::core::Vtable::vtable(self).base__.GetPositionOfContext)(::windows::core::Vtable::as_raw(self), psc.into().abi(), ::core::mem::transmute(pccharacterposition), ::core::mem::transmute(cnumchars)).ok()
    }
    pub unsafe fn GetContextOfPosition(&self, ccharacterposition: u32, cnumchars: u32) -> ::windows::core::Result<IDebugDocumentContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetContextOfPosition)(::windows::core::Vtable::as_raw(self), ccharacterposition, cnumchars, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugDocumentContext>(result__)
    }
    pub unsafe fn InsertText(&self, ccharacterposition: u32, pchartext: &[u16]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).InsertText)(::windows::core::Vtable::as_raw(self), ccharacterposition, pchartext.len() as _, ::core::mem::transmute(pchartext.as_ptr())).ok()
    }
    pub unsafe fn RemoveText(&self, ccharacterposition: u32, cnumtoremove: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveText)(::windows::core::Vtable::as_raw(self), ccharacterposition, cnumtoremove).ok()
    }
    pub unsafe fn ReplaceText(&self, ccharacterposition: u32, pchartext: &[u16]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReplaceText)(::windows::core::Vtable::as_raw(self), ccharacterposition, pchartext.len() as _, ::core::mem::transmute(pchartext.as_ptr())).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugDocumentTextAuthor, ::windows::core::IUnknown, IDebugDocumentInfo, IDebugDocument, IDebugDocumentText);
impl ::core::clone::Clone for IDebugDocumentTextAuthor {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugDocumentTextAuthor {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugDocumentTextAuthor {}
impl ::core::fmt::Debug for IDebugDocumentTextAuthor {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugDocumentTextAuthor").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugDocumentTextAuthor {
    type Vtable = IDebugDocumentTextAuthor_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugDocumentTextAuthor {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c24_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugDocumentTextAuthor_Vtbl {
    pub base__: IDebugDocumentText_Vtbl,
    pub InsertText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ccharacterposition: u32, cnumtoinsert: u32, pchartext: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub RemoveText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ccharacterposition: u32, cnumtoremove: u32) -> ::windows::core::HRESULT,
    pub ReplaceText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ccharacterposition: u32, cnumtoreplace: u32, pchartext: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugDocumentTextEvents(::windows::core::IUnknown);
impl IDebugDocumentTextEvents {
    pub unsafe fn onDestroy(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).onDestroy)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn onInsertText(&self, ccharacterposition: u32, cnumtoinsert: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).onInsertText)(::windows::core::Vtable::as_raw(self), ccharacterposition, cnumtoinsert).ok()
    }
    pub unsafe fn onRemoveText(&self, ccharacterposition: u32, cnumtoremove: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).onRemoveText)(::windows::core::Vtable::as_raw(self), ccharacterposition, cnumtoremove).ok()
    }
    pub unsafe fn onReplaceText(&self, ccharacterposition: u32, cnumtoreplace: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).onReplaceText)(::windows::core::Vtable::as_raw(self), ccharacterposition, cnumtoreplace).ok()
    }
    pub unsafe fn onUpdateTextAttributes(&self, ccharacterposition: u32, cnumtoupdate: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).onUpdateTextAttributes)(::windows::core::Vtable::as_raw(self), ccharacterposition, cnumtoupdate).ok()
    }
    pub unsafe fn onUpdateDocumentAttributes(&self, textdocattr: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).onUpdateDocumentAttributes)(::windows::core::Vtable::as_raw(self), textdocattr).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugDocumentTextEvents, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugDocumentTextEvents {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugDocumentTextEvents {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugDocumentTextEvents {}
impl ::core::fmt::Debug for IDebugDocumentTextEvents {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugDocumentTextEvents").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugDocumentTextEvents {
    type Vtable = IDebugDocumentTextEvents_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugDocumentTextEvents {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c23_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugDocumentTextEvents_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub onDestroy: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub onInsertText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ccharacterposition: u32, cnumtoinsert: u32) -> ::windows::core::HRESULT,
    pub onRemoveText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ccharacterposition: u32, cnumtoremove: u32) -> ::windows::core::HRESULT,
    pub onReplaceText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ccharacterposition: u32, cnumtoreplace: u32) -> ::windows::core::HRESULT,
    pub onUpdateTextAttributes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ccharacterposition: u32, cnumtoupdate: u32) -> ::windows::core::HRESULT,
    pub onUpdateDocumentAttributes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, textdocattr: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugDocumentTextExternalAuthor(::windows::core::IUnknown);
impl IDebugDocumentTextExternalAuthor {
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetPathName(&self, pbstrlongname: *mut ::windows::core::BSTR, pfisoriginalfile: *mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPathName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pbstrlongname), ::core::mem::transmute(pfisoriginalfile)).ok()
    }
    pub unsafe fn GetFileName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFileName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn NotifyChanged(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).NotifyChanged)(::windows::core::Vtable::as_raw(self)).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugDocumentTextExternalAuthor, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugDocumentTextExternalAuthor {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugDocumentTextExternalAuthor {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugDocumentTextExternalAuthor {}
impl ::core::fmt::Debug for IDebugDocumentTextExternalAuthor {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugDocumentTextExternalAuthor").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugDocumentTextExternalAuthor {
    type Vtable = IDebugDocumentTextExternalAuthor_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugDocumentTextExternalAuthor {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c25_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugDocumentTextExternalAuthor_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    #[cfg(feature = "Win32_Foundation")]
    pub GetPathName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbstrlongname: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>, pfisoriginalfile: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetPathName: usize,
    pub GetFileName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbstrshortname: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub NotifyChanged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugEventCallbacks(::windows::core::IUnknown);
impl IDebugEventCallbacks {
    pub unsafe fn GetInterestMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInterestMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn Breakpoint<'a, P0>(&self, bp: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugBreakpoint>>,
    {
        (::windows::core::Vtable::vtable(self).Breakpoint)(::windows::core::Vtable::as_raw(self), bp.into().abi()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn Exception(&self, exception: *const EXCEPTION_RECORD64, firstchance: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Exception)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(exception), firstchance).ok()
    }
    pub unsafe fn CreateThread(&self, handle: u64, dataoffset: u64, startoffset: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).CreateThread)(::windows::core::Vtable::as_raw(self), handle, dataoffset, startoffset).ok()
    }
    pub unsafe fn ExitThread(&self, exitcode: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ExitThread)(::windows::core::Vtable::as_raw(self), exitcode).ok()
    }
    pub unsafe fn CreateProcessA<'a, P0, P1>(&self, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessA)(::windows::core::Vtable::as_raw(self), imagefilehandle, handle, baseoffset, modulesize, modulename.into(), imagename.into(), checksum, timedatestamp, initialthreadhandle, threaddataoffset, startoffset).ok()
    }
    pub unsafe fn ExitProcess(&self, exitcode: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ExitProcess)(::windows::core::Vtable::as_raw(self), exitcode).ok()
    }
    pub unsafe fn LoadModule<'a, P0, P1>(&self, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).LoadModule)(::windows::core::Vtable::as_raw(self), imagefilehandle, baseoffset, modulesize, modulename.into(), imagename.into(), checksum, timedatestamp).ok()
    }
    pub unsafe fn UnloadModule<'a, P0>(&self, imagebasename: P0, baseoffset: u64) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).UnloadModule)(::windows::core::Vtable::as_raw(self), imagebasename.into(), baseoffset).ok()
    }
    pub unsafe fn SystemError(&self, error: u32, level: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SystemError)(::windows::core::Vtable::as_raw(self), error, level).ok()
    }
    pub unsafe fn SessionStatus(&self, status: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SessionStatus)(::windows::core::Vtable::as_raw(self), status).ok()
    }
    pub unsafe fn ChangeDebuggeeState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ChangeDebuggeeState)(::windows::core::Vtable::as_raw(self), flags, argument).ok()
    }
    pub unsafe fn ChangeEngineState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ChangeEngineState)(::windows::core::Vtable::as_raw(self), flags, argument).ok()
    }
    pub unsafe fn ChangeSymbolState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ChangeSymbolState)(::windows::core::Vtable::as_raw(self), flags, argument).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugEventCallbacks, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugEventCallbacks {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugEventCallbacks {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugEventCallbacks {}
impl ::core::fmt::Debug for IDebugEventCallbacks {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugEventCallbacks").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugEventCallbacks {
    type Vtable = IDebugEventCallbacks_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugEventCallbacks {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x337be28b_5036_4d72_b6bf_c45fbb9f2eaa);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugEventCallbacks_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetInterestMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub Breakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub Exception: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, exception: *const EXCEPTION_RECORD64, firstchance: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    Exception: usize,
    pub CreateThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, dataoffset: u64, startoffset: u64) -> ::windows::core::HRESULT,
    pub ExitThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, exitcode: u32) -> ::windows::core::HRESULT,
    pub CreateProcessA: unsafe extern "system" fn(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,
    pub ExitProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, exitcode: u32) -> ::windows::core::HRESULT,
    pub LoadModule: unsafe extern "system" fn(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,
    pub UnloadModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, imagebasename: ::windows::core::PCSTR, baseoffset: u64) -> ::windows::core::HRESULT,
    pub SystemError: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, error: u32, level: u32) -> ::windows::core::HRESULT,
    pub SessionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: u32) -> ::windows::core::HRESULT,
    pub ChangeDebuggeeState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows::core::HRESULT,
    pub ChangeEngineState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows::core::HRESULT,
    pub ChangeSymbolState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugEventCallbacksWide(::windows::core::IUnknown);
impl IDebugEventCallbacksWide {
    pub unsafe fn GetInterestMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInterestMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn Breakpoint<'a, P0>(&self, bp: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugBreakpoint2>>,
    {
        (::windows::core::Vtable::vtable(self).Breakpoint)(::windows::core::Vtable::as_raw(self), bp.into().abi()).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn Exception(&self, exception: *const EXCEPTION_RECORD64, firstchance: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Exception)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(exception), firstchance).ok()
    }
    pub unsafe fn CreateThread(&self, handle: u64, dataoffset: u64, startoffset: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).CreateThread)(::windows::core::Vtable::as_raw(self), handle, dataoffset, startoffset).ok()
    }
    pub unsafe fn ExitThread(&self, exitcode: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ExitThread)(::windows::core::Vtable::as_raw(self), exitcode).ok()
    }
    pub unsafe fn CreateProcessA<'a, P0, P1>(&self, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessA)(::windows::core::Vtable::as_raw(self), imagefilehandle, handle, baseoffset, modulesize, modulename.into(), imagename.into(), checksum, timedatestamp, initialthreadhandle, threaddataoffset, startoffset).ok()
    }
    pub unsafe fn ExitProcess(&self, exitcode: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ExitProcess)(::windows::core::Vtable::as_raw(self), exitcode).ok()
    }
    pub unsafe fn LoadModule<'a, P0, P1>(&self, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).LoadModule)(::windows::core::Vtable::as_raw(self), imagefilehandle, baseoffset, modulesize, modulename.into(), imagename.into(), checksum, timedatestamp).ok()
    }
    pub unsafe fn UnloadModule<'a, P0>(&self, imagebasename: P0, baseoffset: u64) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).UnloadModule)(::windows::core::Vtable::as_raw(self), imagebasename.into(), baseoffset).ok()
    }
    pub unsafe fn SystemError(&self, error: u32, level: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SystemError)(::windows::core::Vtable::as_raw(self), error, level).ok()
    }
    pub unsafe fn SessionStatus(&self, status: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SessionStatus)(::windows::core::Vtable::as_raw(self), status).ok()
    }
    pub unsafe fn ChangeDebuggeeState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ChangeDebuggeeState)(::windows::core::Vtable::as_raw(self), flags, argument).ok()
    }
    pub unsafe fn ChangeEngineState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ChangeEngineState)(::windows::core::Vtable::as_raw(self), flags, argument).ok()
    }
    pub unsafe fn ChangeSymbolState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ChangeSymbolState)(::windows::core::Vtable::as_raw(self), flags, argument).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugEventCallbacksWide, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugEventCallbacksWide {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugEventCallbacksWide {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugEventCallbacksWide {}
impl ::core::fmt::Debug for IDebugEventCallbacksWide {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugEventCallbacksWide").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugEventCallbacksWide {
    type Vtable = IDebugEventCallbacksWide_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugEventCallbacksWide {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0690e046_9c23_45ac_a04f_987ac29ad0d3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugEventCallbacksWide_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetInterestMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub Breakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub Exception: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, exception: *const EXCEPTION_RECORD64, firstchance: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    Exception: usize,
    pub CreateThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, dataoffset: u64, startoffset: u64) -> ::windows::core::HRESULT,
    pub ExitThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, exitcode: u32) -> ::windows::core::HRESULT,
    pub CreateProcessA: unsafe extern "system" fn(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,
    pub ExitProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, exitcode: u32) -> ::windows::core::HRESULT,
    pub LoadModule: unsafe extern "system" fn(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,
    pub UnloadModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, imagebasename: ::windows::core::PCWSTR, baseoffset: u64) -> ::windows::core::HRESULT,
    pub SystemError: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, error: u32, level: u32) -> ::windows::core::HRESULT,
    pub SessionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: u32) -> ::windows::core::HRESULT,
    pub ChangeDebuggeeState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows::core::HRESULT,
    pub ChangeEngineState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows::core::HRESULT,
    pub ChangeSymbolState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugEventContextCallbacks(::windows::core::IUnknown);
impl IDebugEventContextCallbacks {
    pub unsafe fn GetInterestMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInterestMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn Breakpoint<'a, P0>(&self, bp: P0, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugBreakpoint2>>,
    {
        (::windows::core::Vtable::vtable(self).Breakpoint)(::windows::core::Vtable::as_raw(self), bp.into().abi(), ::core::mem::transmute(context), contextsize).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn Exception(&self, exception: *const EXCEPTION_RECORD64, firstchance: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Exception)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(exception), firstchance, ::core::mem::transmute(context), contextsize).ok()
    }
    pub unsafe fn CreateThread(&self, handle: u64, dataoffset: u64, startoffset: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).CreateThread)(::windows::core::Vtable::as_raw(self), handle, dataoffset, startoffset, ::core::mem::transmute(context), contextsize).ok()
    }
    pub unsafe fn ExitThread(&self, exitcode: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ExitThread)(::windows::core::Vtable::as_raw(self), exitcode, ::core::mem::transmute(context), contextsize).ok()
    }
    pub unsafe fn CreateProcessA<'a, P0, P1>(&self, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).CreateProcessA)(::windows::core::Vtable::as_raw(self), imagefilehandle, handle, baseoffset, modulesize, modulename.into(), imagename.into(), checksum, timedatestamp, initialthreadhandle, threaddataoffset, startoffset, ::core::mem::transmute(context), contextsize).ok()
    }
    pub unsafe fn ExitProcess(&self, exitcode: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ExitProcess)(::windows::core::Vtable::as_raw(self), exitcode, ::core::mem::transmute(context), contextsize).ok()
    }
    pub unsafe fn LoadModule<'a, P0, P1>(&self, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).LoadModule)(::windows::core::Vtable::as_raw(self), imagefilehandle, baseoffset, modulesize, modulename.into(), imagename.into(), checksum, timedatestamp, ::core::mem::transmute(context), contextsize).ok()
    }
    pub unsafe fn UnloadModule<'a, P0>(&self, imagebasename: P0, baseoffset: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).UnloadModule)(::windows::core::Vtable::as_raw(self), imagebasename.into(), baseoffset, ::core::mem::transmute(context), contextsize).ok()
    }
    pub unsafe fn SystemError(&self, error: u32, level: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SystemError)(::windows::core::Vtable::as_raw(self), error, level, ::core::mem::transmute(context), contextsize).ok()
    }
    pub unsafe fn SessionStatus(&self, status: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SessionStatus)(::windows::core::Vtable::as_raw(self), status).ok()
    }
    pub unsafe fn ChangeDebuggeeState(&self, flags: u32, argument: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ChangeDebuggeeState)(::windows::core::Vtable::as_raw(self), flags, argument, ::core::mem::transmute(context), contextsize).ok()
    }
    pub unsafe fn ChangeEngineState(&self, flags: u32, argument: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ChangeEngineState)(::windows::core::Vtable::as_raw(self), flags, argument, ::core::mem::transmute(context), contextsize).ok()
    }
    pub unsafe fn ChangeSymbolState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ChangeSymbolState)(::windows::core::Vtable::as_raw(self), flags, argument).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugEventContextCallbacks, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugEventContextCallbacks {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugEventContextCallbacks {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugEventContextCallbacks {}
impl ::core::fmt::Debug for IDebugEventContextCallbacks {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugEventContextCallbacks").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugEventContextCallbacks {
    type Vtable = IDebugEventContextCallbacks_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugEventContextCallbacks {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x61a4905b_23f9_4247_b3c5_53d087529ab7);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugEventContextCallbacks_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetInterestMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub Breakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub Exception: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, exception: *const EXCEPTION_RECORD64, firstchance: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    Exception: usize,
    pub CreateThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, dataoffset: u64, startoffset: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT,
    pub ExitThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, exitcode: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT,
    pub CreateProcessA: unsafe extern "system" fn(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,
    pub ExitProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, exitcode: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT,
    pub LoadModule: unsafe extern "system" fn(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,
    pub UnloadModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, imagebasename: ::windows::core::PCWSTR, baseoffset: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT,
    pub SystemError: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, error: u32, level: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT,
    pub SessionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: u32) -> ::windows::core::HRESULT,
    pub ChangeDebuggeeState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, argument: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT,
    pub ChangeEngineState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, argument: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::HRESULT,
    pub ChangeSymbolState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugExpression(::windows::core::IUnknown);
impl IDebugExpression {
    pub unsafe fn Start<'a, P0>(&self, pdecb: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugExpressionCallBack>>,
    {
        (::windows::core::Vtable::vtable(self).Start)(::windows::core::Vtable::as_raw(self), pdecb.into().abi()).ok()
    }
    pub unsafe fn Abort(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Abort)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn QueryIsComplete(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).QueryIsComplete)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetResultAsString(&self, phrresult: *mut ::windows::core::HRESULT, pbstrresult: *mut ::windows::core::BSTR) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetResultAsString)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(phrresult), ::core::mem::transmute(pbstrresult)).ok()
    }
    pub unsafe fn GetResultAsDebugProperty(&self, phrresult: *mut ::windows::core::HRESULT, ppdp: *mut ::core::option::Option<IDebugProperty>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetResultAsDebugProperty)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(phrresult), ::core::mem::transmute(ppdp)).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugExpression, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugExpression {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugExpression {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugExpression {}
impl ::core::fmt::Debug for IDebugExpression {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugExpression").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugExpression {
    type Vtable = IDebugExpression_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugExpression {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c14_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugExpression_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Start: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdecb: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Abort: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub QueryIsComplete: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetResultAsString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, phrresult: *mut ::windows::core::HRESULT, pbstrresult: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub GetResultAsDebugProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, phrresult: *mut ::windows::core::HRESULT, ppdp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugExpressionCallBack(::windows::core::IUnknown);
impl IDebugExpressionCallBack {
    pub unsafe fn onComplete(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).onComplete)(::windows::core::Vtable::as_raw(self)).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugExpressionCallBack, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugExpressionCallBack {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugExpressionCallBack {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugExpressionCallBack {}
impl ::core::fmt::Debug for IDebugExpressionCallBack {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugExpressionCallBack").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugExpressionCallBack {
    type Vtable = IDebugExpressionCallBack_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugExpressionCallBack {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c16_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugExpressionCallBack_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub onComplete: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugExpressionContext(::windows::core::IUnknown);
impl IDebugExpressionContext {
    pub unsafe fn ParseLanguageText<'a, P0, P1>(&self, pstrcode: P0, nradix: u32, pstrdelimiter: P1, dwflags: u32) -> ::windows::core::Result<IDebugExpression>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ParseLanguageText)(::windows::core::Vtable::as_raw(self), pstrcode.into(), nradix, pstrdelimiter.into(), dwflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugExpression>(result__)
    }
    pub unsafe fn GetLanguageInfo(&self, pbstrlanguagename: *mut ::windows::core::BSTR, planguageid: *mut ::windows::core::GUID) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLanguageInfo)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pbstrlanguagename), ::core::mem::transmute(planguageid)).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugExpressionContext, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugExpressionContext {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugExpressionContext {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugExpressionContext {}
impl ::core::fmt::Debug for IDebugExpressionContext {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugExpressionContext").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugExpressionContext {
    type Vtable = IDebugExpressionContext_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugExpressionContext {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c15_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugExpressionContext_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub ParseLanguageText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrcode: ::windows::core::PCWSTR, nradix: u32, pstrdelimiter: ::windows::core::PCWSTR, dwflags: u32, ppe: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetLanguageInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbstrlanguagename: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>, planguageid: *mut ::windows::core::GUID) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugExtendedProperty(::windows::core::IUnknown);
impl IDebugExtendedProperty {
    pub unsafe fn GetPropertyInfo(&self, dwfieldspec: u32, nradix: u32) -> ::windows::core::Result<DebugPropertyInfo> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetPropertyInfo)(::windows::core::Vtable::as_raw(self), dwfieldspec, nradix, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DebugPropertyInfo>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn GetExtendedInfo(&self, cinfos: u32, rgguidextendedinfo: *const ::windows::core::GUID) -> ::windows::core::Result<super::super::Com::VARIANT> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetExtendedInfo)(::windows::core::Vtable::as_raw(self), cinfos, ::core::mem::transmute(rgguidextendedinfo), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::VARIANT>(result__)
    }
    pub unsafe fn SetValueAsString<'a, P0>(&self, pszvalue: P0, nradix: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).base__.SetValueAsString)(::windows::core::Vtable::as_raw(self), pszvalue.into(), nradix).ok()
    }
    pub unsafe fn EnumMembers(&self, dwfieldspec: u32, nradix: u32, refiid: *const ::windows::core::GUID) -> ::windows::core::Result<IEnumDebugPropertyInfo> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.EnumMembers)(::windows::core::Vtable::as_raw(self), dwfieldspec, nradix, ::core::mem::transmute(refiid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugPropertyInfo>(result__)
    }
    pub unsafe fn GetParent(&self) -> ::windows::core::Result<IDebugProperty> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetParent)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugProperty>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole"))]
    pub unsafe fn GetExtendedPropertyInfo(&self, dwfieldspec: u32, nradix: u32) -> ::windows::core::Result<ExtendedDebugPropertyInfo> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExtendedPropertyInfo)(::windows::core::Vtable::as_raw(self), dwfieldspec, nradix, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<ExtendedDebugPropertyInfo>(result__)
    }
    pub unsafe fn EnumExtendedMembers(&self, dwfieldspec: u32, nradix: u32) -> ::windows::core::Result<IEnumDebugExtendedPropertyInfo> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumExtendedMembers)(::windows::core::Vtable::as_raw(self), dwfieldspec, nradix, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugExtendedPropertyInfo>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugExtendedProperty, ::windows::core::IUnknown, IDebugProperty);
impl ::core::clone::Clone for IDebugExtendedProperty {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugExtendedProperty {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugExtendedProperty {}
impl ::core::fmt::Debug for IDebugExtendedProperty {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugExtendedProperty").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugExtendedProperty {
    type Vtable = IDebugExtendedProperty_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugExtendedProperty {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c52_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugExtendedProperty_Vtbl {
    pub base__: IDebugProperty_Vtbl,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole"))]
    pub GetExtendedPropertyInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwfieldspec: u32, nradix: u32, pextendedpropertyinfo: *mut ::core::mem::ManuallyDrop<ExtendedDebugPropertyInfo>) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole")))]
    GetExtendedPropertyInfo: usize,
    pub EnumExtendedMembers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwfieldspec: u32, nradix: u32, ppeepi: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugFormatter(::windows::core::IUnknown);
impl IDebugFormatter {
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn GetStringForVariant(&self, pvar: *const super::super::Com::VARIANT, nradix: u32) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetStringForVariant)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pvar), nradix, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn GetVariantForString<'a, P0>(&self, pwstrvalue: P0) -> ::windows::core::Result<super::super::Com::VARIANT>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetVariantForString)(::windows::core::Vtable::as_raw(self), pwstrvalue.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::VARIANT>(result__)
    }
    #[doc = "*Required features: `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn GetStringForVarType(&self, vt: super::super::Com::VARENUM, ptdescarraytype: *const super::super::Com::TYPEDESC) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetStringForVarType)(::windows::core::Vtable::as_raw(self), vt, ::core::mem::transmute(ptdescarraytype), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugFormatter, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugFormatter {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugFormatter {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugFormatter {}
impl ::core::fmt::Debug for IDebugFormatter {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugFormatter").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugFormatter {
    type Vtable = IDebugFormatter_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugFormatter {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c05_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugFormatter_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub GetStringForVariant: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pvar: *const ::core::mem::ManuallyDrop<super::super::Com::VARIANT>, nradix: u32, pbstrvalue: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
    GetStringForVariant: usize,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub GetVariantForString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pwstrvalue: ::windows::core::PCWSTR, pvar: *mut ::core::mem::ManuallyDrop<super::super::Com::VARIANT>) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
    GetVariantForString: usize,
    #[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub GetStringForVarType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, vt: super::super::Com::VARENUM, ptdescarraytype: *const super::super::Com::TYPEDESC, pbstr: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
    GetStringForVarType: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHelper(::windows::core::IUnknown);
impl IDebugHelper {
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn CreatePropertyBrowser<'a, P0, P1>(&self, pvar: *const super::super::Com::VARIANT, bstrname: P0, pdat: P1) -> ::windows::core::Result<IDebugProperty>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IDebugApplicationThread>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreatePropertyBrowser)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pvar), bstrname.into(), pdat.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugProperty>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn CreatePropertyBrowserEx<'a, P0, P1, P2>(&self, pvar: *const super::super::Com::VARIANT, bstrname: P0, pdat: P1, pdf: P2) -> ::windows::core::Result<IDebugProperty>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IDebugApplicationThread>>,
        P2: ::std::convert::Into<::windows::core::InParam<'a, IDebugFormatter>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreatePropertyBrowserEx)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pvar), bstrname.into(), pdat.into().abi(), pdf.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugProperty>(result__)
    }
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn CreateSimpleConnectionPoint<'a, P0>(&self, pdisp: P0) -> ::windows::core::Result<ISimpleConnectionPoint>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Com::IDispatch>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateSimpleConnectionPoint)(::windows::core::Vtable::as_raw(self), pdisp.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<ISimpleConnectionPoint>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugHelper, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugHelper {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHelper {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHelper {}
impl ::core::fmt::Debug for IDebugHelper {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHelper").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHelper {
    type Vtable = IDebugHelper_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHelper {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c3f_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHelper_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub CreatePropertyBrowser: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pvar: *const ::core::mem::ManuallyDrop<super::super::Com::VARIANT>, bstrname: ::windows::core::PCWSTR, pdat: *mut ::core::ffi::c_void, ppdob: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
    CreatePropertyBrowser: usize,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub CreatePropertyBrowserEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pvar: *const ::core::mem::ManuallyDrop<super::super::Com::VARIANT>, bstrname: ::windows::core::PCWSTR, pdat: *mut ::core::ffi::c_void, pdf: *mut ::core::ffi::c_void, ppdob: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
    CreatePropertyBrowserEx: usize,
    #[cfg(feature = "Win32_System_Com")]
    pub CreateSimpleConnectionPoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdisp: *mut ::core::ffi::c_void, ppscp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    CreateSimpleConnectionPoint: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHost(::windows::core::IUnknown);
impl IDebugHost {
    pub unsafe fn GetHostDefinedInterface(&self) -> ::windows::core::Result<::windows::core::IUnknown> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetHostDefinedInterface)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::IUnknown>(result__)
    }
    pub unsafe fn GetCurrentContext(&self) -> ::windows::core::Result<IDebugHostContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostContext>(result__)
    }
    pub unsafe fn GetDefaultMetadata(&self) -> ::windows::core::Result<IKeyStore> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDefaultMetadata)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IKeyStore>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugHost, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugHost {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHost {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHost {}
impl ::core::fmt::Debug for IDebugHost {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHost").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHost {
    type Vtable = IDebugHost_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHost {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb8c74943_6b2c_4eeb_b5c5_35d378a6d99d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHost_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetHostDefinedInterface: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hostunk: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetCurrentContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetDefaultMetadata: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, defaultmetadatastore: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostBaseClass(::windows::core::IUnknown);
impl IDebugHostBaseClass {
    pub unsafe fn GetContext(&self) -> ::windows::core::Result<IDebugHostContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostContext>(result__)
    }
    pub unsafe fn EnumerateChildren<'a, P0>(&self, kind: SymbolKind, name: P0) -> ::windows::core::Result<IDebugHostSymbolEnumerator>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.EnumerateChildren)(::windows::core::Vtable::as_raw(self), kind, name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostSymbolEnumerator>(result__)
    }
    pub unsafe fn GetSymbolKind(&self) -> ::windows::core::Result<SymbolKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetSymbolKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<SymbolKind>(result__)
    }
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetType(&self) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn GetContainingModule(&self) -> ::windows::core::Result<IDebugHostModule> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetContainingModule)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostModule>(result__)
    }
    pub unsafe fn CompareAgainst<'a, P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows::core::Result<bool>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostSymbol>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CompareAgainst)(::windows::core::Vtable::as_raw(self), pcomparisonsymbol.into().abi(), comparisonflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
    pub unsafe fn GetOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugHostBaseClass, ::windows::core::IUnknown, IDebugHostSymbol);
impl ::core::clone::Clone for IDebugHostBaseClass {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostBaseClass {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostBaseClass {}
impl ::core::fmt::Debug for IDebugHostBaseClass {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostBaseClass").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostBaseClass {
    type Vtable = IDebugHostBaseClass_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostBaseClass {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb94d57d2_390b_40f7_b5b4_b6db897d974b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostBaseClass_Vtbl {
    pub base__: IDebugHostSymbol_Vtbl,
    pub GetOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostConstant(::windows::core::IUnknown);
impl IDebugHostConstant {
    pub unsafe fn GetContext(&self) -> ::windows::core::Result<IDebugHostContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostContext>(result__)
    }
    pub unsafe fn EnumerateChildren<'a, P0>(&self, kind: SymbolKind, name: P0) -> ::windows::core::Result<IDebugHostSymbolEnumerator>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.EnumerateChildren)(::windows::core::Vtable::as_raw(self), kind, name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostSymbolEnumerator>(result__)
    }
    pub unsafe fn GetSymbolKind(&self) -> ::windows::core::Result<SymbolKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetSymbolKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<SymbolKind>(result__)
    }
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetType(&self) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn GetContainingModule(&self) -> ::windows::core::Result<IDebugHostModule> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetContainingModule)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostModule>(result__)
    }
    pub unsafe fn CompareAgainst<'a, P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows::core::Result<bool>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostSymbol>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CompareAgainst)(::windows::core::Vtable::as_raw(self), pcomparisonsymbol.into().abi(), comparisonflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn GetValue(&self) -> ::windows::core::Result<super::super::Com::VARIANT> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetValue)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::VARIANT>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugHostConstant, ::windows::core::IUnknown, IDebugHostSymbol);
impl ::core::clone::Clone for IDebugHostConstant {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostConstant {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostConstant {}
impl ::core::fmt::Debug for IDebugHostConstant {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostConstant").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostConstant {
    type Vtable = IDebugHostConstant_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostConstant {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x62787edc_fa76_4690_bd71_5e8c3e2937ec);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostConstant_Vtbl {
    pub base__: IDebugHostSymbol_Vtbl,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub GetValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::mem::ManuallyDrop<super::super::Com::VARIANT>) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
    GetValue: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostContext(::windows::core::IUnknown);
impl IDebugHostContext {
    pub unsafe fn IsEqualTo<'a, P0>(&self, pcontext: P0) -> ::windows::core::Result<bool>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).IsEqualTo)(::windows::core::Vtable::as_raw(self), pcontext.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugHostContext, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugHostContext {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostContext {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostContext {}
impl ::core::fmt::Debug for IDebugHostContext {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostContext").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostContext {
    type Vtable = IDebugHostContext_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostContext {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa68c70d8_5ec0_46e5_b775_3134a48ea2e3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostContext_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub IsEqualTo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pcontext: *mut ::core::ffi::c_void, pisequal: *mut bool) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostData(::windows::core::IUnknown);
impl IDebugHostData {
    pub unsafe fn GetContext(&self) -> ::windows::core::Result<IDebugHostContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostContext>(result__)
    }
    pub unsafe fn EnumerateChildren<'a, P0>(&self, kind: SymbolKind, name: P0) -> ::windows::core::Result<IDebugHostSymbolEnumerator>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.EnumerateChildren)(::windows::core::Vtable::as_raw(self), kind, name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostSymbolEnumerator>(result__)
    }
    pub unsafe fn GetSymbolKind(&self) -> ::windows::core::Result<SymbolKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetSymbolKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<SymbolKind>(result__)
    }
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetType(&self) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn GetContainingModule(&self) -> ::windows::core::Result<IDebugHostModule> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetContainingModule)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostModule>(result__)
    }
    pub unsafe fn CompareAgainst<'a, P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows::core::Result<bool>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostSymbol>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CompareAgainst)(::windows::core::Vtable::as_raw(self), pcomparisonsymbol.into().abi(), comparisonflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
    pub unsafe fn GetLocationKind(&self) -> ::windows::core::Result<LocationKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetLocationKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<LocationKind>(result__)
    }
    pub unsafe fn GetLocation(&self) -> ::windows::core::Result<Location> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetLocation)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<Location>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn GetValue(&self) -> ::windows::core::Result<super::super::Com::VARIANT> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetValue)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::VARIANT>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugHostData, ::windows::core::IUnknown, IDebugHostSymbol);
impl ::core::clone::Clone for IDebugHostData {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostData {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostData {}
impl ::core::fmt::Debug for IDebugHostData {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostData").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostData {
    type Vtable = IDebugHostData_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostData {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa3d64993_826c_44fa_897d_926f2fe7ad0b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostData_Vtbl {
    pub base__: IDebugHostSymbol_Vtbl,
    pub GetLocationKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, locationkind: *mut LocationKind) -> ::windows::core::HRESULT,
    pub GetLocation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, location: *mut Location) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub GetValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::mem::ManuallyDrop<super::super::Com::VARIANT>) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
    GetValue: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostErrorSink(::windows::core::IUnknown);
impl IDebugHostErrorSink {
    pub unsafe fn ReportError<'a, P0>(&self, errclass: ErrorClass, hrerror: ::windows::core::HRESULT, message: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ReportError)(::windows::core::Vtable::as_raw(self), errclass, hrerror, message.into()).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugHostErrorSink, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugHostErrorSink {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostErrorSink {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostErrorSink {}
impl ::core::fmt::Debug for IDebugHostErrorSink {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostErrorSink").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostErrorSink {
    type Vtable = IDebugHostErrorSink_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostErrorSink {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc8ff0f0b_fce9_467e_8bb3_5d69ef109c00);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostErrorSink_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub ReportError: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, errclass: ErrorClass, hrerror: ::windows::core::HRESULT, message: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostEvaluator(::windows::core::IUnknown);
impl IDebugHostEvaluator {
    pub unsafe fn EvaluateExpression<'a, P0, P1, P2>(&self, context: P0, expression: P1, bindingcontext: P2, result: *mut ::core::option::Option<IModelObject>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).EvaluateExpression)(::windows::core::Vtable::as_raw(self), context.into().abi(), expression.into(), bindingcontext.into().abi(), ::core::mem::transmute(result), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn EvaluateExtendedExpression<'a, P0, P1, P2>(&self, context: P0, expression: P1, bindingcontext: P2, result: *mut ::core::option::Option<IModelObject>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).EvaluateExtendedExpression)(::windows::core::Vtable::as_raw(self), context.into().abi(), expression.into(), bindingcontext.into().abi(), ::core::mem::transmute(result), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugHostEvaluator, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugHostEvaluator {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostEvaluator {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostEvaluator {}
impl ::core::fmt::Debug for IDebugHostEvaluator {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostEvaluator").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostEvaluator {
    type Vtable = IDebugHostEvaluator_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostEvaluator {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0fef9a21_577e_4997_ac7b_1c4883241d99);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostEvaluator_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub EvaluateExpression: unsafe extern "system" fn(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,
    pub EvaluateExtendedExpression: unsafe extern "system" fn(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,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostEvaluator2(::windows::core::IUnknown);
impl IDebugHostEvaluator2 {
    pub unsafe fn EvaluateExpression<'a, P0, P1, P2>(&self, context: P0, expression: P1, bindingcontext: P2, result: *mut ::core::option::Option<IModelObject>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).base__.EvaluateExpression)(::windows::core::Vtable::as_raw(self), context.into().abi(), expression.into(), bindingcontext.into().abi(), ::core::mem::transmute(result), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn EvaluateExtendedExpression<'a, P0, P1, P2>(&self, context: P0, expression: P1, bindingcontext: P2, result: *mut ::core::option::Option<IModelObject>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).base__.EvaluateExtendedExpression)(::windows::core::Vtable::as_raw(self), context.into().abi(), expression.into(), bindingcontext.into().abi(), ::core::mem::transmute(result), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn AssignTo<'a, P0, P1>(&self, assignmentreference: P0, assignmentvalue: P1, assignmentresult: *mut ::core::option::Option<IModelObject>, assignmentmetadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).AssignTo)(::windows::core::Vtable::as_raw(self), assignmentreference.into().abi(), assignmentvalue.into().abi(), ::core::mem::transmute(assignmentresult), ::core::mem::transmute(assignmentmetadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugHostEvaluator2, ::windows::core::IUnknown, IDebugHostEvaluator);
impl ::core::clone::Clone for IDebugHostEvaluator2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostEvaluator2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostEvaluator2 {}
impl ::core::fmt::Debug for IDebugHostEvaluator2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostEvaluator2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostEvaluator2 {
    type Vtable = IDebugHostEvaluator2_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostEvaluator2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa117a435_1fb4_4092_a2ab_a929576c1e87);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostEvaluator2_Vtbl {
    pub base__: IDebugHostEvaluator_Vtbl,
    pub AssignTo: unsafe extern "system" fn(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,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostExtensibility(::windows::core::IUnknown);
impl IDebugHostExtensibility {
    pub unsafe fn CreateFunctionAlias<'a, P0, P1>(&self, aliasname: P0, functionobject: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).CreateFunctionAlias)(::windows::core::Vtable::as_raw(self), aliasname.into(), functionobject.into().abi()).ok()
    }
    pub unsafe fn DestroyFunctionAlias<'a, P0>(&self, aliasname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).DestroyFunctionAlias)(::windows::core::Vtable::as_raw(self), aliasname.into()).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugHostExtensibility, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugHostExtensibility {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostExtensibility {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostExtensibility {}
impl ::core::fmt::Debug for IDebugHostExtensibility {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostExtensibility").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostExtensibility {
    type Vtable = IDebugHostExtensibility_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostExtensibility {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3c2b24e1_11d0_4f86_8ae5_4df166f73253);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostExtensibility_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub CreateFunctionAlias: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, aliasname: ::windows::core::PCWSTR, functionobject: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub DestroyFunctionAlias: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, aliasname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostField(::windows::core::IUnknown);
impl IDebugHostField {
    pub unsafe fn GetContext(&self) -> ::windows::core::Result<IDebugHostContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostContext>(result__)
    }
    pub unsafe fn EnumerateChildren<'a, P0>(&self, kind: SymbolKind, name: P0) -> ::windows::core::Result<IDebugHostSymbolEnumerator>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.EnumerateChildren)(::windows::core::Vtable::as_raw(self), kind, name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostSymbolEnumerator>(result__)
    }
    pub unsafe fn GetSymbolKind(&self) -> ::windows::core::Result<SymbolKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetSymbolKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<SymbolKind>(result__)
    }
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetType(&self) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn GetContainingModule(&self) -> ::windows::core::Result<IDebugHostModule> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetContainingModule)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostModule>(result__)
    }
    pub unsafe fn CompareAgainst<'a, P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows::core::Result<bool>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostSymbol>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CompareAgainst)(::windows::core::Vtable::as_raw(self), pcomparisonsymbol.into().abi(), comparisonflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
    pub unsafe fn GetLocationKind(&self) -> ::windows::core::Result<LocationKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetLocationKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<LocationKind>(result__)
    }
    pub unsafe fn GetOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetLocation(&self) -> ::windows::core::Result<Location> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetLocation)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<Location>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn GetValue(&self) -> ::windows::core::Result<super::super::Com::VARIANT> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetValue)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::VARIANT>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugHostField, ::windows::core::IUnknown, IDebugHostSymbol);
impl ::core::clone::Clone for IDebugHostField {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostField {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostField {}
impl ::core::fmt::Debug for IDebugHostField {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostField").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostField {
    type Vtable = IDebugHostField_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostField {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe06f6495_16bc_4cc9_b11d_2a6b23fa72f3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostField_Vtbl {
    pub base__: IDebugHostSymbol_Vtbl,
    pub GetLocationKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, locationkind: *mut LocationKind) -> ::windows::core::HRESULT,
    pub GetOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetLocation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, location: *mut Location) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub GetValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut ::core::mem::ManuallyDrop<super::super::Com::VARIANT>) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
    GetValue: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostMemory(::windows::core::IUnknown);
impl IDebugHostMemory {
    pub unsafe fn ReadBytes<'a, P0>(&self, context: P0, location: Location, buffer: *mut ::core::ffi::c_void, buffersize: u64, bytesread: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
    {
        (::windows::core::Vtable::vtable(self).ReadBytes)(::windows::core::Vtable::as_raw(self), context.into().abi(), ::core::mem::transmute(location), ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteBytes<'a, P0>(&self, context: P0, location: Location, buffer: *const ::core::ffi::c_void, buffersize: u64) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteBytes)(::windows::core::Vtable::as_raw(self), context.into().abi(), ::core::mem::transmute(location), ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn ReadPointers<'a, P0>(&self, context: P0, location: Location, pointers: &mut [u64]) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
    {
        (::windows::core::Vtable::vtable(self).ReadPointers)(::windows::core::Vtable::as_raw(self), context.into().abi(), ::core::mem::transmute(location), pointers.len() as _, ::core::mem::transmute(pointers.as_ptr())).ok()
    }
    pub unsafe fn WritePointers<'a, P0>(&self, context: P0, location: Location, pointers: &[u64]) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
    {
        (::windows::core::Vtable::vtable(self).WritePointers)(::windows::core::Vtable::as_raw(self), context.into().abi(), ::core::mem::transmute(location), pointers.len() as _, ::core::mem::transmute(pointers.as_ptr())).ok()
    }
    pub unsafe fn GetDisplayStringForLocation<'a, P0>(&self, context: P0, location: Location, verbose: u8) -> ::windows::core::Result<::windows::core::BSTR>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDisplayStringForLocation)(::windows::core::Vtable::as_raw(self), context.into().abi(), ::core::mem::transmute(location), verbose, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugHostMemory, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugHostMemory {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostMemory {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostMemory {}
impl ::core::fmt::Debug for IDebugHostMemory {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostMemory").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostMemory {
    type Vtable = IDebugHostMemory_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostMemory {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x212149c9_9183_4a3e_b00e_4fd1dc95339b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostMemory_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub ReadBytes: unsafe extern "system" fn(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,
    pub WriteBytes: unsafe extern "system" fn(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,
    pub ReadPointers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, location: Location, count: u64, pointers: *mut u64) -> ::windows::core::HRESULT,
    pub WritePointers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, location: Location, count: u64, pointers: *const u64) -> ::windows::core::HRESULT,
    pub GetDisplayStringForLocation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, location: Location, verbose: u8, locationname: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostMemory2(::windows::core::IUnknown);
impl IDebugHostMemory2 {
    pub unsafe fn ReadBytes<'a, P0>(&self, context: P0, location: Location, buffer: *mut ::core::ffi::c_void, buffersize: u64, bytesread: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
    {
        (::windows::core::Vtable::vtable(self).base__.ReadBytes)(::windows::core::Vtable::as_raw(self), context.into().abi(), ::core::mem::transmute(location), ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteBytes<'a, P0>(&self, context: P0, location: Location, buffer: *const ::core::ffi::c_void, buffersize: u64) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.WriteBytes)(::windows::core::Vtable::as_raw(self), context.into().abi(), ::core::mem::transmute(location), ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn ReadPointers<'a, P0>(&self, context: P0, location: Location, pointers: &mut [u64]) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
    {
        (::windows::core::Vtable::vtable(self).base__.ReadPointers)(::windows::core::Vtable::as_raw(self), context.into().abi(), ::core::mem::transmute(location), pointers.len() as _, ::core::mem::transmute(pointers.as_ptr())).ok()
    }
    pub unsafe fn WritePointers<'a, P0>(&self, context: P0, location: Location, pointers: &[u64]) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
    {
        (::windows::core::Vtable::vtable(self).base__.WritePointers)(::windows::core::Vtable::as_raw(self), context.into().abi(), ::core::mem::transmute(location), pointers.len() as _, ::core::mem::transmute(pointers.as_ptr())).ok()
    }
    pub unsafe fn GetDisplayStringForLocation<'a, P0>(&self, context: P0, location: Location, verbose: u8) -> ::windows::core::Result<::windows::core::BSTR>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetDisplayStringForLocation)(::windows::core::Vtable::as_raw(self), context.into().abi(), ::core::mem::transmute(location), verbose, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn LinearizeLocation<'a, P0>(&self, context: P0, location: Location) -> ::windows::core::Result<Location>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).LinearizeLocation)(::windows::core::Vtable::as_raw(self), context.into().abi(), ::core::mem::transmute(location), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<Location>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugHostMemory2, ::windows::core::IUnknown, IDebugHostMemory);
impl ::core::clone::Clone for IDebugHostMemory2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostMemory2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostMemory2 {}
impl ::core::fmt::Debug for IDebugHostMemory2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostMemory2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostMemory2 {
    type Vtable = IDebugHostMemory2_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostMemory2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xeea033de_38f6_416b_a251_1d3771001270);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostMemory2_Vtbl {
    pub base__: IDebugHostMemory_Vtbl,
    pub LinearizeLocation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, location: Location, plinearizedlocation: *mut Location) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostModule(::windows::core::IUnknown);
impl IDebugHostModule {
    pub unsafe fn GetContext(&self) -> ::windows::core::Result<IDebugHostContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostContext>(result__)
    }
    pub unsafe fn EnumerateChildren<'a, P0>(&self, kind: SymbolKind, name: P0) -> ::windows::core::Result<IDebugHostSymbolEnumerator>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.EnumerateChildren)(::windows::core::Vtable::as_raw(self), kind, name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostSymbolEnumerator>(result__)
    }
    pub unsafe fn GetSymbolKind(&self) -> ::windows::core::Result<SymbolKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetSymbolKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<SymbolKind>(result__)
    }
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetType(&self) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn GetContainingModule(&self) -> ::windows::core::Result<IDebugHostModule> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetContainingModule)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostModule>(result__)
    }
    pub unsafe fn CompareAgainst<'a, P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows::core::Result<bool>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostSymbol>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CompareAgainst)(::windows::core::Vtable::as_raw(self), pcomparisonsymbol.into().abi(), comparisonflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
    pub unsafe fn GetImageName(&self, allowpath: u8) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetImageName)(::windows::core::Vtable::as_raw(self), allowpath, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetBaseLocation(&self) -> ::windows::core::Result<Location> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBaseLocation)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<Location>(result__)
    }
    pub unsafe fn GetVersion(&self, fileversion: ::core::option::Option<*mut u64>, productversion: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetVersion)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(fileversion.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(productversion.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn FindTypeByName<'a, P0>(&self, typename: P0) -> ::windows::core::Result<IDebugHostType>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).FindTypeByName)(::windows::core::Vtable::as_raw(self), typename.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn FindSymbolByRVA(&self, rva: u64) -> ::windows::core::Result<IDebugHostSymbol> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).FindSymbolByRVA)(::windows::core::Vtable::as_raw(self), rva, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostSymbol>(result__)
    }
    pub unsafe fn FindSymbolByName<'a, P0>(&self, symbolname: P0) -> ::windows::core::Result<IDebugHostSymbol>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).FindSymbolByName)(::windows::core::Vtable::as_raw(self), symbolname.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostSymbol>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugHostModule, ::windows::core::IUnknown, IDebugHostSymbol);
impl ::core::clone::Clone for IDebugHostModule {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostModule {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostModule {}
impl ::core::fmt::Debug for IDebugHostModule {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostModule").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostModule {
    type Vtable = IDebugHostModule_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostModule {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc9ba3e18_d070_4378_bbd0_34613b346e1e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostModule_Vtbl {
    pub base__: IDebugHostSymbol_Vtbl,
    pub GetImageName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, allowpath: u8, imagename: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub GetBaseLocation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, modulebaselocation: *mut Location) -> ::windows::core::HRESULT,
    pub GetVersion: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, fileversion: *mut u64, productversion: *mut u64) -> ::windows::core::HRESULT,
    pub FindTypeByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, typename: ::windows::core::PCWSTR, r#type: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub FindSymbolByRVA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rva: u64, symbol: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub FindSymbolByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbolname: ::windows::core::PCWSTR, symbol: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostModule2(::windows::core::IUnknown);
impl IDebugHostModule2 {
    pub unsafe fn GetContext(&self) -> ::windows::core::Result<IDebugHostContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostContext>(result__)
    }
    pub unsafe fn EnumerateChildren<'a, P0>(&self, kind: SymbolKind, name: P0) -> ::windows::core::Result<IDebugHostSymbolEnumerator>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.EnumerateChildren)(::windows::core::Vtable::as_raw(self), kind, name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostSymbolEnumerator>(result__)
    }
    pub unsafe fn GetSymbolKind(&self) -> ::windows::core::Result<SymbolKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetSymbolKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<SymbolKind>(result__)
    }
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetType(&self) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn GetContainingModule(&self) -> ::windows::core::Result<IDebugHostModule> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetContainingModule)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostModule>(result__)
    }
    pub unsafe fn CompareAgainst<'a, P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows::core::Result<bool>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostSymbol>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.CompareAgainst)(::windows::core::Vtable::as_raw(self), pcomparisonsymbol.into().abi(), comparisonflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
    pub unsafe fn GetImageName(&self, allowpath: u8) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetImageName)(::windows::core::Vtable::as_raw(self), allowpath, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetBaseLocation(&self) -> ::windows::core::Result<Location> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetBaseLocation)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<Location>(result__)
    }
    pub unsafe fn GetVersion(&self, fileversion: ::core::option::Option<*mut u64>, productversion: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.GetVersion)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(fileversion.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(productversion.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn FindTypeByName<'a, P0>(&self, typename: P0) -> ::windows::core::Result<IDebugHostType>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.FindTypeByName)(::windows::core::Vtable::as_raw(self), typename.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn FindSymbolByRVA(&self, rva: u64) -> ::windows::core::Result<IDebugHostSymbol> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.FindSymbolByRVA)(::windows::core::Vtable::as_raw(self), rva, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostSymbol>(result__)
    }
    pub unsafe fn FindSymbolByName<'a, P0>(&self, symbolname: P0) -> ::windows::core::Result<IDebugHostSymbol>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.FindSymbolByName)(::windows::core::Vtable::as_raw(self), symbolname.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostSymbol>(result__)
    }
    pub unsafe fn FindContainingSymbolByRVA(&self, rva: u64, symbol: *mut ::core::option::Option<IDebugHostSymbol>, offset: *mut u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).FindContainingSymbolByRVA)(::windows::core::Vtable::as_raw(self), rva, ::core::mem::transmute(symbol), ::core::mem::transmute(offset)).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugHostModule2, ::windows::core::IUnknown, IDebugHostSymbol, IDebugHostModule);
impl ::core::clone::Clone for IDebugHostModule2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostModule2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostModule2 {}
impl ::core::fmt::Debug for IDebugHostModule2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostModule2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostModule2 {
    type Vtable = IDebugHostModule2_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostModule2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb51887e8_bcd0_4e8f_a8c7_434398b78c37);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostModule2_Vtbl {
    pub base__: IDebugHostModule_Vtbl,
    pub FindContainingSymbolByRVA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rva: u64, symbol: *mut *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostModuleSignature(::windows::core::IUnknown);
impl IDebugHostModuleSignature {
    pub unsafe fn IsMatch<'a, P0>(&self, pmodule: P0) -> ::windows::core::Result<bool>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostModule>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).IsMatch)(::windows::core::Vtable::as_raw(self), pmodule.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugHostModuleSignature, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugHostModuleSignature {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostModuleSignature {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostModuleSignature {}
impl ::core::fmt::Debug for IDebugHostModuleSignature {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostModuleSignature").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostModuleSignature {
    type Vtable = IDebugHostModuleSignature_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostModuleSignature {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x31e53a5a_01ee_4bbb_b899_4b46ae7d595c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostModuleSignature_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub IsMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pmodule: *mut ::core::ffi::c_void, ismatch: *mut bool) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostPublic(::windows::core::IUnknown);
impl IDebugHostPublic {
    pub unsafe fn GetContext(&self) -> ::windows::core::Result<IDebugHostContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostContext>(result__)
    }
    pub unsafe fn EnumerateChildren<'a, P0>(&self, kind: SymbolKind, name: P0) -> ::windows::core::Result<IDebugHostSymbolEnumerator>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.EnumerateChildren)(::windows::core::Vtable::as_raw(self), kind, name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostSymbolEnumerator>(result__)
    }
    pub unsafe fn GetSymbolKind(&self) -> ::windows::core::Result<SymbolKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetSymbolKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<SymbolKind>(result__)
    }
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetType(&self) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn GetContainingModule(&self) -> ::windows::core::Result<IDebugHostModule> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetContainingModule)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostModule>(result__)
    }
    pub unsafe fn CompareAgainst<'a, P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows::core::Result<bool>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostSymbol>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CompareAgainst)(::windows::core::Vtable::as_raw(self), pcomparisonsymbol.into().abi(), comparisonflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
    pub unsafe fn GetLocationKind(&self) -> ::windows::core::Result<LocationKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetLocationKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<LocationKind>(result__)
    }
    pub unsafe fn GetLocation(&self) -> ::windows::core::Result<Location> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetLocation)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<Location>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugHostPublic, ::windows::core::IUnknown, IDebugHostSymbol);
impl ::core::clone::Clone for IDebugHostPublic {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostPublic {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostPublic {}
impl ::core::fmt::Debug for IDebugHostPublic {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostPublic").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostPublic {
    type Vtable = IDebugHostPublic_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostPublic {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6c597ac9_fb4d_4f6d_9f39_22488539f8f4);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostPublic_Vtbl {
    pub base__: IDebugHostSymbol_Vtbl,
    pub GetLocationKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, locationkind: *mut LocationKind) -> ::windows::core::HRESULT,
    pub GetLocation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, location: *mut Location) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostScriptHost(::windows::core::IUnknown);
impl IDebugHostScriptHost {
    pub unsafe fn CreateContext<'a, P0>(&self, script: P0) -> ::windows::core::Result<IDataModelScriptHostContext>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDataModelScript>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateContext)(::windows::core::Vtable::as_raw(self), script.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDataModelScriptHostContext>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugHostScriptHost, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugHostScriptHost {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostScriptHost {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostScriptHost {}
impl ::core::fmt::Debug for IDebugHostScriptHost {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostScriptHost").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostScriptHost {
    type Vtable = IDebugHostScriptHost_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostScriptHost {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb70334a4_b92c_4570_93a1_d3eb686649a0);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostScriptHost_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub CreateContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, script: *mut ::core::ffi::c_void, scriptcontext: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostStatus(::windows::core::IUnknown);
impl IDebugHostStatus {
    pub unsafe fn PollUserInterrupt(&self) -> ::windows::core::Result<bool> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).PollUserInterrupt)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugHostStatus, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugHostStatus {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostStatus {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostStatus {}
impl ::core::fmt::Debug for IDebugHostStatus {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostStatus").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostStatus {
    type Vtable = IDebugHostStatus_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostStatus {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4f3e1ce2_86b2_4c7a_9c65_d0a9d0eecf44);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostStatus_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub PollUserInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, interruptrequested: *mut bool) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostSymbol(::windows::core::IUnknown);
impl IDebugHostSymbol {
    pub unsafe fn GetContext(&self) -> ::windows::core::Result<IDebugHostContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostContext>(result__)
    }
    pub unsafe fn EnumerateChildren<'a, P0>(&self, kind: SymbolKind, name: P0) -> ::windows::core::Result<IDebugHostSymbolEnumerator>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumerateChildren)(::windows::core::Vtable::as_raw(self), kind, name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostSymbolEnumerator>(result__)
    }
    pub unsafe fn GetSymbolKind(&self) -> ::windows::core::Result<SymbolKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<SymbolKind>(result__)
    }
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetType(&self) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn GetContainingModule(&self) -> ::windows::core::Result<IDebugHostModule> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetContainingModule)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostModule>(result__)
    }
    pub unsafe fn CompareAgainst<'a, P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows::core::Result<bool>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostSymbol>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CompareAgainst)(::windows::core::Vtable::as_raw(self), pcomparisonsymbol.into().abi(), comparisonflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugHostSymbol, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugHostSymbol {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostSymbol {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostSymbol {}
impl ::core::fmt::Debug for IDebugHostSymbol {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostSymbol").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostSymbol {
    type Vtable = IDebugHostSymbol_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostSymbol {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0f819103_87de_4e96_8277_e05cd441fb22);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostSymbol_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EnumerateChildren: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, kind: SymbolKind, name: ::windows::core::PCWSTR, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetSymbolKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, kind: *mut SymbolKind) -> ::windows::core::HRESULT,
    pub GetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbolname: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub GetType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetContainingModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, containingmodule: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CompareAgainst: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pcomparisonsymbol: *mut ::core::ffi::c_void, comparisonflags: u32, pmatches: *mut bool) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostSymbol2(::windows::core::IUnknown);
impl IDebugHostSymbol2 {
    pub unsafe fn GetContext(&self) -> ::windows::core::Result<IDebugHostContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostContext>(result__)
    }
    pub unsafe fn EnumerateChildren<'a, P0>(&self, kind: SymbolKind, name: P0) -> ::windows::core::Result<IDebugHostSymbolEnumerator>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.EnumerateChildren)(::windows::core::Vtable::as_raw(self), kind, name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostSymbolEnumerator>(result__)
    }
    pub unsafe fn GetSymbolKind(&self) -> ::windows::core::Result<SymbolKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetSymbolKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<SymbolKind>(result__)
    }
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetType(&self) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn GetContainingModule(&self) -> ::windows::core::Result<IDebugHostModule> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetContainingModule)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostModule>(result__)
    }
    pub unsafe fn CompareAgainst<'a, P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows::core::Result<bool>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostSymbol>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CompareAgainst)(::windows::core::Vtable::as_raw(self), pcomparisonsymbol.into().abi(), comparisonflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
    pub unsafe fn GetLanguage(&self) -> ::windows::core::Result<LanguageKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetLanguage)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<LanguageKind>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugHostSymbol2, ::windows::core::IUnknown, IDebugHostSymbol);
impl ::core::clone::Clone for IDebugHostSymbol2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostSymbol2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostSymbol2 {}
impl ::core::fmt::Debug for IDebugHostSymbol2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostSymbol2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostSymbol2 {
    type Vtable = IDebugHostSymbol2_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostSymbol2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x21515b67_6720_4257_8a68_077dc944471c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostSymbol2_Vtbl {
    pub base__: IDebugHostSymbol_Vtbl,
    pub GetLanguage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pkind: *mut LanguageKind) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostSymbolEnumerator(::windows::core::IUnknown);
impl IDebugHostSymbolEnumerator {
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Reset)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetNext(&self) -> ::windows::core::Result<IDebugHostSymbol> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostSymbol>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugHostSymbolEnumerator, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugHostSymbolEnumerator {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostSymbolEnumerator {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostSymbolEnumerator {}
impl ::core::fmt::Debug for IDebugHostSymbolEnumerator {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostSymbolEnumerator").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostSymbolEnumerator {
    type Vtable = IDebugHostSymbolEnumerator_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostSymbolEnumerator {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x28d96c86_10a3_4976_b14e_eaef4790aa1f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostSymbolEnumerator_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetNext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostSymbols(::windows::core::IUnknown);
impl IDebugHostSymbols {
    pub unsafe fn CreateModuleSignature<'a, P0, P1, P2>(&self, pwszmodulename: P0, pwszminversion: P1, pwszmaxversion: P2) -> ::windows::core::Result<IDebugHostModuleSignature>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateModuleSignature)(::windows::core::Vtable::as_raw(self), pwszmodulename.into(), pwszminversion.into(), pwszmaxversion.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostModuleSignature>(result__)
    }
    pub unsafe fn CreateTypeSignature<'a, P0, P1>(&self, signaturespecification: P0, module: P1) -> ::windows::core::Result<IDebugHostTypeSignature>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostModule>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateTypeSignature)(::windows::core::Vtable::as_raw(self), signaturespecification.into(), module.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostTypeSignature>(result__)
    }
    pub unsafe fn CreateTypeSignatureForModuleRange<'a, P0, P1, P2, P3>(&self, signaturespecification: P0, modulename: P1, minversion: P2, maxversion: P3) -> ::windows::core::Result<IDebugHostTypeSignature>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
        P3: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateTypeSignatureForModuleRange)(::windows::core::Vtable::as_raw(self), signaturespecification.into(), modulename.into(), minversion.into(), maxversion.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostTypeSignature>(result__)
    }
    pub unsafe fn EnumerateModules<'a, P0>(&self, context: P0) -> ::windows::core::Result<IDebugHostSymbolEnumerator>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumerateModules)(::windows::core::Vtable::as_raw(self), context.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostSymbolEnumerator>(result__)
    }
    pub unsafe fn FindModuleByName<'a, P0, P1>(&self, context: P0, modulename: P1) -> ::windows::core::Result<IDebugHostModule>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).FindModuleByName)(::windows::core::Vtable::as_raw(self), context.into().abi(), modulename.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostModule>(result__)
    }
    pub unsafe fn FindModuleByLocation<'a, P0>(&self, context: P0, modulelocation: Location) -> ::windows::core::Result<IDebugHostModule>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).FindModuleByLocation)(::windows::core::Vtable::as_raw(self), context.into().abi(), ::core::mem::transmute(modulelocation), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostModule>(result__)
    }
    pub unsafe fn GetMostDerivedObject<'a, P0, P1>(&self, pcontext: P0, location: Location, objecttype: P1, derivedlocation: *mut Location, derivedtype: *mut ::core::option::Option<IDebugHostType>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostType>>,
    {
        (::windows::core::Vtable::vtable(self).GetMostDerivedObject)(::windows::core::Vtable::as_raw(self), pcontext.into().abi(), ::core::mem::transmute(location), objecttype.into().abi(), ::core::mem::transmute(derivedlocation), ::core::mem::transmute(derivedtype)).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugHostSymbols, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugHostSymbols {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostSymbols {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostSymbols {}
impl ::core::fmt::Debug for IDebugHostSymbols {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostSymbols").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostSymbols {
    type Vtable = IDebugHostSymbols_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostSymbols {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x854fd751_c2e1_4eb2_b525_6619cb97a588);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostSymbols_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub CreateModuleSignature: unsafe extern "system" fn(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,
    pub CreateTypeSignature: unsafe extern "system" fn(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,
    pub CreateTypeSignatureForModuleRange: unsafe extern "system" fn(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,
    pub EnumerateModules: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, moduleenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub FindModuleByName: unsafe extern "system" fn(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,
    pub FindModuleByLocation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, modulelocation: Location, module: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetMostDerivedObject: unsafe extern "system" fn(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,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostType(::windows::core::IUnknown);
impl IDebugHostType {
    pub unsafe fn GetContext(&self) -> ::windows::core::Result<IDebugHostContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostContext>(result__)
    }
    pub unsafe fn EnumerateChildren<'a, P0>(&self, kind: SymbolKind, name: P0) -> ::windows::core::Result<IDebugHostSymbolEnumerator>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.EnumerateChildren)(::windows::core::Vtable::as_raw(self), kind, name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostSymbolEnumerator>(result__)
    }
    pub unsafe fn GetSymbolKind(&self) -> ::windows::core::Result<SymbolKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetSymbolKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<SymbolKind>(result__)
    }
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetType(&self) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn GetContainingModule(&self) -> ::windows::core::Result<IDebugHostModule> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetContainingModule)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostModule>(result__)
    }
    pub unsafe fn CompareAgainst<'a, P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows::core::Result<bool>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostSymbol>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CompareAgainst)(::windows::core::Vtable::as_raw(self), pcomparisonsymbol.into().abi(), comparisonflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
    pub unsafe fn GetTypeKind(&self) -> ::windows::core::Result<TypeKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypeKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<TypeKind>(result__)
    }
    pub unsafe fn GetSize(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSize)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetBaseType(&self) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBaseType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn GetHashCode(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetHashCode)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetIntrinsicType(&self, intrinsickind: ::core::option::Option<*mut IntrinsicKind>, carriertype: ::core::option::Option<*mut u16>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetIntrinsicType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(intrinsickind.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(carriertype.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetBitField(&self, lsboffield: *mut u32, lengthoffield: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetBitField)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(lsboffield), ::core::mem::transmute(lengthoffield)).ok()
    }
    pub unsafe fn GetPointerKind(&self) -> ::windows::core::Result<PointerKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetPointerKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<PointerKind>(result__)
    }
    pub unsafe fn GetMemberType(&self) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetMemberType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn CreatePointerTo(&self, kind: PointerKind) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreatePointerTo)(::windows::core::Vtable::as_raw(self), kind, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn GetArrayDimensionality(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetArrayDimensionality)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetArrayDimensions(&self, pdimensions: &mut [ArrayDimension]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetArrayDimensions)(::windows::core::Vtable::as_raw(self), pdimensions.len() as _, ::core::mem::transmute(pdimensions.as_ptr())).ok()
    }
    pub unsafe fn CreateArrayOf(&self, pdimensions: &[ArrayDimension]) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateArrayOf)(::windows::core::Vtable::as_raw(self), pdimensions.len() as _, ::core::mem::transmute(pdimensions.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn GetFunctionCallingConvention(&self) -> ::windows::core::Result<CallingConventionKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFunctionCallingConvention)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<CallingConventionKind>(result__)
    }
    pub unsafe fn GetFunctionReturnType(&self) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFunctionReturnType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn GetFunctionParameterTypeCount(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFunctionParameterTypeCount)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetFunctionParameterTypeAt(&self, i: u64) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFunctionParameterTypeAt)(::windows::core::Vtable::as_raw(self), i, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn IsGeneric(&self) -> ::windows::core::Result<bool> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).IsGeneric)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
    pub unsafe fn GetGenericArgumentCount(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetGenericArgumentCount)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetGenericArgumentAt(&self, i: u64) -> ::windows::core::Result<IDebugHostSymbol> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetGenericArgumentAt)(::windows::core::Vtable::as_raw(self), i, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostSymbol>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugHostType, ::windows::core::IUnknown, IDebugHostSymbol);
impl ::core::clone::Clone for IDebugHostType {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostType {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostType {}
impl ::core::fmt::Debug for IDebugHostType {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostType").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostType {
    type Vtable = IDebugHostType_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostType {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3aadc353_2b14_4abb_9893_5e03458e07ee);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostType_Vtbl {
    pub base__: IDebugHostSymbol_Vtbl,
    pub GetTypeKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, kind: *mut TypeKind) -> ::windows::core::HRESULT,
    pub GetSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u64) -> ::windows::core::HRESULT,
    pub GetBaseType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, basetype: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetHashCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hashcode: *mut u32) -> ::windows::core::HRESULT,
    pub GetIntrinsicType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, intrinsickind: *mut IntrinsicKind, carriertype: *mut u16) -> ::windows::core::HRESULT,
    pub GetBitField: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, lsboffield: *mut u32, lengthoffield: *mut u32) -> ::windows::core::HRESULT,
    pub GetPointerKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pointerkind: *mut PointerKind) -> ::windows::core::HRESULT,
    pub GetMemberType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, membertype: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreatePointerTo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, kind: PointerKind, newtype: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetArrayDimensionality: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, arraydimensionality: *mut u64) -> ::windows::core::HRESULT,
    pub GetArrayDimensions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dimensions: u64, pdimensions: *mut ArrayDimension) -> ::windows::core::HRESULT,
    pub CreateArrayOf: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dimensions: u64, pdimensions: *const ArrayDimension, newtype: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetFunctionCallingConvention: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, conventionkind: *mut CallingConventionKind) -> ::windows::core::HRESULT,
    pub GetFunctionReturnType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, returntype: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetFunctionParameterTypeCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u64) -> ::windows::core::HRESULT,
    pub GetFunctionParameterTypeAt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, i: u64, parametertype: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub IsGeneric: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, isgeneric: *mut bool) -> ::windows::core::HRESULT,
    pub GetGenericArgumentCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, argcount: *mut u64) -> ::windows::core::HRESULT,
    pub GetGenericArgumentAt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, i: u64, argument: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostType2(::windows::core::IUnknown);
impl IDebugHostType2 {
    pub unsafe fn GetContext(&self) -> ::windows::core::Result<IDebugHostContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostContext>(result__)
    }
    pub unsafe fn EnumerateChildren<'a, P0>(&self, kind: SymbolKind, name: P0) -> ::windows::core::Result<IDebugHostSymbolEnumerator>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.EnumerateChildren)(::windows::core::Vtable::as_raw(self), kind, name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostSymbolEnumerator>(result__)
    }
    pub unsafe fn GetSymbolKind(&self) -> ::windows::core::Result<SymbolKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetSymbolKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<SymbolKind>(result__)
    }
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetType(&self) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn GetContainingModule(&self) -> ::windows::core::Result<IDebugHostModule> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetContainingModule)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostModule>(result__)
    }
    pub unsafe fn CompareAgainst<'a, P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows::core::Result<bool>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostSymbol>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.CompareAgainst)(::windows::core::Vtable::as_raw(self), pcomparisonsymbol.into().abi(), comparisonflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
    pub unsafe fn GetTypeKind(&self) -> ::windows::core::Result<TypeKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetTypeKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<TypeKind>(result__)
    }
    pub unsafe fn GetSize(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetSize)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetBaseType(&self) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetBaseType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn GetHashCode(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetHashCode)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetIntrinsicType(&self, intrinsickind: ::core::option::Option<*mut IntrinsicKind>, carriertype: ::core::option::Option<*mut u16>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.GetIntrinsicType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(intrinsickind.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(carriertype.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetBitField(&self, lsboffield: *mut u32, lengthoffield: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.GetBitField)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(lsboffield), ::core::mem::transmute(lengthoffield)).ok()
    }
    pub unsafe fn GetPointerKind(&self) -> ::windows::core::Result<PointerKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetPointerKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<PointerKind>(result__)
    }
    pub unsafe fn GetMemberType(&self) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetMemberType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn CreatePointerTo(&self, kind: PointerKind) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CreatePointerTo)(::windows::core::Vtable::as_raw(self), kind, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn GetArrayDimensionality(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetArrayDimensionality)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetArrayDimensions(&self, pdimensions: &mut [ArrayDimension]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.GetArrayDimensions)(::windows::core::Vtable::as_raw(self), pdimensions.len() as _, ::core::mem::transmute(pdimensions.as_ptr())).ok()
    }
    pub unsafe fn CreateArrayOf(&self, pdimensions: &[ArrayDimension]) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CreateArrayOf)(::windows::core::Vtable::as_raw(self), pdimensions.len() as _, ::core::mem::transmute(pdimensions.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn GetFunctionCallingConvention(&self) -> ::windows::core::Result<CallingConventionKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetFunctionCallingConvention)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<CallingConventionKind>(result__)
    }
    pub unsafe fn GetFunctionReturnType(&self) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetFunctionReturnType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn GetFunctionParameterTypeCount(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetFunctionParameterTypeCount)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetFunctionParameterTypeAt(&self, i: u64) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetFunctionParameterTypeAt)(::windows::core::Vtable::as_raw(self), i, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn IsGeneric(&self) -> ::windows::core::Result<bool> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.IsGeneric)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
    pub unsafe fn GetGenericArgumentCount(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetGenericArgumentCount)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetGenericArgumentAt(&self, i: u64) -> ::windows::core::Result<IDebugHostSymbol> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetGenericArgumentAt)(::windows::core::Vtable::as_raw(self), i, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostSymbol>(result__)
    }
    pub unsafe fn IsTypedef(&self) -> ::windows::core::Result<bool> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).IsTypedef)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
    pub unsafe fn GetTypedefBaseType(&self) -> ::windows::core::Result<IDebugHostType2> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypedefBaseType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType2>(result__)
    }
    pub unsafe fn GetTypedefFinalBaseType(&self) -> ::windows::core::Result<IDebugHostType2> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypedefFinalBaseType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType2>(result__)
    }
    pub unsafe fn GetFunctionVarArgsKind(&self) -> ::windows::core::Result<VarArgsKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFunctionVarArgsKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<VarArgsKind>(result__)
    }
    pub unsafe fn GetFunctionInstancePointerType(&self) -> ::windows::core::Result<IDebugHostType2> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFunctionInstancePointerType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType2>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugHostType2, ::windows::core::IUnknown, IDebugHostSymbol, IDebugHostType);
impl ::core::clone::Clone for IDebugHostType2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostType2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostType2 {}
impl ::core::fmt::Debug for IDebugHostType2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostType2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostType2 {
    type Vtable = IDebugHostType2_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostType2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb28632b9_8506_4676_87ce_8f7e05e59876);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostType2_Vtbl {
    pub base__: IDebugHostType_Vtbl,
    pub IsTypedef: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, istypedef: *mut bool) -> ::windows::core::HRESULT,
    pub GetTypedefBaseType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, basetype: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetTypedefFinalBaseType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, finalbasetype: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetFunctionVarArgsKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, varargskind: *mut VarArgsKind) -> ::windows::core::HRESULT,
    pub GetFunctionInstancePointerType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instancepointertype: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugHostTypeSignature(::windows::core::IUnknown);
impl IDebugHostTypeSignature {
    pub unsafe fn GetHashCode(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetHashCode)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn IsMatch<'a, P0>(&self, r#type: P0, ismatch: *mut bool, wildcardmatches: ::core::option::Option<*mut ::core::option::Option<IDebugHostSymbolEnumerator>>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostType>>,
    {
        (::windows::core::Vtable::vtable(self).IsMatch)(::windows::core::Vtable::as_raw(self), r#type.into().abi(), ::core::mem::transmute(ismatch), ::core::mem::transmute(wildcardmatches.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn CompareAgainst<'a, P0>(&self, typesignature: P0) -> ::windows::core::Result<SignatureComparison>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostTypeSignature>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CompareAgainst)(::windows::core::Vtable::as_raw(self), typesignature.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<SignatureComparison>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugHostTypeSignature, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugHostTypeSignature {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugHostTypeSignature {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugHostTypeSignature {}
impl ::core::fmt::Debug for IDebugHostTypeSignature {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugHostTypeSignature").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugHostTypeSignature {
    type Vtable = IDebugHostTypeSignature_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugHostTypeSignature {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3aadc353_2b14_4abb_9893_5e03458e07ee);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostTypeSignature_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetHashCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hashcode: *mut u32) -> ::windows::core::HRESULT,
    pub IsMatch: unsafe extern "system" fn(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,
    pub CompareAgainst: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, typesignature: *mut ::core::ffi::c_void, result: *mut SignatureComparison) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugInputCallbacks(::windows::core::IUnknown);
impl IDebugInputCallbacks {
    pub unsafe fn StartInput(&self, buffersize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).StartInput)(::windows::core::Vtable::as_raw(self), buffersize).ok()
    }
    pub unsafe fn EndInput(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndInput)(::windows::core::Vtable::as_raw(self)).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugInputCallbacks, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugInputCallbacks {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugInputCallbacks {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugInputCallbacks {}
impl ::core::fmt::Debug for IDebugInputCallbacks {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugInputCallbacks").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugInputCallbacks {
    type Vtable = IDebugInputCallbacks_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugInputCallbacks {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9f50e42c_f136_499e_9a97_73036c94ed2d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugInputCallbacks_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub StartInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffersize: u32) -> ::windows::core::HRESULT,
    pub EndInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugOutputCallbacks(::windows::core::IUnknown);
impl IDebugOutputCallbacks {
    pub unsafe fn Output<'a, P0>(&self, mask: u32, text: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Output)(::windows::core::Vtable::as_raw(self), mask, text.into()).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugOutputCallbacks, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugOutputCallbacks {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugOutputCallbacks {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugOutputCallbacks {}
impl ::core::fmt::Debug for IDebugOutputCallbacks {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugOutputCallbacks").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugOutputCallbacks {
    type Vtable = IDebugOutputCallbacks_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugOutputCallbacks {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4bf58045_d654_4c40_b0af_683090f356dc);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugOutputCallbacks_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Output: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, text: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugOutputCallbacks2(::windows::core::IUnknown);
impl IDebugOutputCallbacks2 {
    pub unsafe fn Output<'a, P0>(&self, mask: u32, text: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Output)(::windows::core::Vtable::as_raw(self), mask, text.into()).ok()
    }
    pub unsafe fn GetInterestMask(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInterestMask)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn Output2<'a, P0>(&self, which: u32, flags: u32, arg: u64, text: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).Output2)(::windows::core::Vtable::as_raw(self), which, flags, arg, text.into()).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugOutputCallbacks2, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugOutputCallbacks2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugOutputCallbacks2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugOutputCallbacks2 {}
impl ::core::fmt::Debug for IDebugOutputCallbacks2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugOutputCallbacks2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugOutputCallbacks2 {
    type Vtable = IDebugOutputCallbacks2_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugOutputCallbacks2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x67721fe9_56d2_4a44_a325_2b65513ce6eb);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugOutputCallbacks2_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Output: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, text: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetInterestMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows::core::HRESULT,
    pub Output2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, flags: u32, arg: u64, text: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugOutputCallbacksWide(::windows::core::IUnknown);
impl IDebugOutputCallbacksWide {
    pub unsafe fn Output<'a, P0>(&self, mask: u32, text: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).Output)(::windows::core::Vtable::as_raw(self), mask, text.into()).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugOutputCallbacksWide, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugOutputCallbacksWide {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugOutputCallbacksWide {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugOutputCallbacksWide {}
impl ::core::fmt::Debug for IDebugOutputCallbacksWide {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugOutputCallbacksWide").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugOutputCallbacksWide {
    type Vtable = IDebugOutputCallbacksWide_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugOutputCallbacksWide {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4c7fd663_c394_4e26_8ef1_34ad5ed3764c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugOutputCallbacksWide_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Output: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, text: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugOutputStream(::windows::core::IUnknown);
impl IDebugOutputStream {
    pub unsafe fn Write<'a, P0>(&self, psz: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).Write)(::windows::core::Vtable::as_raw(self), psz.into()).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugOutputStream, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugOutputStream {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugOutputStream {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugOutputStream {}
impl ::core::fmt::Debug for IDebugOutputStream {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugOutputStream").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugOutputStream {
    type Vtable = IDebugOutputStream_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugOutputStream {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7782d8f2_2b85_4059_ab88_28ceddca1c80);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugOutputStream_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Write: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psz: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugPlmClient(::windows::core::IUnknown);
impl IDebugPlmClient {
    pub unsafe fn LaunchPlmPackageForDebugWide<'a, P0, P1, P2>(&self, server: u64, timeout: u32, packagefullname: P0, appname: P1, arguments: P2, processid: *mut u32, threadid: *mut u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).LaunchPlmPackageForDebugWide)(::windows::core::Vtable::as_raw(self), server, timeout, packagefullname.into(), appname.into(), arguments.into(), ::core::mem::transmute(processid), ::core::mem::transmute(threadid)).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugPlmClient, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugPlmClient {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugPlmClient {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugPlmClient {}
impl ::core::fmt::Debug for IDebugPlmClient {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugPlmClient").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugPlmClient {
    type Vtable = IDebugPlmClient_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugPlmClient {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa02b66c4_aea3_4234_a9f7_fe4c383d4e29);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugPlmClient_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub LaunchPlmPackageForDebugWide: unsafe extern "system" fn(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,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugPlmClient2(::windows::core::IUnknown);
impl IDebugPlmClient2 {
    pub unsafe fn LaunchPlmPackageForDebugWide<'a, P0, P1, P2>(&self, server: u64, timeout: u32, packagefullname: P0, appname: P1, arguments: P2, processid: *mut u32, threadid: *mut u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).LaunchPlmPackageForDebugWide)(::windows::core::Vtable::as_raw(self), server, timeout, packagefullname.into(), appname.into(), arguments.into(), ::core::mem::transmute(processid), ::core::mem::transmute(threadid)).ok()
    }
    pub unsafe fn LaunchPlmBgTaskForDebugWide<'a, P0, P1>(&self, server: u64, timeout: u32, packagefullname: P0, backgroundtaskid: P1, processid: *mut u32, threadid: *mut u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).LaunchPlmBgTaskForDebugWide)(::windows::core::Vtable::as_raw(self), server, timeout, packagefullname.into(), backgroundtaskid.into(), ::core::mem::transmute(processid), ::core::mem::transmute(threadid)).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugPlmClient2, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugPlmClient2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugPlmClient2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugPlmClient2 {}
impl ::core::fmt::Debug for IDebugPlmClient2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugPlmClient2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugPlmClient2 {
    type Vtable = IDebugPlmClient2_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugPlmClient2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x597c980d_e7bd_4309_962c_9d9b69a7372c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugPlmClient2_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub LaunchPlmPackageForDebugWide: unsafe extern "system" fn(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,
    pub LaunchPlmBgTaskForDebugWide: unsafe extern "system" fn(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,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugPlmClient3(::windows::core::IUnknown);
impl IDebugPlmClient3 {
    pub unsafe fn LaunchPlmPackageForDebugWide<'a, P0, P1, P2>(&self, server: u64, timeout: u32, packagefullname: P0, appname: P1, arguments: P2, processid: *mut u32, threadid: *mut u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).LaunchPlmPackageForDebugWide)(::windows::core::Vtable::as_raw(self), server, timeout, packagefullname.into(), appname.into(), arguments.into(), ::core::mem::transmute(processid), ::core::mem::transmute(threadid)).ok()
    }
    pub unsafe fn LaunchPlmBgTaskForDebugWide<'a, P0, P1>(&self, server: u64, timeout: u32, packagefullname: P0, backgroundtaskid: P1, processid: *mut u32, threadid: *mut u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).LaunchPlmBgTaskForDebugWide)(::windows::core::Vtable::as_raw(self), server, timeout, packagefullname.into(), backgroundtaskid.into(), ::core::mem::transmute(processid), ::core::mem::transmute(threadid)).ok()
    }
    pub unsafe fn QueryPlmPackageWide<'a, P0, P1>(&self, server: u64, packagefullname: P0, stream: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IDebugOutputStream>>,
    {
        (::windows::core::Vtable::vtable(self).QueryPlmPackageWide)(::windows::core::Vtable::as_raw(self), server, packagefullname.into(), stream.into().abi()).ok()
    }
    pub unsafe fn QueryPlmPackageList<'a, P0>(&self, server: u64, stream: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugOutputStream>>,
    {
        (::windows::core::Vtable::vtable(self).QueryPlmPackageList)(::windows::core::Vtable::as_raw(self), server, stream.into().abi()).ok()
    }
    pub unsafe fn EnablePlmPackageDebugWide<'a, P0>(&self, server: u64, packagefullname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).EnablePlmPackageDebugWide)(::windows::core::Vtable::as_raw(self), server, packagefullname.into()).ok()
    }
    pub unsafe fn DisablePlmPackageDebugWide<'a, P0>(&self, server: u64, packagefullname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).DisablePlmPackageDebugWide)(::windows::core::Vtable::as_raw(self), server, packagefullname.into()).ok()
    }
    pub unsafe fn SuspendPlmPackageWide<'a, P0>(&self, server: u64, packagefullname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SuspendPlmPackageWide)(::windows::core::Vtable::as_raw(self), server, packagefullname.into()).ok()
    }
    pub unsafe fn ResumePlmPackageWide<'a, P0>(&self, server: u64, packagefullname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ResumePlmPackageWide)(::windows::core::Vtable::as_raw(self), server, packagefullname.into()).ok()
    }
    pub unsafe fn TerminatePlmPackageWide<'a, P0>(&self, server: u64, packagefullname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).TerminatePlmPackageWide)(::windows::core::Vtable::as_raw(self), server, packagefullname.into()).ok()
    }
    pub unsafe fn LaunchAndDebugPlmAppWide<'a, P0, P1, P2>(&self, server: u64, packagefullname: P0, appname: P1, arguments: P2) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).LaunchAndDebugPlmAppWide)(::windows::core::Vtable::as_raw(self), server, packagefullname.into(), appname.into(), arguments.into()).ok()
    }
    pub unsafe fn ActivateAndDebugPlmBgTaskWide<'a, P0, P1>(&self, server: u64, packagefullname: P0, backgroundtaskid: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ActivateAndDebugPlmBgTaskWide)(::windows::core::Vtable::as_raw(self), server, packagefullname.into(), backgroundtaskid.into()).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugPlmClient3, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugPlmClient3 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugPlmClient3 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugPlmClient3 {}
impl ::core::fmt::Debug for IDebugPlmClient3 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugPlmClient3").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugPlmClient3 {
    type Vtable = IDebugPlmClient3_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugPlmClient3 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd4a5dbd1_ca02_4d90_856a_2a92bfd0f20f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugPlmClient3_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub LaunchPlmPackageForDebugWide: unsafe extern "system" fn(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,
    pub LaunchPlmBgTaskForDebugWide: unsafe extern "system" fn(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,
    pub QueryPlmPackageWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows::core::PCWSTR, stream: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub QueryPlmPackageList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, stream: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EnablePlmPackageDebugWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub DisablePlmPackageDebugWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub SuspendPlmPackageWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub ResumePlmPackageWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub TerminatePlmPackageWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub LaunchAndDebugPlmAppWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows::core::PCWSTR, appname: ::windows::core::PCWSTR, arguments: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub ActivateAndDebugPlmBgTaskWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows::core::PCWSTR, backgroundtaskid: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugProperty(::windows::core::IUnknown);
impl IDebugProperty {
    pub unsafe fn GetPropertyInfo(&self, dwfieldspec: u32, nradix: u32) -> ::windows::core::Result<DebugPropertyInfo> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetPropertyInfo)(::windows::core::Vtable::as_raw(self), dwfieldspec, nradix, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DebugPropertyInfo>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn GetExtendedInfo(&self, cinfos: u32, rgguidextendedinfo: *const ::windows::core::GUID) -> ::windows::core::Result<super::super::Com::VARIANT> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExtendedInfo)(::windows::core::Vtable::as_raw(self), cinfos, ::core::mem::transmute(rgguidextendedinfo), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::VARIANT>(result__)
    }
    pub unsafe fn SetValueAsString<'a, P0>(&self, pszvalue: P0, nradix: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetValueAsString)(::windows::core::Vtable::as_raw(self), pszvalue.into(), nradix).ok()
    }
    pub unsafe fn EnumMembers(&self, dwfieldspec: u32, nradix: u32, refiid: *const ::windows::core::GUID) -> ::windows::core::Result<IEnumDebugPropertyInfo> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumMembers)(::windows::core::Vtable::as_raw(self), dwfieldspec, nradix, ::core::mem::transmute(refiid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugPropertyInfo>(result__)
    }
    pub unsafe fn GetParent(&self) -> ::windows::core::Result<IDebugProperty> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetParent)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugProperty>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugProperty, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugProperty {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugProperty {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugProperty {}
impl ::core::fmt::Debug for IDebugProperty {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugProperty").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugProperty {
    type Vtable = IDebugProperty_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugProperty {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c50_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugProperty_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetPropertyInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwfieldspec: u32, nradix: u32, ppropertyinfo: *mut ::core::mem::ManuallyDrop<DebugPropertyInfo>) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub GetExtendedInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cinfos: u32, rgguidextendedinfo: *const ::windows::core::GUID, rgvar: *mut ::core::mem::ManuallyDrop<super::super::Com::VARIANT>) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
    GetExtendedInfo: usize,
    pub SetValueAsString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszvalue: ::windows::core::PCWSTR, nradix: u32) -> ::windows::core::HRESULT,
    pub EnumMembers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwfieldspec: u32, nradix: u32, refiid: *const ::windows::core::GUID, ppepi: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetParent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppdebugprop: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugPropertyEnumType_All(::windows::core::IUnknown);
impl IDebugPropertyEnumType_All {
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugPropertyEnumType_All, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugPropertyEnumType_All {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugPropertyEnumType_All {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugPropertyEnumType_All {}
impl ::core::fmt::Debug for IDebugPropertyEnumType_All {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugPropertyEnumType_All").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugPropertyEnumType_All {
    type Vtable = IDebugPropertyEnumType_All_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugPropertyEnumType_All {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c55_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugPropertyEnumType_All_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, __midl__idebugpropertyenumtype_all0000: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugPropertyEnumType_Arguments(::windows::core::IUnknown);
impl IDebugPropertyEnumType_Arguments {
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugPropertyEnumType_Arguments, ::windows::core::IUnknown, IDebugPropertyEnumType_All);
impl ::core::clone::Clone for IDebugPropertyEnumType_Arguments {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugPropertyEnumType_Arguments {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugPropertyEnumType_Arguments {}
impl ::core::fmt::Debug for IDebugPropertyEnumType_Arguments {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugPropertyEnumType_Arguments").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugPropertyEnumType_Arguments {
    type Vtable = IDebugPropertyEnumType_Arguments_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugPropertyEnumType_Arguments {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c57_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugPropertyEnumType_Arguments_Vtbl {
    pub base__: IDebugPropertyEnumType_All_Vtbl,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugPropertyEnumType_Locals(::windows::core::IUnknown);
impl IDebugPropertyEnumType_Locals {
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugPropertyEnumType_Locals, ::windows::core::IUnknown, IDebugPropertyEnumType_All);
impl ::core::clone::Clone for IDebugPropertyEnumType_Locals {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugPropertyEnumType_Locals {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugPropertyEnumType_Locals {}
impl ::core::fmt::Debug for IDebugPropertyEnumType_Locals {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugPropertyEnumType_Locals").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugPropertyEnumType_Locals {
    type Vtable = IDebugPropertyEnumType_Locals_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugPropertyEnumType_Locals {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c56_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugPropertyEnumType_Locals_Vtbl {
    pub base__: IDebugPropertyEnumType_All_Vtbl,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugPropertyEnumType_LocalsPlusArgs(::windows::core::IUnknown);
impl IDebugPropertyEnumType_LocalsPlusArgs {
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugPropertyEnumType_LocalsPlusArgs, ::windows::core::IUnknown, IDebugPropertyEnumType_All);
impl ::core::clone::Clone for IDebugPropertyEnumType_LocalsPlusArgs {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugPropertyEnumType_LocalsPlusArgs {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugPropertyEnumType_LocalsPlusArgs {}
impl ::core::fmt::Debug for IDebugPropertyEnumType_LocalsPlusArgs {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugPropertyEnumType_LocalsPlusArgs").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugPropertyEnumType_LocalsPlusArgs {
    type Vtable = IDebugPropertyEnumType_LocalsPlusArgs_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugPropertyEnumType_LocalsPlusArgs {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c58_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugPropertyEnumType_LocalsPlusArgs_Vtbl {
    pub base__: IDebugPropertyEnumType_All_Vtbl,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugPropertyEnumType_Registers(::windows::core::IUnknown);
impl IDebugPropertyEnumType_Registers {
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugPropertyEnumType_Registers, ::windows::core::IUnknown, IDebugPropertyEnumType_All);
impl ::core::clone::Clone for IDebugPropertyEnumType_Registers {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugPropertyEnumType_Registers {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugPropertyEnumType_Registers {}
impl ::core::fmt::Debug for IDebugPropertyEnumType_Registers {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugPropertyEnumType_Registers").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugPropertyEnumType_Registers {
    type Vtable = IDebugPropertyEnumType_Registers_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugPropertyEnumType_Registers {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c59_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugPropertyEnumType_Registers_Vtbl {
    pub base__: IDebugPropertyEnumType_All_Vtbl,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugRegisters(::windows::core::IUnknown);
impl IDebugRegisters {
    pub unsafe fn GetNumberRegisters(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberRegisters)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetDescription(&self, register: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, desc: ::core::option::Option<*mut DEBUG_REGISTER_DESCRIPTION>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDescription)(::windows::core::Vtable::as_raw(self), register, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(desc.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetIndexByName<'a, P0>(&self, name: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetIndexByName)(::windows::core::Vtable::as_raw(self), name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetValue(&self, register: u32) -> ::windows::core::Result<DEBUG_VALUE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetValue)(::windows::core::Vtable::as_raw(self), register, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_VALUE>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn SetValue(&self, register: u32, value: *const DEBUG_VALUE) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetValue)(::windows::core::Vtable::as_raw(self), register, ::core::mem::transmute(value)).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetValues(&self, count: u32, indices: ::core::option::Option<*const u32>, start: u32) -> ::windows::core::Result<DEBUG_VALUE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetValues)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(indices.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_VALUE>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn SetValues(&self, count: u32, indices: ::core::option::Option<*const u32>, start: u32, values: *const DEBUG_VALUE) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetValues)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(indices.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(values)).ok()
    }
    pub unsafe fn OutputRegisters(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputRegisters)(::windows::core::Vtable::as_raw(self), outputcontrol, flags).ok()
    }
    pub unsafe fn GetInstructionOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInstructionOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetStackOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetStackOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetFrameOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFrameOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugRegisters, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugRegisters {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugRegisters {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugRegisters {}
impl ::core::fmt::Debug for IDebugRegisters {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugRegisters").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugRegisters {
    type Vtable = IDebugRegisters_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugRegisters {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xce289126_9e84_45a7_937e_67bb18691493);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugRegisters_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetNumberRegisters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetDescription: unsafe extern "system" fn(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,
    pub GetIndexByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, index: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, register: u32, value: *mut DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetValue: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub SetValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, register: u32, value: *const DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    SetValue: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub GetValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, indices: *const u32, start: u32, values: *mut DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetValues: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub SetValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, indices: *const u32, start: u32, values: *const DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    SetValues: usize,
    pub OutputRegisters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT,
    pub GetInstructionOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetStackOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetFrameOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugRegisters2(::windows::core::IUnknown);
impl IDebugRegisters2 {
    pub unsafe fn GetNumberRegisters(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberRegisters)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetDescription(&self, register: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, desc: ::core::option::Option<*mut DEBUG_REGISTER_DESCRIPTION>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDescription)(::windows::core::Vtable::as_raw(self), register, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(desc.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetIndexByName<'a, P0>(&self, name: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetIndexByName)(::windows::core::Vtable::as_raw(self), name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetValue(&self, register: u32) -> ::windows::core::Result<DEBUG_VALUE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetValue)(::windows::core::Vtable::as_raw(self), register, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_VALUE>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn SetValue(&self, register: u32, value: *const DEBUG_VALUE) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetValue)(::windows::core::Vtable::as_raw(self), register, ::core::mem::transmute(value)).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetValues(&self, count: u32, indices: ::core::option::Option<*const u32>, start: u32) -> ::windows::core::Result<DEBUG_VALUE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetValues)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(indices.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_VALUE>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn SetValues(&self, count: u32, indices: ::core::option::Option<*const u32>, start: u32, values: *const DEBUG_VALUE) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetValues)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(indices.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(values)).ok()
    }
    pub unsafe fn OutputRegisters(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputRegisters)(::windows::core::Vtable::as_raw(self), outputcontrol, flags).ok()
    }
    pub unsafe fn GetInstructionOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInstructionOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetStackOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetStackOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetFrameOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFrameOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetDescriptionWide(&self, register: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, desc: ::core::option::Option<*mut DEBUG_REGISTER_DESCRIPTION>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDescriptionWide)(::windows::core::Vtable::as_raw(self), register, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(desc.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetIndexByNameWide<'a, P0>(&self, name: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetIndexByNameWide)(::windows::core::Vtable::as_raw(self), name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberPseudoRegisters(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberPseudoRegisters)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetPseudoDescription(&self, register: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, typemodule: ::core::option::Option<*mut u64>, typeid: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPseudoDescription)(::windows::core::Vtable::as_raw(self), register, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(typemodule.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(typeid.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetPseudoDescriptionWide(&self, register: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, typemodule: ::core::option::Option<*mut u64>, typeid: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPseudoDescriptionWide)(::windows::core::Vtable::as_raw(self), register, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(typemodule.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(typeid.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetPseudoIndexByName<'a, P0>(&self, name: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetPseudoIndexByName)(::windows::core::Vtable::as_raw(self), name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetPseudoIndexByNameWide<'a, P0>(&self, name: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetPseudoIndexByNameWide)(::windows::core::Vtable::as_raw(self), name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetPseudoValues(&self, source: u32, count: u32, indices: ::core::option::Option<*const u32>, start: u32) -> ::windows::core::Result<DEBUG_VALUE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetPseudoValues)(::windows::core::Vtable::as_raw(self), source, count, ::core::mem::transmute(indices.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_VALUE>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn SetPseudoValues(&self, source: u32, count: u32, indices: ::core::option::Option<*const u32>, start: u32, values: *const DEBUG_VALUE) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetPseudoValues)(::windows::core::Vtable::as_raw(self), source, count, ::core::mem::transmute(indices.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(values)).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetValues2(&self, source: u32, count: u32, indices: ::core::option::Option<*const u32>, start: u32) -> ::windows::core::Result<DEBUG_VALUE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetValues2)(::windows::core::Vtable::as_raw(self), source, count, ::core::mem::transmute(indices.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_VALUE>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn SetValues2(&self, source: u32, count: u32, indices: ::core::option::Option<*const u32>, start: u32, values: *const DEBUG_VALUE) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetValues2)(::windows::core::Vtable::as_raw(self), source, count, ::core::mem::transmute(indices.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(values)).ok()
    }
    pub unsafe fn OutputRegisters2(&self, outputcontrol: u32, source: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputRegisters2)(::windows::core::Vtable::as_raw(self), outputcontrol, source, flags).ok()
    }
    pub unsafe fn GetInstructionOffset2(&self, source: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetInstructionOffset2)(::windows::core::Vtable::as_raw(self), source, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetStackOffset2(&self, source: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetStackOffset2)(::windows::core::Vtable::as_raw(self), source, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetFrameOffset2(&self, source: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFrameOffset2)(::windows::core::Vtable::as_raw(self), source, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugRegisters2, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugRegisters2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugRegisters2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugRegisters2 {}
impl ::core::fmt::Debug for IDebugRegisters2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugRegisters2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugRegisters2 {
    type Vtable = IDebugRegisters2_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugRegisters2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1656afa9_19c6_4e3a_97e7_5dc9160cf9c4);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugRegisters2_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetNumberRegisters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetDescription: unsafe extern "system" fn(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,
    pub GetIndexByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, index: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, register: u32, value: *mut DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetValue: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub SetValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, register: u32, value: *const DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    SetValue: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub GetValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, indices: *const u32, start: u32, values: *mut DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetValues: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub SetValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, indices: *const u32, start: u32, values: *const DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    SetValues: usize,
    pub OutputRegisters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows::core::HRESULT,
    pub GetInstructionOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetStackOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetFrameOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetDescriptionWide: unsafe extern "system" fn(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,
    pub GetIndexByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, index: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberPseudoRegisters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetPseudoDescription: unsafe extern "system" fn(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,
    pub GetPseudoDescriptionWide: unsafe extern "system" fn(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,
    pub GetPseudoIndexByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, index: *mut u32) -> ::windows::core::HRESULT,
    pub GetPseudoIndexByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, index: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetPseudoValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: u32, count: u32, indices: *const u32, start: u32, values: *mut DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetPseudoValues: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub SetPseudoValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: u32, count: u32, indices: *const u32, start: u32, values: *const DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    SetPseudoValues: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub GetValues2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: u32, count: u32, indices: *const u32, start: u32, values: *mut DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetValues2: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub SetValues2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: u32, count: u32, indices: *const u32, start: u32, values: *const DEBUG_VALUE) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    SetValues2: usize,
    pub OutputRegisters2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, source: u32, flags: u32) -> ::windows::core::HRESULT,
    pub GetInstructionOffset2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: u32, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetStackOffset2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: u32, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetFrameOffset2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: u32, offset: *mut u64) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugSessionProvider(::windows::core::IUnknown);
impl IDebugSessionProvider {
    pub unsafe fn StartDebugSession<'a, P0>(&self, pda: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IRemoteDebugApplication>>,
    {
        (::windows::core::Vtable::vtable(self).StartDebugSession)(::windows::core::Vtable::as_raw(self), pda.into().abi()).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugSessionProvider, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugSessionProvider {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugSessionProvider {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugSessionProvider {}
impl ::core::fmt::Debug for IDebugSessionProvider {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugSessionProvider").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugSessionProvider {
    type Vtable = IDebugSessionProvider_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugSessionProvider {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c29_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSessionProvider_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub StartDebugSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pda: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugStackFrame(::windows::core::IUnknown);
impl IDebugStackFrame {
    pub unsafe fn GetCodeContext(&self) -> ::windows::core::Result<IDebugCodeContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCodeContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugCodeContext>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetDescriptionString<'a, P0>(&self, flong: P0) -> ::windows::core::Result<::windows::core::BSTR>
    where
        P0: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDescriptionString)(::windows::core::Vtable::as_raw(self), flong.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetLanguageString<'a, P0>(&self, flong: P0) -> ::windows::core::Result<::windows::core::BSTR>
    where
        P0: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetLanguageString)(::windows::core::Vtable::as_raw(self), flong.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetThread(&self) -> ::windows::core::Result<IDebugApplicationThread> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThread)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplicationThread>(result__)
    }
    pub unsafe fn GetDebugProperty(&self) -> ::windows::core::Result<IDebugProperty> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDebugProperty)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugProperty>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugStackFrame, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugStackFrame {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugStackFrame {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugStackFrame {}
impl ::core::fmt::Debug for IDebugStackFrame {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugStackFrame").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugStackFrame {
    type Vtable = IDebugStackFrame_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugStackFrame {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c17_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugStackFrame_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetCodeContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppcc: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetDescriptionString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flong: super::super::super::Foundation::BOOL, pbstrdescription: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetDescriptionString: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub GetLanguageString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flong: super::super::super::Foundation::BOOL, pbstrlanguage: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetLanguageString: usize,
    pub GetThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppat: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetDebugProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppdebugprop: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugStackFrame110(::windows::core::IUnknown);
impl IDebugStackFrame110 {
    pub unsafe fn GetCodeContext(&self) -> ::windows::core::Result<IDebugCodeContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetCodeContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugCodeContext>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetDescriptionString<'a, P0>(&self, flong: P0) -> ::windows::core::Result<::windows::core::BSTR>
    where
        P0: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetDescriptionString)(::windows::core::Vtable::as_raw(self), flong.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetLanguageString<'a, P0>(&self, flong: P0) -> ::windows::core::Result<::windows::core::BSTR>
    where
        P0: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetLanguageString)(::windows::core::Vtable::as_raw(self), flong.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetThread(&self) -> ::windows::core::Result<IDebugApplicationThread> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetThread)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplicationThread>(result__)
    }
    pub unsafe fn GetDebugProperty(&self) -> ::windows::core::Result<IDebugProperty> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetDebugProperty)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugProperty>(result__)
    }
    pub unsafe fn GetStackFrameType(&self) -> ::windows::core::Result<DEBUG_STACKFRAME_TYPE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetStackFrameType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_STACKFRAME_TYPE>(result__)
    }
    pub unsafe fn GetScriptInvocationContext(&self) -> ::windows::core::Result<IScriptInvocationContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetScriptInvocationContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IScriptInvocationContext>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugStackFrame110, ::windows::core::IUnknown, IDebugStackFrame);
impl ::core::clone::Clone for IDebugStackFrame110 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugStackFrame110 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugStackFrame110 {}
impl ::core::fmt::Debug for IDebugStackFrame110 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugStackFrame110").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugStackFrame110 {
    type Vtable = IDebugStackFrame110_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugStackFrame110 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4b509611_b6ea_4b24_adcb_d0ccfd1a7e33);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugStackFrame110_Vtbl {
    pub base__: IDebugStackFrame_Vtbl,
    pub GetStackFrameType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstackframekind: *mut DEBUG_STACKFRAME_TYPE) -> ::windows::core::HRESULT,
    pub GetScriptInvocationContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppinvocationcontext: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugStackFrameSniffer(::windows::core::IUnknown);
impl IDebugStackFrameSniffer {
    pub unsafe fn EnumStackFrames(&self) -> ::windows::core::Result<IEnumDebugStackFrames> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumStackFrames)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugStackFrames>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugStackFrameSniffer, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugStackFrameSniffer {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugStackFrameSniffer {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugStackFrameSniffer {}
impl ::core::fmt::Debug for IDebugStackFrameSniffer {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugStackFrameSniffer").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugStackFrameSniffer {
    type Vtable = IDebugStackFrameSniffer_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugStackFrameSniffer {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c18_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugStackFrameSniffer_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub EnumStackFrames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppedsf: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugStackFrameSnifferEx32(::windows::core::IUnknown);
impl IDebugStackFrameSnifferEx32 {
    pub unsafe fn EnumStackFrames(&self) -> ::windows::core::Result<IEnumDebugStackFrames> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.EnumStackFrames)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugStackFrames>(result__)
    }
    pub unsafe fn EnumStackFramesEx32(&self, dwspmin: u32) -> ::windows::core::Result<IEnumDebugStackFrames> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumStackFramesEx32)(::windows::core::Vtable::as_raw(self), dwspmin, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugStackFrames>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugStackFrameSnifferEx32, ::windows::core::IUnknown, IDebugStackFrameSniffer);
impl ::core::clone::Clone for IDebugStackFrameSnifferEx32 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugStackFrameSnifferEx32 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugStackFrameSnifferEx32 {}
impl ::core::fmt::Debug for IDebugStackFrameSnifferEx32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugStackFrameSnifferEx32").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugStackFrameSnifferEx32 {
    type Vtable = IDebugStackFrameSnifferEx32_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugStackFrameSnifferEx32 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c19_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugStackFrameSnifferEx32_Vtbl {
    pub base__: IDebugStackFrameSniffer_Vtbl,
    pub EnumStackFramesEx32: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwspmin: u32, ppedsf: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugStackFrameSnifferEx64(::windows::core::IUnknown);
impl IDebugStackFrameSnifferEx64 {
    pub unsafe fn EnumStackFrames(&self) -> ::windows::core::Result<IEnumDebugStackFrames> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.EnumStackFrames)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugStackFrames>(result__)
    }
    pub unsafe fn EnumStackFramesEx64(&self, dwspmin: u64) -> ::windows::core::Result<IEnumDebugStackFrames64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumStackFramesEx64)(::windows::core::Vtable::as_raw(self), dwspmin, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugStackFrames64>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugStackFrameSnifferEx64, ::windows::core::IUnknown, IDebugStackFrameSniffer);
impl ::core::clone::Clone for IDebugStackFrameSnifferEx64 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugStackFrameSnifferEx64 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugStackFrameSnifferEx64 {}
impl ::core::fmt::Debug for IDebugStackFrameSnifferEx64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugStackFrameSnifferEx64").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugStackFrameSnifferEx64 {
    type Vtable = IDebugStackFrameSnifferEx64_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugStackFrameSnifferEx64 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8cd12af4_49c1_4d52_8d8a_c146f47581aa);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugStackFrameSnifferEx64_Vtbl {
    pub base__: IDebugStackFrameSniffer_Vtbl,
    pub EnumStackFramesEx64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwspmin: u64, ppedsf: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugSymbolGroup(::windows::core::IUnknown);
impl IDebugSymbolGroup {
    pub unsafe fn GetNumberSymbols(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberSymbols)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddSymbol<'a, P0>(&self, name: P0, index: *mut u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddSymbol)(::windows::core::Vtable::as_raw(self), name.into(), ::core::mem::transmute(index)).ok()
    }
    pub unsafe fn RemoveSymbolByName<'a, P0>(&self, name: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).RemoveSymbolByName)(::windows::core::Vtable::as_raw(self), name.into()).ok()
    }
    pub unsafe fn RemoveSymbolByIndex(&self, index: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveSymbolByIndex)(::windows::core::Vtable::as_raw(self), index).ok()
    }
    pub unsafe fn GetSymbolName(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolName)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolParameters(&self, start: u32, params: &mut [DEBUG_SYMBOL_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolParameters)(::windows::core::Vtable::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn ExpandSymbol<'a, P0>(&self, index: u32, expand: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        (::windows::core::Vtable::vtable(self).ExpandSymbol)(::windows::core::Vtable::as_raw(self), index, expand.into()).ok()
    }
    pub unsafe fn OutputSymbols(&self, outputcontrol: u32, flags: u32, start: u32, count: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputSymbols)(::windows::core::Vtable::as_raw(self), outputcontrol, flags, start, count).ok()
    }
    pub unsafe fn WriteSymbol<'a, P0>(&self, index: u32, value: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteSymbol)(::windows::core::Vtable::as_raw(self), index, value.into()).ok()
    }
    pub unsafe fn OutputAsType<'a, P0>(&self, index: u32, r#type: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputAsType)(::windows::core::Vtable::as_raw(self), index, r#type.into()).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugSymbolGroup, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugSymbolGroup {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugSymbolGroup {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugSymbolGroup {}
impl ::core::fmt::Debug for IDebugSymbolGroup {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugSymbolGroup").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugSymbolGroup {
    type Vtable = IDebugSymbolGroup_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugSymbolGroup {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf2528316_0f1a_4431_aeed_11d096e1e2ab);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSymbolGroup_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetNumberSymbols: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub AddSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, index: *mut u32) -> ::windows::core::HRESULT,
    pub RemoveSymbolByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub RemoveSymbolByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32) -> ::windows::core::HRESULT,
    pub GetSymbolName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetSymbolParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SYMBOL_PARAMETERS) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub ExpandSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, expand: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    ExpandSymbol: usize,
    pub OutputSymbols: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, start: u32, count: u32) -> ::windows::core::HRESULT,
    pub WriteSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, value: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputAsType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, r#type: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugSymbolGroup2(::windows::core::IUnknown);
impl IDebugSymbolGroup2 {
    pub unsafe fn GetNumberSymbols(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberSymbols)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddSymbol<'a, P0>(&self, name: P0, index: *mut u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddSymbol)(::windows::core::Vtable::as_raw(self), name.into(), ::core::mem::transmute(index)).ok()
    }
    pub unsafe fn RemoveSymbolByName<'a, P0>(&self, name: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).RemoveSymbolByName)(::windows::core::Vtable::as_raw(self), name.into()).ok()
    }
    pub unsafe fn RemoveSymbolByIndex(&self, index: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveSymbolByIndex)(::windows::core::Vtable::as_raw(self), index).ok()
    }
    pub unsafe fn GetSymbolName(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolName)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolParameters(&self, start: u32, params: &mut [DEBUG_SYMBOL_PARAMETERS]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolParameters)(::windows::core::Vtable::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn ExpandSymbol<'a, P0>(&self, index: u32, expand: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        (::windows::core::Vtable::vtable(self).ExpandSymbol)(::windows::core::Vtable::as_raw(self), index, expand.into()).ok()
    }
    pub unsafe fn OutputSymbols(&self, outputcontrol: u32, flags: u32, start: u32, count: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputSymbols)(::windows::core::Vtable::as_raw(self), outputcontrol, flags, start, count).ok()
    }
    pub unsafe fn WriteSymbol<'a, P0>(&self, index: u32, value: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteSymbol)(::windows::core::Vtable::as_raw(self), index, value.into()).ok()
    }
    pub unsafe fn OutputAsType<'a, P0>(&self, index: u32, r#type: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputAsType)(::windows::core::Vtable::as_raw(self), index, r#type.into()).ok()
    }
    pub unsafe fn AddSymbolWide<'a, P0>(&self, name: P0, index: *mut u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddSymbolWide)(::windows::core::Vtable::as_raw(self), name.into(), ::core::mem::transmute(index)).ok()
    }
    pub unsafe fn RemoveSymbolByNameWide<'a, P0>(&self, name: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).RemoveSymbolByNameWide)(::windows::core::Vtable::as_raw(self), name.into()).ok()
    }
    pub unsafe fn GetSymbolNameWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolNameWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteSymbolWide<'a, P0>(&self, index: u32, value: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).WriteSymbolWide)(::windows::core::Vtable::as_raw(self), index, value.into()).ok()
    }
    pub unsafe fn OutputAsTypeWide<'a, P0>(&self, index: u32, r#type: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OutputAsTypeWide)(::windows::core::Vtable::as_raw(self), index, r#type.into()).ok()
    }
    pub unsafe fn GetSymbolTypeName(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolTypeName)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolTypeNameWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolTypeNameWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolSize(&self, index: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolSize)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSymbolOffset(&self, index: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolOffset)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetSymbolRegister(&self, index: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolRegister)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSymbolValueText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolValueText)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolValueTextWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolValueTextWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolEntryInformation(&self, index: u32) -> ::windows::core::Result<DEBUG_SYMBOL_ENTRY> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolEntryInformation)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_SYMBOL_ENTRY>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugSymbolGroup2, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugSymbolGroup2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugSymbolGroup2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugSymbolGroup2 {}
impl ::core::fmt::Debug for IDebugSymbolGroup2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugSymbolGroup2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugSymbolGroup2 {
    type Vtable = IDebugSymbolGroup2_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugSymbolGroup2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6a7ccc5f_fb5e_4dcc_b41c_6c20307bccc7);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSymbolGroup2_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetNumberSymbols: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub AddSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, index: *mut u32) -> ::windows::core::HRESULT,
    pub RemoveSymbolByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub RemoveSymbolByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32) -> ::windows::core::HRESULT,
    pub GetSymbolName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetSymbolParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SYMBOL_PARAMETERS) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub ExpandSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, expand: super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    ExpandSymbol: usize,
    pub OutputSymbols: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, start: u32, count: u32) -> ::windows::core::HRESULT,
    pub WriteSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, value: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub OutputAsType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, r#type: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AddSymbolWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, index: *mut u32) -> ::windows::core::HRESULT,
    pub RemoveSymbolByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetSymbolNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub WriteSymbolWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, value: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub OutputAsTypeWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, r#type: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetSymbolTypeName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetSymbolTypeNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetSymbolSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, size: *mut u32) -> ::windows::core::HRESULT,
    pub GetSymbolOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetSymbolRegister: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, register: *mut u32) -> ::windows::core::HRESULT,
    pub GetSymbolValueText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetSymbolValueTextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetSymbolEntryInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, entry: *mut DEBUG_SYMBOL_ENTRY) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugSymbols(::windows::core::IUnknown);
impl IDebugSymbols {
    pub unsafe fn GetSymbolOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddSymbolOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddSymbolOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveSymbolOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveSymbolOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetSymbolOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetSymbolOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn GetNameByOffset(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNameByOffset)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetByName<'a, P0>(&self, symbol: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffsetByName)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNearNameByOffset)(::windows::core::Vtable::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetLineByOffset(&self, offset: u64, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLineByOffset)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetByLine<'a, P0>(&self, line: u32, file: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffsetByLine)(::windows::core::Vtable::as_raw(self), line, file.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNumberModules(&self, loaded: *mut u32, unloaded: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNumberModules)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(loaded), ::core::mem::transmute(unloaded)).ok()
    }
    pub unsafe fn GetModuleByIndex(&self, index: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetModuleByIndex)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetModuleByModuleName<'a, P0>(&self, name: P0, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleByModuleName)(::windows::core::Vtable::as_raw(self), name.into(), startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleByOffset(&self, offset: u64, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetModuleByOffset)(::windows::core::Vtable::as_raw(self), offset, startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: ::core::option::Option<&mut [u8]>, imagenamesize: ::core::option::Option<*mut u32>, modulenamebuffer: ::core::option::Option<&mut [u8]>, modulenamesize: ::core::option::Option<*mut u32>, loadedimagenamebuffer: ::core::option::Option<&mut [u8]>, loadedimagenamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetModuleNames)(
            ::windows::core::Vtable::as_raw(self),
            index,
            base,
            ::core::mem::transmute(imagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            imagenamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(imagenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(modulenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            modulenamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(modulenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(loadedimagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            loadedimagenamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(loadedimagenamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetModuleParameters(&self, count: u32, bases: ::core::option::Option<*const u64>, start: u32) -> ::windows::core::Result<DEBUG_MODULE_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetModuleParameters)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(bases.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_MODULE_PARAMETERS>(result__)
    }
    pub unsafe fn GetSymbolModule<'a, P0>(&self, symbol: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolModule)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTypeName)(::windows::core::Vtable::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetTypeId<'a, P0>(&self, module: u64, name: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypeId)(::windows::core::Vtable::as_raw(self), module, name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetTypeSize(&self, module: u64, typeid: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypeSize)(::windows::core::Vtable::as_raw(self), module, typeid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetFieldOffset<'a, P0>(&self, module: u64, typeid: u32, field: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFieldOffset)(::windows::core::Vtable::as_raw(self), module, typeid, field.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSymbolTypeId<'a, P0>(&self, symbol: P0, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSymbolTypeId)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(typeid), ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetTypeId(&self, offset: u64, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOffsetTypeId)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(typeid), ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadTypedDataVirtual)(::windows::core::Vtable::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteTypedDataVirtual)(::windows::core::Vtable::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn OutputTypedDataVirtual(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputTypedDataVirtual)(::windows::core::Vtable::as_raw(self), outputcontrol, offset, module, typeid, flags).ok()
    }
    pub unsafe fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadTypedDataPhysical)(::windows::core::Vtable::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteTypedDataPhysical)(::windows::core::Vtable::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn OutputTypedDataPhysical(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputTypedDataPhysical)(::windows::core::Vtable::as_raw(self), outputcontrol, offset, module, typeid, flags).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetScope(&self, instructionoffset: ::core::option::Option<*mut u64>, scopeframe: ::core::option::Option<*mut DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<*mut ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetScope)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(instructionoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null_mut())), scopecontextsize).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: ::core::option::Option<*const DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<*const ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetScope)(::windows::core::Vtable::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null())), scopecontextsize).ok()
    }
    pub unsafe fn ResetScope(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ResetScope)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetScopeSymbolGroup<'a, P0>(&self, flags: u32, update: P0) -> ::windows::core::Result<IDebugSymbolGroup>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugSymbolGroup>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetScopeSymbolGroup)(::windows::core::Vtable::as_raw(self), flags, update.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugSymbolGroup>(result__)
    }
    pub unsafe fn CreateSymbolGroup(&self) -> ::windows::core::Result<IDebugSymbolGroup> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateSymbolGroup)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugSymbolGroup>(result__)
    }
    pub unsafe fn StartSymbolMatch<'a, P0>(&self, pattern: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).StartSymbolMatch)(::windows::core::Vtable::as_raw(self), pattern.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: ::core::option::Option<&mut [u8]>, matchsize: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNextSymbolMatch)(::windows::core::Vtable::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(matchsize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn EndSymbolMatch(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndSymbolMatch)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn Reload<'a, P0>(&self, module: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Reload)(::windows::core::Vtable::as_raw(self), module.into()).ok()
    }
    pub unsafe fn GetSymbolPath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolPath)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSymbolPath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSymbolPath)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendSymbolPath<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendSymbolPath)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn GetImagePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetImagePath)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetImagePath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetImagePath)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendImagePath<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendImagePath)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn GetSourcePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourcePath)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourcePathElement(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, elementsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourcePathElement)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(elementsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSourcePath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSourcePath)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendSourcePath<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendSourcePath)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn FindSourceFile<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).FindSourceFile)(::windows::core::Vtable::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceFileLineOffsets<'a, P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSourceFileLineOffsets)(::windows::core::Vtable::as_raw(self), file.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filelines.unwrap_or(::std::ptr::null_mut()))).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugSymbols, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugSymbols {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugSymbols {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugSymbols {}
impl ::core::fmt::Debug for IDebugSymbols {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugSymbols").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugSymbols {
    type Vtable = IDebugSymbols_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugSymbols {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8c31e98c_983a_48a5_9016_6fe5d667a950);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSymbols_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub GetNameByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT,
    pub GetOffsetByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetNearNameByOffset: unsafe extern "system" fn(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,
    pub GetLineByOffset: unsafe extern "system" fn(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,
    pub GetOffsetByLine: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCSTR, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetNumberModules: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, loaded: *mut u32, unloaded: *mut u32) -> ::windows::core::HRESULT,
    pub GetModuleByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleByModuleName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleNames: unsafe extern "system" fn(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,
    pub GetModuleParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetSymbolModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetTypeName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, name: ::windows::core::PCSTR, typeid: *mut u32) -> ::windows::core::HRESULT,
    pub GetTypeSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, size: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows::core::PCSTR, offset: *mut u32) -> ::windows::core::HRESULT,
    pub GetSymbolTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT,
    pub GetOffsetTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT,
    pub ReadTypedDataVirtual: unsafe extern "system" fn(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,
    pub WriteTypedDataVirtual: unsafe extern "system" fn(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,
    pub OutputTypedDataVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::HRESULT,
    pub ReadTypedDataPhysical: unsafe extern "system" fn(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,
    pub WriteTypedDataPhysical: unsafe extern "system" fn(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,
    pub OutputTypedDataPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetScope: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetScope: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub SetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    SetScope: usize,
    pub ResetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetScopeSymbolGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateSymbolGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, group: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub StartSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pattern: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetNextSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows::core::PSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::HRESULT,
    pub EndSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub Reload: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AppendSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AppendImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetSourcePathElement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AppendSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub FindSourceFile: unsafe extern "system" fn(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,
    pub GetSourceFileLineOffsets: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugSymbols2(::windows::core::IUnknown);
impl IDebugSymbols2 {
    pub unsafe fn GetSymbolOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddSymbolOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddSymbolOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveSymbolOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveSymbolOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetSymbolOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetSymbolOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn GetNameByOffset(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNameByOffset)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetByName<'a, P0>(&self, symbol: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffsetByName)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNearNameByOffset)(::windows::core::Vtable::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetLineByOffset(&self, offset: u64, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLineByOffset)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetByLine<'a, P0>(&self, line: u32, file: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffsetByLine)(::windows::core::Vtable::as_raw(self), line, file.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNumberModules(&self, loaded: *mut u32, unloaded: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNumberModules)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(loaded), ::core::mem::transmute(unloaded)).ok()
    }
    pub unsafe fn GetModuleByIndex(&self, index: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetModuleByIndex)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetModuleByModuleName<'a, P0>(&self, name: P0, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleByModuleName)(::windows::core::Vtable::as_raw(self), name.into(), startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleByOffset(&self, offset: u64, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetModuleByOffset)(::windows::core::Vtable::as_raw(self), offset, startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: ::core::option::Option<&mut [u8]>, imagenamesize: ::core::option::Option<*mut u32>, modulenamebuffer: ::core::option::Option<&mut [u8]>, modulenamesize: ::core::option::Option<*mut u32>, loadedimagenamebuffer: ::core::option::Option<&mut [u8]>, loadedimagenamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetModuleNames)(
            ::windows::core::Vtable::as_raw(self),
            index,
            base,
            ::core::mem::transmute(imagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            imagenamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(imagenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(modulenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            modulenamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(modulenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(loadedimagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            loadedimagenamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(loadedimagenamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetModuleParameters(&self, count: u32, bases: ::core::option::Option<*const u64>, start: u32) -> ::windows::core::Result<DEBUG_MODULE_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetModuleParameters)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(bases.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_MODULE_PARAMETERS>(result__)
    }
    pub unsafe fn GetSymbolModule<'a, P0>(&self, symbol: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolModule)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTypeName)(::windows::core::Vtable::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetTypeId<'a, P0>(&self, module: u64, name: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypeId)(::windows::core::Vtable::as_raw(self), module, name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetTypeSize(&self, module: u64, typeid: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypeSize)(::windows::core::Vtable::as_raw(self), module, typeid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetFieldOffset<'a, P0>(&self, module: u64, typeid: u32, field: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFieldOffset)(::windows::core::Vtable::as_raw(self), module, typeid, field.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSymbolTypeId<'a, P0>(&self, symbol: P0, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSymbolTypeId)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(typeid), ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetTypeId(&self, offset: u64, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOffsetTypeId)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(typeid), ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadTypedDataVirtual)(::windows::core::Vtable::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteTypedDataVirtual)(::windows::core::Vtable::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn OutputTypedDataVirtual(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputTypedDataVirtual)(::windows::core::Vtable::as_raw(self), outputcontrol, offset, module, typeid, flags).ok()
    }
    pub unsafe fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadTypedDataPhysical)(::windows::core::Vtable::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteTypedDataPhysical)(::windows::core::Vtable::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn OutputTypedDataPhysical(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputTypedDataPhysical)(::windows::core::Vtable::as_raw(self), outputcontrol, offset, module, typeid, flags).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetScope(&self, instructionoffset: ::core::option::Option<*mut u64>, scopeframe: ::core::option::Option<*mut DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<*mut ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetScope)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(instructionoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null_mut())), scopecontextsize).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: ::core::option::Option<*const DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<*const ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetScope)(::windows::core::Vtable::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null())), scopecontextsize).ok()
    }
    pub unsafe fn ResetScope(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ResetScope)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetScopeSymbolGroup<'a, P0>(&self, flags: u32, update: P0) -> ::windows::core::Result<IDebugSymbolGroup>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugSymbolGroup>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetScopeSymbolGroup)(::windows::core::Vtable::as_raw(self), flags, update.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugSymbolGroup>(result__)
    }
    pub unsafe fn CreateSymbolGroup(&self) -> ::windows::core::Result<IDebugSymbolGroup> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateSymbolGroup)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugSymbolGroup>(result__)
    }
    pub unsafe fn StartSymbolMatch<'a, P0>(&self, pattern: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).StartSymbolMatch)(::windows::core::Vtable::as_raw(self), pattern.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: ::core::option::Option<&mut [u8]>, matchsize: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNextSymbolMatch)(::windows::core::Vtable::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(matchsize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn EndSymbolMatch(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndSymbolMatch)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn Reload<'a, P0>(&self, module: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Reload)(::windows::core::Vtable::as_raw(self), module.into()).ok()
    }
    pub unsafe fn GetSymbolPath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolPath)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSymbolPath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSymbolPath)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendSymbolPath<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendSymbolPath)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn GetImagePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetImagePath)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetImagePath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetImagePath)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendImagePath<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendImagePath)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn GetSourcePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourcePath)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourcePathElement(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, elementsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourcePathElement)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(elementsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSourcePath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSourcePath)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendSourcePath<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendSourcePath)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn FindSourceFile<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).FindSourceFile)(::windows::core::Vtable::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceFileLineOffsets<'a, P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSourceFileLineOffsets)(::windows::core::Vtable::as_raw(self), file.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filelines.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleVersionInformation<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, verinfosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleVersionInformation)(::windows::core::Vtable::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(verinfosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleNameString(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetModuleNameString)(::windows::core::Vtable::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetConstantName(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetConstantName)(::windows::core::Vtable::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetFieldName(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetFieldName)(::windows::core::Vtable::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetTypeOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypeOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddTypeOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddTypeOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveTypeOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveTypeOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetTypeOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetTypeOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugSymbols2, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugSymbols2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugSymbols2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugSymbols2 {}
impl ::core::fmt::Debug for IDebugSymbols2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugSymbols2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugSymbols2 {
    type Vtable = IDebugSymbols2_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugSymbols2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3a707211_afdd_4495_ad4f_56fecdf8163f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSymbols2_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub GetNameByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT,
    pub GetOffsetByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetNearNameByOffset: unsafe extern "system" fn(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,
    pub GetLineByOffset: unsafe extern "system" fn(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,
    pub GetOffsetByLine: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCSTR, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetNumberModules: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, loaded: *mut u32, unloaded: *mut u32) -> ::windows::core::HRESULT,
    pub GetModuleByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleByModuleName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleNames: unsafe extern "system" fn(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,
    pub GetModuleParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetSymbolModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetTypeName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, name: ::windows::core::PCSTR, typeid: *mut u32) -> ::windows::core::HRESULT,
    pub GetTypeSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, size: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows::core::PCSTR, offset: *mut u32) -> ::windows::core::HRESULT,
    pub GetSymbolTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT,
    pub GetOffsetTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT,
    pub ReadTypedDataVirtual: unsafe extern "system" fn(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,
    pub WriteTypedDataVirtual: unsafe extern "system" fn(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,
    pub OutputTypedDataVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::HRESULT,
    pub ReadTypedDataPhysical: unsafe extern "system" fn(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,
    pub WriteTypedDataPhysical: unsafe extern "system" fn(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,
    pub OutputTypedDataPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetScope: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetScope: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub SetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    SetScope: usize,
    pub ResetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetScopeSymbolGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateSymbolGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, group: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub StartSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pattern: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetNextSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows::core::PSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::HRESULT,
    pub EndSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub Reload: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AppendSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AppendImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetSourcePathElement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AppendSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub FindSourceFile: unsafe extern "system" fn(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,
    pub GetSourceFileLineOffsets: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::HRESULT,
    pub GetModuleVersionInformation: unsafe extern "system" fn(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,
    pub GetModuleNameString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetConstantName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugSymbols3(::windows::core::IUnknown);
impl IDebugSymbols3 {
    pub unsafe fn GetSymbolOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddSymbolOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddSymbolOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveSymbolOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveSymbolOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetSymbolOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetSymbolOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn GetNameByOffset(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNameByOffset)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetByName<'a, P0>(&self, symbol: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffsetByName)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNearNameByOffset)(::windows::core::Vtable::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetLineByOffset(&self, offset: u64, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLineByOffset)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetByLine<'a, P0>(&self, line: u32, file: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffsetByLine)(::windows::core::Vtable::as_raw(self), line, file.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNumberModules(&self, loaded: *mut u32, unloaded: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNumberModules)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(loaded), ::core::mem::transmute(unloaded)).ok()
    }
    pub unsafe fn GetModuleByIndex(&self, index: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetModuleByIndex)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetModuleByModuleName<'a, P0>(&self, name: P0, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleByModuleName)(::windows::core::Vtable::as_raw(self), name.into(), startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleByOffset(&self, offset: u64, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetModuleByOffset)(::windows::core::Vtable::as_raw(self), offset, startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: ::core::option::Option<&mut [u8]>, imagenamesize: ::core::option::Option<*mut u32>, modulenamebuffer: ::core::option::Option<&mut [u8]>, modulenamesize: ::core::option::Option<*mut u32>, loadedimagenamebuffer: ::core::option::Option<&mut [u8]>, loadedimagenamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetModuleNames)(
            ::windows::core::Vtable::as_raw(self),
            index,
            base,
            ::core::mem::transmute(imagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            imagenamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(imagenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(modulenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            modulenamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(modulenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(loadedimagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            loadedimagenamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(loadedimagenamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetModuleParameters(&self, count: u32, bases: ::core::option::Option<*const u64>, start: u32) -> ::windows::core::Result<DEBUG_MODULE_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetModuleParameters)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(bases.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_MODULE_PARAMETERS>(result__)
    }
    pub unsafe fn GetSymbolModule<'a, P0>(&self, symbol: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolModule)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTypeName)(::windows::core::Vtable::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetTypeId<'a, P0>(&self, module: u64, name: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypeId)(::windows::core::Vtable::as_raw(self), module, name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetTypeSize(&self, module: u64, typeid: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypeSize)(::windows::core::Vtable::as_raw(self), module, typeid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetFieldOffset<'a, P0>(&self, module: u64, typeid: u32, field: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFieldOffset)(::windows::core::Vtable::as_raw(self), module, typeid, field.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSymbolTypeId<'a, P0>(&self, symbol: P0, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSymbolTypeId)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(typeid), ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetTypeId(&self, offset: u64, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOffsetTypeId)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(typeid), ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadTypedDataVirtual)(::windows::core::Vtable::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteTypedDataVirtual)(::windows::core::Vtable::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn OutputTypedDataVirtual(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputTypedDataVirtual)(::windows::core::Vtable::as_raw(self), outputcontrol, offset, module, typeid, flags).ok()
    }
    pub unsafe fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadTypedDataPhysical)(::windows::core::Vtable::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteTypedDataPhysical)(::windows::core::Vtable::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn OutputTypedDataPhysical(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputTypedDataPhysical)(::windows::core::Vtable::as_raw(self), outputcontrol, offset, module, typeid, flags).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetScope(&self, instructionoffset: ::core::option::Option<*mut u64>, scopeframe: ::core::option::Option<*mut DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<*mut ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetScope)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(instructionoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null_mut())), scopecontextsize).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: ::core::option::Option<*const DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<*const ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetScope)(::windows::core::Vtable::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null())), scopecontextsize).ok()
    }
    pub unsafe fn ResetScope(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ResetScope)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetScopeSymbolGroup<'a, P0>(&self, flags: u32, update: P0) -> ::windows::core::Result<IDebugSymbolGroup>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugSymbolGroup>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetScopeSymbolGroup)(::windows::core::Vtable::as_raw(self), flags, update.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugSymbolGroup>(result__)
    }
    pub unsafe fn CreateSymbolGroup(&self) -> ::windows::core::Result<IDebugSymbolGroup> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateSymbolGroup)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugSymbolGroup>(result__)
    }
    pub unsafe fn StartSymbolMatch<'a, P0>(&self, pattern: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).StartSymbolMatch)(::windows::core::Vtable::as_raw(self), pattern.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: ::core::option::Option<&mut [u8]>, matchsize: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNextSymbolMatch)(::windows::core::Vtable::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(matchsize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn EndSymbolMatch(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndSymbolMatch)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn Reload<'a, P0>(&self, module: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Reload)(::windows::core::Vtable::as_raw(self), module.into()).ok()
    }
    pub unsafe fn GetSymbolPath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolPath)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSymbolPath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSymbolPath)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendSymbolPath<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendSymbolPath)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn GetImagePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetImagePath)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetImagePath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetImagePath)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendImagePath<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendImagePath)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn GetSourcePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourcePath)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourcePathElement(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, elementsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourcePathElement)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(elementsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSourcePath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSourcePath)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendSourcePath<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendSourcePath)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn FindSourceFile<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).FindSourceFile)(::windows::core::Vtable::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceFileLineOffsets<'a, P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSourceFileLineOffsets)(::windows::core::Vtable::as_raw(self), file.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filelines.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleVersionInformation<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, verinfosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleVersionInformation)(::windows::core::Vtable::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(verinfosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleNameString(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetModuleNameString)(::windows::core::Vtable::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetConstantName(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetConstantName)(::windows::core::Vtable::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetFieldName(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetFieldName)(::windows::core::Vtable::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetTypeOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypeOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddTypeOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddTypeOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveTypeOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveTypeOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetTypeOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetTypeOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn GetNameByOffsetWide(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNameByOffsetWide)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetByNameWide<'a, P0>(&self, symbol: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffsetByNameWide)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNearNameByOffsetWide(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNearNameByOffsetWide)(::windows::core::Vtable::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetLineByOffsetWide(&self, offset: u64, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLineByOffsetWide)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetByLineWide<'a, P0>(&self, line: u32, file: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffsetByLineWide)(::windows::core::Vtable::as_raw(self), line, file.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetModuleByModuleNameWide<'a, P0>(&self, name: P0, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleByModuleNameWide)(::windows::core::Vtable::as_raw(self), name.into(), startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolModuleWide<'a, P0>(&self, symbol: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolModuleWide)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetTypeNameWide(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTypeNameWide)(::windows::core::Vtable::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetTypeIdWide<'a, P0>(&self, module: u64, name: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypeIdWide)(::windows::core::Vtable::as_raw(self), module, name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetFieldOffsetWide<'a, P0>(&self, module: u64, typeid: u32, field: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFieldOffsetWide)(::windows::core::Vtable::as_raw(self), module, typeid, field.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSymbolTypeIdWide<'a, P0>(&self, symbol: P0, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSymbolTypeIdWide)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(typeid), ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetScopeSymbolGroup2<'a, P0>(&self, flags: u32, update: P0) -> ::windows::core::Result<IDebugSymbolGroup2>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugSymbolGroup2>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetScopeSymbolGroup2)(::windows::core::Vtable::as_raw(self), flags, update.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugSymbolGroup2>(result__)
    }
    pub unsafe fn CreateSymbolGroup2(&self) -> ::windows::core::Result<IDebugSymbolGroup2> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateSymbolGroup2)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugSymbolGroup2>(result__)
    }
    pub unsafe fn StartSymbolMatchWide<'a, P0>(&self, pattern: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).StartSymbolMatchWide)(::windows::core::Vtable::as_raw(self), pattern.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNextSymbolMatchWide(&self, handle: u64, buffer: ::core::option::Option<&mut [u16]>, matchsize: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNextSymbolMatchWide)(::windows::core::Vtable::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(matchsize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReloadWide<'a, P0>(&self, module: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ReloadWide)(::windows::core::Vtable::as_raw(self), module.into()).ok()
    }
    pub unsafe fn GetSymbolPathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolPathWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSymbolPathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSymbolPathWide)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendSymbolPathWide<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendSymbolPathWide)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn GetImagePathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetImagePathWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetImagePathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetImagePathWide)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendImagePathWide<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendImagePathWide)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn GetSourcePathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourcePathWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourcePathElementWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, elementsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourcePathElementWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(elementsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSourcePathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSourcePathWide)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendSourcePathWide<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendSourcePathWide)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn FindSourceFileWide<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u16]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).FindSourceFileWide)(::windows::core::Vtable::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceFileLineOffsetsWide<'a, P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSourceFileLineOffsetsWide)(::windows::core::Vtable::as_raw(self), file.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filelines.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleVersionInformationWide<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, verinfosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleVersionInformationWide)(::windows::core::Vtable::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(verinfosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleNameStringWide(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetModuleNameStringWide)(::windows::core::Vtable::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetConstantNameWide(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetConstantNameWide)(::windows::core::Vtable::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetFieldNameWide(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetFieldNameWide)(::windows::core::Vtable::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn IsManagedModule(&self, index: u32, base: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).IsManagedModule)(::windows::core::Vtable::as_raw(self), index, base).ok()
    }
    pub unsafe fn GetModuleByModuleName2<'a, P0>(&self, name: P0, startindex: u32, flags: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleByModuleName2)(::windows::core::Vtable::as_raw(self), name.into(), startindex, flags, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleByModuleName2Wide<'a, P0>(&self, name: P0, startindex: u32, flags: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleByModuleName2Wide)(::windows::core::Vtable::as_raw(self), name.into(), startindex, flags, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleByOffset2(&self, offset: u64, startindex: u32, flags: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetModuleByOffset2)(::windows::core::Vtable::as_raw(self), offset, startindex, flags, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn AddSyntheticModule<'a, P0, P1>(&self, base: u64, size: u32, imagepath: P0, modulename: P1, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddSyntheticModule)(::windows::core::Vtable::as_raw(self), base, size, imagepath.into(), modulename.into(), flags).ok()
    }
    pub unsafe fn AddSyntheticModuleWide<'a, P0, P1>(&self, base: u64, size: u32, imagepath: P0, modulename: P1, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddSyntheticModuleWide)(::windows::core::Vtable::as_raw(self), base, size, imagepath.into(), modulename.into(), flags).ok()
    }
    pub unsafe fn RemoveSyntheticModule(&self, base: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveSyntheticModule)(::windows::core::Vtable::as_raw(self), base).ok()
    }
    pub unsafe fn GetCurrentScopeFrameIndex(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentScopeFrameIndex)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetScopeFrameByIndex(&self, index: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetScopeFrameByIndex)(::windows::core::Vtable::as_raw(self), index).ok()
    }
    pub unsafe fn SetScopeFromJitDebugInfo(&self, outputcontrol: u32, infooffset: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetScopeFromJitDebugInfo)(::windows::core::Vtable::as_raw(self), outputcontrol, infooffset).ok()
    }
    pub unsafe fn SetScopeFromStoredEvent(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetScopeFromStoredEvent)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn OutputSymbolByOffset(&self, outputcontrol: u32, flags: u32, offset: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputSymbolByOffset)(::windows::core::Vtable::as_raw(self), outputcontrol, flags, offset).ok()
    }
    pub unsafe fn GetFunctionEntryByOffset(&self, offset: u64, flags: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, bufferneeded: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetFunctionEntryByOffset)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(bufferneeded.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetFieldTypeAndOffset<'a, P0>(&self, module: u64, containertypeid: u32, field: P0, fieldtypeid: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetFieldTypeAndOffset)(::windows::core::Vtable::as_raw(self), module, containertypeid, field.into(), ::core::mem::transmute(fieldtypeid.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetFieldTypeAndOffsetWide<'a, P0>(&self, module: u64, containertypeid: u32, field: P0, fieldtypeid: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetFieldTypeAndOffsetWide)(::windows::core::Vtable::as_raw(self), module, containertypeid, field.into(), ::core::mem::transmute(fieldtypeid.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn AddSyntheticSymbol<'a, P0>(&self, offset: u64, size: u32, name: P0, flags: u32) -> ::windows::core::Result<DEBUG_MODULE_AND_ID>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddSyntheticSymbol)(::windows::core::Vtable::as_raw(self), offset, size, name.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_MODULE_AND_ID>(result__)
    }
    pub unsafe fn AddSyntheticSymbolWide<'a, P0>(&self, offset: u64, size: u32, name: P0, flags: u32) -> ::windows::core::Result<DEBUG_MODULE_AND_ID>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddSyntheticSymbolWide)(::windows::core::Vtable::as_raw(self), offset, size, name.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_MODULE_AND_ID>(result__)
    }
    pub unsafe fn RemoveSyntheticSymbol(&self, id: *const DEBUG_MODULE_AND_ID) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveSyntheticSymbol)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(id)).ok()
    }
    pub unsafe fn GetSymbolEntriesByOffset(&self, offset: u64, flags: u32, ids: ::core::option::Option<*mut DEBUG_MODULE_AND_ID>, displacements: ::core::option::Option<*mut u64>, idscount: u32, entries: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolEntriesByOffset)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacements.unwrap_or(::std::ptr::null_mut())), idscount, ::core::mem::transmute(entries.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolEntriesByName<'a, P0>(&self, symbol: P0, flags: u32, ids: ::core::option::Option<&mut [DEBUG_MODULE_AND_ID]>, entries: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSymbolEntriesByName)(::windows::core::Vtable::as_raw(self), symbol.into(), flags, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entries.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolEntriesByNameWide<'a, P0>(&self, symbol: P0, flags: u32, ids: ::core::option::Option<&mut [DEBUG_MODULE_AND_ID]>, entries: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSymbolEntriesByNameWide)(::windows::core::Vtable::as_raw(self), symbol.into(), flags, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entries.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolEntryByToken(&self, modulebase: u64, token: u32) -> ::windows::core::Result<DEBUG_MODULE_AND_ID> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolEntryByToken)(::windows::core::Vtable::as_raw(self), modulebase, token, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_MODULE_AND_ID>(result__)
    }
    pub unsafe fn GetSymbolEntryInformation(&self, id: *const DEBUG_MODULE_AND_ID) -> ::windows::core::Result<DEBUG_SYMBOL_ENTRY> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolEntryInformation)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(id), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_SYMBOL_ENTRY>(result__)
    }
    pub unsafe fn GetSymbolEntryString(&self, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolEntryString)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(id), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolEntryStringWide(&self, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolEntryStringWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(id), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolEntryOffsetRegions(&self, id: *const DEBUG_MODULE_AND_ID, flags: u32, regions: ::core::option::Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolEntryOffsetRegions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(id), flags, ::core::mem::transmute(regions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), regions.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(regionsavail.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolEntryBySymbolEntry(&self, fromid: *const DEBUG_MODULE_AND_ID, flags: u32) -> ::windows::core::Result<DEBUG_MODULE_AND_ID> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolEntryBySymbolEntry)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(fromid), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_MODULE_AND_ID>(result__)
    }
    pub unsafe fn GetSourceEntriesByOffset(&self, offset: u64, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourceEntriesByOffset)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entriesavail.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceEntriesByLine<'a, P0>(&self, line: u32, file: P0, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSourceEntriesByLine)(::windows::core::Vtable::as_raw(self), line, file.into(), flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entriesavail.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceEntriesByLineWide<'a, P0>(&self, line: u32, file: P0, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSourceEntriesByLineWide)(::windows::core::Vtable::as_raw(self), line, file.into(), flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entriesavail.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceEntryString(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourceEntryString)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(entry), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceEntryStringWide(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourceEntryStringWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(entry), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceEntryOffsetRegions(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: ::core::option::Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourceEntryOffsetRegions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(entry), flags, ::core::mem::transmute(regions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), regions.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(regionsavail.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceEntryBySourceEntry(&self, fromentry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32) -> ::windows::core::Result<DEBUG_SYMBOL_SOURCE_ENTRY> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSourceEntryBySourceEntry)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(fromentry), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_SYMBOL_SOURCE_ENTRY>(result__)
    }
}
::windows::core::interface_hierarchy!(IDebugSymbols3, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugSymbols3 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugSymbols3 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugSymbols3 {}
impl ::core::fmt::Debug for IDebugSymbols3 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugSymbols3").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugSymbols3 {
    type Vtable = IDebugSymbols3_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugSymbols3 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf02fbecc_50ac_4f36_9ad9_c975e8f32ff8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSymbols3_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub GetNameByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT,
    pub GetOffsetByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetNearNameByOffset: unsafe extern "system" fn(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,
    pub GetLineByOffset: unsafe extern "system" fn(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,
    pub GetOffsetByLine: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCSTR, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetNumberModules: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, loaded: *mut u32, unloaded: *mut u32) -> ::windows::core::HRESULT,
    pub GetModuleByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleByModuleName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleNames: unsafe extern "system" fn(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,
    pub GetModuleParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetSymbolModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetTypeName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, name: ::windows::core::PCSTR, typeid: *mut u32) -> ::windows::core::HRESULT,
    pub GetTypeSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, size: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows::core::PCSTR, offset: *mut u32) -> ::windows::core::HRESULT,
    pub GetSymbolTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT,
    pub GetOffsetTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT,
    pub ReadTypedDataVirtual: unsafe extern "system" fn(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,
    pub WriteTypedDataVirtual: unsafe extern "system" fn(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,
    pub OutputTypedDataVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::HRESULT,
    pub ReadTypedDataPhysical: unsafe extern "system" fn(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,
    pub WriteTypedDataPhysical: unsafe extern "system" fn(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,
    pub OutputTypedDataPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetScope: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetScope: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub SetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    SetScope: usize,
    pub ResetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetScopeSymbolGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateSymbolGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, group: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub StartSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pattern: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetNextSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows::core::PSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::HRESULT,
    pub EndSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub Reload: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AppendSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AppendImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetSourcePathElement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AppendSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub FindSourceFile: unsafe extern "system" fn(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,
    pub GetSourceFileLineOffsets: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::HRESULT,
    pub GetModuleVersionInformation: unsafe extern "system" fn(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,
    pub GetModuleNameString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetConstantName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub GetNameByOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT,
    pub GetOffsetByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetNearNameByOffsetWide: unsafe extern "system" fn(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,
    pub GetLineByOffsetWide: unsafe extern "system" fn(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,
    pub GetOffsetByLineWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCWSTR, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleByModuleNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetSymbolModuleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetTypeNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetTypeIdWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, name: ::windows::core::PCWSTR, typeid: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows::core::PCWSTR, offset: *mut u32) -> ::windows::core::HRESULT,
    pub GetSymbolTypeIdWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT,
    pub GetScopeSymbolGroup2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateSymbolGroup2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, group: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub StartSymbolMatchWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pattern: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetNextSymbolMatchWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows::core::PWSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::HRESULT,
    pub ReloadWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetSymbolPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSymbolPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub AppendSymbolPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetImagePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetImagePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub AppendImagePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetSourcePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetSourcePathElementWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSourcePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub AppendSourcePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub FindSourceFileWide: unsafe extern "system" fn(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,
    pub GetSourceFileLineOffsetsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::HRESULT,
    pub GetModuleVersionInformationWide: unsafe extern "system" fn(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,
    pub GetModuleNameStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetConstantNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub IsManagedModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: u64) -> ::windows::core::HRESULT,
    pub GetModuleByModuleName2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleByModuleName2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleByOffset2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub AddSyntheticModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, base: u64, size: u32, imagepath: ::windows::core::PCSTR, modulename: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub AddSyntheticModuleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, base: u64, size: u32, imagepath: ::windows::core::PCWSTR, modulename: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT,
    pub RemoveSyntheticModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, base: u64) -> ::windows::core::HRESULT,
    pub GetCurrentScopeFrameIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows::core::HRESULT,
    pub SetScopeFrameByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32) -> ::windows::core::HRESULT,
    pub SetScopeFromJitDebugInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, infooffset: u64) -> ::windows::core::HRESULT,
    pub SetScopeFromStoredEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OutputSymbolByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, offset: u64) -> ::windows::core::HRESULT,
    pub GetFunctionEntryByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bufferneeded: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldTypeAndOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, containertypeid: u32, field: ::windows::core::PCSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldTypeAndOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, containertypeid: u32, field: ::windows::core::PCWSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows::core::HRESULT,
    pub AddSyntheticSymbol: unsafe extern "system" fn(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,
    pub AddSyntheticSymbolWide: unsafe extern "system" fn(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,
    pub RemoveSyntheticSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT,
    pub GetSymbolEntriesByOffset: unsafe extern "system" fn(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,
    pub GetSymbolEntriesByName: unsafe extern "system" fn(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,
    pub GetSymbolEntriesByNameWide: unsafe extern "system" fn(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,
    pub GetSymbolEntryByToken: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, modulebase: u64, token: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT,
    pub GetSymbolEntryInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, info: *mut DEBUG_SYMBOL_ENTRY) -> ::windows::core::HRESULT,
    pub GetSymbolEntryString: unsafe extern "system" fn(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,
    pub GetSymbolEntryStringWide: unsafe extern "system" fn(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,
    pub GetSymbolEntryOffsetRegions: unsafe extern "system" fn(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,
    pub GetSymbolEntryBySymbolEntry: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, fromid: *const DEBUG_MODULE_AND_ID, flags: u32, toid: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT,
    pub GetSourceEntriesByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::HRESULT,
    pub GetSourceEntriesByLine: unsafe extern "system" fn(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,
    pub GetSourceEntriesByLineWide: unsafe extern "system" fn(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,
    pub GetSourceEntryString: unsafe extern "system" fn(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,
    pub GetSourceEntryStringWide: unsafe extern "system" fn(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,
    pub GetSourceEntryOffsetRegions: unsafe extern "system" fn(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,
    pub GetSourceEntryBySourceEntry: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, fromentry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, toentry: *mut DEBUG_SYMBOL_SOURCE_ENTRY) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugSymbols4(::windows::core::IUnknown);
impl IDebugSymbols4 {
    pub unsafe fn GetSymbolOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddSymbolOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddSymbolOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveSymbolOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveSymbolOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetSymbolOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetSymbolOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn GetNameByOffset(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNameByOffset)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetByName<'a, P0>(&self, symbol: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffsetByName)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNearNameByOffset)(::windows::core::Vtable::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetLineByOffset(&self, offset: u64, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLineByOffset)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetByLine<'a, P0>(&self, line: u32, file: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffsetByLine)(::windows::core::Vtable::as_raw(self), line, file.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNumberModules(&self, loaded: *mut u32, unloaded: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNumberModules)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(loaded), ::core::mem::transmute(unloaded)).ok()
    }
    pub unsafe fn GetModuleByIndex(&self, index: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetModuleByIndex)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetModuleByModuleName<'a, P0>(&self, name: P0, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleByModuleName)(::windows::core::Vtable::as_raw(self), name.into(), startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleByOffset(&self, offset: u64, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetModuleByOffset)(::windows::core::Vtable::as_raw(self), offset, startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: ::core::option::Option<&mut [u8]>, imagenamesize: ::core::option::Option<*mut u32>, modulenamebuffer: ::core::option::Option<&mut [u8]>, modulenamesize: ::core::option::Option<*mut u32>, loadedimagenamebuffer: ::core::option::Option<&mut [u8]>, loadedimagenamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetModuleNames)(
            ::windows::core::Vtable::as_raw(self),
            index,
            base,
            ::core::mem::transmute(imagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            imagenamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(imagenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(modulenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            modulenamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(modulenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(loadedimagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            loadedimagenamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(loadedimagenamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetModuleParameters(&self, count: u32, bases: ::core::option::Option<*const u64>, start: u32) -> ::windows::core::Result<DEBUG_MODULE_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetModuleParameters)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(bases.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_MODULE_PARAMETERS>(result__)
    }
    pub unsafe fn GetSymbolModule<'a, P0>(&self, symbol: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolModule)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTypeName)(::windows::core::Vtable::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetTypeId<'a, P0>(&self, module: u64, name: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypeId)(::windows::core::Vtable::as_raw(self), module, name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetTypeSize(&self, module: u64, typeid: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypeSize)(::windows::core::Vtable::as_raw(self), module, typeid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetFieldOffset<'a, P0>(&self, module: u64, typeid: u32, field: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFieldOffset)(::windows::core::Vtable::as_raw(self), module, typeid, field.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSymbolTypeId<'a, P0>(&self, symbol: P0, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSymbolTypeId)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(typeid), ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetTypeId(&self, offset: u64, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOffsetTypeId)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(typeid), ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadTypedDataVirtual)(::windows::core::Vtable::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteTypedDataVirtual)(::windows::core::Vtable::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn OutputTypedDataVirtual(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputTypedDataVirtual)(::windows::core::Vtable::as_raw(self), outputcontrol, offset, module, typeid, flags).ok()
    }
    pub unsafe fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadTypedDataPhysical)(::windows::core::Vtable::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteTypedDataPhysical)(::windows::core::Vtable::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn OutputTypedDataPhysical(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputTypedDataPhysical)(::windows::core::Vtable::as_raw(self), outputcontrol, offset, module, typeid, flags).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetScope(&self, instructionoffset: ::core::option::Option<*mut u64>, scopeframe: ::core::option::Option<*mut DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<*mut ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetScope)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(instructionoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null_mut())), scopecontextsize).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: ::core::option::Option<*const DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<*const ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetScope)(::windows::core::Vtable::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null())), scopecontextsize).ok()
    }
    pub unsafe fn ResetScope(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ResetScope)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetScopeSymbolGroup<'a, P0>(&self, flags: u32, update: P0) -> ::windows::core::Result<IDebugSymbolGroup>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugSymbolGroup>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetScopeSymbolGroup)(::windows::core::Vtable::as_raw(self), flags, update.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugSymbolGroup>(result__)
    }
    pub unsafe fn CreateSymbolGroup(&self) -> ::windows::core::Result<IDebugSymbolGroup> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateSymbolGroup)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugSymbolGroup>(result__)
    }
    pub unsafe fn StartSymbolMatch<'a, P0>(&self, pattern: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).StartSymbolMatch)(::windows::core::Vtable::as_raw(self), pattern.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: ::core::option::Option<&mut [u8]>, matchsize: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNextSymbolMatch)(::windows::core::Vtable::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(matchsize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn EndSymbolMatch(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndSymbolMatch)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn Reload<'a, P0>(&self, module: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Reload)(::windows::core::Vtable::as_raw(self), module.into()).ok()
    }
    pub unsafe fn GetSymbolPath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolPath)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSymbolPath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSymbolPath)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendSymbolPath<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendSymbolPath)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn GetImagePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetImagePath)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetImagePath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetImagePath)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendImagePath<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendImagePath)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn GetSourcePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourcePath)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourcePathElement(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, elementsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourcePathElement)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(elementsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSourcePath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSourcePath)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendSourcePath<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendSourcePath)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn FindSourceFile<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).FindSourceFile)(::windows::core::Vtable::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceFileLineOffsets<'a, P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSourceFileLineOffsets)(::windows::core::Vtable::as_raw(self), file.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filelines.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleVersionInformation<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, verinfosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleVersionInformation)(::windows::core::Vtable::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(verinfosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleNameString(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetModuleNameString)(::windows::core::Vtable::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetConstantName(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetConstantName)(::windows::core::Vtable::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetFieldName(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetFieldName)(::windows::core::Vtable::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetTypeOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypeOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddTypeOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddTypeOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveTypeOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveTypeOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetTypeOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetTypeOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn GetNameByOffsetWide(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNameByOffsetWide)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetByNameWide<'a, P0>(&self, symbol: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffsetByNameWide)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNearNameByOffsetWide(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNearNameByOffsetWide)(::windows::core::Vtable::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetLineByOffsetWide(&self, offset: u64, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLineByOffsetWide)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetByLineWide<'a, P0>(&self, line: u32, file: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffsetByLineWide)(::windows::core::Vtable::as_raw(self), line, file.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetModuleByModuleNameWide<'a, P0>(&self, name: P0, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleByModuleNameWide)(::windows::core::Vtable::as_raw(self), name.into(), startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolModuleWide<'a, P0>(&self, symbol: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolModuleWide)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetTypeNameWide(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTypeNameWide)(::windows::core::Vtable::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetTypeIdWide<'a, P0>(&self, module: u64, name: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypeIdWide)(::windows::core::Vtable::as_raw(self), module, name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetFieldOffsetWide<'a, P0>(&self, module: u64, typeid: u32, field: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFieldOffsetWide)(::windows::core::Vtable::as_raw(self), module, typeid, field.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSymbolTypeIdWide<'a, P0>(&self, symbol: P0, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSymbolTypeIdWide)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(typeid), ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetScopeSymbolGroup2<'a, P0>(&self, flags: u32, update: P0) -> ::windows::core::Result<IDebugSymbolGroup2>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugSymbolGroup2>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetScopeSymbolGroup2)(::windows::core::Vtable::as_raw(self), flags, update.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugSymbolGroup2>(result__)
    }
    pub unsafe fn CreateSymbolGroup2(&self) -> ::windows::core::Result<IDebugSymbolGroup2> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateSymbolGroup2)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugSymbolGroup2>(result__)
    }
    pub unsafe fn StartSymbolMatchWide<'a, P0>(&self, pattern: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).StartSymbolMatchWide)(::windows::core::Vtable::as_raw(self), pattern.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNextSymbolMatchWide(&self, handle: u64, buffer: ::core::option::Option<&mut [u16]>, matchsize: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNextSymbolMatchWide)(::windows::core::Vtable::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(matchsize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReloadWide<'a, P0>(&self, module: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ReloadWide)(::windows::core::Vtable::as_raw(self), module.into()).ok()
    }
    pub unsafe fn GetSymbolPathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolPathWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSymbolPathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSymbolPathWide)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendSymbolPathWide<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendSymbolPathWide)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn GetImagePathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetImagePathWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetImagePathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetImagePathWide)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendImagePathWide<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendImagePathWide)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn GetSourcePathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourcePathWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourcePathElementWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, elementsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourcePathElementWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(elementsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSourcePathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSourcePathWide)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendSourcePathWide<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendSourcePathWide)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn FindSourceFileWide<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u16]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).FindSourceFileWide)(::windows::core::Vtable::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceFileLineOffsetsWide<'a, P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSourceFileLineOffsetsWide)(::windows::core::Vtable::as_raw(self), file.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filelines.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleVersionInformationWide<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, verinfosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleVersionInformationWide)(::windows::core::Vtable::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(verinfosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleNameStringWide(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetModuleNameStringWide)(::windows::core::Vtable::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetConstantNameWide(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetConstantNameWide)(::windows::core::Vtable::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetFieldNameWide(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetFieldNameWide)(::windows::core::Vtable::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn IsManagedModule(&self, index: u32, base: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).IsManagedModule)(::windows::core::Vtable::as_raw(self), index, base).ok()
    }
    pub unsafe fn GetModuleByModuleName2<'a, P0>(&self, name: P0, startindex: u32, flags: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleByModuleName2)(::windows::core::Vtable::as_raw(self), name.into(), startindex, flags, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleByModuleName2Wide<'a, P0>(&self, name: P0, startindex: u32, flags: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleByModuleName2Wide)(::windows::core::Vtable::as_raw(self), name.into(), startindex, flags, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleByOffset2(&self, offset: u64, startindex: u32, flags: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetModuleByOffset2)(::windows::core::Vtable::as_raw(self), offset, startindex, flags, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn AddSyntheticModule<'a, P0, P1>(&self, base: u64, size: u32, imagepath: P0, modulename: P1, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddSyntheticModule)(::windows::core::Vtable::as_raw(self), base, size, imagepath.into(), modulename.into(), flags).ok()
    }
    pub unsafe fn AddSyntheticModuleWide<'a, P0, P1>(&self, base: u64, size: u32, imagepath: P0, modulename: P1, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddSyntheticModuleWide)(::windows::core::Vtable::as_raw(self), base, size, imagepath.into(), modulename.into(), flags).ok()
    }
    pub unsafe fn RemoveSyntheticModule(&self, base: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveSyntheticModule)(::windows::core::Vtable::as_raw(self), base).ok()
    }
    pub unsafe fn GetCurrentScopeFrameIndex(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentScopeFrameIndex)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetScopeFrameByIndex(&self, index: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetScopeFrameByIndex)(::windows::core::Vtable::as_raw(self), index).ok()
    }
    pub unsafe fn SetScopeFromJitDebugInfo(&self, outputcontrol: u32, infooffset: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetScopeFromJitDebugInfo)(::windows::core::Vtable::as_raw(self), outputcontrol, infooffset).ok()
    }
    pub unsafe fn SetScopeFromStoredEvent(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetScopeFromStoredEvent)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn OutputSymbolByOffset(&self, outputcontrol: u32, flags: u32, offset: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputSymbolByOffset)(::windows::core::Vtable::as_raw(self), outputcontrol, flags, offset).ok()
    }
    pub unsafe fn GetFunctionEntryByOffset(&self, offset: u64, flags: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, bufferneeded: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetFunctionEntryByOffset)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(bufferneeded.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetFieldTypeAndOffset<'a, P0>(&self, module: u64, containertypeid: u32, field: P0, fieldtypeid: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetFieldTypeAndOffset)(::windows::core::Vtable::as_raw(self), module, containertypeid, field.into(), ::core::mem::transmute(fieldtypeid.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetFieldTypeAndOffsetWide<'a, P0>(&self, module: u64, containertypeid: u32, field: P0, fieldtypeid: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetFieldTypeAndOffsetWide)(::windows::core::Vtable::as_raw(self), module, containertypeid, field.into(), ::core::mem::transmute(fieldtypeid.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn AddSyntheticSymbol<'a, P0>(&self, offset: u64, size: u32, name: P0, flags: u32) -> ::windows::core::Result<DEBUG_MODULE_AND_ID>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddSyntheticSymbol)(::windows::core::Vtable::as_raw(self), offset, size, name.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_MODULE_AND_ID>(result__)
    }
    pub unsafe fn AddSyntheticSymbolWide<'a, P0>(&self, offset: u64, size: u32, name: P0, flags: u32) -> ::windows::core::Result<DEBUG_MODULE_AND_ID>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddSyntheticSymbolWide)(::windows::core::Vtable::as_raw(self), offset, size, name.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_MODULE_AND_ID>(result__)
    }
    pub unsafe fn RemoveSyntheticSymbol(&self, id: *const DEBUG_MODULE_AND_ID) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveSyntheticSymbol)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(id)).ok()
    }
    pub unsafe fn GetSymbolEntriesByOffset(&self, offset: u64, flags: u32, ids: ::core::option::Option<*mut DEBUG_MODULE_AND_ID>, displacements: ::core::option::Option<*mut u64>, idscount: u32, entries: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolEntriesByOffset)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacements.unwrap_or(::std::ptr::null_mut())), idscount, ::core::mem::transmute(entries.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolEntriesByName<'a, P0>(&self, symbol: P0, flags: u32, ids: ::core::option::Option<&mut [DEBUG_MODULE_AND_ID]>, entries: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSymbolEntriesByName)(::windows::core::Vtable::as_raw(self), symbol.into(), flags, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entries.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolEntriesByNameWide<'a, P0>(&self, symbol: P0, flags: u32, ids: ::core::option::Option<&mut [DEBUG_MODULE_AND_ID]>, entries: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSymbolEntriesByNameWide)(::windows::core::Vtable::as_raw(self), symbol.into(), flags, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entries.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolEntryByToken(&self, modulebase: u64, token: u32) -> ::windows::core::Result<DEBUG_MODULE_AND_ID> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolEntryByToken)(::windows::core::Vtable::as_raw(self), modulebase, token, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_MODULE_AND_ID>(result__)
    }
    pub unsafe fn GetSymbolEntryInformation(&self, id: *const DEBUG_MODULE_AND_ID) -> ::windows::core::Result<DEBUG_SYMBOL_ENTRY> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolEntryInformation)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(id), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_SYMBOL_ENTRY>(result__)
    }
    pub unsafe fn GetSymbolEntryString(&self, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolEntryString)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(id), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolEntryStringWide(&self, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolEntryStringWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(id), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolEntryOffsetRegions(&self, id: *const DEBUG_MODULE_AND_ID, flags: u32, regions: ::core::option::Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolEntryOffsetRegions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(id), flags, ::core::mem::transmute(regions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), regions.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(regionsavail.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolEntryBySymbolEntry(&self, fromid: *const DEBUG_MODULE_AND_ID, flags: u32) -> ::windows::core::Result<DEBUG_MODULE_AND_ID> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolEntryBySymbolEntry)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(fromid), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_MODULE_AND_ID>(result__)
    }
    pub unsafe fn GetSourceEntriesByOffset(&self, offset: u64, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourceEntriesByOffset)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entriesavail.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceEntriesByLine<'a, P0>(&self, line: u32, file: P0, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSourceEntriesByLine)(::windows::core::Vtable::as_raw(self), line, file.into(), flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entriesavail.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceEntriesByLineWide<'a, P0>(&self, line: u32, file: P0, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSourceEntriesByLineWide)(::windows::core::Vtable::as_raw(self), line, file.into(), flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entriesavail.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceEntryString(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourceEntryString)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(entry), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceEntryStringWide(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourceEntryStringWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(entry), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceEntryOffsetRegions(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: ::core::option::Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourceEntryOffsetRegions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(entry), flags, ::core::mem::transmute(regions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), regions.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(regionsavail.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceEntryBySourceEntry(&self, fromentry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32) -> ::windows::core::Result<DEBUG_SYMBOL_SOURCE_ENTRY> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSourceEntryBySourceEntry)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(fromentry), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_SYMBOL_SOURCE_ENTRY>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetScopeEx(&self, instructionoffset: ::core::option::Option<*mut u64>, scopeframe: ::core::option::Option<*mut DEBUG_STACK_FRAME_EX>, scopecontext: ::core::option::Option<*mut ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetScopeEx)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(instructionoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null_mut())), scopecontextsize).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn SetScopeEx(&self, instructionoffset: u64, scopeframe: ::core::option::Option<*const DEBUG_STACK_FRAME_EX>, scopecontext: ::core::option::Option<*const ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetScopeEx)(::windows::core::Vtable::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null())), scopecontextsize).ok()
    }
    pub unsafe fn GetNameByInlineContext(&self, offset: u64, inlinecontext: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNameByInlineContext)(::windows::core::Vtable::as_raw(self), offset, inlinecontext, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetNameByInlineContextWide(&self, offset: u64, inlinecontext: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNameByInlineContextWide)(::windows::core::Vtable::as_raw(self), offset, inlinecontext, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetLineByInlineContext(&self, offset: u64, inlinecontext: u32, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLineByInlineContext)(::windows::core::Vtable::as_raw(self), offset, inlinecontext, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetLineByInlineContextWide(&self, offset: u64, inlinecontext: u32, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLineByInlineContextWide)(::windows::core::Vtable::as_raw(self), offset, inlinecontext, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputSymbolByInlineContext(&self, outputcontrol: u32, flags: u32, offset: u64, inlinecontext: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputSymbolByInlineContext)(::windows::core::Vtable::as_raw(self), outputcontrol, flags, offset, inlinecontext).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugSymbols4, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugSymbols4 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugSymbols4 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugSymbols4 {}
impl ::core::fmt::Debug for IDebugSymbols4 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugSymbols4").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugSymbols4 {
    type Vtable = IDebugSymbols4_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugSymbols4 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe391bbd8_9d8c_4418_840b_c006592a1752);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSymbols4_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub GetNameByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT,
    pub GetOffsetByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetNearNameByOffset: unsafe extern "system" fn(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,
    pub GetLineByOffset: unsafe extern "system" fn(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,
    pub GetOffsetByLine: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCSTR, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetNumberModules: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, loaded: *mut u32, unloaded: *mut u32) -> ::windows::core::HRESULT,
    pub GetModuleByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleByModuleName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleNames: unsafe extern "system" fn(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,
    pub GetModuleParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetSymbolModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetTypeName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, name: ::windows::core::PCSTR, typeid: *mut u32) -> ::windows::core::HRESULT,
    pub GetTypeSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, size: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows::core::PCSTR, offset: *mut u32) -> ::windows::core::HRESULT,
    pub GetSymbolTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT,
    pub GetOffsetTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT,
    pub ReadTypedDataVirtual: unsafe extern "system" fn(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,
    pub WriteTypedDataVirtual: unsafe extern "system" fn(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,
    pub OutputTypedDataVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::HRESULT,
    pub ReadTypedDataPhysical: unsafe extern "system" fn(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,
    pub WriteTypedDataPhysical: unsafe extern "system" fn(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,
    pub OutputTypedDataPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetScope: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetScope: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub SetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    SetScope: usize,
    pub ResetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetScopeSymbolGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateSymbolGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, group: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub StartSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pattern: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetNextSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows::core::PSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::HRESULT,
    pub EndSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub Reload: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AppendSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AppendImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetSourcePathElement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AppendSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub FindSourceFile: unsafe extern "system" fn(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,
    pub GetSourceFileLineOffsets: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::HRESULT,
    pub GetModuleVersionInformation: unsafe extern "system" fn(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,
    pub GetModuleNameString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetConstantName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub GetNameByOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT,
    pub GetOffsetByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetNearNameByOffsetWide: unsafe extern "system" fn(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,
    pub GetLineByOffsetWide: unsafe extern "system" fn(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,
    pub GetOffsetByLineWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCWSTR, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleByModuleNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetSymbolModuleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetTypeNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetTypeIdWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, name: ::windows::core::PCWSTR, typeid: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows::core::PCWSTR, offset: *mut u32) -> ::windows::core::HRESULT,
    pub GetSymbolTypeIdWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT,
    pub GetScopeSymbolGroup2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateSymbolGroup2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, group: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub StartSymbolMatchWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pattern: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetNextSymbolMatchWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows::core::PWSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::HRESULT,
    pub ReloadWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetSymbolPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSymbolPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub AppendSymbolPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetImagePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetImagePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub AppendImagePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetSourcePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetSourcePathElementWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSourcePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub AppendSourcePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub FindSourceFileWide: unsafe extern "system" fn(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,
    pub GetSourceFileLineOffsetsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::HRESULT,
    pub GetModuleVersionInformationWide: unsafe extern "system" fn(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,
    pub GetModuleNameStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetConstantNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub IsManagedModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: u64) -> ::windows::core::HRESULT,
    pub GetModuleByModuleName2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleByModuleName2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleByOffset2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub AddSyntheticModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, base: u64, size: u32, imagepath: ::windows::core::PCSTR, modulename: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub AddSyntheticModuleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, base: u64, size: u32, imagepath: ::windows::core::PCWSTR, modulename: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT,
    pub RemoveSyntheticModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, base: u64) -> ::windows::core::HRESULT,
    pub GetCurrentScopeFrameIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows::core::HRESULT,
    pub SetScopeFrameByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32) -> ::windows::core::HRESULT,
    pub SetScopeFromJitDebugInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, infooffset: u64) -> ::windows::core::HRESULT,
    pub SetScopeFromStoredEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OutputSymbolByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, offset: u64) -> ::windows::core::HRESULT,
    pub GetFunctionEntryByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bufferneeded: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldTypeAndOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, containertypeid: u32, field: ::windows::core::PCSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldTypeAndOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, containertypeid: u32, field: ::windows::core::PCWSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows::core::HRESULT,
    pub AddSyntheticSymbol: unsafe extern "system" fn(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,
    pub AddSyntheticSymbolWide: unsafe extern "system" fn(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,
    pub RemoveSyntheticSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT,
    pub GetSymbolEntriesByOffset: unsafe extern "system" fn(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,
    pub GetSymbolEntriesByName: unsafe extern "system" fn(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,
    pub GetSymbolEntriesByNameWide: unsafe extern "system" fn(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,
    pub GetSymbolEntryByToken: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, modulebase: u64, token: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT,
    pub GetSymbolEntryInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, info: *mut DEBUG_SYMBOL_ENTRY) -> ::windows::core::HRESULT,
    pub GetSymbolEntryString: unsafe extern "system" fn(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,
    pub GetSymbolEntryStringWide: unsafe extern "system" fn(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,
    pub GetSymbolEntryOffsetRegions: unsafe extern "system" fn(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,
    pub GetSymbolEntryBySymbolEntry: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, fromid: *const DEBUG_MODULE_AND_ID, flags: u32, toid: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT,
    pub GetSourceEntriesByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::HRESULT,
    pub GetSourceEntriesByLine: unsafe extern "system" fn(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,
    pub GetSourceEntriesByLineWide: unsafe extern "system" fn(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,
    pub GetSourceEntryString: unsafe extern "system" fn(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,
    pub GetSourceEntryStringWide: unsafe extern "system" fn(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,
    pub GetSourceEntryOffsetRegions: unsafe extern "system" fn(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,
    pub GetSourceEntryBySourceEntry: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, fromentry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, toentry: *mut DEBUG_SYMBOL_SOURCE_ENTRY) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetScopeEx: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetScopeEx: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub SetScopeEx: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    SetScopeEx: usize,
    pub GetNameByInlineContext: unsafe extern "system" fn(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,
    pub GetNameByInlineContextWide: unsafe extern "system" fn(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,
    pub GetLineByInlineContext: unsafe extern "system" fn(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,
    pub GetLineByInlineContextWide: unsafe extern "system" fn(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,
    pub OutputSymbolByInlineContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, offset: u64, inlinecontext: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugSymbols5(::windows::core::IUnknown);
impl IDebugSymbols5 {
    pub unsafe fn GetSymbolOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddSymbolOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddSymbolOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveSymbolOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveSymbolOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetSymbolOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetSymbolOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn GetNameByOffset(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNameByOffset)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetByName<'a, P0>(&self, symbol: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffsetByName)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNearNameByOffset)(::windows::core::Vtable::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetLineByOffset(&self, offset: u64, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLineByOffset)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetByLine<'a, P0>(&self, line: u32, file: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffsetByLine)(::windows::core::Vtable::as_raw(self), line, file.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNumberModules(&self, loaded: *mut u32, unloaded: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNumberModules)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(loaded), ::core::mem::transmute(unloaded)).ok()
    }
    pub unsafe fn GetModuleByIndex(&self, index: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetModuleByIndex)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetModuleByModuleName<'a, P0>(&self, name: P0, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleByModuleName)(::windows::core::Vtable::as_raw(self), name.into(), startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleByOffset(&self, offset: u64, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetModuleByOffset)(::windows::core::Vtable::as_raw(self), offset, startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: ::core::option::Option<&mut [u8]>, imagenamesize: ::core::option::Option<*mut u32>, modulenamebuffer: ::core::option::Option<&mut [u8]>, modulenamesize: ::core::option::Option<*mut u32>, loadedimagenamebuffer: ::core::option::Option<&mut [u8]>, loadedimagenamesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetModuleNames)(
            ::windows::core::Vtable::as_raw(self),
            index,
            base,
            ::core::mem::transmute(imagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            imagenamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(imagenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(modulenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            modulenamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(modulenamesize.unwrap_or(::std::ptr::null_mut())),
            ::core::mem::transmute(loadedimagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
            loadedimagenamebuffer.as_deref().map_or(0, |slice| slice.len() as _),
            ::core::mem::transmute(loadedimagenamesize.unwrap_or(::std::ptr::null_mut())),
        )
        .ok()
    }
    pub unsafe fn GetModuleParameters(&self, count: u32, bases: ::core::option::Option<*const u64>, start: u32) -> ::windows::core::Result<DEBUG_MODULE_PARAMETERS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetModuleParameters)(::windows::core::Vtable::as_raw(self), count, ::core::mem::transmute(bases.unwrap_or(::std::ptr::null())), start, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_MODULE_PARAMETERS>(result__)
    }
    pub unsafe fn GetSymbolModule<'a, P0>(&self, symbol: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolModule)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTypeName)(::windows::core::Vtable::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetTypeId<'a, P0>(&self, module: u64, name: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypeId)(::windows::core::Vtable::as_raw(self), module, name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetTypeSize(&self, module: u64, typeid: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypeSize)(::windows::core::Vtable::as_raw(self), module, typeid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetFieldOffset<'a, P0>(&self, module: u64, typeid: u32, field: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFieldOffset)(::windows::core::Vtable::as_raw(self), module, typeid, field.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSymbolTypeId<'a, P0>(&self, symbol: P0, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSymbolTypeId)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(typeid), ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetTypeId(&self, offset: u64, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetOffsetTypeId)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(typeid), ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadTypedDataVirtual)(::windows::core::Vtable::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteTypedDataVirtual)(::windows::core::Vtable::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn OutputTypedDataVirtual(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputTypedDataVirtual)(::windows::core::Vtable::as_raw(self), outputcontrol, offset, module, typeid, flags).ok()
    }
    pub unsafe fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadTypedDataPhysical)(::windows::core::Vtable::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).WriteTypedDataPhysical)(::windows::core::Vtable::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn OutputTypedDataPhysical(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputTypedDataPhysical)(::windows::core::Vtable::as_raw(self), outputcontrol, offset, module, typeid, flags).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetScope(&self, instructionoffset: ::core::option::Option<*mut u64>, scopeframe: ::core::option::Option<*mut DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<*mut ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetScope)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(instructionoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null_mut())), scopecontextsize).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: ::core::option::Option<*const DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<*const ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetScope)(::windows::core::Vtable::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null())), scopecontextsize).ok()
    }
    pub unsafe fn ResetScope(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ResetScope)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetScopeSymbolGroup<'a, P0>(&self, flags: u32, update: P0) -> ::windows::core::Result<IDebugSymbolGroup>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugSymbolGroup>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetScopeSymbolGroup)(::windows::core::Vtable::as_raw(self), flags, update.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugSymbolGroup>(result__)
    }
    pub unsafe fn CreateSymbolGroup(&self) -> ::windows::core::Result<IDebugSymbolGroup> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateSymbolGroup)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugSymbolGroup>(result__)
    }
    pub unsafe fn StartSymbolMatch<'a, P0>(&self, pattern: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).StartSymbolMatch)(::windows::core::Vtable::as_raw(self), pattern.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: ::core::option::Option<&mut [u8]>, matchsize: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNextSymbolMatch)(::windows::core::Vtable::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(matchsize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn EndSymbolMatch(&self, handle: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).EndSymbolMatch)(::windows::core::Vtable::as_raw(self), handle).ok()
    }
    pub unsafe fn Reload<'a, P0>(&self, module: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).Reload)(::windows::core::Vtable::as_raw(self), module.into()).ok()
    }
    pub unsafe fn GetSymbolPath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolPath)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSymbolPath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSymbolPath)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendSymbolPath<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendSymbolPath)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn GetImagePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetImagePath)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetImagePath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetImagePath)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendImagePath<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendImagePath)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn GetSourcePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourcePath)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourcePathElement(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, elementsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourcePathElement)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(elementsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSourcePath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSourcePath)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendSourcePath<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendSourcePath)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn FindSourceFile<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).FindSourceFile)(::windows::core::Vtable::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceFileLineOffsets<'a, P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSourceFileLineOffsets)(::windows::core::Vtable::as_raw(self), file.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filelines.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleVersionInformation<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, verinfosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleVersionInformation)(::windows::core::Vtable::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(verinfosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleNameString(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetModuleNameString)(::windows::core::Vtable::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetConstantName(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetConstantName)(::windows::core::Vtable::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetFieldName(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetFieldName)(::windows::core::Vtable::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetTypeOptions(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypeOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn AddTypeOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).AddTypeOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn RemoveTypeOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveTypeOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn SetTypeOptions(&self, options: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetTypeOptions)(::windows::core::Vtable::as_raw(self), options).ok()
    }
    pub unsafe fn GetNameByOffsetWide(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNameByOffsetWide)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetByNameWide<'a, P0>(&self, symbol: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffsetByNameWide)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNearNameByOffsetWide(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNearNameByOffsetWide)(::windows::core::Vtable::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetLineByOffsetWide(&self, offset: u64, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLineByOffsetWide)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetOffsetByLineWide<'a, P0>(&self, line: u32, file: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOffsetByLineWide)(::windows::core::Vtable::as_raw(self), line, file.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetModuleByModuleNameWide<'a, P0>(&self, name: P0, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleByModuleNameWide)(::windows::core::Vtable::as_raw(self), name.into(), startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolModuleWide<'a, P0>(&self, symbol: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolModuleWide)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetTypeNameWide(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTypeNameWide)(::windows::core::Vtable::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetTypeIdWide<'a, P0>(&self, module: u64, name: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypeIdWide)(::windows::core::Vtable::as_raw(self), module, name.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetFieldOffsetWide<'a, P0>(&self, module: u64, typeid: u32, field: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetFieldOffsetWide)(::windows::core::Vtable::as_raw(self), module, typeid, field.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSymbolTypeIdWide<'a, P0>(&self, symbol: P0, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSymbolTypeIdWide)(::windows::core::Vtable::as_raw(self), symbol.into(), ::core::mem::transmute(typeid), ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetScopeSymbolGroup2<'a, P0>(&self, flags: u32, update: P0) -> ::windows::core::Result<IDebugSymbolGroup2>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugSymbolGroup2>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetScopeSymbolGroup2)(::windows::core::Vtable::as_raw(self), flags, update.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugSymbolGroup2>(result__)
    }
    pub unsafe fn CreateSymbolGroup2(&self) -> ::windows::core::Result<IDebugSymbolGroup2> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateSymbolGroup2)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugSymbolGroup2>(result__)
    }
    pub unsafe fn StartSymbolMatchWide<'a, P0>(&self, pattern: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).StartSymbolMatchWide)(::windows::core::Vtable::as_raw(self), pattern.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetNextSymbolMatchWide(&self, handle: u64, buffer: ::core::option::Option<&mut [u16]>, matchsize: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNextSymbolMatchWide)(::windows::core::Vtable::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(matchsize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn ReloadWide<'a, P0>(&self, module: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).ReloadWide)(::windows::core::Vtable::as_raw(self), module.into()).ok()
    }
    pub unsafe fn GetSymbolPathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolPathWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSymbolPathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSymbolPathWide)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendSymbolPathWide<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendSymbolPathWide)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn GetImagePathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetImagePathWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetImagePathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetImagePathWide)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendImagePathWide<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendImagePathWide)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn GetSourcePathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourcePathWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourcePathElementWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, elementsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourcePathElementWide)(::windows::core::Vtable::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(elementsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetSourcePathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSourcePathWide)(::windows::core::Vtable::as_raw(self), path.into()).ok()
    }
    pub unsafe fn AppendSourcePathWide<'a, P0>(&self, addition: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AppendSourcePathWide)(::windows::core::Vtable::as_raw(self), addition.into()).ok()
    }
    pub unsafe fn FindSourceFileWide<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u16]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).FindSourceFileWide)(::windows::core::Vtable::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceFileLineOffsetsWide<'a, P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSourceFileLineOffsetsWide)(::windows::core::Vtable::as_raw(self), file.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filelines.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleVersionInformationWide<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, verinfosize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleVersionInformationWide)(::windows::core::Vtable::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(verinfosize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleNameStringWide(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetModuleNameStringWide)(::windows::core::Vtable::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetConstantNameWide(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetConstantNameWide)(::windows::core::Vtable::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetFieldNameWide(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetFieldNameWide)(::windows::core::Vtable::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn IsManagedModule(&self, index: u32, base: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).IsManagedModule)(::windows::core::Vtable::as_raw(self), index, base).ok()
    }
    pub unsafe fn GetModuleByModuleName2<'a, P0>(&self, name: P0, startindex: u32, flags: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleByModuleName2)(::windows::core::Vtable::as_raw(self), name.into(), startindex, flags, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleByModuleName2Wide<'a, P0>(&self, name: P0, startindex: u32, flags: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetModuleByModuleName2Wide)(::windows::core::Vtable::as_raw(self), name.into(), startindex, flags, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetModuleByOffset2(&self, offset: u64, startindex: u32, flags: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetModuleByOffset2)(::windows::core::Vtable::as_raw(self), offset, startindex, flags, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn AddSyntheticModule<'a, P0, P1>(&self, base: u64, size: u32, imagepath: P0, modulename: P1, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
        P1: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddSyntheticModule)(::windows::core::Vtable::as_raw(self), base, size, imagepath.into(), modulename.into(), flags).ok()
    }
    pub unsafe fn AddSyntheticModuleWide<'a, P0, P1>(&self, base: u64, size: u32, imagepath: P0, modulename: P1, flags: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).AddSyntheticModuleWide)(::windows::core::Vtable::as_raw(self), base, size, imagepath.into(), modulename.into(), flags).ok()
    }
    pub unsafe fn RemoveSyntheticModule(&self, base: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveSyntheticModule)(::windows::core::Vtable::as_raw(self), base).ok()
    }
    pub unsafe fn GetCurrentScopeFrameIndex(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentScopeFrameIndex)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetScopeFrameByIndex(&self, index: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetScopeFrameByIndex)(::windows::core::Vtable::as_raw(self), index).ok()
    }
    pub unsafe fn SetScopeFromJitDebugInfo(&self, outputcontrol: u32, infooffset: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetScopeFromJitDebugInfo)(::windows::core::Vtable::as_raw(self), outputcontrol, infooffset).ok()
    }
    pub unsafe fn SetScopeFromStoredEvent(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetScopeFromStoredEvent)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn OutputSymbolByOffset(&self, outputcontrol: u32, flags: u32, offset: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputSymbolByOffset)(::windows::core::Vtable::as_raw(self), outputcontrol, flags, offset).ok()
    }
    pub unsafe fn GetFunctionEntryByOffset(&self, offset: u64, flags: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, bufferneeded: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetFunctionEntryByOffset)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(bufferneeded.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetFieldTypeAndOffset<'a, P0>(&self, module: u64, containertypeid: u32, field: P0, fieldtypeid: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetFieldTypeAndOffset)(::windows::core::Vtable::as_raw(self), module, containertypeid, field.into(), ::core::mem::transmute(fieldtypeid.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetFieldTypeAndOffsetWide<'a, P0>(&self, module: u64, containertypeid: u32, field: P0, fieldtypeid: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetFieldTypeAndOffsetWide)(::windows::core::Vtable::as_raw(self), module, containertypeid, field.into(), ::core::mem::transmute(fieldtypeid.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn AddSyntheticSymbol<'a, P0>(&self, offset: u64, size: u32, name: P0, flags: u32) -> ::windows::core::Result<DEBUG_MODULE_AND_ID>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddSyntheticSymbol)(::windows::core::Vtable::as_raw(self), offset, size, name.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_MODULE_AND_ID>(result__)
    }
    pub unsafe fn AddSyntheticSymbolWide<'a, P0>(&self, offset: u64, size: u32, name: P0, flags: u32) -> ::windows::core::Result<DEBUG_MODULE_AND_ID>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddSyntheticSymbolWide)(::windows::core::Vtable::as_raw(self), offset, size, name.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_MODULE_AND_ID>(result__)
    }
    pub unsafe fn RemoveSyntheticSymbol(&self, id: *const DEBUG_MODULE_AND_ID) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveSyntheticSymbol)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(id)).ok()
    }
    pub unsafe fn GetSymbolEntriesByOffset(&self, offset: u64, flags: u32, ids: ::core::option::Option<*mut DEBUG_MODULE_AND_ID>, displacements: ::core::option::Option<*mut u64>, idscount: u32, entries: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolEntriesByOffset)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacements.unwrap_or(::std::ptr::null_mut())), idscount, ::core::mem::transmute(entries.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolEntriesByName<'a, P0>(&self, symbol: P0, flags: u32, ids: ::core::option::Option<&mut [DEBUG_MODULE_AND_ID]>, entries: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSymbolEntriesByName)(::windows::core::Vtable::as_raw(self), symbol.into(), flags, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entries.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolEntriesByNameWide<'a, P0>(&self, symbol: P0, flags: u32, ids: ::core::option::Option<&mut [DEBUG_MODULE_AND_ID]>, entries: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSymbolEntriesByNameWide)(::windows::core::Vtable::as_raw(self), symbol.into(), flags, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entries.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolEntryByToken(&self, modulebase: u64, token: u32) -> ::windows::core::Result<DEBUG_MODULE_AND_ID> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolEntryByToken)(::windows::core::Vtable::as_raw(self), modulebase, token, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_MODULE_AND_ID>(result__)
    }
    pub unsafe fn GetSymbolEntryInformation(&self, id: *const DEBUG_MODULE_AND_ID) -> ::windows::core::Result<DEBUG_SYMBOL_ENTRY> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolEntryInformation)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(id), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_SYMBOL_ENTRY>(result__)
    }
    pub unsafe fn GetSymbolEntryString(&self, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolEntryString)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(id), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolEntryStringWide(&self, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolEntryStringWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(id), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolEntryOffsetRegions(&self, id: *const DEBUG_MODULE_AND_ID, flags: u32, regions: ::core::option::Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSymbolEntryOffsetRegions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(id), flags, ::core::mem::transmute(regions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), regions.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(regionsavail.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSymbolEntryBySymbolEntry(&self, fromid: *const DEBUG_MODULE_AND_ID, flags: u32) -> ::windows::core::Result<DEBUG_MODULE_AND_ID> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSymbolEntryBySymbolEntry)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(fromid), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_MODULE_AND_ID>(result__)
    }
    pub unsafe fn GetSourceEntriesByOffset(&self, offset: u64, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourceEntriesByOffset)(::windows::core::Vtable::as_raw(self), offset, flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entriesavail.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceEntriesByLine<'a, P0>(&self, line: u32, file: P0, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSourceEntriesByLine)(::windows::core::Vtable::as_raw(self), line, file.into(), flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entriesavail.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceEntriesByLineWide<'a, P0>(&self, line: u32, file: P0, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetSourceEntriesByLineWide)(::windows::core::Vtable::as_raw(self), line, file.into(), flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entriesavail.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceEntryString(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourceEntryString)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(entry), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceEntryStringWide(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourceEntryStringWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(entry), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceEntryOffsetRegions(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: ::core::option::Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSourceEntryOffsetRegions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(entry), flags, ::core::mem::transmute(regions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), regions.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(regionsavail.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetSourceEntryBySourceEntry(&self, fromentry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32) -> ::windows::core::Result<DEBUG_SYMBOL_SOURCE_ENTRY> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSourceEntryBySourceEntry)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(fromentry), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<DEBUG_SYMBOL_SOURCE_ENTRY>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn GetScopeEx(&self, instructionoffset: ::core::option::Option<*mut u64>, scopeframe: ::core::option::Option<*mut DEBUG_STACK_FRAME_EX>, scopecontext: ::core::option::Option<*mut ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetScopeEx)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(instructionoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null_mut())), scopecontextsize).ok()
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn SetScopeEx(&self, instructionoffset: u64, scopeframe: ::core::option::Option<*const DEBUG_STACK_FRAME_EX>, scopecontext: ::core::option::Option<*const ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetScopeEx)(::windows::core::Vtable::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null())), scopecontextsize).ok()
    }
    pub unsafe fn GetNameByInlineContext(&self, offset: u64, inlinecontext: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNameByInlineContext)(::windows::core::Vtable::as_raw(self), offset, inlinecontext, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetNameByInlineContextWide(&self, offset: u64, inlinecontext: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNameByInlineContextWide)(::windows::core::Vtable::as_raw(self), offset, inlinecontext, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetLineByInlineContext(&self, offset: u64, inlinecontext: u32, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLineByInlineContext)(::windows::core::Vtable::as_raw(self), offset, inlinecontext, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetLineByInlineContextWide(&self, offset: u64, inlinecontext: u32, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetLineByInlineContextWide)(::windows::core::Vtable::as_raw(self), offset, inlinecontext, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn OutputSymbolByInlineContext(&self, outputcontrol: u32, flags: u32, offset: u64, inlinecontext: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OutputSymbolByInlineContext)(::windows::core::Vtable::as_raw(self), outputcontrol, flags, offset, inlinecontext).ok()
    }
    pub unsafe fn GetCurrentScopeFrameIndexEx(&self, flags: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentScopeFrameIndexEx)(::windows::core::Vtable::as_raw(self), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetScopeFrameByIndexEx(&self, flags: u32, index: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetScopeFrameByIndexEx)(::windows::core::Vtable::as_raw(self), flags, index).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugSymbols5, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugSymbols5 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugSymbols5 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugSymbols5 {}
impl ::core::fmt::Debug for IDebugSymbols5 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugSymbols5").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugSymbols5 {
    type Vtable = IDebugSymbols5_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugSymbols5 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc65fa83e_1e69_475e_8e0e_b5d79e9cc17e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSymbols5_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub GetNameByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT,
    pub GetOffsetByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetNearNameByOffset: unsafe extern "system" fn(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,
    pub GetLineByOffset: unsafe extern "system" fn(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,
    pub GetOffsetByLine: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCSTR, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetNumberModules: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, loaded: *mut u32, unloaded: *mut u32) -> ::windows::core::HRESULT,
    pub GetModuleByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleByModuleName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleNames: unsafe extern "system" fn(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,
    pub GetModuleParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::HRESULT,
    pub GetSymbolModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetTypeName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, name: ::windows::core::PCSTR, typeid: *mut u32) -> ::windows::core::HRESULT,
    pub GetTypeSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, size: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows::core::PCSTR, offset: *mut u32) -> ::windows::core::HRESULT,
    pub GetSymbolTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT,
    pub GetOffsetTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT,
    pub ReadTypedDataVirtual: unsafe extern "system" fn(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,
    pub WriteTypedDataVirtual: unsafe extern "system" fn(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,
    pub OutputTypedDataVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::HRESULT,
    pub ReadTypedDataPhysical: unsafe extern "system" fn(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,
    pub WriteTypedDataPhysical: unsafe extern "system" fn(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,
    pub OutputTypedDataPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetScope: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetScope: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub SetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    SetScope: usize,
    pub ResetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetScopeSymbolGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateSymbolGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, group: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub StartSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pattern: ::windows::core::PCSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetNextSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows::core::PSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::HRESULT,
    pub EndSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows::core::HRESULT,
    pub Reload: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AppendSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AppendImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub GetSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetSourcePathElement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub AppendSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
    pub FindSourceFile: unsafe extern "system" fn(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,
    pub GetSourceFileLineOffsets: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::HRESULT,
    pub GetModuleVersionInformation: unsafe extern "system" fn(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,
    pub GetModuleNameString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetConstantName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows::core::HRESULT,
    pub AddTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub RemoveTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub SetTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows::core::HRESULT,
    pub GetNameByOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows::core::HRESULT,
    pub GetOffsetByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetNearNameByOffsetWide: unsafe extern "system" fn(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,
    pub GetLineByOffsetWide: unsafe extern "system" fn(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,
    pub GetOffsetByLineWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows::core::PCWSTR, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleByModuleNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetSymbolModuleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetTypeNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetTypeIdWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, name: ::windows::core::PCWSTR, typeid: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows::core::PCWSTR, offset: *mut u32) -> ::windows::core::HRESULT,
    pub GetSymbolTypeIdWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows::core::PCWSTR, typeid: *mut u32, module: *mut u64) -> ::windows::core::HRESULT,
    pub GetScopeSymbolGroup2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateSymbolGroup2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, group: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub StartSymbolMatchWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pattern: ::windows::core::PCWSTR, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetNextSymbolMatchWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows::core::PWSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows::core::HRESULT,
    pub ReloadWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetSymbolPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSymbolPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub AppendSymbolPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetImagePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetImagePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub AppendImagePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetSourcePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows::core::HRESULT,
    pub GetSourcePathElementWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, buffersize: u32, elementsize: *mut u32) -> ::windows::core::HRESULT,
    pub SetSourcePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub AppendSourcePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub FindSourceFileWide: unsafe extern "system" fn(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,
    pub GetSourceFileLineOffsetsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows::core::PCWSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows::core::HRESULT,
    pub GetModuleVersionInformationWide: unsafe extern "system" fn(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,
    pub GetModuleNameStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetConstantNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows::core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub IsManagedModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: u64) -> ::windows::core::HRESULT,
    pub GetModuleByModuleName2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleByModuleName2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub GetModuleByOffset2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows::core::HRESULT,
    pub AddSyntheticModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, base: u64, size: u32, imagepath: ::windows::core::PCSTR, modulename: ::windows::core::PCSTR, flags: u32) -> ::windows::core::HRESULT,
    pub AddSyntheticModuleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, base: u64, size: u32, imagepath: ::windows::core::PCWSTR, modulename: ::windows::core::PCWSTR, flags: u32) -> ::windows::core::HRESULT,
    pub RemoveSyntheticModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, base: u64) -> ::windows::core::HRESULT,
    pub GetCurrentScopeFrameIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows::core::HRESULT,
    pub SetScopeFrameByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32) -> ::windows::core::HRESULT,
    pub SetScopeFromJitDebugInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, infooffset: u64) -> ::windows::core::HRESULT,
    pub SetScopeFromStoredEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OutputSymbolByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, offset: u64) -> ::windows::core::HRESULT,
    pub GetFunctionEntryByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bufferneeded: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldTypeAndOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, containertypeid: u32, field: ::windows::core::PCSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows::core::HRESULT,
    pub GetFieldTypeAndOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, containertypeid: u32, field: ::windows::core::PCWSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows::core::HRESULT,
    pub AddSyntheticSymbol: unsafe extern "system" fn(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,
    pub AddSyntheticSymbolWide: unsafe extern "system" fn(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,
    pub RemoveSyntheticSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT,
    pub GetSymbolEntriesByOffset: unsafe extern "system" fn(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,
    pub GetSymbolEntriesByName: unsafe extern "system" fn(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,
    pub GetSymbolEntriesByNameWide: unsafe extern "system" fn(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,
    pub GetSymbolEntryByToken: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, modulebase: u64, token: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT,
    pub GetSymbolEntryInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, info: *mut DEBUG_SYMBOL_ENTRY) -> ::windows::core::HRESULT,
    pub GetSymbolEntryString: unsafe extern "system" fn(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,
    pub GetSymbolEntryStringWide: unsafe extern "system" fn(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,
    pub GetSymbolEntryOffsetRegions: unsafe extern "system" fn(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,
    pub GetSymbolEntryBySymbolEntry: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, fromid: *const DEBUG_MODULE_AND_ID, flags: u32, toid: *mut DEBUG_MODULE_AND_ID) -> ::windows::core::HRESULT,
    pub GetSourceEntriesByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows::core::HRESULT,
    pub GetSourceEntriesByLine: unsafe extern "system" fn(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,
    pub GetSourceEntriesByLineWide: unsafe extern "system" fn(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,
    pub GetSourceEntryString: unsafe extern "system" fn(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,
    pub GetSourceEntryStringWide: unsafe extern "system" fn(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,
    pub GetSourceEntryOffsetRegions: unsafe extern "system" fn(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,
    pub GetSourceEntryBySourceEntry: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, fromentry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, toentry: *mut DEBUG_SYMBOL_SOURCE_ENTRY) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub GetScopeEx: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    GetScopeEx: usize,
    #[cfg(feature = "Win32_Foundation")]
    pub SetScopeEx: unsafe extern "system" fn(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,
    #[cfg(not(feature = "Win32_Foundation"))]
    SetScopeEx: usize,
    pub GetNameByInlineContext: unsafe extern "system" fn(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,
    pub GetNameByInlineContextWide: unsafe extern "system" fn(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,
    pub GetLineByInlineContext: unsafe extern "system" fn(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,
    pub GetLineByInlineContextWide: unsafe extern "system" fn(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,
    pub OutputSymbolByInlineContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, offset: u64, inlinecontext: u32) -> ::windows::core::HRESULT,
    pub GetCurrentScopeFrameIndexEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, index: *mut u32) -> ::windows::core::HRESULT,
    pub SetScopeFrameByIndexEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, index: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugSyncOperation(::windows::core::IUnknown);
impl IDebugSyncOperation {
    pub unsafe fn GetTargetThread(&self) -> ::windows::core::Result<IDebugApplicationThread> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTargetThread)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplicationThread>(result__)
    }
    pub unsafe fn Execute(&self) -> ::windows::core::Result<::windows::core::IUnknown> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Execute)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::IUnknown>(result__)
    }
    pub unsafe fn InProgressAbort(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).InProgressAbort)(::windows::core::Vtable::as_raw(self)).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugSyncOperation, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugSyncOperation {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugSyncOperation {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugSyncOperation {}
impl ::core::fmt::Debug for IDebugSyncOperation {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugSyncOperation").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugSyncOperation {
    type Vtable = IDebugSyncOperation_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugSyncOperation {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c1a_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSyncOperation_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetTargetThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppattarget: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Execute: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppunkresult: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub InProgressAbort: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugSystemObjects(::windows::core::IUnknown);
impl IDebugSystemObjects {
    pub unsafe fn GetEventThread(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventThread)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetEventProcess(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventProcess)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentThreadId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThreadId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetCurrentThreadId(&self, id: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetCurrentThreadId)(::windows::core::Vtable::as_raw(self), id).ok()
    }
    pub unsafe fn GetCurrentProcessId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetCurrentProcessId(&self, id: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetCurrentProcessId)(::windows::core::Vtable::as_raw(self), id).ok()
    }
    pub unsafe fn GetNumberThreads(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberThreads)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetTotalNumberThreads(&self, total: *mut u32, largestprocess: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTotalNumberThreads)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(total), ::core::mem::transmute(largestprocess)).ok()
    }
    pub unsafe fn GetThreadIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<*mut u32>, sysids: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetThreadIdsByIndex)(::windows::core::Vtable::as_raw(self), start, count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(sysids.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetThreadIdByProcessor(&self, processor: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThreadIdByProcessor)(::windows::core::Vtable::as_raw(self), processor, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentThreadDataOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThreadDataOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetThreadIdByDataOffset(&self, offset: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThreadIdByDataOffset)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentThreadTeb(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThreadTeb)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetThreadIdByTeb(&self, offset: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThreadIdByTeb)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentThreadSystemId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThreadSystemId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetThreadIdBySystemId(&self, sysid: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThreadIdBySystemId)(::windows::core::Vtable::as_raw(self), sysid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentThreadHandle(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThreadHandle)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetThreadIdByHandle(&self, handle: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThreadIdByHandle)(::windows::core::Vtable::as_raw(self), handle, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberProcesses(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberProcesses)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<*mut u32>, sysids: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetProcessIdsByIndex)(::windows::core::Vtable::as_raw(self), start, count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(sysids.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetCurrentProcessDataOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessDataOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetProcessIdByDataOffset(&self, offset: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessIdByDataOffset)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentProcessPeb(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessPeb)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetProcessIdByPeb(&self, offset: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessIdByPeb)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentProcessSystemId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessSystemId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetProcessIdBySystemId(&self, sysid: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessIdBySystemId)(::windows::core::Vtable::as_raw(self), sysid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentProcessHandle(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessHandle)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetProcessIdByHandle(&self, handle: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessIdByHandle)(::windows::core::Vtable::as_raw(self), handle, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentProcessExecutableName(&self, buffer: ::core::option::Option<&mut [u8]>, exesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetCurrentProcessExecutableName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(exesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugSystemObjects, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugSystemObjects {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugSystemObjects {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugSystemObjects {}
impl ::core::fmt::Debug for IDebugSystemObjects {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugSystemObjects").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugSystemObjects {
    type Vtable = IDebugSystemObjects_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugSystemObjects {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6b86fe2c_2c4f_4f0c_9da2_174311acc327);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSystemObjects_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetEventThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub SetCurrentThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub SetCurrentProcessId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32) -> ::windows::core::HRESULT,
    pub GetNumberThreads: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetTotalNumberThreads: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, total: *mut u32, largestprocess: *mut u32) -> ::windows::core::HRESULT,
    pub GetThreadIdsByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::HRESULT,
    pub GetThreadIdByProcessor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentThreadDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetThreadIdByDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentThreadTeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetThreadIdByTeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentThreadSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows::core::HRESULT,
    pub GetThreadIdBySystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentThreadHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetThreadIdByHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetProcessIdsByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetProcessIdByDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessPeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetProcessIdByPeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows::core::HRESULT,
    pub GetProcessIdBySystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetProcessIdByHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, exesize: *mut u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugSystemObjects2(::windows::core::IUnknown);
impl IDebugSystemObjects2 {
    pub unsafe fn GetEventThread(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventThread)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetEventProcess(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventProcess)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentThreadId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThreadId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetCurrentThreadId(&self, id: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetCurrentThreadId)(::windows::core::Vtable::as_raw(self), id).ok()
    }
    pub unsafe fn GetCurrentProcessId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetCurrentProcessId(&self, id: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetCurrentProcessId)(::windows::core::Vtable::as_raw(self), id).ok()
    }
    pub unsafe fn GetNumberThreads(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberThreads)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetTotalNumberThreads(&self, total: *mut u32, largestprocess: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTotalNumberThreads)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(total), ::core::mem::transmute(largestprocess)).ok()
    }
    pub unsafe fn GetThreadIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<*mut u32>, sysids: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetThreadIdsByIndex)(::windows::core::Vtable::as_raw(self), start, count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(sysids.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetThreadIdByProcessor(&self, processor: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThreadIdByProcessor)(::windows::core::Vtable::as_raw(self), processor, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentThreadDataOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThreadDataOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetThreadIdByDataOffset(&self, offset: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThreadIdByDataOffset)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentThreadTeb(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThreadTeb)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetThreadIdByTeb(&self, offset: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThreadIdByTeb)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentThreadSystemId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThreadSystemId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetThreadIdBySystemId(&self, sysid: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThreadIdBySystemId)(::windows::core::Vtable::as_raw(self), sysid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentThreadHandle(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThreadHandle)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetThreadIdByHandle(&self, handle: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThreadIdByHandle)(::windows::core::Vtable::as_raw(self), handle, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberProcesses(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberProcesses)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<*mut u32>, sysids: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetProcessIdsByIndex)(::windows::core::Vtable::as_raw(self), start, count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(sysids.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetCurrentProcessDataOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessDataOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetProcessIdByDataOffset(&self, offset: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessIdByDataOffset)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentProcessPeb(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessPeb)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetProcessIdByPeb(&self, offset: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessIdByPeb)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentProcessSystemId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessSystemId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetProcessIdBySystemId(&self, sysid: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessIdBySystemId)(::windows::core::Vtable::as_raw(self), sysid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentProcessHandle(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessHandle)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetProcessIdByHandle(&self, handle: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessIdByHandle)(::windows::core::Vtable::as_raw(self), handle, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentProcessExecutableName(&self, buffer: ::core::option::Option<&mut [u8]>, exesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetCurrentProcessExecutableName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(exesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetCurrentProcessUpTime(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessUpTime)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetImplicitThreadDataOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetImplicitThreadDataOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn SetImplicitThreadDataOffset(&self, offset: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetImplicitThreadDataOffset)(::windows::core::Vtable::as_raw(self), offset).ok()
    }
    pub unsafe fn GetImplicitProcessDataOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetImplicitProcessDataOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn SetImplicitProcessDataOffset(&self, offset: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetImplicitProcessDataOffset)(::windows::core::Vtable::as_raw(self), offset).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugSystemObjects2, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugSystemObjects2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugSystemObjects2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugSystemObjects2 {}
impl ::core::fmt::Debug for IDebugSystemObjects2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugSystemObjects2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugSystemObjects2 {
    type Vtable = IDebugSystemObjects2_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugSystemObjects2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0ae9f5ff_1852_4679_b055_494bee6407ee);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSystemObjects2_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetEventThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub SetCurrentThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub SetCurrentProcessId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32) -> ::windows::core::HRESULT,
    pub GetNumberThreads: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetTotalNumberThreads: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, total: *mut u32, largestprocess: *mut u32) -> ::windows::core::HRESULT,
    pub GetThreadIdsByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::HRESULT,
    pub GetThreadIdByProcessor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentThreadDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetThreadIdByDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentThreadTeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetThreadIdByTeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentThreadSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows::core::HRESULT,
    pub GetThreadIdBySystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentThreadHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetThreadIdByHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetProcessIdsByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetProcessIdByDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessPeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetProcessIdByPeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows::core::HRESULT,
    pub GetProcessIdBySystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetProcessIdByHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, exesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessUpTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows::core::HRESULT,
    pub GetImplicitThreadDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub SetImplicitThreadDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows::core::HRESULT,
    pub GetImplicitProcessDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub SetImplicitProcessDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugSystemObjects3(::windows::core::IUnknown);
impl IDebugSystemObjects3 {
    pub unsafe fn GetEventThread(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventThread)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetEventProcess(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventProcess)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentThreadId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThreadId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetCurrentThreadId(&self, id: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetCurrentThreadId)(::windows::core::Vtable::as_raw(self), id).ok()
    }
    pub unsafe fn GetCurrentProcessId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetCurrentProcessId(&self, id: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetCurrentProcessId)(::windows::core::Vtable::as_raw(self), id).ok()
    }
    pub unsafe fn GetNumberThreads(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberThreads)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetTotalNumberThreads(&self, total: *mut u32, largestprocess: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTotalNumberThreads)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(total), ::core::mem::transmute(largestprocess)).ok()
    }
    pub unsafe fn GetThreadIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<*mut u32>, sysids: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetThreadIdsByIndex)(::windows::core::Vtable::as_raw(self), start, count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(sysids.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetThreadIdByProcessor(&self, processor: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThreadIdByProcessor)(::windows::core::Vtable::as_raw(self), processor, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentThreadDataOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThreadDataOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetThreadIdByDataOffset(&self, offset: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThreadIdByDataOffset)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentThreadTeb(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThreadTeb)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetThreadIdByTeb(&self, offset: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThreadIdByTeb)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentThreadSystemId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThreadSystemId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetThreadIdBySystemId(&self, sysid: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThreadIdBySystemId)(::windows::core::Vtable::as_raw(self), sysid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentThreadHandle(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThreadHandle)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetThreadIdByHandle(&self, handle: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThreadIdByHandle)(::windows::core::Vtable::as_raw(self), handle, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberProcesses(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberProcesses)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<*mut u32>, sysids: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetProcessIdsByIndex)(::windows::core::Vtable::as_raw(self), start, count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(sysids.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetCurrentProcessDataOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessDataOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetProcessIdByDataOffset(&self, offset: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessIdByDataOffset)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentProcessPeb(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessPeb)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetProcessIdByPeb(&self, offset: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessIdByPeb)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentProcessSystemId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessSystemId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetProcessIdBySystemId(&self, sysid: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessIdBySystemId)(::windows::core::Vtable::as_raw(self), sysid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentProcessHandle(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessHandle)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetProcessIdByHandle(&self, handle: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessIdByHandle)(::windows::core::Vtable::as_raw(self), handle, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentProcessExecutableName(&self, buffer: ::core::option::Option<&mut [u8]>, exesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetCurrentProcessExecutableName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(exesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetCurrentProcessUpTime(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessUpTime)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetImplicitThreadDataOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetImplicitThreadDataOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn SetImplicitThreadDataOffset(&self, offset: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetImplicitThreadDataOffset)(::windows::core::Vtable::as_raw(self), offset).ok()
    }
    pub unsafe fn GetImplicitProcessDataOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetImplicitProcessDataOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn SetImplicitProcessDataOffset(&self, offset: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetImplicitProcessDataOffset)(::windows::core::Vtable::as_raw(self), offset).ok()
    }
    pub unsafe fn GetEventSystem(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventSystem)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentSystemId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentSystemId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetCurrentSystemId(&self, id: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetCurrentSystemId)(::windows::core::Vtable::as_raw(self), id).ok()
    }
    pub unsafe fn GetNumberSystems(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberSystems)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSystemIdsByIndex(&self, start: u32, ids: &mut [u32]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemIdsByIndex)(::windows::core::Vtable::as_raw(self), start, ids.len() as _, ::core::mem::transmute(ids.as_ptr())).ok()
    }
    pub unsafe fn GetTotalNumberThreadsAndProcesses(&self, totalthreads: *mut u32, totalprocesses: *mut u32, largestprocessthreads: *mut u32, largestsystemthreads: *mut u32, largestsystemprocesses: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTotalNumberThreadsAndProcesses)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(totalthreads), ::core::mem::transmute(totalprocesses), ::core::mem::transmute(largestprocessthreads), ::core::mem::transmute(largestsystemthreads), ::core::mem::transmute(largestsystemprocesses)).ok()
    }
    pub unsafe fn GetCurrentSystemServer(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentSystemServer)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetSystemByServer(&self, server: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSystemByServer)(::windows::core::Vtable::as_raw(self), server, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentSystemServerName(&self, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetCurrentSystemServerName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugSystemObjects3, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugSystemObjects3 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugSystemObjects3 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugSystemObjects3 {}
impl ::core::fmt::Debug for IDebugSystemObjects3 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugSystemObjects3").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugSystemObjects3 {
    type Vtable = IDebugSystemObjects3_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugSystemObjects3 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe9676e2f_e286_4ea3_b0f9_dfe5d9fc330e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSystemObjects3_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetEventThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub SetCurrentThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub SetCurrentProcessId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32) -> ::windows::core::HRESULT,
    pub GetNumberThreads: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetTotalNumberThreads: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, total: *mut u32, largestprocess: *mut u32) -> ::windows::core::HRESULT,
    pub GetThreadIdsByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::HRESULT,
    pub GetThreadIdByProcessor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentThreadDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetThreadIdByDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentThreadTeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetThreadIdByTeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentThreadSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows::core::HRESULT,
    pub GetThreadIdBySystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentThreadHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetThreadIdByHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetProcessIdsByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetProcessIdByDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessPeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetProcessIdByPeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows::core::HRESULT,
    pub GetProcessIdBySystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetProcessIdByHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, exesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessUpTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows::core::HRESULT,
    pub GetImplicitThreadDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub SetImplicitThreadDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows::core::HRESULT,
    pub GetImplicitProcessDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub SetImplicitProcessDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows::core::HRESULT,
    pub GetEventSystem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub SetCurrentSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32) -> ::windows::core::HRESULT,
    pub GetNumberSystems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetSystemIdsByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32) -> ::windows::core::HRESULT,
    pub GetTotalNumberThreadsAndProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, totalthreads: *mut u32, totalprocesses: *mut u32, largestprocessthreads: *mut u32, largestsystemthreads: *mut u32, largestsystemprocesses: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentSystemServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: *mut u64) -> ::windows::core::HRESULT,
    pub GetSystemByServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentSystemServerName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugSystemObjects4(::windows::core::IUnknown);
impl IDebugSystemObjects4 {
    pub unsafe fn GetEventThread(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventThread)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetEventProcess(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventProcess)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentThreadId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThreadId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetCurrentThreadId(&self, id: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetCurrentThreadId)(::windows::core::Vtable::as_raw(self), id).ok()
    }
    pub unsafe fn GetCurrentProcessId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetCurrentProcessId(&self, id: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetCurrentProcessId)(::windows::core::Vtable::as_raw(self), id).ok()
    }
    pub unsafe fn GetNumberThreads(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberThreads)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetTotalNumberThreads(&self, total: *mut u32, largestprocess: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTotalNumberThreads)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(total), ::core::mem::transmute(largestprocess)).ok()
    }
    pub unsafe fn GetThreadIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<*mut u32>, sysids: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetThreadIdsByIndex)(::windows::core::Vtable::as_raw(self), start, count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(sysids.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetThreadIdByProcessor(&self, processor: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThreadIdByProcessor)(::windows::core::Vtable::as_raw(self), processor, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentThreadDataOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThreadDataOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetThreadIdByDataOffset(&self, offset: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThreadIdByDataOffset)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentThreadTeb(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThreadTeb)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetThreadIdByTeb(&self, offset: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThreadIdByTeb)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentThreadSystemId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThreadSystemId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetThreadIdBySystemId(&self, sysid: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThreadIdBySystemId)(::windows::core::Vtable::as_raw(self), sysid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentThreadHandle(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentThreadHandle)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetThreadIdByHandle(&self, handle: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetThreadIdByHandle)(::windows::core::Vtable::as_raw(self), handle, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberProcesses(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberProcesses)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<*mut u32>, sysids: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetProcessIdsByIndex)(::windows::core::Vtable::as_raw(self), start, count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(sysids.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetCurrentProcessDataOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessDataOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetProcessIdByDataOffset(&self, offset: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessIdByDataOffset)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentProcessPeb(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessPeb)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetProcessIdByPeb(&self, offset: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessIdByPeb)(::windows::core::Vtable::as_raw(self), offset, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentProcessSystemId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessSystemId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetProcessIdBySystemId(&self, sysid: u32) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessIdBySystemId)(::windows::core::Vtable::as_raw(self), sysid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentProcessHandle(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessHandle)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetProcessIdByHandle(&self, handle: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetProcessIdByHandle)(::windows::core::Vtable::as_raw(self), handle, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentProcessExecutableName(&self, buffer: ::core::option::Option<&mut [u8]>, exesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetCurrentProcessExecutableName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(exesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetCurrentProcessUpTime(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentProcessUpTime)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetImplicitThreadDataOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetImplicitThreadDataOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn SetImplicitThreadDataOffset(&self, offset: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetImplicitThreadDataOffset)(::windows::core::Vtable::as_raw(self), offset).ok()
    }
    pub unsafe fn GetImplicitProcessDataOffset(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetImplicitProcessDataOffset)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn SetImplicitProcessDataOffset(&self, offset: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetImplicitProcessDataOffset)(::windows::core::Vtable::as_raw(self), offset).ok()
    }
    pub unsafe fn GetEventSystem(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventSystem)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentSystemId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentSystemId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn SetCurrentSystemId(&self, id: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetCurrentSystemId)(::windows::core::Vtable::as_raw(self), id).ok()
    }
    pub unsafe fn GetNumberSystems(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberSystems)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSystemIdsByIndex(&self, start: u32, ids: &mut [u32]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSystemIdsByIndex)(::windows::core::Vtable::as_raw(self), start, ids.len() as _, ::core::mem::transmute(ids.as_ptr())).ok()
    }
    pub unsafe fn GetTotalNumberThreadsAndProcesses(&self, totalthreads: *mut u32, totalprocesses: *mut u32, largestprocessthreads: *mut u32, largestsystemthreads: *mut u32, largestsystemprocesses: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTotalNumberThreadsAndProcesses)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(totalthreads), ::core::mem::transmute(totalprocesses), ::core::mem::transmute(largestprocessthreads), ::core::mem::transmute(largestsystemthreads), ::core::mem::transmute(largestsystemprocesses)).ok()
    }
    pub unsafe fn GetCurrentSystemServer(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentSystemServer)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetSystemByServer(&self, server: u64) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSystemByServer)(::windows::core::Vtable::as_raw(self), server, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCurrentSystemServerName(&self, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetCurrentSystemServerName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetCurrentProcessExecutableNameWide(&self, buffer: ::core::option::Option<&mut [u16]>, exesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetCurrentProcessExecutableNameWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(exesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetCurrentSystemServerNameWide(&self, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetCurrentSystemServerNameWide)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugSystemObjects4, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugSystemObjects4 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugSystemObjects4 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugSystemObjects4 {}
impl ::core::fmt::Debug for IDebugSystemObjects4 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugSystemObjects4").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugSystemObjects4 {
    type Vtable = IDebugSystemObjects4_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugSystemObjects4 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x489468e6_7d0f_4af5_87ab_25207454d553);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSystemObjects4_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetEventThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetEventProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub SetCurrentThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub SetCurrentProcessId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32) -> ::windows::core::HRESULT,
    pub GetNumberThreads: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetTotalNumberThreads: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, total: *mut u32, largestprocess: *mut u32) -> ::windows::core::HRESULT,
    pub GetThreadIdsByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::HRESULT,
    pub GetThreadIdByProcessor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentThreadDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetThreadIdByDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentThreadTeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetThreadIdByTeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentThreadSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows::core::HRESULT,
    pub GetThreadIdBySystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentThreadHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetThreadIdByHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetProcessIdsByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetProcessIdByDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessPeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub GetProcessIdByPeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows::core::HRESULT,
    pub GetProcessIdBySystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows::core::HRESULT,
    pub GetProcessIdByHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, exesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessUpTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows::core::HRESULT,
    pub GetImplicitThreadDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub SetImplicitThreadDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows::core::HRESULT,
    pub GetImplicitProcessDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows::core::HRESULT,
    pub SetImplicitProcessDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows::core::HRESULT,
    pub GetEventSystem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows::core::HRESULT,
    pub SetCurrentSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32) -> ::windows::core::HRESULT,
    pub GetNumberSystems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows::core::HRESULT,
    pub GetSystemIdsByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32) -> ::windows::core::HRESULT,
    pub GetTotalNumberThreadsAndProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, totalthreads: *mut u32, totalprocesses: *mut u32, largestprocessthreads: *mut u32, largestsystemthreads: *mut u32, largestsystemprocesses: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentSystemServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: *mut u64) -> ::windows::core::HRESULT,
    pub GetSystemByServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, id: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentSystemServerName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentProcessExecutableNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, exesize: *mut u32) -> ::windows::core::HRESULT,
    pub GetCurrentSystemServerNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows::core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugThreadCall32(::windows::core::IUnknown);
impl IDebugThreadCall32 {
    pub unsafe fn ThreadCallHandler(&self, dwparam1: u32, dwparam2: u32, dwparam3: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ThreadCallHandler)(::windows::core::Vtable::as_raw(self), dwparam1, dwparam2, dwparam3).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugThreadCall32, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugThreadCall32 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugThreadCall32 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugThreadCall32 {}
impl ::core::fmt::Debug for IDebugThreadCall32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugThreadCall32").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugThreadCall32 {
    type Vtable = IDebugThreadCall32_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugThreadCall32 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c36_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugThreadCall32_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub ThreadCallHandler: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwparam1: u32, dwparam2: u32, dwparam3: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDebugThreadCall64(::windows::core::IUnknown);
impl IDebugThreadCall64 {
    pub unsafe fn ThreadCallHandler(&self, dwparam1: u64, dwparam2: u64, dwparam3: u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ThreadCallHandler)(::windows::core::Vtable::as_raw(self), dwparam1, dwparam2, dwparam3).ok()
    }
}
::windows::core::interface_hierarchy!(IDebugThreadCall64, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDebugThreadCall64 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDebugThreadCall64 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDebugThreadCall64 {}
impl ::core::fmt::Debug for IDebugThreadCall64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDebugThreadCall64").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDebugThreadCall64 {
    type Vtable = IDebugThreadCall64_Vtbl;
}
unsafe impl ::windows::core::Interface for IDebugThreadCall64 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xcb3fa335_e979_42fd_9fcf_a7546a0f3905);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugThreadCall64_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub ThreadCallHandler: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwparam1: u64, dwparam2: u64, dwparam3: u64) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDynamicConceptProviderConcept(::windows::core::IUnknown);
impl IDynamicConceptProviderConcept {
    pub unsafe fn GetConcept<'a, P0>(&self, contextobject: P0, conceptid: *const ::windows::core::GUID, conceptinterface: ::core::option::Option<*mut ::core::option::Option<::windows::core::IUnknown>>, conceptmetadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>, hasconcept: *mut bool) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).GetConcept)(::windows::core::Vtable::as_raw(self), contextobject.into().abi(), ::core::mem::transmute(conceptid), ::core::mem::transmute(conceptinterface.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(conceptmetadata.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(hasconcept)).ok()
    }
    pub unsafe fn SetConcept<'a, P0, P1, P2>(&self, contextobject: P0, conceptid: *const ::windows::core::GUID, conceptinterface: P1, conceptmetadata: P2) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
        P2: ::std::convert::Into<::windows::core::InParam<'a, IKeyStore>>,
    {
        (::windows::core::Vtable::vtable(self).SetConcept)(::windows::core::Vtable::as_raw(self), contextobject.into().abi(), ::core::mem::transmute(conceptid), conceptinterface.into().abi(), conceptmetadata.into().abi()).ok()
    }
    pub unsafe fn NotifyParent<'a, P0>(&self, parentmodel: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).NotifyParent)(::windows::core::Vtable::as_raw(self), parentmodel.into().abi()).ok()
    }
    pub unsafe fn NotifyParentChange<'a, P0>(&self, parentmodel: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).NotifyParentChange)(::windows::core::Vtable::as_raw(self), parentmodel.into().abi()).ok()
    }
    pub unsafe fn NotifyDestruct(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).NotifyDestruct)(::windows::core::Vtable::as_raw(self)).ok()
    }
}
::windows::core::interface_hierarchy!(IDynamicConceptProviderConcept, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDynamicConceptProviderConcept {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDynamicConceptProviderConcept {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDynamicConceptProviderConcept {}
impl ::core::fmt::Debug for IDynamicConceptProviderConcept {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDynamicConceptProviderConcept").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDynamicConceptProviderConcept {
    type Vtable = IDynamicConceptProviderConcept_Vtbl;
}
unsafe impl ::windows::core::Interface for IDynamicConceptProviderConcept {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x95a7f7dd_602e_483f_9d06_a15c0ee13174);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDynamicConceptProviderConcept_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetConcept: unsafe extern "system" fn(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,
    pub SetConcept: unsafe extern "system" fn(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,
    pub NotifyParent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, parentmodel: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub NotifyParentChange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, parentmodel: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub NotifyDestruct: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IDynamicKeyProviderConcept(::windows::core::IUnknown);
impl IDynamicKeyProviderConcept {
    pub unsafe fn GetKey<'a, P0, P1>(&self, contextobject: P0, key: P1, keyvalue: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>, haskey: ::core::option::Option<*mut bool>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetKey)(::windows::core::Vtable::as_raw(self), contextobject.into().abi(), key.into(), ::core::mem::transmute(keyvalue.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(haskey.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetKey<'a, P0, P1, P2, P3>(&self, contextobject: P0, key: P1, keyvalue: P2, metadata: P3) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P3: ::std::convert::Into<::windows::core::InParam<'a, IKeyStore>>,
    {
        (::windows::core::Vtable::vtable(self).SetKey)(::windows::core::Vtable::as_raw(self), contextobject.into().abi(), key.into(), keyvalue.into().abi(), metadata.into().abi()).ok()
    }
    pub unsafe fn EnumerateKeys<'a, P0>(&self, contextobject: P0) -> ::windows::core::Result<IKeyEnumerator>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumerateKeys)(::windows::core::Vtable::as_raw(self), contextobject.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IKeyEnumerator>(result__)
    }
}
::windows::core::interface_hierarchy!(IDynamicKeyProviderConcept, ::windows::core::IUnknown);
impl ::core::clone::Clone for IDynamicKeyProviderConcept {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IDynamicKeyProviderConcept {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IDynamicKeyProviderConcept {}
impl ::core::fmt::Debug for IDynamicKeyProviderConcept {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IDynamicKeyProviderConcept").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IDynamicKeyProviderConcept {
    type Vtable = IDynamicKeyProviderConcept_Vtbl;
}
unsafe impl ::windows::core::Interface for IDynamicKeyProviderConcept {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe7983fa1_80a7_498c_988f_518ddc5d4025);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDynamicKeyProviderConcept_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetKey: unsafe extern "system" fn(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,
    pub SetKey: unsafe extern "system" fn(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,
    pub EnumerateKeys: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, ppenumerator: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IEnumDebugApplicationNodes(::windows::core::IUnknown);
impl IEnumDebugApplicationNodes {
    pub unsafe fn Next(&self, celt: u32, pprddp: *mut ::core::option::Option<IDebugApplicationNode>, pceltfetched: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Next)(::windows::core::Vtable::as_raw(self), celt, ::core::mem::transmute(pprddp), ::core::mem::transmute(pceltfetched)).ok()
    }
    pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Skip)(::windows::core::Vtable::as_raw(self), celt).ok()
    }
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Reset)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn Clone(&self) -> ::windows::core::Result<IEnumDebugApplicationNodes> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Clone)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugApplicationNodes>(result__)
    }
}
::windows::core::interface_hierarchy!(IEnumDebugApplicationNodes, ::windows::core::IUnknown);
impl ::core::clone::Clone for IEnumDebugApplicationNodes {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IEnumDebugApplicationNodes {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IEnumDebugApplicationNodes {}
impl ::core::fmt::Debug for IEnumDebugApplicationNodes {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IEnumDebugApplicationNodes").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IEnumDebugApplicationNodes {
    type Vtable = IEnumDebugApplicationNodes_Vtbl;
}
unsafe impl ::windows::core::Interface for IEnumDebugApplicationNodes {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c3a_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumDebugApplicationNodes_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Next: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32, pprddp: *mut *mut ::core::ffi::c_void, pceltfetched: *mut u32) -> ::windows::core::HRESULT,
    pub Skip: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT,
    pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Clone: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pperddp: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IEnumDebugCodeContexts(::windows::core::IUnknown);
impl IEnumDebugCodeContexts {
    pub unsafe fn Next(&self, celt: u32, pscc: *mut ::core::option::Option<IDebugCodeContext>, pceltfetched: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Next)(::windows::core::Vtable::as_raw(self), celt, ::core::mem::transmute(pscc), ::core::mem::transmute(pceltfetched)).ok()
    }
    pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Skip)(::windows::core::Vtable::as_raw(self), celt).ok()
    }
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Reset)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn Clone(&self) -> ::windows::core::Result<IEnumDebugCodeContexts> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Clone)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugCodeContexts>(result__)
    }
}
::windows::core::interface_hierarchy!(IEnumDebugCodeContexts, ::windows::core::IUnknown);
impl ::core::clone::Clone for IEnumDebugCodeContexts {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IEnumDebugCodeContexts {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IEnumDebugCodeContexts {}
impl ::core::fmt::Debug for IEnumDebugCodeContexts {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IEnumDebugCodeContexts").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IEnumDebugCodeContexts {
    type Vtable = IEnumDebugCodeContexts_Vtbl;
}
unsafe impl ::windows::core::Interface for IEnumDebugCodeContexts {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c1d_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumDebugCodeContexts_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Next: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32, pscc: *mut *mut ::core::ffi::c_void, pceltfetched: *mut u32) -> ::windows::core::HRESULT,
    pub Skip: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT,
    pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Clone: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppescc: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IEnumDebugExpressionContexts(::windows::core::IUnknown);
impl IEnumDebugExpressionContexts {
    pub unsafe fn Next(&self, celt: u32, ppdec: *mut ::core::option::Option<IDebugExpressionContext>, pceltfetched: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Next)(::windows::core::Vtable::as_raw(self), celt, ::core::mem::transmute(ppdec), ::core::mem::transmute(pceltfetched)).ok()
    }
    pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Skip)(::windows::core::Vtable::as_raw(self), celt).ok()
    }
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Reset)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn Clone(&self) -> ::windows::core::Result<IEnumDebugExpressionContexts> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Clone)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugExpressionContexts>(result__)
    }
}
::windows::core::interface_hierarchy!(IEnumDebugExpressionContexts, ::windows::core::IUnknown);
impl ::core::clone::Clone for IEnumDebugExpressionContexts {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IEnumDebugExpressionContexts {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IEnumDebugExpressionContexts {}
impl ::core::fmt::Debug for IEnumDebugExpressionContexts {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IEnumDebugExpressionContexts").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IEnumDebugExpressionContexts {
    type Vtable = IEnumDebugExpressionContexts_Vtbl;
}
unsafe impl ::windows::core::Interface for IEnumDebugExpressionContexts {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c40_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumDebugExpressionContexts_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Next: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32, ppdec: *mut *mut ::core::ffi::c_void, pceltfetched: *mut u32) -> ::windows::core::HRESULT,
    pub Skip: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT,
    pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Clone: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppedec: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IEnumDebugExtendedPropertyInfo(::windows::core::IUnknown);
impl IEnumDebugExtendedPropertyInfo {
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole"))]
    pub unsafe fn Next(&self, rgextendedpropertyinfo: &mut [ExtendedDebugPropertyInfo], pceltfetched: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Next)(::windows::core::Vtable::as_raw(self), rgextendedpropertyinfo.len() as _, ::core::mem::transmute(rgextendedpropertyinfo.as_ptr()), ::core::mem::transmute(pceltfetched)).ok()
    }
    pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Skip)(::windows::core::Vtable::as_raw(self), celt).ok()
    }
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Reset)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn Clone(&self) -> ::windows::core::Result<IEnumDebugExtendedPropertyInfo> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Clone)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugExtendedPropertyInfo>(result__)
    }
    pub unsafe fn GetCount(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCount)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
}
::windows::core::interface_hierarchy!(IEnumDebugExtendedPropertyInfo, ::windows::core::IUnknown);
impl ::core::clone::Clone for IEnumDebugExtendedPropertyInfo {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IEnumDebugExtendedPropertyInfo {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IEnumDebugExtendedPropertyInfo {}
impl ::core::fmt::Debug for IEnumDebugExtendedPropertyInfo {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IEnumDebugExtendedPropertyInfo").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IEnumDebugExtendedPropertyInfo {
    type Vtable = IEnumDebugExtendedPropertyInfo_Vtbl;
}
unsafe impl ::windows::core::Interface for IEnumDebugExtendedPropertyInfo {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c53_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumDebugExtendedPropertyInfo_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole"))]
    pub Next: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32, rgextendedpropertyinfo: *mut ::core::mem::ManuallyDrop<ExtendedDebugPropertyInfo>, pceltfetched: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole")))]
    Next: usize,
    pub Skip: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT,
    pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Clone: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pedpe: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pcelt: *mut u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IEnumDebugPropertyInfo(::windows::core::IUnknown);
impl IEnumDebugPropertyInfo {
    pub unsafe fn Next(&self, pi: &mut [DebugPropertyInfo], pceltsfetched: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Next)(::windows::core::Vtable::as_raw(self), pi.len() as _, ::core::mem::transmute(pi.as_ptr()), ::core::mem::transmute(pceltsfetched)).ok()
    }
    pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Skip)(::windows::core::Vtable::as_raw(self), celt).ok()
    }
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Reset)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn Clone(&self) -> ::windows::core::Result<IEnumDebugPropertyInfo> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Clone)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugPropertyInfo>(result__)
    }
    pub unsafe fn GetCount(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCount)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
}
::windows::core::interface_hierarchy!(IEnumDebugPropertyInfo, ::windows::core::IUnknown);
impl ::core::clone::Clone for IEnumDebugPropertyInfo {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IEnumDebugPropertyInfo {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IEnumDebugPropertyInfo {}
impl ::core::fmt::Debug for IEnumDebugPropertyInfo {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IEnumDebugPropertyInfo").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IEnumDebugPropertyInfo {
    type Vtable = IEnumDebugPropertyInfo_Vtbl;
}
unsafe impl ::windows::core::Interface for IEnumDebugPropertyInfo {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c51_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumDebugPropertyInfo_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Next: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32, pi: *mut ::core::mem::ManuallyDrop<DebugPropertyInfo>, pceltsfetched: *mut u32) -> ::windows::core::HRESULT,
    pub Skip: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT,
    pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Clone: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppepi: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pcelt: *mut u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IEnumDebugStackFrames(::windows::core::IUnknown);
impl IEnumDebugStackFrames {
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn Next(&self, celt: u32, prgdsfd: *mut DebugStackFrameDescriptor, pceltfetched: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Next)(::windows::core::Vtable::as_raw(self), celt, ::core::mem::transmute(prgdsfd), ::core::mem::transmute(pceltfetched)).ok()
    }
    pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Skip)(::windows::core::Vtable::as_raw(self), celt).ok()
    }
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Reset)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn Clone(&self) -> ::windows::core::Result<IEnumDebugStackFrames> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Clone)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugStackFrames>(result__)
    }
}
::windows::core::interface_hierarchy!(IEnumDebugStackFrames, ::windows::core::IUnknown);
impl ::core::clone::Clone for IEnumDebugStackFrames {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IEnumDebugStackFrames {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IEnumDebugStackFrames {}
impl ::core::fmt::Debug for IEnumDebugStackFrames {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IEnumDebugStackFrames").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IEnumDebugStackFrames {
    type Vtable = IEnumDebugStackFrames_Vtbl;
}
unsafe impl ::windows::core::Interface for IEnumDebugStackFrames {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c1e_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumDebugStackFrames_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    #[cfg(feature = "Win32_Foundation")]
    pub Next: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32, prgdsfd: *mut ::core::mem::ManuallyDrop<DebugStackFrameDescriptor>, pceltfetched: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    Next: usize,
    pub Skip: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT,
    pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Clone: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppedsf: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IEnumDebugStackFrames64(::windows::core::IUnknown);
impl IEnumDebugStackFrames64 {
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn Next(&self, celt: u32, prgdsfd: *mut DebugStackFrameDescriptor, pceltfetched: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.Next)(::windows::core::Vtable::as_raw(self), celt, ::core::mem::transmute(prgdsfd), ::core::mem::transmute(pceltfetched)).ok()
    }
    pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.Skip)(::windows::core::Vtable::as_raw(self), celt).ok()
    }
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.Reset)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn Clone(&self) -> ::windows::core::Result<IEnumDebugStackFrames> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.Clone)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugStackFrames>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn Next64(&self, celt: u32, prgdsfd: *mut DebugStackFrameDescriptor64, pceltfetched: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Next64)(::windows::core::Vtable::as_raw(self), celt, ::core::mem::transmute(prgdsfd), ::core::mem::transmute(pceltfetched)).ok()
    }
}
::windows::core::interface_hierarchy!(IEnumDebugStackFrames64, ::windows::core::IUnknown, IEnumDebugStackFrames);
impl ::core::clone::Clone for IEnumDebugStackFrames64 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IEnumDebugStackFrames64 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IEnumDebugStackFrames64 {}
impl ::core::fmt::Debug for IEnumDebugStackFrames64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IEnumDebugStackFrames64").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IEnumDebugStackFrames64 {
    type Vtable = IEnumDebugStackFrames64_Vtbl;
}
unsafe impl ::windows::core::Interface for IEnumDebugStackFrames64 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0dc38853_c1b0_4176_a984_b298361027af);
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumDebugStackFrames64_Vtbl {
    pub base__: IEnumDebugStackFrames_Vtbl,
    #[cfg(feature = "Win32_Foundation")]
    pub Next64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32, prgdsfd: *mut ::core::mem::ManuallyDrop<DebugStackFrameDescriptor64>, pceltfetched: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    Next64: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IEnumJsStackFrames(::windows::core::IUnknown);
impl IEnumJsStackFrames {
    pub unsafe fn Next(&self, pframes: &mut [JS_NATIVE_FRAME], pcfetched: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Next)(::windows::core::Vtable::as_raw(self), pframes.len() as _, ::core::mem::transmute(pframes.as_ptr()), ::core::mem::transmute(pcfetched)).ok()
    }
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Reset)(::windows::core::Vtable::as_raw(self)).ok()
    }
}
::windows::core::interface_hierarchy!(IEnumJsStackFrames, ::windows::core::IUnknown);
impl ::core::clone::Clone for IEnumJsStackFrames {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IEnumJsStackFrames {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IEnumJsStackFrames {}
impl ::core::fmt::Debug for IEnumJsStackFrames {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IEnumJsStackFrames").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IEnumJsStackFrames {
    type Vtable = IEnumJsStackFrames_Vtbl;
}
unsafe impl ::windows::core::Interface for IEnumJsStackFrames {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5e7da34b_fb51_4791_abe7_cb5bdf419755);
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumJsStackFrames_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Next: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, cframecount: u32, pframes: *mut JS_NATIVE_FRAME, pcfetched: *mut u32) -> ::windows::core::HRESULT,
    pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IEnumRemoteDebugApplicationThreads(::windows::core::IUnknown);
impl IEnumRemoteDebugApplicationThreads {
    pub unsafe fn Next(&self, celt: u32, pprdat: *mut ::core::option::Option<IRemoteDebugApplicationThread>, pceltfetched: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Next)(::windows::core::Vtable::as_raw(self), celt, ::core::mem::transmute(pprdat), ::core::mem::transmute(pceltfetched)).ok()
    }
    pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Skip)(::windows::core::Vtable::as_raw(self), celt).ok()
    }
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Reset)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn Clone(&self) -> ::windows::core::Result<IEnumRemoteDebugApplicationThreads> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Clone)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumRemoteDebugApplicationThreads>(result__)
    }
}
::windows::core::interface_hierarchy!(IEnumRemoteDebugApplicationThreads, ::windows::core::IUnknown);
impl ::core::clone::Clone for IEnumRemoteDebugApplicationThreads {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IEnumRemoteDebugApplicationThreads {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IEnumRemoteDebugApplicationThreads {}
impl ::core::fmt::Debug for IEnumRemoteDebugApplicationThreads {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IEnumRemoteDebugApplicationThreads").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IEnumRemoteDebugApplicationThreads {
    type Vtable = IEnumRemoteDebugApplicationThreads_Vtbl;
}
unsafe impl ::windows::core::Interface for IEnumRemoteDebugApplicationThreads {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c3c_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumRemoteDebugApplicationThreads_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Next: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32, pprdat: *mut *mut ::core::ffi::c_void, pceltfetched: *mut u32) -> ::windows::core::HRESULT,
    pub Skip: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT,
    pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Clone: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pperdat: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IEnumRemoteDebugApplications(::windows::core::IUnknown);
impl IEnumRemoteDebugApplications {
    pub unsafe fn Next(&self, celt: u32, ppda: *mut ::core::option::Option<IRemoteDebugApplication>, pceltfetched: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Next)(::windows::core::Vtable::as_raw(self), celt, ::core::mem::transmute(ppda), ::core::mem::transmute(pceltfetched)).ok()
    }
    pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Skip)(::windows::core::Vtable::as_raw(self), celt).ok()
    }
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Reset)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn Clone(&self) -> ::windows::core::Result<IEnumRemoteDebugApplications> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Clone)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumRemoteDebugApplications>(result__)
    }
}
::windows::core::interface_hierarchy!(IEnumRemoteDebugApplications, ::windows::core::IUnknown);
impl ::core::clone::Clone for IEnumRemoteDebugApplications {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IEnumRemoteDebugApplications {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IEnumRemoteDebugApplications {}
impl ::core::fmt::Debug for IEnumRemoteDebugApplications {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IEnumRemoteDebugApplications").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IEnumRemoteDebugApplications {
    type Vtable = IEnumRemoteDebugApplications_Vtbl;
}
unsafe impl ::windows::core::Interface for IEnumRemoteDebugApplications {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c3b_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IEnumRemoteDebugApplications_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Next: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32, ppda: *mut *mut ::core::ffi::c_void, pceltfetched: *mut u32) -> ::windows::core::HRESULT,
    pub Skip: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT,
    pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Clone: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppessd: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IEquatableConcept(::windows::core::IUnknown);
impl IEquatableConcept {
    pub unsafe fn AreObjectsEqual<'a, P0, P1>(&self, contextobject: P0, otherobject: P1) -> ::windows::core::Result<bool>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AreObjectsEqual)(::windows::core::Vtable::as_raw(self), contextobject.into().abi(), otherobject.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
}
::windows::core::interface_hierarchy!(IEquatableConcept, ::windows::core::IUnknown);
impl ::core::clone::Clone for IEquatableConcept {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IEquatableConcept {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IEquatableConcept {}
impl ::core::fmt::Debug for IEquatableConcept {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IEquatableConcept").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IEquatableConcept {
    type Vtable = IEquatableConcept_Vtbl;
}
unsafe impl ::windows::core::Interface for IEquatableConcept {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc52d5d3d_609d_4d5d_8a82_46b0acdec4f4);
}
#[repr(C)]
#[doc(hidden)]
pub struct IEquatableConcept_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub AreObjectsEqual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, otherobject: *mut ::core::ffi::c_void, isequal: *mut bool) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IHostDataModelAccess(::windows::core::IUnknown);
impl IHostDataModelAccess {
    pub unsafe fn GetDataModel(&self, manager: *mut ::core::option::Option<IDataModelManager>, host: *mut ::core::option::Option<IDebugHost>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDataModel)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(manager), ::core::mem::transmute(host)).ok()
    }
}
::windows::core::interface_hierarchy!(IHostDataModelAccess, ::windows::core::IUnknown);
impl ::core::clone::Clone for IHostDataModelAccess {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IHostDataModelAccess {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IHostDataModelAccess {}
impl ::core::fmt::Debug for IHostDataModelAccess {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IHostDataModelAccess").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IHostDataModelAccess {
    type Vtable = IHostDataModelAccess_Vtbl;
}
unsafe impl ::windows::core::Interface for IHostDataModelAccess {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf2bce54e_4835_4f8a_836e_7981e29904d1);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHostDataModelAccess_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetDataModel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, manager: *mut *mut ::core::ffi::c_void, host: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IIndexableConcept(::windows::core::IUnknown);
impl IIndexableConcept {
    pub unsafe fn GetDimensionality<'a, P0>(&self, contextobject: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDimensionality)(::windows::core::Vtable::as_raw(self), contextobject.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetAt<'a, P0>(&self, contextobject: P0, indexers: &[::core::option::Option<IModelObject>], object: *mut ::core::option::Option<IModelObject>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).GetAt)(::windows::core::Vtable::as_raw(self), contextobject.into().abi(), indexers.len() as _, ::core::mem::transmute(indexers.as_ptr()), ::core::mem::transmute(object), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetAt<'a, P0, P1>(&self, contextobject: P0, indexers: &[::core::option::Option<IModelObject>], value: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).SetAt)(::windows::core::Vtable::as_raw(self), contextobject.into().abi(), indexers.len() as _, ::core::mem::transmute(indexers.as_ptr()), value.into().abi()).ok()
    }
}
::windows::core::interface_hierarchy!(IIndexableConcept, ::windows::core::IUnknown);
impl ::core::clone::Clone for IIndexableConcept {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IIndexableConcept {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IIndexableConcept {}
impl ::core::fmt::Debug for IIndexableConcept {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IIndexableConcept").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IIndexableConcept {
    type Vtable = IIndexableConcept_Vtbl;
}
unsafe impl ::windows::core::Interface for IIndexableConcept {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd1fad99f_3f53_4457_850c_8051df2d3fb5);
}
#[repr(C)]
#[doc(hidden)]
pub struct IIndexableConcept_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetDimensionality: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, dimensionality: *mut u64) -> ::windows::core::HRESULT,
    pub GetAt: unsafe extern "system" fn(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,
    pub SetAt: unsafe extern "system" fn(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,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IIterableConcept(::windows::core::IUnknown);
impl IIterableConcept {
    pub unsafe fn GetDefaultIndexDimensionality<'a, P0>(&self, contextobject: P0) -> ::windows::core::Result<u64>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDefaultIndexDimensionality)(::windows::core::Vtable::as_raw(self), contextobject.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetIterator<'a, P0>(&self, contextobject: P0) -> ::windows::core::Result<IModelIterator>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetIterator)(::windows::core::Vtable::as_raw(self), contextobject.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelIterator>(result__)
    }
}
::windows::core::interface_hierarchy!(IIterableConcept, ::windows::core::IUnknown);
impl ::core::clone::Clone for IIterableConcept {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IIterableConcept {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IIterableConcept {}
impl ::core::fmt::Debug for IIterableConcept {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IIterableConcept").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IIterableConcept {
    type Vtable = IIterableConcept_Vtbl;
}
unsafe impl ::windows::core::Interface for IIterableConcept {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf5d49d0c_0b02_4301_9c9b_b3a6037628f3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IIterableConcept_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetDefaultIndexDimensionality: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, dimensionality: *mut u64) -> ::windows::core::HRESULT,
    pub GetIterator: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, iterator: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IJsDebug(::windows::core::IUnknown);
impl IJsDebug {
    pub unsafe fn OpenVirtualProcess<'a, P0>(&self, processid: u32, runtimejsbaseaddress: u64, pdatatarget: P0) -> ::windows::core::Result<IJsDebugProcess>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IJsDebugDataTarget>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).OpenVirtualProcess)(::windows::core::Vtable::as_raw(self), processid, runtimejsbaseaddress, pdatatarget.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IJsDebugProcess>(result__)
    }
}
::windows::core::interface_hierarchy!(IJsDebug, ::windows::core::IUnknown);
impl ::core::clone::Clone for IJsDebug {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IJsDebug {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IJsDebug {}
impl ::core::fmt::Debug for IJsDebug {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IJsDebug").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IJsDebug {
    type Vtable = IJsDebug_Vtbl;
}
unsafe impl ::windows::core::Interface for IJsDebug {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbe0e89da_2ac5_4c04_ac5e_59956aae3613);
}
#[repr(C)]
#[doc(hidden)]
pub struct IJsDebug_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub OpenVirtualProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processid: u32, runtimejsbaseaddress: u64, pdatatarget: *mut ::core::ffi::c_void, ppprocess: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IJsDebugBreakPoint(::windows::core::IUnknown);
impl IJsDebugBreakPoint {
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn IsEnabled(&self) -> ::windows::core::Result<super::super::super::Foundation::BOOL> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).IsEnabled)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::super::Foundation::BOOL>(result__)
    }
    pub unsafe fn Enable(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Enable)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn Disable(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Disable)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn Delete(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Delete)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetDocumentPosition(&self, pdocumentid: *mut u64, pcharacteroffset: *mut u32, pstatementcharcount: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDocumentPosition)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pdocumentid), ::core::mem::transmute(pcharacteroffset), ::core::mem::transmute(pstatementcharcount)).ok()
    }
}
::windows::core::interface_hierarchy!(IJsDebugBreakPoint, ::windows::core::IUnknown);
impl ::core::clone::Clone for IJsDebugBreakPoint {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IJsDebugBreakPoint {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IJsDebugBreakPoint {}
impl ::core::fmt::Debug for IJsDebugBreakPoint {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IJsDebugBreakPoint").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IJsDebugBreakPoint {
    type Vtable = IJsDebugBreakPoint_Vtbl;
}
unsafe impl ::windows::core::Interface for IJsDebugBreakPoint {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdf6773e3_ed8d_488b_8a3e_5812577d1542);
}
#[repr(C)]
#[doc(hidden)]
pub struct IJsDebugBreakPoint_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    #[cfg(feature = "Win32_Foundation")]
    pub IsEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pisenabled: *mut super::super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    IsEnabled: usize,
    pub Enable: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Disable: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Delete: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetDocumentPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdocumentid: *mut u64, pcharacteroffset: *mut u32, pstatementcharcount: *mut u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IJsDebugDataTarget(::windows::core::IUnknown);
impl IJsDebugDataTarget {
    pub unsafe fn ReadMemory(&self, address: u64, flags: JsDebugReadMemoryFlags, pbuffer: &mut [u8], pbytesread: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ReadMemory)(::windows::core::Vtable::as_raw(self), address, flags, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _, ::core::mem::transmute(pbytesread)).ok()
    }
    pub unsafe fn WriteMemory(&self, address: u64, pmemory: &[u8]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).WriteMemory)(::windows::core::Vtable::as_raw(self), address, ::core::mem::transmute(pmemory.as_ptr()), pmemory.len() as _).ok()
    }
    pub unsafe fn AllocateVirtualMemory(&self, address: u64, size: u32, allocationtype: u32, pageprotection: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AllocateVirtualMemory)(::windows::core::Vtable::as_raw(self), address, size, allocationtype, pageprotection, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn FreeVirtualMemory(&self, address: u64, size: u32, freetype: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).FreeVirtualMemory)(::windows::core::Vtable::as_raw(self), address, size, freetype).ok()
    }
    pub unsafe fn GetTlsValue(&self, threadid: u32, tlsindex: u32) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTlsValue)(::windows::core::Vtable::as_raw(self), threadid, tlsindex, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn ReadBSTR(&self, address: u64) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ReadBSTR)(::windows::core::Vtable::as_raw(self), address, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn ReadNullTerminatedString(&self, address: u64, charactersize: u16, maxcharacters: u32) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ReadNullTerminatedString)(::windows::core::Vtable::as_raw(self), address, charactersize, maxcharacters, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn CreateStackFrameEnumerator(&self, threadid: u32) -> ::windows::core::Result<IEnumJsStackFrames> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateStackFrameEnumerator)(::windows::core::Vtable::as_raw(self), threadid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumJsStackFrames>(result__)
    }
    pub unsafe fn GetThreadContext(&self, threadid: u32, contextflags: u32, pcontext: &mut [u8]) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetThreadContext)(::windows::core::Vtable::as_raw(self), threadid, contextflags, pcontext.len() as _, ::core::mem::transmute(pcontext.as_ptr())).ok()
    }
}
::windows::core::interface_hierarchy!(IJsDebugDataTarget, ::windows::core::IUnknown);
impl ::core::clone::Clone for IJsDebugDataTarget {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IJsDebugDataTarget {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IJsDebugDataTarget {}
impl ::core::fmt::Debug for IJsDebugDataTarget {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IJsDebugDataTarget").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IJsDebugDataTarget {
    type Vtable = IJsDebugDataTarget_Vtbl;
}
unsafe impl ::windows::core::Interface for IJsDebugDataTarget {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x53b28977_53a1_48e5_9000_5d0dfa893931);
}
#[repr(C)]
#[doc(hidden)]
pub struct IJsDebugDataTarget_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub ReadMemory: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, address: u64, flags: JsDebugReadMemoryFlags, pbuffer: *mut u8, size: u32, pbytesread: *mut u32) -> ::windows::core::HRESULT,
    pub WriteMemory: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, address: u64, pmemory: *const u8, size: u32) -> ::windows::core::HRESULT,
    pub AllocateVirtualMemory: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, address: u64, size: u32, allocationtype: u32, pageprotection: u32, pallocatedaddress: *mut u64) -> ::windows::core::HRESULT,
    pub FreeVirtualMemory: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, address: u64, size: u32, freetype: u32) -> ::windows::core::HRESULT,
    pub GetTlsValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, threadid: u32, tlsindex: u32, pvalue: *mut u64) -> ::windows::core::HRESULT,
    pub ReadBSTR: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, address: u64, pstring: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub ReadNullTerminatedString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, address: u64, charactersize: u16, maxcharacters: u32, pstring: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub CreateStackFrameEnumerator: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, threadid: u32, ppenumerator: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetThreadContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, threadid: u32, contextflags: u32, contextsize: u32, pcontext: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IJsDebugFrame(::windows::core::IUnknown);
impl IJsDebugFrame {
    pub unsafe fn GetStackRange(&self, pstart: *mut u64, pend: *mut u64) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetStackRange)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pstart), ::core::mem::transmute(pend)).ok()
    }
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetDocumentPositionWithId(&self, pdocumentid: *mut u64, pcharacteroffset: *mut u32, pstatementcharcount: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDocumentPositionWithId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pdocumentid), ::core::mem::transmute(pcharacteroffset), ::core::mem::transmute(pstatementcharcount)).ok()
    }
    pub unsafe fn GetDocumentPositionWithName(&self, pdocumentname: *mut ::windows::core::BSTR, pline: *mut u32, pcolumn: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDocumentPositionWithName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pdocumentname), ::core::mem::transmute(pline), ::core::mem::transmute(pcolumn)).ok()
    }
    pub unsafe fn GetDebugProperty(&self) -> ::windows::core::Result<IJsDebugProperty> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDebugProperty)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IJsDebugProperty>(result__)
    }
    pub unsafe fn GetReturnAddress(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetReturnAddress)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn Evaluate<'a, P0>(&self, pexpressiontext: P0, ppdebugproperty: *mut ::core::option::Option<IJsDebugProperty>, perror: *mut ::windows::core::BSTR) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).Evaluate)(::windows::core::Vtable::as_raw(self), pexpressiontext.into(), ::core::mem::transmute(ppdebugproperty), ::core::mem::transmute(perror)).ok()
    }
}
::windows::core::interface_hierarchy!(IJsDebugFrame, ::windows::core::IUnknown);
impl ::core::clone::Clone for IJsDebugFrame {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IJsDebugFrame {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IJsDebugFrame {}
impl ::core::fmt::Debug for IJsDebugFrame {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IJsDebugFrame").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IJsDebugFrame {
    type Vtable = IJsDebugFrame_Vtbl;
}
unsafe impl ::windows::core::Interface for IJsDebugFrame {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc9196637_ab9d_44b2_bad2_13b95b3f390e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IJsDebugFrame_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetStackRange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstart: *mut u64, pend: *mut u64) -> ::windows::core::HRESULT,
    pub GetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pname: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub GetDocumentPositionWithId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdocumentid: *mut u64, pcharacteroffset: *mut u32, pstatementcharcount: *mut u32) -> ::windows::core::HRESULT,
    pub GetDocumentPositionWithName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdocumentname: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>, pline: *mut u32, pcolumn: *mut u32) -> ::windows::core::HRESULT,
    pub GetDebugProperty: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppdebugproperty: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetReturnAddress: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, preturnaddress: *mut u64) -> ::windows::core::HRESULT,
    pub Evaluate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pexpressiontext: ::windows::core::PCWSTR, ppdebugproperty: *mut *mut ::core::ffi::c_void, perror: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IJsDebugProcess(::windows::core::IUnknown);
impl IJsDebugProcess {
    pub unsafe fn CreateStackWalker(&self, threadid: u32) -> ::windows::core::Result<IJsDebugStackWalker> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateStackWalker)(::windows::core::Vtable::as_raw(self), threadid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IJsDebugStackWalker>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn CreateBreakPoint<'a, P0>(&self, documentid: u64, characteroffset: u32, charactercount: u32, isenabled: P0) -> ::windows::core::Result<IJsDebugBreakPoint>
    where
        P0: ::std::convert::Into<super::super::super::Foundation::BOOL>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateBreakPoint)(::windows::core::Vtable::as_raw(self), documentid, characteroffset, charactercount, isenabled.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IJsDebugBreakPoint>(result__)
    }
    pub unsafe fn PerformAsyncBreak(&self, threadid: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).PerformAsyncBreak)(::windows::core::Vtable::as_raw(self), threadid).ok()
    }
    pub unsafe fn GetExternalStepAddress(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetExternalStepAddress)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
}
::windows::core::interface_hierarchy!(IJsDebugProcess, ::windows::core::IUnknown);
impl ::core::clone::Clone for IJsDebugProcess {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IJsDebugProcess {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IJsDebugProcess {}
impl ::core::fmt::Debug for IJsDebugProcess {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IJsDebugProcess").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IJsDebugProcess {
    type Vtable = IJsDebugProcess_Vtbl;
}
unsafe impl ::windows::core::Interface for IJsDebugProcess {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3d587168_6a2d_4041_bd3b_0de674502862);
}
#[repr(C)]
#[doc(hidden)]
pub struct IJsDebugProcess_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub CreateStackWalker: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, threadid: u32, ppstackwalker: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_Foundation")]
    pub CreateBreakPoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, documentid: u64, characteroffset: u32, charactercount: u32, isenabled: super::super::super::Foundation::BOOL, ppdebugbreakpoint: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    CreateBreakPoint: usize,
    pub PerformAsyncBreak: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, threadid: u32) -> ::windows::core::HRESULT,
    pub GetExternalStepAddress: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pcodeaddress: *mut u64) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IJsDebugProperty(::windows::core::IUnknown);
impl IJsDebugProperty {
    pub unsafe fn GetPropertyInfo(&self, nradix: u32) -> ::windows::core::Result<JsDebugPropertyInfo> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetPropertyInfo)(::windows::core::Vtable::as_raw(self), nradix, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<JsDebugPropertyInfo>(result__)
    }
    pub unsafe fn GetMembers(&self, members: JS_PROPERTY_MEMBERS) -> ::windows::core::Result<IJsEnumDebugProperty> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetMembers)(::windows::core::Vtable::as_raw(self), members, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IJsEnumDebugProperty>(result__)
    }
}
::windows::core::interface_hierarchy!(IJsDebugProperty, ::windows::core::IUnknown);
impl ::core::clone::Clone for IJsDebugProperty {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IJsDebugProperty {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IJsDebugProperty {}
impl ::core::fmt::Debug for IJsDebugProperty {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IJsDebugProperty").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IJsDebugProperty {
    type Vtable = IJsDebugProperty_Vtbl;
}
unsafe impl ::windows::core::Interface for IJsDebugProperty {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf8ffcf2b_3aa4_4320_85c3_52a312ba9633);
}
#[repr(C)]
#[doc(hidden)]
pub struct IJsDebugProperty_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetPropertyInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, nradix: u32, ppropertyinfo: *mut ::core::mem::ManuallyDrop<JsDebugPropertyInfo>) -> ::windows::core::HRESULT,
    pub GetMembers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, members: JS_PROPERTY_MEMBERS, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IJsDebugStackWalker(::windows::core::IUnknown);
impl IJsDebugStackWalker {
    pub unsafe fn GetNext(&self) -> ::windows::core::Result<IJsDebugFrame> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IJsDebugFrame>(result__)
    }
}
::windows::core::interface_hierarchy!(IJsDebugStackWalker, ::windows::core::IUnknown);
impl ::core::clone::Clone for IJsDebugStackWalker {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IJsDebugStackWalker {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IJsDebugStackWalker {}
impl ::core::fmt::Debug for IJsDebugStackWalker {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IJsDebugStackWalker").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IJsDebugStackWalker {
    type Vtable = IJsDebugStackWalker_Vtbl;
}
unsafe impl ::windows::core::Interface for IJsDebugStackWalker {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdb24b094_73c4_456c_a4ec_e90ea00bdfe3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IJsDebugStackWalker_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetNext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppframe: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IJsEnumDebugProperty(::windows::core::IUnknown);
impl IJsEnumDebugProperty {
    pub unsafe fn Next(&self, ppdebugproperty: &mut [::core::option::Option<IJsDebugProperty>], pactualcount: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Next)(::windows::core::Vtable::as_raw(self), ppdebugproperty.len() as _, ::core::mem::transmute(ppdebugproperty.as_ptr()), ::core::mem::transmute(pactualcount)).ok()
    }
    pub unsafe fn GetCount(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCount)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
}
::windows::core::interface_hierarchy!(IJsEnumDebugProperty, ::windows::core::IUnknown);
impl ::core::clone::Clone for IJsEnumDebugProperty {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IJsEnumDebugProperty {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IJsEnumDebugProperty {}
impl ::core::fmt::Debug for IJsEnumDebugProperty {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IJsEnumDebugProperty").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IJsEnumDebugProperty {
    type Vtable = IJsEnumDebugProperty_Vtbl;
}
unsafe impl ::windows::core::Interface for IJsEnumDebugProperty {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4092432f_2f0f_4fe1_b638_5b74a52cdcbe);
}
#[repr(C)]
#[doc(hidden)]
pub struct IJsEnumDebugProperty_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Next: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, ppdebugproperty: *mut *mut ::core::ffi::c_void, pactualcount: *mut u32) -> ::windows::core::HRESULT,
    pub GetCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pcount: *mut u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IKeyEnumerator(::windows::core::IUnknown);
impl IKeyEnumerator {
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Reset)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetNext(&self, key: *mut ::windows::core::BSTR, value: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(key), ::core::mem::transmute(value.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
}
::windows::core::interface_hierarchy!(IKeyEnumerator, ::windows::core::IUnknown);
impl ::core::clone::Clone for IKeyEnumerator {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IKeyEnumerator {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IKeyEnumerator {}
impl ::core::fmt::Debug for IKeyEnumerator {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IKeyEnumerator").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IKeyEnumerator {
    type Vtable = IKeyEnumerator_Vtbl;
}
unsafe impl ::windows::core::Interface for IKeyEnumerator {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x345fa92e_5e00_4319_9cae_971f7601cdcf);
}
#[repr(C)]
#[doc(hidden)]
pub struct IKeyEnumerator_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetNext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>, value: *mut *mut ::core::ffi::c_void, metadata: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IKeyStore(::windows::core::IUnknown);
impl IKeyStore {
    pub unsafe fn GetKey<'a, P0>(&self, key: P0, object: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetKey)(::windows::core::Vtable::as_raw(self), key.into(), ::core::mem::transmute(object.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetKey<'a, P0, P1, P2>(&self, key: P0, object: P1, metadata: P2) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P2: ::std::convert::Into<::windows::core::InParam<'a, IKeyStore>>,
    {
        (::windows::core::Vtable::vtable(self).SetKey)(::windows::core::Vtable::as_raw(self), key.into(), object.into().abi(), metadata.into().abi()).ok()
    }
    pub unsafe fn GetKeyValue<'a, P0>(&self, key: P0, object: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetKeyValue)(::windows::core::Vtable::as_raw(self), key.into(), ::core::mem::transmute(object.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetKeyValue<'a, P0, P1>(&self, key: P0, object: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).SetKeyValue)(::windows::core::Vtable::as_raw(self), key.into(), object.into().abi()).ok()
    }
    pub unsafe fn ClearKeys(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ClearKeys)(::windows::core::Vtable::as_raw(self)).ok()
    }
}
::windows::core::interface_hierarchy!(IKeyStore, ::windows::core::IUnknown);
impl ::core::clone::Clone for IKeyStore {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IKeyStore {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IKeyStore {}
impl ::core::fmt::Debug for IKeyStore {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IKeyStore").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IKeyStore {
    type Vtable = IKeyStore_Vtbl;
}
unsafe impl ::windows::core::Interface for IKeyStore {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0fc7557d_401d_4fca_9365_da1e9850697c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IKeyStore_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetKey: unsafe extern "system" fn(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,
    pub SetKey: unsafe extern "system" fn(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,
    pub GetKeyValue: unsafe extern "system" fn(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,
    pub SetKeyValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: ::windows::core::PCWSTR, object: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ClearKeys: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IMachineDebugManager(::windows::core::IUnknown);
impl IMachineDebugManager {
    pub unsafe fn AddApplication<'a, P0>(&self, pda: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IRemoteDebugApplication>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddApplication)(::windows::core::Vtable::as_raw(self), pda.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn RemoveApplication(&self, dwappcookie: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveApplication)(::windows::core::Vtable::as_raw(self), dwappcookie).ok()
    }
    pub unsafe fn EnumApplications(&self) -> ::windows::core::Result<IEnumRemoteDebugApplications> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumApplications)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumRemoteDebugApplications>(result__)
    }
}
::windows::core::interface_hierarchy!(IMachineDebugManager, ::windows::core::IUnknown);
impl ::core::clone::Clone for IMachineDebugManager {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IMachineDebugManager {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IMachineDebugManager {}
impl ::core::fmt::Debug for IMachineDebugManager {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMachineDebugManager").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IMachineDebugManager {
    type Vtable = IMachineDebugManager_Vtbl;
}
unsafe impl ::windows::core::Interface for IMachineDebugManager {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c2c_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMachineDebugManager_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub AddApplication: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pda: *mut ::core::ffi::c_void, pdwappcookie: *mut u32) -> ::windows::core::HRESULT,
    pub RemoveApplication: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwappcookie: u32) -> ::windows::core::HRESULT,
    pub EnumApplications: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppeda: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IMachineDebugManagerCookie(::windows::core::IUnknown);
impl IMachineDebugManagerCookie {
    pub unsafe fn AddApplication<'a, P0>(&self, pda: P0, dwdebugappcookie: u32) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IRemoteDebugApplication>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddApplication)(::windows::core::Vtable::as_raw(self), pda.into().abi(), dwdebugappcookie, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn RemoveApplication(&self, dwdebugappcookie: u32, dwappcookie: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveApplication)(::windows::core::Vtable::as_raw(self), dwdebugappcookie, dwappcookie).ok()
    }
    pub unsafe fn EnumApplications(&self) -> ::windows::core::Result<IEnumRemoteDebugApplications> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumApplications)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumRemoteDebugApplications>(result__)
    }
}
::windows::core::interface_hierarchy!(IMachineDebugManagerCookie, ::windows::core::IUnknown);
impl ::core::clone::Clone for IMachineDebugManagerCookie {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IMachineDebugManagerCookie {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IMachineDebugManagerCookie {}
impl ::core::fmt::Debug for IMachineDebugManagerCookie {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMachineDebugManagerCookie").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IMachineDebugManagerCookie {
    type Vtable = IMachineDebugManagerCookie_Vtbl;
}
unsafe impl ::windows::core::Interface for IMachineDebugManagerCookie {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c2d_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMachineDebugManagerCookie_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub AddApplication: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pda: *mut ::core::ffi::c_void, dwdebugappcookie: u32, pdwappcookie: *mut u32) -> ::windows::core::HRESULT,
    pub RemoveApplication: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwdebugappcookie: u32, dwappcookie: u32) -> ::windows::core::HRESULT,
    pub EnumApplications: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppeda: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IMachineDebugManagerEvents(::windows::core::IUnknown);
impl IMachineDebugManagerEvents {
    pub unsafe fn onAddApplication<'a, P0>(&self, pda: P0, dwappcookie: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IRemoteDebugApplication>>,
    {
        (::windows::core::Vtable::vtable(self).onAddApplication)(::windows::core::Vtable::as_raw(self), pda.into().abi(), dwappcookie).ok()
    }
    pub unsafe fn onRemoveApplication<'a, P0>(&self, pda: P0, dwappcookie: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IRemoteDebugApplication>>,
    {
        (::windows::core::Vtable::vtable(self).onRemoveApplication)(::windows::core::Vtable::as_raw(self), pda.into().abi(), dwappcookie).ok()
    }
}
::windows::core::interface_hierarchy!(IMachineDebugManagerEvents, ::windows::core::IUnknown);
impl ::core::clone::Clone for IMachineDebugManagerEvents {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IMachineDebugManagerEvents {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IMachineDebugManagerEvents {}
impl ::core::fmt::Debug for IMachineDebugManagerEvents {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMachineDebugManagerEvents").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IMachineDebugManagerEvents {
    type Vtable = IMachineDebugManagerEvents_Vtbl;
}
unsafe impl ::windows::core::Interface for IMachineDebugManagerEvents {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c2e_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IMachineDebugManagerEvents_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub onAddApplication: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pda: *mut ::core::ffi::c_void, dwappcookie: u32) -> ::windows::core::HRESULT,
    pub onRemoveApplication: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pda: *mut ::core::ffi::c_void, dwappcookie: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IModelIterator(::windows::core::IUnknown);
impl IModelIterator {
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Reset)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetNext(&self, object: *mut ::core::option::Option<IModelObject>, indexers: ::core::option::Option<&mut [::core::option::Option<IModelObject>]>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(object), indexers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(indexers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
}
::windows::core::interface_hierarchy!(IModelIterator, ::windows::core::IUnknown);
impl ::core::clone::Clone for IModelIterator {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IModelIterator {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IModelIterator {}
impl ::core::fmt::Debug for IModelIterator {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IModelIterator").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IModelIterator {
    type Vtable = IModelIterator_Vtbl;
}
unsafe impl ::windows::core::Interface for IModelIterator {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe4622136_927d_4490_874f_581f3e4e3688);
}
#[repr(C)]
#[doc(hidden)]
pub struct IModelIterator_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetNext: unsafe extern "system" fn(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,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IModelKeyReference(::windows::core::IUnknown);
impl IModelKeyReference {
    pub unsafe fn GetKeyName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetKeyName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetOriginalObject(&self) -> ::windows::core::Result<IModelObject> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetOriginalObject)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn GetContextObject(&self) -> ::windows::core::Result<IModelObject> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetContextObject)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn GetKey(&self, object: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetKey)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(object.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetKeyValue(&self, object: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetKeyValue)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(object.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetKey<'a, P0, P1>(&self, object: P0, metadata: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IKeyStore>>,
    {
        (::windows::core::Vtable::vtable(self).SetKey)(::windows::core::Vtable::as_raw(self), object.into().abi(), metadata.into().abi()).ok()
    }
    pub unsafe fn SetKeyValue<'a, P0>(&self, object: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).SetKeyValue)(::windows::core::Vtable::as_raw(self), object.into().abi()).ok()
    }
}
::windows::core::interface_hierarchy!(IModelKeyReference, ::windows::core::IUnknown);
impl ::core::clone::Clone for IModelKeyReference {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IModelKeyReference {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IModelKeyReference {}
impl ::core::fmt::Debug for IModelKeyReference {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IModelKeyReference").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IModelKeyReference {
    type Vtable = IModelKeyReference_Vtbl;
}
unsafe impl ::windows::core::Interface for IModelKeyReference {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5253dcf8_5aff_4c62_b302_56a289e00998);
}
#[repr(C)]
#[doc(hidden)]
pub struct IModelKeyReference_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetKeyName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, keyname: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub GetOriginalObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, originalobject: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetContextObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, containingobject: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetKey: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void, metadata: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetKeyValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void, metadata: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetKey: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, object: *mut ::core::ffi::c_void, metadata: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetKeyValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, object: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IModelKeyReference2(::windows::core::IUnknown);
impl IModelKeyReference2 {
    pub unsafe fn GetKeyName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetKeyName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetOriginalObject(&self) -> ::windows::core::Result<IModelObject> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetOriginalObject)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn GetContextObject(&self) -> ::windows::core::Result<IModelObject> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetContextObject)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn GetKey(&self, object: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.GetKey)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(object.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetKeyValue(&self, object: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.GetKeyValue)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(object.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetKey<'a, P0, P1>(&self, object: P0, metadata: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IKeyStore>>,
    {
        (::windows::core::Vtable::vtable(self).base__.SetKey)(::windows::core::Vtable::as_raw(self), object.into().abi(), metadata.into().abi()).ok()
    }
    pub unsafe fn SetKeyValue<'a, P0>(&self, object: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).base__.SetKeyValue)(::windows::core::Vtable::as_raw(self), object.into().abi()).ok()
    }
    pub unsafe fn OverrideContextObject<'a, P0>(&self, newcontextobject: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).OverrideContextObject)(::windows::core::Vtable::as_raw(self), newcontextobject.into().abi()).ok()
    }
}
::windows::core::interface_hierarchy!(IModelKeyReference2, ::windows::core::IUnknown, IModelKeyReference);
impl ::core::clone::Clone for IModelKeyReference2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IModelKeyReference2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IModelKeyReference2 {}
impl ::core::fmt::Debug for IModelKeyReference2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IModelKeyReference2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IModelKeyReference2 {
    type Vtable = IModelKeyReference2_Vtbl;
}
unsafe impl ::windows::core::Interface for IModelKeyReference2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x80e2f7c5_7159_4e92_887e_7e0347e88406);
}
#[repr(C)]
#[doc(hidden)]
pub struct IModelKeyReference2_Vtbl {
    pub base__: IModelKeyReference_Vtbl,
    pub OverrideContextObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, newcontextobject: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IModelMethod(::windows::core::IUnknown);
impl IModelMethod {
    pub unsafe fn Call<'a, P0>(&self, pcontextobject: P0, pparguments: &[::core::option::Option<IModelObject>], ppresult: *mut ::core::option::Option<IModelObject>, ppmetadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).Call)(::windows::core::Vtable::as_raw(self), pcontextobject.into().abi(), pparguments.len() as _, ::core::mem::transmute(pparguments.as_ptr()), ::core::mem::transmute(ppresult), ::core::mem::transmute(ppmetadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
}
::windows::core::interface_hierarchy!(IModelMethod, ::windows::core::IUnknown);
impl ::core::clone::Clone for IModelMethod {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IModelMethod {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IModelMethod {}
impl ::core::fmt::Debug for IModelMethod {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IModelMethod").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IModelMethod {
    type Vtable = IModelMethod_Vtbl;
}
unsafe impl ::windows::core::Interface for IModelMethod {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x80600c1f_b90b_4896_82ad_1c00207909e8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IModelMethod_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Call: unsafe extern "system" fn(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,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IModelObject(::windows::core::IUnknown);
impl IModelObject {
    pub unsafe fn GetContext(&self) -> ::windows::core::Result<IDebugHostContext> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetContext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostContext>(result__)
    }
    pub unsafe fn GetKind(&self) -> ::windows::core::Result<ModelObjectKind> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetKind)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<ModelObjectKind>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn GetIntrinsicValue(&self) -> ::windows::core::Result<super::super::Com::VARIANT> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetIntrinsicValue)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::VARIANT>(result__)
    }
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn GetIntrinsicValueAs(&self, vt: super::super::Com::VARENUM) -> ::windows::core::Result<super::super::Com::VARIANT> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetIntrinsicValueAs)(::windows::core::Vtable::as_raw(self), vt, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<super::super::Com::VARIANT>(result__)
    }
    pub unsafe fn GetKeyValue<'a, P0>(&self, key: P0, object: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetKeyValue)(::windows::core::Vtable::as_raw(self), key.into(), ::core::mem::transmute(object.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetKeyValue<'a, P0, P1>(&self, key: P0, object: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).SetKeyValue)(::windows::core::Vtable::as_raw(self), key.into(), object.into().abi()).ok()
    }
    pub unsafe fn EnumerateKeyValues(&self) -> ::windows::core::Result<IKeyEnumerator> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumerateKeyValues)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IKeyEnumerator>(result__)
    }
    pub unsafe fn GetRawValue<'a, P0>(&self, kind: SymbolKind, name: P0, searchflags: u32) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRawValue)(::windows::core::Vtable::as_raw(self), kind, name.into(), searchflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn EnumerateRawValues(&self, kind: SymbolKind, searchflags: u32) -> ::windows::core::Result<IRawEnumerator> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumerateRawValues)(::windows::core::Vtable::as_raw(self), kind, searchflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IRawEnumerator>(result__)
    }
    pub unsafe fn Dereference(&self) -> ::windows::core::Result<IModelObject> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Dereference)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn TryCastToRuntimeType(&self) -> ::windows::core::Result<IModelObject> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).TryCastToRuntimeType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn GetConcept(&self, conceptid: *const ::windows::core::GUID, conceptinterface: *mut ::core::option::Option<::windows::core::IUnknown>, conceptmetadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetConcept)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(conceptid), ::core::mem::transmute(conceptinterface), ::core::mem::transmute(conceptmetadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetLocation(&self) -> ::windows::core::Result<Location> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetLocation)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<Location>(result__)
    }
    pub unsafe fn GetTypeInfo(&self) -> ::windows::core::Result<IDebugHostType> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetTypeInfo)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugHostType>(result__)
    }
    pub unsafe fn GetTargetInfo(&self, location: *mut Location, r#type: *mut ::core::option::Option<IDebugHostType>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetTargetInfo)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(location), ::core::mem::transmute(r#type)).ok()
    }
    pub unsafe fn GetNumberOfParentModels(&self) -> ::windows::core::Result<u64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberOfParentModels)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u64>(result__)
    }
    pub unsafe fn GetParentModel(&self, i: u64, model: *mut ::core::option::Option<IModelObject>, contextobject: ::core::option::Option<*mut ::core::option::Option<IModelObject>>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetParentModel)(::windows::core::Vtable::as_raw(self), i, ::core::mem::transmute(model), ::core::mem::transmute(contextobject.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn AddParentModel<'a, P0, P1>(&self, model: P0, contextobject: P1, r#override: u8) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).AddParentModel)(::windows::core::Vtable::as_raw(self), model.into().abi(), contextobject.into().abi(), r#override).ok()
    }
    pub unsafe fn RemoveParentModel<'a, P0>(&self, model: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).RemoveParentModel)(::windows::core::Vtable::as_raw(self), model.into().abi()).ok()
    }
    pub unsafe fn GetKey<'a, P0>(&self, key: P0, object: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetKey)(::windows::core::Vtable::as_raw(self), key.into(), ::core::mem::transmute(object.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn GetKeyReference<'a, P0>(&self, key: P0, objectreference: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).GetKeyReference)(::windows::core::Vtable::as_raw(self), key.into(), ::core::mem::transmute(objectreference.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
    }
    pub unsafe fn SetKey<'a, P0, P1, P2>(&self, key: P0, object: P1, metadata: P2) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P2: ::std::convert::Into<::windows::core::InParam<'a, IKeyStore>>,
    {
        (::windows::core::Vtable::vtable(self).SetKey)(::windows::core::Vtable::as_raw(self), key.into(), object.into().abi(), metadata.into().abi()).ok()
    }
    pub unsafe fn ClearKeys(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ClearKeys)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn EnumerateKeys(&self) -> ::windows::core::Result<IKeyEnumerator> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumerateKeys)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IKeyEnumerator>(result__)
    }
    pub unsafe fn EnumerateKeyReferences(&self) -> ::windows::core::Result<IKeyEnumerator> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumerateKeyReferences)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IKeyEnumerator>(result__)
    }
    pub unsafe fn SetConcept<'a, P0, P1>(&self, conceptid: *const ::windows::core::GUID, conceptinterface: P0, conceptmetadata: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IKeyStore>>,
    {
        (::windows::core::Vtable::vtable(self).SetConcept)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(conceptid), conceptinterface.into().abi(), conceptmetadata.into().abi()).ok()
    }
    pub unsafe fn ClearConcepts(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).ClearConcepts)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetRawReference<'a, P0>(&self, kind: SymbolKind, name: P0, searchflags: u32) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRawReference)(::windows::core::Vtable::as_raw(self), kind, name.into(), searchflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn EnumerateRawReferences(&self, kind: SymbolKind, searchflags: u32) -> ::windows::core::Result<IRawEnumerator> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumerateRawReferences)(::windows::core::Vtable::as_raw(self), kind, searchflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IRawEnumerator>(result__)
    }
    pub unsafe fn SetContextForDataModel<'a, P0, P1>(&self, datamodelobject: P0, context: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
    {
        (::windows::core::Vtable::vtable(self).SetContextForDataModel)(::windows::core::Vtable::as_raw(self), datamodelobject.into().abi(), context.into().abi()).ok()
    }
    pub unsafe fn GetContextForDataModel<'a, P0>(&self, datamodelobject: P0) -> ::windows::core::Result<::windows::core::IUnknown>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetContextForDataModel)(::windows::core::Vtable::as_raw(self), datamodelobject.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::IUnknown>(result__)
    }
    pub unsafe fn Compare<'a, P0>(&self, other: P0) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Compare)(::windows::core::Vtable::as_raw(self), other.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn IsEqualTo<'a, P0>(&self, other: P0) -> ::windows::core::Result<bool>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).IsEqualTo)(::windows::core::Vtable::as_raw(self), other.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<bool>(result__)
    }
}
::windows::core::interface_hierarchy!(IModelObject, ::windows::core::IUnknown);
impl ::core::clone::Clone for IModelObject {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IModelObject {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IModelObject {}
impl ::core::fmt::Debug for IModelObject {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IModelObject").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IModelObject {
    type Vtable = IModelObject_Vtbl;
}
unsafe impl ::windows::core::Interface for IModelObject {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe28c7893_3f4b_4b96_baca_293cdc55f45d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IModelObject_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, kind: *mut ModelObjectKind) -> ::windows::core::HRESULT,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub GetIntrinsicValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, intrinsicdata: *mut ::core::mem::ManuallyDrop<super::super::Com::VARIANT>) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
    GetIntrinsicValue: usize,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub GetIntrinsicValueAs: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, vt: super::super::Com::VARENUM, intrinsicdata: *mut ::core::mem::ManuallyDrop<super::super::Com::VARIANT>) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
    GetIntrinsicValueAs: usize,
    pub GetKeyValue: unsafe extern "system" fn(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,
    pub SetKeyValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: ::windows::core::PCWSTR, object: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EnumerateKeyValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enumerator: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetRawValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, kind: SymbolKind, name: ::windows::core::PCWSTR, searchflags: u32, object: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EnumerateRawValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, kind: SymbolKind, searchflags: u32, enumerator: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Dereference: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub TryCastToRuntimeType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, runtimetypedobject: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetConcept: unsafe extern "system" fn(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,
    pub GetLocation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, location: *mut Location) -> ::windows::core::HRESULT,
    pub GetTypeInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetTargetInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, location: *mut Location, r#type: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetNumberOfParentModels: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, nummodels: *mut u64) -> ::windows::core::HRESULT,
    pub GetParentModel: unsafe extern "system" fn(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,
    pub AddParentModel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, model: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, r#override: u8) -> ::windows::core::HRESULT,
    pub RemoveParentModel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, model: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetKey: unsafe extern "system" fn(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,
    pub GetKeyReference: unsafe extern "system" fn(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,
    pub SetKey: unsafe extern "system" fn(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,
    pub ClearKeys: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EnumerateKeys: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enumerator: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EnumerateKeyReferences: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enumerator: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetConcept: unsafe extern "system" fn(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,
    pub ClearConcepts: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetRawReference: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, kind: SymbolKind, name: ::windows::core::PCWSTR, searchflags: u32, object: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EnumerateRawReferences: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, kind: SymbolKind, searchflags: u32, enumerator: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub SetContextForDataModel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, datamodelobject: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetContextForDataModel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, datamodelobject: *mut ::core::ffi::c_void, context: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Compare: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, other: *mut ::core::ffi::c_void, ppresult: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub IsEqualTo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, other: *mut ::core::ffi::c_void, equal: *mut bool) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IModelPropertyAccessor(::windows::core::IUnknown);
impl IModelPropertyAccessor {
    pub unsafe fn GetValue<'a, P0, P1>(&self, key: P0, contextobject: P1) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetValue)(::windows::core::Vtable::as_raw(self), key.into(), contextobject.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
    pub unsafe fn SetValue<'a, P0, P1, P2>(&self, key: P0, contextobject: P1, value: P2) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P2: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        (::windows::core::Vtable::vtable(self).SetValue)(::windows::core::Vtable::as_raw(self), key.into(), contextobject.into().abi(), value.into().abi()).ok()
    }
}
::windows::core::interface_hierarchy!(IModelPropertyAccessor, ::windows::core::IUnknown);
impl ::core::clone::Clone for IModelPropertyAccessor {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IModelPropertyAccessor {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IModelPropertyAccessor {}
impl ::core::fmt::Debug for IModelPropertyAccessor {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IModelPropertyAccessor").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IModelPropertyAccessor {
    type Vtable = IModelPropertyAccessor_Vtbl;
}
unsafe impl ::windows::core::Interface for IModelPropertyAccessor {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5a0c63d9_0526_42b8_960c_9516a3254c85);
}
#[repr(C)]
#[doc(hidden)]
pub struct IModelPropertyAccessor_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetValue: unsafe extern "system" fn(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,
    pub SetValue: unsafe extern "system" fn(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,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IObjectSafety(::windows::core::IUnknown);
impl IObjectSafety {
    pub unsafe fn GetInterfaceSafetyOptions(&self, riid: *const ::windows::core::GUID, pdwsupportedoptions: *mut u32, pdwenabledoptions: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetInterfaceSafetyOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(riid), ::core::mem::transmute(pdwsupportedoptions), ::core::mem::transmute(pdwenabledoptions)).ok()
    }
    pub unsafe fn SetInterfaceSafetyOptions(&self, riid: *const ::windows::core::GUID, dwoptionsetmask: u32, dwenabledoptions: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetInterfaceSafetyOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(riid), dwoptionsetmask, dwenabledoptions).ok()
    }
}
::windows::core::interface_hierarchy!(IObjectSafety, ::windows::core::IUnknown);
impl ::core::clone::Clone for IObjectSafety {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IObjectSafety {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IObjectSafety {}
impl ::core::fmt::Debug for IObjectSafety {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IObjectSafety").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IObjectSafety {
    type Vtable = IObjectSafety_Vtbl;
}
unsafe impl ::windows::core::Interface for IObjectSafety {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xcb5bdc81_93c1_11cf_8f20_00805f2cd064);
}
#[repr(C)]
#[doc(hidden)]
pub struct IObjectSafety_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetInterfaceSafetyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, pdwsupportedoptions: *mut u32, pdwenabledoptions: *mut u32) -> ::windows::core::HRESULT,
    pub SetInterfaceSafetyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, dwoptionsetmask: u32, dwenabledoptions: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IPerPropertyBrowsing2(::windows::core::IUnknown);
impl IPerPropertyBrowsing2 {
    pub unsafe fn GetDisplayString(&self, dispid: i32) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDisplayString)(::windows::core::Vtable::as_raw(self), dispid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn MapPropertyToPage(&self, dispid: i32) -> ::windows::core::Result<::windows::core::GUID> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).MapPropertyToPage)(::windows::core::Vtable::as_raw(self), dispid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__)
    }
    #[doc = "*Required features: `\"Win32_System_Ole\"`*"]
    #[cfg(feature = "Win32_System_Ole")]
    pub unsafe fn GetPredefinedStrings(&self, dispid: i32, pcastrings: *mut super::super::Ole::CALPOLESTR, pcacookies: *mut super::super::Ole::CADWORD) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetPredefinedStrings)(::windows::core::Vtable::as_raw(self), dispid, ::core::mem::transmute(pcastrings), ::core::mem::transmute(pcacookies)).ok()
    }
    pub unsafe fn SetPredefinedValue(&self, dispid: i32, dwcookie: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetPredefinedValue)(::windows::core::Vtable::as_raw(self), dispid, dwcookie).ok()
    }
}
::windows::core::interface_hierarchy!(IPerPropertyBrowsing2, ::windows::core::IUnknown);
impl ::core::clone::Clone for IPerPropertyBrowsing2 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IPerPropertyBrowsing2 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IPerPropertyBrowsing2 {}
impl ::core::fmt::Debug for IPerPropertyBrowsing2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IPerPropertyBrowsing2").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IPerPropertyBrowsing2 {
    type Vtable = IPerPropertyBrowsing2_Vtbl;
}
unsafe impl ::windows::core::Interface for IPerPropertyBrowsing2 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c54_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPerPropertyBrowsing2_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetDisplayString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dispid: i32, pbstr: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub MapPropertyToPage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dispid: i32, pclsidproppage: *mut ::windows::core::GUID) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Ole")]
    pub GetPredefinedStrings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dispid: i32, pcastrings: *mut super::super::Ole::CALPOLESTR, pcacookies: *mut super::super::Ole::CADWORD) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Ole"))]
    GetPredefinedStrings: usize,
    pub SetPredefinedValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dispid: i32, dwcookie: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IPreferredRuntimeTypeConcept(::windows::core::IUnknown);
impl IPreferredRuntimeTypeConcept {
    pub unsafe fn CastToPreferredRuntimeType<'a, P0>(&self, contextobject: P0) -> ::windows::core::Result<IModelObject>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CastToPreferredRuntimeType)(::windows::core::Vtable::as_raw(self), contextobject.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IModelObject>(result__)
    }
}
::windows::core::interface_hierarchy!(IPreferredRuntimeTypeConcept, ::windows::core::IUnknown);
impl ::core::clone::Clone for IPreferredRuntimeTypeConcept {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IPreferredRuntimeTypeConcept {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IPreferredRuntimeTypeConcept {}
impl ::core::fmt::Debug for IPreferredRuntimeTypeConcept {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IPreferredRuntimeTypeConcept").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IPreferredRuntimeTypeConcept {
    type Vtable = IPreferredRuntimeTypeConcept_Vtbl;
}
unsafe impl ::windows::core::Interface for IPreferredRuntimeTypeConcept {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9d6c1d7b_a76f_4618_8068_5f76bd9a4e8a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPreferredRuntimeTypeConcept_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub CastToPreferredRuntimeType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IProcessDebugManager32(::windows::core::IUnknown);
impl IProcessDebugManager32 {
    pub unsafe fn CreateApplication(&self) -> ::windows::core::Result<IDebugApplication32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateApplication)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplication32>(result__)
    }
    pub unsafe fn GetDefaultApplication(&self) -> ::windows::core::Result<IDebugApplication32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDefaultApplication)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplication32>(result__)
    }
    pub unsafe fn AddApplication<'a, P0>(&self, pda: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugApplication32>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddApplication)(::windows::core::Vtable::as_raw(self), pda.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn RemoveApplication(&self, dwappcookie: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveApplication)(::windows::core::Vtable::as_raw(self), dwappcookie).ok()
    }
    pub unsafe fn CreateDebugDocumentHelper<'a, P0>(&self, punkouter: P0) -> ::windows::core::Result<IDebugDocumentHelper32>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateDebugDocumentHelper)(::windows::core::Vtable::as_raw(self), punkouter.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugDocumentHelper32>(result__)
    }
}
::windows::core::interface_hierarchy!(IProcessDebugManager32, ::windows::core::IUnknown);
impl ::core::clone::Clone for IProcessDebugManager32 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IProcessDebugManager32 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IProcessDebugManager32 {}
impl ::core::fmt::Debug for IProcessDebugManager32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IProcessDebugManager32").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IProcessDebugManager32 {
    type Vtable = IProcessDebugManager32_Vtbl;
}
unsafe impl ::windows::core::Interface for IProcessDebugManager32 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c2f_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IProcessDebugManager32_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub CreateApplication: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppda: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetDefaultApplication: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppda: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddApplication: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pda: *mut ::core::ffi::c_void, pdwappcookie: *mut u32) -> ::windows::core::HRESULT,
    pub RemoveApplication: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwappcookie: u32) -> ::windows::core::HRESULT,
    pub CreateDebugDocumentHelper: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, punkouter: *mut ::core::ffi::c_void, pddh: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IProcessDebugManager64(::windows::core::IUnknown);
impl IProcessDebugManager64 {
    pub unsafe fn CreateApplication(&self) -> ::windows::core::Result<IDebugApplication64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateApplication)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplication64>(result__)
    }
    pub unsafe fn GetDefaultApplication(&self) -> ::windows::core::Result<IDebugApplication64> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDefaultApplication)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplication64>(result__)
    }
    pub unsafe fn AddApplication<'a, P0>(&self, pda: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugApplication64>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).AddApplication)(::windows::core::Vtable::as_raw(self), pda.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn RemoveApplication(&self, dwappcookie: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).RemoveApplication)(::windows::core::Vtable::as_raw(self), dwappcookie).ok()
    }
    pub unsafe fn CreateDebugDocumentHelper<'a, P0>(&self, punkouter: P0) -> ::windows::core::Result<IDebugDocumentHelper64>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateDebugDocumentHelper)(::windows::core::Vtable::as_raw(self), punkouter.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugDocumentHelper64>(result__)
    }
}
::windows::core::interface_hierarchy!(IProcessDebugManager64, ::windows::core::IUnknown);
impl ::core::clone::Clone for IProcessDebugManager64 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IProcessDebugManager64 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IProcessDebugManager64 {}
impl ::core::fmt::Debug for IProcessDebugManager64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IProcessDebugManager64").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IProcessDebugManager64 {
    type Vtable = IProcessDebugManager64_Vtbl;
}
unsafe impl ::windows::core::Interface for IProcessDebugManager64 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x56b9fc1c_63a9_4cc1_ac21_087d69a17fab);
}
#[repr(C)]
#[doc(hidden)]
pub struct IProcessDebugManager64_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub CreateApplication: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppda: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetDefaultApplication: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppda: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub AddApplication: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pda: *mut ::core::ffi::c_void, pdwappcookie: *mut u32) -> ::windows::core::HRESULT,
    pub RemoveApplication: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwappcookie: u32) -> ::windows::core::HRESULT,
    pub CreateDebugDocumentHelper: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, punkouter: *mut ::core::ffi::c_void, pddh: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IProvideExpressionContexts(::windows::core::IUnknown);
impl IProvideExpressionContexts {
    pub unsafe fn EnumExpressionContexts(&self) -> ::windows::core::Result<IEnumDebugExpressionContexts> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumExpressionContexts)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugExpressionContexts>(result__)
    }
}
::windows::core::interface_hierarchy!(IProvideExpressionContexts, ::windows::core::IUnknown);
impl ::core::clone::Clone for IProvideExpressionContexts {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IProvideExpressionContexts {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IProvideExpressionContexts {}
impl ::core::fmt::Debug for IProvideExpressionContexts {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IProvideExpressionContexts").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IProvideExpressionContexts {
    type Vtable = IProvideExpressionContexts_Vtbl;
}
unsafe impl ::windows::core::Interface for IProvideExpressionContexts {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c41_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IProvideExpressionContexts_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub EnumExpressionContexts: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppedec: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IRawEnumerator(::windows::core::IUnknown);
impl IRawEnumerator {
    pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Reset)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetNext(&self, name: ::core::option::Option<*mut ::windows::core::BSTR>, kind: ::core::option::Option<*mut SymbolKind>, value: ::core::option::Option<*mut ::core::option::Option<IModelObject>>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetNext)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(name.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(kind.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(value.unwrap_or(::std::ptr::null_mut()))).ok()
    }
}
::windows::core::interface_hierarchy!(IRawEnumerator, ::windows::core::IUnknown);
impl ::core::clone::Clone for IRawEnumerator {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IRawEnumerator {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IRawEnumerator {}
impl ::core::fmt::Debug for IRawEnumerator {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IRawEnumerator").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IRawEnumerator {
    type Vtable = IRawEnumerator_Vtbl;
}
unsafe impl ::windows::core::Interface for IRawEnumerator {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe13613f9_3a3c_40b5_8f48_1e5ebfb9b21b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRawEnumerator_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetNext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>, kind: *mut SymbolKind, value: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IRemoteDebugApplication(::windows::core::IUnknown);
impl IRemoteDebugApplication {
    pub unsafe fn ResumeFromBreakPoint<'a, P0>(&self, prptfocus: P0, bra: BREAKRESUMEACTION, era: ERRORRESUMEACTION) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IRemoteDebugApplicationThread>>,
    {
        (::windows::core::Vtable::vtable(self).ResumeFromBreakPoint)(::windows::core::Vtable::as_raw(self), prptfocus.into().abi(), bra, era).ok()
    }
    pub unsafe fn CauseBreak(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).CauseBreak)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn ConnectDebugger<'a, P0>(&self, pad: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IApplicationDebugger>>,
    {
        (::windows::core::Vtable::vtable(self).ConnectDebugger)(::windows::core::Vtable::as_raw(self), pad.into().abi()).ok()
    }
    pub unsafe fn DisconnectDebugger(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DisconnectDebugger)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetDebugger(&self) -> ::windows::core::Result<IApplicationDebugger> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetDebugger)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IApplicationDebugger>(result__)
    }
    pub unsafe fn CreateInstanceAtApplication<'a, P0>(&self, rclsid: *const ::windows::core::GUID, punkouter: P0, dwclscontext: u32, riid: *const ::windows::core::GUID) -> ::windows::core::Result<::windows::core::IUnknown>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateInstanceAtApplication)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(rclsid), punkouter.into().abi(), dwclscontext, ::core::mem::transmute(riid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::IUnknown>(result__)
    }
    pub unsafe fn QueryAlive(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).QueryAlive)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn EnumThreads(&self) -> ::windows::core::Result<IEnumRemoteDebugApplicationThreads> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumThreads)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumRemoteDebugApplicationThreads>(result__)
    }
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetRootNode(&self) -> ::windows::core::Result<IDebugApplicationNode> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetRootNode)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IDebugApplicationNode>(result__)
    }
    pub unsafe fn EnumGlobalExpressionContexts(&self) -> ::windows::core::Result<IEnumDebugExpressionContexts> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumGlobalExpressionContexts)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugExpressionContexts>(result__)
    }
}
::windows::core::interface_hierarchy!(IRemoteDebugApplication, ::windows::core::IUnknown);
impl ::core::clone::Clone for IRemoteDebugApplication {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IRemoteDebugApplication {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IRemoteDebugApplication {}
impl ::core::fmt::Debug for IRemoteDebugApplication {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IRemoteDebugApplication").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IRemoteDebugApplication {
    type Vtable = IRemoteDebugApplication_Vtbl;
}
unsafe impl ::windows::core::Interface for IRemoteDebugApplication {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c30_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRemoteDebugApplication_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub ResumeFromBreakPoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prptfocus: *mut ::core::ffi::c_void, bra: BREAKRESUMEACTION, era: ERRORRESUMEACTION) -> ::windows::core::HRESULT,
    pub CauseBreak: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub ConnectDebugger: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pad: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub DisconnectDebugger: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetDebugger: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pad: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub CreateInstanceAtApplication: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rclsid: *const ::windows::core::GUID, punkouter: *mut ::core::ffi::c_void, dwclscontext: u32, riid: *const ::windows::core::GUID, ppvobject: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub QueryAlive: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EnumThreads: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pperdat: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbstrname: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub GetRootNode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppdanroot: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EnumGlobalExpressionContexts: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppedec: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IRemoteDebugApplication110(::windows::core::IUnknown);
impl IRemoteDebugApplication110 {
    pub unsafe fn SetDebuggerOptions(&self, mask: SCRIPT_DEBUGGER_OPTIONS, value: SCRIPT_DEBUGGER_OPTIONS) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).SetDebuggerOptions)(::windows::core::Vtable::as_raw(self), mask, value).ok()
    }
    pub unsafe fn GetCurrentDebuggerOptions(&self) -> ::windows::core::Result<SCRIPT_DEBUGGER_OPTIONS> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCurrentDebuggerOptions)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<SCRIPT_DEBUGGER_OPTIONS>(result__)
    }
    pub unsafe fn GetMainThread(&self) -> ::windows::core::Result<IRemoteDebugApplicationThread> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetMainThread)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IRemoteDebugApplicationThread>(result__)
    }
}
::windows::core::interface_hierarchy!(IRemoteDebugApplication110, ::windows::core::IUnknown);
impl ::core::clone::Clone for IRemoteDebugApplication110 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IRemoteDebugApplication110 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IRemoteDebugApplication110 {}
impl ::core::fmt::Debug for IRemoteDebugApplication110 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IRemoteDebugApplication110").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IRemoteDebugApplication110 {
    type Vtable = IRemoteDebugApplication110_Vtbl;
}
unsafe impl ::windows::core::Interface for IRemoteDebugApplication110 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd5fe005b_2836_485e_b1f9_89d91aa24fd4);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRemoteDebugApplication110_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub SetDebuggerOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: SCRIPT_DEBUGGER_OPTIONS, value: SCRIPT_DEBUGGER_OPTIONS) -> ::windows::core::HRESULT,
    pub GetCurrentDebuggerOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pcurrentoptions: *mut SCRIPT_DEBUGGER_OPTIONS) -> ::windows::core::HRESULT,
    pub GetMainThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppthread: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IRemoteDebugApplicationEvents(::windows::core::IUnknown);
impl IRemoteDebugApplicationEvents {
    pub unsafe fn OnConnectDebugger<'a, P0>(&self, pad: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IApplicationDebugger>>,
    {
        (::windows::core::Vtable::vtable(self).OnConnectDebugger)(::windows::core::Vtable::as_raw(self), pad.into().abi()).ok()
    }
    pub unsafe fn OnDisconnectDebugger(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OnDisconnectDebugger)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn OnSetName<'a, P0>(&self, pstrname: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OnSetName)(::windows::core::Vtable::as_raw(self), pstrname.into()).ok()
    }
    pub unsafe fn OnDebugOutput<'a, P0>(&self, pstr: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).OnDebugOutput)(::windows::core::Vtable::as_raw(self), pstr.into()).ok()
    }
    pub unsafe fn OnClose(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).OnClose)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn OnEnterBreakPoint<'a, P0>(&self, prdat: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IRemoteDebugApplicationThread>>,
    {
        (::windows::core::Vtable::vtable(self).OnEnterBreakPoint)(::windows::core::Vtable::as_raw(self), prdat.into().abi()).ok()
    }
    pub unsafe fn OnLeaveBreakPoint<'a, P0>(&self, prdat: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IRemoteDebugApplicationThread>>,
    {
        (::windows::core::Vtable::vtable(self).OnLeaveBreakPoint)(::windows::core::Vtable::as_raw(self), prdat.into().abi()).ok()
    }
    pub unsafe fn OnCreateThread<'a, P0>(&self, prdat: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IRemoteDebugApplicationThread>>,
    {
        (::windows::core::Vtable::vtable(self).OnCreateThread)(::windows::core::Vtable::as_raw(self), prdat.into().abi()).ok()
    }
    pub unsafe fn OnDestroyThread<'a, P0>(&self, prdat: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IRemoteDebugApplicationThread>>,
    {
        (::windows::core::Vtable::vtable(self).OnDestroyThread)(::windows::core::Vtable::as_raw(self), prdat.into().abi()).ok()
    }
    pub unsafe fn OnBreakFlagChange<'a, P0>(&self, abf: u32, prdatsteppingthread: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IRemoteDebugApplicationThread>>,
    {
        (::windows::core::Vtable::vtable(self).OnBreakFlagChange)(::windows::core::Vtable::as_raw(self), abf, prdatsteppingthread.into().abi()).ok()
    }
}
::windows::core::interface_hierarchy!(IRemoteDebugApplicationEvents, ::windows::core::IUnknown);
impl ::core::clone::Clone for IRemoteDebugApplicationEvents {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IRemoteDebugApplicationEvents {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IRemoteDebugApplicationEvents {}
impl ::core::fmt::Debug for IRemoteDebugApplicationEvents {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IRemoteDebugApplicationEvents").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IRemoteDebugApplicationEvents {
    type Vtable = IRemoteDebugApplicationEvents_Vtbl;
}
unsafe impl ::windows::core::Interface for IRemoteDebugApplicationEvents {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c33_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRemoteDebugApplicationEvents_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub OnConnectDebugger: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pad: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnDisconnectDebugger: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnSetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub OnDebugOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstr: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub OnClose: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnEnterBreakPoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prdat: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnLeaveBreakPoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prdat: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnCreateThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prdat: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnDestroyThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prdat: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub OnBreakFlagChange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, abf: u32, prdatsteppingthread: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IRemoteDebugApplicationThread(::windows::core::IUnknown);
impl IRemoteDebugApplicationThread {
    pub unsafe fn GetSystemThreadId(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSystemThreadId)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetApplication(&self) -> ::windows::core::Result<IRemoteDebugApplication> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetApplication)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IRemoteDebugApplication>(result__)
    }
    pub unsafe fn EnumStackFrames(&self) -> ::windows::core::Result<IEnumDebugStackFrames> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).EnumStackFrames)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IEnumDebugStackFrames>(result__)
    }
    pub unsafe fn GetDescription(&self, pbstrdescription: *mut ::windows::core::BSTR, pbstrstate: *mut ::windows::core::BSTR) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetDescription)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pbstrdescription), ::core::mem::transmute(pbstrstate)).ok()
    }
    pub unsafe fn SetNextStatement<'a, P0, P1>(&self, pstackframe: P0, pcodecontext: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugStackFrame>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IDebugCodeContext>>,
    {
        (::windows::core::Vtable::vtable(self).SetNextStatement)(::windows::core::Vtable::as_raw(self), pstackframe.into().abi(), pcodecontext.into().abi()).ok()
    }
    pub unsafe fn GetState(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetState)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn Suspend(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Suspend)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn Resume(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Resume)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetSuspendCount(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSuspendCount)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
}
::windows::core::interface_hierarchy!(IRemoteDebugApplicationThread, ::windows::core::IUnknown);
impl ::core::clone::Clone for IRemoteDebugApplicationThread {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IRemoteDebugApplicationThread {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IRemoteDebugApplicationThread {}
impl ::core::fmt::Debug for IRemoteDebugApplicationThread {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IRemoteDebugApplicationThread").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IRemoteDebugApplicationThread {
    type Vtable = IRemoteDebugApplicationThread_Vtbl;
}
unsafe impl ::windows::core::Interface for IRemoteDebugApplicationThread {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c37_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRemoteDebugApplicationThread_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetSystemThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwthreadid: *mut u32) -> ::windows::core::HRESULT,
    pub GetApplication: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pprda: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub EnumStackFrames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppedsf: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbstrdescription: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>, pbstrstate: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub SetNextStatement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstackframe: *mut ::core::ffi::c_void, pcodecontext: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstate: *mut u32) -> ::windows::core::HRESULT,
    pub Suspend: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdwcount: *mut u32) -> ::windows::core::HRESULT,
    pub Resume: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdwcount: *mut u32) -> ::windows::core::HRESULT,
    pub GetSuspendCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdwcount: *mut u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IRemoteDebugCriticalErrorEvent110(::windows::core::IUnknown);
impl IRemoteDebugCriticalErrorEvent110 {
    pub unsafe fn GetErrorInfo(&self, pbstrsource: *mut ::windows::core::BSTR, pmessageid: *mut i32, pbstrmessage: *mut ::windows::core::BSTR, pplocation: *mut ::core::option::Option<IDebugDocumentContext>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetErrorInfo)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pbstrsource), ::core::mem::transmute(pmessageid), ::core::mem::transmute(pbstrmessage), ::core::mem::transmute(pplocation)).ok()
    }
}
::windows::core::interface_hierarchy!(IRemoteDebugCriticalErrorEvent110, ::windows::core::IUnknown);
impl ::core::clone::Clone for IRemoteDebugCriticalErrorEvent110 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IRemoteDebugCriticalErrorEvent110 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IRemoteDebugCriticalErrorEvent110 {}
impl ::core::fmt::Debug for IRemoteDebugCriticalErrorEvent110 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IRemoteDebugCriticalErrorEvent110").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IRemoteDebugCriticalErrorEvent110 {
    type Vtable = IRemoteDebugCriticalErrorEvent110_Vtbl;
}
unsafe impl ::windows::core::Interface for IRemoteDebugCriticalErrorEvent110 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2f69c611_6b14_47e8_9260_4bb7c52f504b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRemoteDebugCriticalErrorEvent110_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetErrorInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbstrsource: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>, pmessageid: *mut i32, pbstrmessage: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>, pplocation: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IRemoteDebugInfoEvent110(::windows::core::IUnknown);
impl IRemoteDebugInfoEvent110 {
    pub unsafe fn GetEventInfo(&self, pmessagetype: *mut DEBUG_EVENT_INFO_TYPE, pbstrmessage: *mut ::windows::core::BSTR, pbstrurl: *mut ::windows::core::BSTR, pplocation: *mut ::core::option::Option<IDebugDocumentContext>) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetEventInfo)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pmessagetype), ::core::mem::transmute(pbstrmessage), ::core::mem::transmute(pbstrurl), ::core::mem::transmute(pplocation)).ok()
    }
}
::windows::core::interface_hierarchy!(IRemoteDebugInfoEvent110, ::windows::core::IUnknown);
impl ::core::clone::Clone for IRemoteDebugInfoEvent110 {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IRemoteDebugInfoEvent110 {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IRemoteDebugInfoEvent110 {}
impl ::core::fmt::Debug for IRemoteDebugInfoEvent110 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IRemoteDebugInfoEvent110").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IRemoteDebugInfoEvent110 {
    type Vtable = IRemoteDebugInfoEvent110_Vtbl;
}
unsafe impl ::windows::core::Interface for IRemoteDebugInfoEvent110 {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9ff56bb6_eb89_4c0f_8823_cc2a4c0b7f26);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRemoteDebugInfoEvent110_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetEventInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pmessagetype: *mut DEBUG_EVENT_INFO_TYPE, pbstrmessage: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>, pbstrurl: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>, pplocation: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IScriptEntry(::windows::core::IUnknown);
impl IScriptEntry {
    pub unsafe fn Alive(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.Alive)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn Delete(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.Delete)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetParent(&self) -> ::windows::core::Result<IScriptNode> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetParent)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IScriptNode>(result__)
    }
    pub unsafe fn GetIndexInParent(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetIndexInParent)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCookie(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetCookie)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberOfChildren(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetNumberOfChildren)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetChild(&self, isn: u32) -> ::windows::core::Result<IScriptNode> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetChild)(::windows::core::Vtable::as_raw(self), isn, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IScriptNode>(result__)
    }
    pub unsafe fn GetLanguage(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetLanguage)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn CreateChildEntry<'a, P0>(&self, isn: u32, dwcookie: u32, pszdelimiter: P0) -> ::windows::core::Result<IScriptEntry>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CreateChildEntry)(::windows::core::Vtable::as_raw(self), isn, dwcookie, pszdelimiter.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IScriptEntry>(result__)
    }
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn CreateChildHandler<'a, P0, P1, P2, P3>(&self, pszdefaultname: P0, prgpsznames: &[::windows::core::PWSTR], pszevent: P1, pszdelimiter: P2, ptisignature: P3, imethodsignature: u32, isn: u32, dwcookie: u32) -> ::windows::core::Result<IScriptEntry>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
        P3: ::std::convert::Into<::windows::core::InParam<'a, super::super::Com::ITypeInfo>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.CreateChildHandler)(::windows::core::Vtable::as_raw(self), pszdefaultname.into(), ::core::mem::transmute(prgpsznames.as_ptr()), prgpsznames.len() as _, pszevent.into(), pszdelimiter.into(), ptisignature.into().abi(), imethodsignature, isn, dwcookie, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IScriptEntry>(result__)
    }
    pub unsafe fn GetText(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetText)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn SetText<'a, P0>(&self, psz: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetText)(::windows::core::Vtable::as_raw(self), psz.into()).ok()
    }
    pub unsafe fn GetBody(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetBody)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn SetBody<'a, P0>(&self, psz: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetBody)(::windows::core::Vtable::as_raw(self), psz.into()).ok()
    }
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn SetName<'a, P0>(&self, psz: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetName)(::windows::core::Vtable::as_raw(self), psz.into()).ok()
    }
    pub unsafe fn GetItemName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetItemName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn SetItemName<'a, P0>(&self, psz: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetItemName)(::windows::core::Vtable::as_raw(self), psz.into()).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn GetSignature(&self, ppti: *mut ::core::option::Option<super::super::Com::ITypeInfo>, pimethod: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetSignature)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(ppti), ::core::mem::transmute(pimethod)).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn SetSignature<'a, P0>(&self, pti: P0, imethod: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Com::ITypeInfo>>,
    {
        (::windows::core::Vtable::vtable(self).SetSignature)(::windows::core::Vtable::as_raw(self), pti.into().abi(), imethod).ok()
    }
    pub unsafe fn GetRange(&self, pichmin: *mut u32, pcch: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).GetRange)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pichmin), ::core::mem::transmute(pcch)).ok()
    }
}
::windows::core::interface_hierarchy!(IScriptEntry, ::windows::core::IUnknown, IScriptNode);
impl ::core::clone::Clone for IScriptEntry {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IScriptEntry {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IScriptEntry {}
impl ::core::fmt::Debug for IScriptEntry {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IScriptEntry").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IScriptEntry {
    type Vtable = IScriptEntry_Vtbl;
}
unsafe impl ::windows::core::Interface for IScriptEntry {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0aee2a95_bcbb_11d0_8c72_00c04fc2b085);
}
#[repr(C)]
#[doc(hidden)]
pub struct IScriptEntry_Vtbl {
    pub base__: IScriptNode_Vtbl,
    pub GetText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbstr: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub SetText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psz: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetBody: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbstr: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub SetBody: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psz: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbstr: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub SetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psz: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetItemName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbstr: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub SetItemName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psz: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Com")]
    pub GetSignature: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppti: *mut *mut ::core::ffi::c_void, pimethod: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    GetSignature: usize,
    #[cfg(feature = "Win32_System_Com")]
    pub SetSignature: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pti: *mut ::core::ffi::c_void, imethod: u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    SetSignature: usize,
    pub GetRange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pichmin: *mut u32, pcch: *mut u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IScriptInvocationContext(::windows::core::IUnknown);
impl IScriptInvocationContext {
    pub unsafe fn GetContextType(&self) -> ::windows::core::Result<SCRIPT_INVOCATION_CONTEXT_TYPE> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetContextType)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<SCRIPT_INVOCATION_CONTEXT_TYPE>(result__)
    }
    pub unsafe fn GetContextDescription(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetContextDescription)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn GetContextObject(&self) -> ::windows::core::Result<::windows::core::IUnknown> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetContextObject)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::IUnknown>(result__)
    }
}
::windows::core::interface_hierarchy!(IScriptInvocationContext, ::windows::core::IUnknown);
impl ::core::clone::Clone for IScriptInvocationContext {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IScriptInvocationContext {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IScriptInvocationContext {}
impl ::core::fmt::Debug for IScriptInvocationContext {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IScriptInvocationContext").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IScriptInvocationContext {
    type Vtable = IScriptInvocationContext_Vtbl;
}
unsafe impl ::windows::core::Interface for IScriptInvocationContext {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5d7741b7_af7e_4a2a_85e5_c77f4d0659fb);
}
#[repr(C)]
#[doc(hidden)]
pub struct IScriptInvocationContext_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetContextType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pinvocationcontexttype: *mut SCRIPT_INVOCATION_CONTEXT_TYPE) -> ::windows::core::HRESULT,
    pub GetContextDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdescription: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub GetContextObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppcontextobject: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IScriptNode(::windows::core::IUnknown);
impl IScriptNode {
    pub unsafe fn Alive(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Alive)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn Delete(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Delete)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetParent(&self) -> ::windows::core::Result<IScriptNode> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetParent)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IScriptNode>(result__)
    }
    pub unsafe fn GetIndexInParent(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetIndexInParent)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCookie(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetCookie)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberOfChildren(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetNumberOfChildren)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetChild(&self, isn: u32) -> ::windows::core::Result<IScriptNode> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetChild)(::windows::core::Vtable::as_raw(self), isn, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IScriptNode>(result__)
    }
    pub unsafe fn GetLanguage(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetLanguage)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn CreateChildEntry<'a, P0>(&self, isn: u32, dwcookie: u32, pszdelimiter: P0) -> ::windows::core::Result<IScriptEntry>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateChildEntry)(::windows::core::Vtable::as_raw(self), isn, dwcookie, pszdelimiter.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IScriptEntry>(result__)
    }
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn CreateChildHandler<'a, P0, P1, P2, P3>(&self, pszdefaultname: P0, prgpsznames: &[::windows::core::PWSTR], pszevent: P1, pszdelimiter: P2, ptisignature: P3, imethodsignature: u32, isn: u32, dwcookie: u32) -> ::windows::core::Result<IScriptEntry>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
        P3: ::std::convert::Into<::windows::core::InParam<'a, super::super::Com::ITypeInfo>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).CreateChildHandler)(::windows::core::Vtable::as_raw(self), pszdefaultname.into(), ::core::mem::transmute(prgpsznames.as_ptr()), prgpsznames.len() as _, pszevent.into(), pszdelimiter.into(), ptisignature.into().abi(), imethodsignature, isn, dwcookie, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IScriptEntry>(result__)
    }
}
::windows::core::interface_hierarchy!(IScriptNode, ::windows::core::IUnknown);
impl ::core::clone::Clone for IScriptNode {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IScriptNode {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IScriptNode {}
impl ::core::fmt::Debug for IScriptNode {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IScriptNode").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IScriptNode {
    type Vtable = IScriptNode_Vtbl;
}
unsafe impl ::windows::core::Interface for IScriptNode {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0aee2a94_bcbb_11d0_8c72_00c04fc2b085);
}
#[repr(C)]
#[doc(hidden)]
pub struct IScriptNode_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub Alive: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub Delete: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetParent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppsnparent: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetIndexInParent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pisn: *mut u32) -> ::windows::core::HRESULT,
    pub GetCookie: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdwcookie: *mut u32) -> ::windows::core::HRESULT,
    pub GetNumberOfChildren: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pcsn: *mut u32) -> ::windows::core::HRESULT,
    pub GetChild: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, isn: u32, ppsn: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    pub GetLanguage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbstr: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub CreateChildEntry: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, isn: u32, dwcookie: u32, pszdelimiter: ::windows::core::PCWSTR, ppse: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Com")]
    pub CreateChildHandler: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pszdefaultname: ::windows::core::PCWSTR, prgpsznames: *const ::windows::core::PWSTR, cpsznames: u32, pszevent: ::windows::core::PCWSTR, pszdelimiter: ::windows::core::PCWSTR, ptisignature: *mut ::core::ffi::c_void, imethodsignature: u32, isn: u32, dwcookie: u32, ppse: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    CreateChildHandler: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IScriptScriptlet(::windows::core::IUnknown);
impl IScriptScriptlet {
    pub unsafe fn Alive(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.base__.Alive)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn Delete(&self) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.base__.Delete)(::windows::core::Vtable::as_raw(self)).ok()
    }
    pub unsafe fn GetParent(&self) -> ::windows::core::Result<IScriptNode> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetParent)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IScriptNode>(result__)
    }
    pub unsafe fn GetIndexInParent(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetIndexInParent)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetCookie(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetCookie)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetNumberOfChildren(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetNumberOfChildren)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn GetChild(&self, isn: u32) -> ::windows::core::Result<IScriptNode> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetChild)(::windows::core::Vtable::as_raw(self), isn, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IScriptNode>(result__)
    }
    pub unsafe fn GetLanguage(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.GetLanguage)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn CreateChildEntry<'a, P0>(&self, isn: u32, dwcookie: u32, pszdelimiter: P0) -> ::windows::core::Result<IScriptEntry>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.CreateChildEntry)(::windows::core::Vtable::as_raw(self), isn, dwcookie, pszdelimiter.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IScriptEntry>(result__)
    }
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn CreateChildHandler<'a, P0, P1, P2, P3>(&self, pszdefaultname: P0, prgpsznames: &[::windows::core::PWSTR], pszevent: P1, pszdelimiter: P2, ptisignature: P3, imethodsignature: u32, isn: u32, dwcookie: u32) -> ::windows::core::Result<IScriptEntry>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
        P1: ::std::convert::Into<::windows::core::PCWSTR>,
        P2: ::std::convert::Into<::windows::core::PCWSTR>,
        P3: ::std::convert::Into<::windows::core::InParam<'a, super::super::Com::ITypeInfo>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.base__.CreateChildHandler)(::windows::core::Vtable::as_raw(self), pszdefaultname.into(), ::core::mem::transmute(prgpsznames.as_ptr()), prgpsznames.len() as _, pszevent.into(), pszdelimiter.into(), ptisignature.into().abi(), imethodsignature, isn, dwcookie, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<IScriptEntry>(result__)
    }
    pub unsafe fn GetText(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetText)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn SetText<'a, P0>(&self, psz: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).base__.SetText)(::windows::core::Vtable::as_raw(self), psz.into()).ok()
    }
    pub unsafe fn GetBody(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetBody)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn SetBody<'a, P0>(&self, psz: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).base__.SetBody)(::windows::core::Vtable::as_raw(self), psz.into()).ok()
    }
    pub unsafe fn GetName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn SetName<'a, P0>(&self, psz: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).base__.SetName)(::windows::core::Vtable::as_raw(self), psz.into()).ok()
    }
    pub unsafe fn GetItemName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).base__.GetItemName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn SetItemName<'a, P0>(&self, psz: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).base__.SetItemName)(::windows::core::Vtable::as_raw(self), psz.into()).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn GetSignature(&self, ppti: *mut ::core::option::Option<super::super::Com::ITypeInfo>, pimethod: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.GetSignature)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(ppti), ::core::mem::transmute(pimethod)).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn SetSignature<'a, P0>(&self, pti: P0, imethod: u32) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Com::ITypeInfo>>,
    {
        (::windows::core::Vtable::vtable(self).base__.SetSignature)(::windows::core::Vtable::as_raw(self), pti.into().abi(), imethod).ok()
    }
    pub unsafe fn GetRange(&self, pichmin: *mut u32, pcch: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).base__.GetRange)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pichmin), ::core::mem::transmute(pcch)).ok()
    }
    pub unsafe fn GetSubItemName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSubItemName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn SetSubItemName<'a, P0>(&self, psz: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSubItemName)(::windows::core::Vtable::as_raw(self), psz.into()).ok()
    }
    pub unsafe fn GetEventName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn SetEventName<'a, P0>(&self, psz: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetEventName)(::windows::core::Vtable::as_raw(self), psz.into()).ok()
    }
    pub unsafe fn GetSimpleEventName(&self) -> ::windows::core::Result<::windows::core::BSTR> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetSimpleEventName)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
    pub unsafe fn SetSimpleEventName<'a, P0>(&self, psz: P0) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).SetSimpleEventName)(::windows::core::Vtable::as_raw(self), psz.into()).ok()
    }
}
::windows::core::interface_hierarchy!(IScriptScriptlet, ::windows::core::IUnknown, IScriptNode, IScriptEntry);
impl ::core::clone::Clone for IScriptScriptlet {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IScriptScriptlet {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IScriptScriptlet {}
impl ::core::fmt::Debug for IScriptScriptlet {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IScriptScriptlet").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IScriptScriptlet {
    type Vtable = IScriptScriptlet_Vtbl;
}
unsafe impl ::windows::core::Interface for IScriptScriptlet {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0aee2a96_bcbb_11d0_8c72_00c04fc2b085);
}
#[repr(C)]
#[doc(hidden)]
pub struct IScriptScriptlet_Vtbl {
    pub base__: IScriptEntry_Vtbl,
    pub GetSubItemName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbstr: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub SetSubItemName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psz: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetEventName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbstr: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub SetEventName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psz: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
    pub GetSimpleEventName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbstr: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
    pub SetSimpleEventName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psz: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct ISimpleConnectionPoint(::windows::core::IUnknown);
impl ISimpleConnectionPoint {
    pub unsafe fn GetEventCount(&self) -> ::windows::core::Result<u32> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).GetEventCount)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn DescribeEvents(&self, ievent: u32, cevents: u32, prgid: *mut i32, prgbstr: *mut ::windows::core::BSTR, pceventsfetched: *mut u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).DescribeEvents)(::windows::core::Vtable::as_raw(self), ievent, cevents, ::core::mem::transmute(prgid), ::core::mem::transmute(prgbstr), ::core::mem::transmute(pceventsfetched)).ok()
    }
    #[doc = "*Required features: `\"Win32_System_Com\"`*"]
    #[cfg(feature = "Win32_System_Com")]
    pub unsafe fn Advise<'a, P0>(&self, pdisp: P0) -> ::windows::core::Result<u32>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Com::IDispatch>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).Advise)(::windows::core::Vtable::as_raw(self), pdisp.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<u32>(result__)
    }
    pub unsafe fn Unadvise(&self, dwcookie: u32) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).Unadvise)(::windows::core::Vtable::as_raw(self), dwcookie).ok()
    }
}
::windows::core::interface_hierarchy!(ISimpleConnectionPoint, ::windows::core::IUnknown);
impl ::core::clone::Clone for ISimpleConnectionPoint {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ISimpleConnectionPoint {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ISimpleConnectionPoint {}
impl ::core::fmt::Debug for ISimpleConnectionPoint {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ISimpleConnectionPoint").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for ISimpleConnectionPoint {
    type Vtable = ISimpleConnectionPoint_Vtbl;
}
unsafe impl ::windows::core::Interface for ISimpleConnectionPoint {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x51973c3e_cb0c_11d0_b5c9_00a0244a0e7a);
}
#[repr(C)]
#[doc(hidden)]
pub struct ISimpleConnectionPoint_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub GetEventCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pulcount: *mut u32) -> ::windows::core::HRESULT,
    pub DescribeEvents: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ievent: u32, cevents: u32, prgid: *mut i32, prgbstr: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>, pceventsfetched: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(feature = "Win32_System_Com")]
    pub Advise: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdisp: *mut ::core::ffi::c_void, pdwcookie: *mut u32) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_System_Com"))]
    Advise: usize,
    pub Unadvise: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwcookie: u32) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IStringDisplayableConcept(::windows::core::IUnknown);
impl IStringDisplayableConcept {
    pub unsafe fn ToDisplayString<'a, P0, P1>(&self, contextobject: P0, metadata: P1) -> ::windows::core::Result<::windows::core::BSTR>
    where
        P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, IKeyStore>>,
    {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).ToDisplayString)(::windows::core::Vtable::as_raw(self), contextobject.into().abi(), metadata.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::BSTR>(result__)
    }
}
::windows::core::interface_hierarchy!(IStringDisplayableConcept, ::windows::core::IUnknown);
impl ::core::clone::Clone for IStringDisplayableConcept {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IStringDisplayableConcept {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IStringDisplayableConcept {}
impl ::core::fmt::Debug for IStringDisplayableConcept {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IStringDisplayableConcept").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IStringDisplayableConcept {
    type Vtable = IStringDisplayableConcept_Vtbl;
}
unsafe impl ::windows::core::Interface for IStringDisplayableConcept {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd28e8d70_6c00_4205_940d_501016601ea3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IStringDisplayableConcept_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub ToDisplayString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, metadata: *mut ::core::ffi::c_void, displaystring: *mut ::core::mem::ManuallyDrop<::windows::core::BSTR>) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct ITridentEventSink(::windows::core::IUnknown);
impl ITridentEventSink {
    #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"]
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub unsafe fn FireEvent<'a, P0>(&self, pstrevent: P0, pdp: *const super::super::Com::DISPPARAMS, pvarres: *mut super::super::Com::VARIANT, pei: *mut super::super::Com::EXCEPINFO) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<::windows::core::PCWSTR>,
    {
        (::windows::core::Vtable::vtable(self).FireEvent)(::windows::core::Vtable::as_raw(self), pstrevent.into(), ::core::mem::transmute(pdp), ::core::mem::transmute(pvarres), ::core::mem::transmute(pei)).ok()
    }
}
::windows::core::interface_hierarchy!(ITridentEventSink, ::windows::core::IUnknown);
impl ::core::clone::Clone for ITridentEventSink {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for ITridentEventSink {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for ITridentEventSink {}
impl ::core::fmt::Debug for ITridentEventSink {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ITridentEventSink").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for ITridentEventSink {
    type Vtable = ITridentEventSink_Vtbl;
}
unsafe impl ::windows::core::Interface for ITridentEventSink {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1dc9ca50_06ef_11d2_8415_006008c3fbfc);
}
#[repr(C)]
#[doc(hidden)]
pub struct ITridentEventSink_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
    pub FireEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstrevent: ::windows::core::PCWSTR, pdp: *const super::super::Com::DISPPARAMS, pvarres: *mut ::core::mem::ManuallyDrop<super::super::Com::VARIANT>, pei: *mut ::core::mem::ManuallyDrop<super::super::Com::EXCEPINFO>) -> ::windows::core::HRESULT,
    #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole")))]
    FireEvent: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IWebAppDiagnosticsObjectInitialization(::windows::core::IUnknown);
impl IWebAppDiagnosticsObjectInitialization {
    #[doc = "*Required features: `\"Win32_Foundation\"`*"]
    #[cfg(feature = "Win32_Foundation")]
    pub unsafe fn Initialize<'a, P0, P1>(&self, hpassedhandle: P0, pdebugapplication: P1) -> ::windows::core::Result<()>
    where
        P0: ::std::convert::Into<super::super::super::Foundation::HANDLE_PTR>,
        P1: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>,
    {
        (::windows::core::Vtable::vtable(self).Initialize)(::windows::core::Vtable::as_raw(self), hpassedhandle.into(), pdebugapplication.into().abi()).ok()
    }
}
::windows::core::interface_hierarchy!(IWebAppDiagnosticsObjectInitialization, ::windows::core::IUnknown);
impl ::core::clone::Clone for IWebAppDiagnosticsObjectInitialization {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IWebAppDiagnosticsObjectInitialization {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IWebAppDiagnosticsObjectInitialization {}
impl ::core::fmt::Debug for IWebAppDiagnosticsObjectInitialization {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IWebAppDiagnosticsObjectInitialization").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IWebAppDiagnosticsObjectInitialization {
    type Vtable = IWebAppDiagnosticsObjectInitialization_Vtbl;
}
unsafe impl ::windows::core::Interface for IWebAppDiagnosticsObjectInitialization {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x16ff3a42_a5f5_432b_b625_8e8e16f57e15);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebAppDiagnosticsObjectInitialization_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    #[cfg(feature = "Win32_Foundation")]
    pub Initialize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hpassedhandle: super::super::super::Foundation::HANDLE_PTR, pdebugapplication: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
    #[cfg(not(feature = "Win32_Foundation"))]
    Initialize: usize,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
pub struct IWebAppDiagnosticsSetup(::windows::core::IUnknown);
impl IWebAppDiagnosticsSetup {
    pub unsafe fn DiagnosticsSupported(&self) -> ::windows::core::Result<i16> {
        let mut result__ = ::core::mem::MaybeUninit::zeroed();
        (::windows::core::Vtable::vtable(self).DiagnosticsSupported)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<i16>(result__)
    }
    pub unsafe fn CreateObjectWithSiteAtWebApp(&self, rclsid: *const ::windows::core::GUID, dwclscontext: u32, riid: *const ::windows::core::GUID, hpasstoobject: usize) -> ::windows::core::Result<()> {
        (::windows::core::Vtable::vtable(self).CreateObjectWithSiteAtWebApp)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(rclsid), dwclscontext, ::core::mem::transmute(riid), hpasstoobject).ok()
    }
}
::windows::core::interface_hierarchy!(IWebAppDiagnosticsSetup, ::windows::core::IUnknown);
impl ::core::clone::Clone for IWebAppDiagnosticsSetup {
    fn clone(&self) -> Self {
        Self(self.0.clone())
    }
}
impl ::core::cmp::PartialEq for IWebAppDiagnosticsSetup {
    fn eq(&self, other: &Self) -> bool {
        self.0 == other.0
    }
}
impl ::core::cmp::Eq for IWebAppDiagnosticsSetup {}
impl ::core::fmt::Debug for IWebAppDiagnosticsSetup {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IWebAppDiagnosticsSetup").field(&self.0).finish()
    }
}
unsafe impl ::windows::core::Vtable for IWebAppDiagnosticsSetup {
    type Vtable = IWebAppDiagnosticsSetup_Vtbl;
}
unsafe impl ::windows::core::Interface for IWebAppDiagnosticsSetup {
    const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x379bfbe1_c6c9_432a_93e1_6d17656c538c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IWebAppDiagnosticsSetup_Vtbl {
    pub base__: ::windows::core::IUnknown_Vtbl,
    pub DiagnosticsSupported: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pretval: *mut i16) -> ::windows::core::HRESULT,
    pub CreateObjectWithSiteAtWebApp: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rclsid: *const ::windows::core::GUID, dwclscontext: u32, riid: *const ::windows::core::GUID, hpasstoobject: usize) -> ::windows::core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ACTIVPROF_E_PROFILER_ABSENT: ::windows::core::HRESULT = ::windows::core::HRESULT(-2147220991i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ACTIVPROF_E_PROFILER_PRESENT: ::windows::core::HRESULT = ::windows::core::HRESULT(-2147220992i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ACTIVPROF_E_UNABLE_TO_APPLY_ACTION: ::windows::core::HRESULT = ::windows::core::HRESULT(-2147220990i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ADDRESS_TYPE_INDEX_NOT_FOUND: u32 = 11u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const API_VERSION_NUMBER: u32 = 12u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const APPBREAKFLAG_DEBUGGER_BLOCK: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const APPBREAKFLAG_DEBUGGER_HALT: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const APPBREAKFLAG_IN_BREAKPOINT: u32 = 2147483648u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const APPBREAKFLAG_NESTED: u32 = 131072u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const APPBREAKFLAG_STEP: u32 = 65536u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const APPBREAKFLAG_STEPTYPE_BYTECODE: u32 = 1048576u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const APPBREAKFLAG_STEPTYPE_MACHINE: u32 = 2097152u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const APPBREAKFLAG_STEPTYPE_MASK: u32 = 15728640u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const APPBREAKFLAG_STEPTYPE_SOURCE: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BIND_ALL_IMAGES: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BIND_CACHE_IMPORT_DLLS: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BIND_NO_BOUND_IMPORTS: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BIND_NO_UPDATE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BIND_REPORT_64BIT_VA: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CANNOT_ALLOCATE_MEMORY: u32 = 9u32;
pub const CATID_ActiveScript: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf0b7a1a1_9847_11cf_8f20_00805f2cd064);
pub const CATID_ActiveScriptAuthor: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0aee2a92_bcbb_11d0_8c72_00c04fc2b085);
pub const CATID_ActiveScriptEncode: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf0b7a1a3_9847_11cf_8f20_00805f2cd064);
pub const CATID_ActiveScriptParse: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf0b7a1a2_9847_11cf_8f20_00805f2cd064);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CBA_CHECK_ARM_MACHINE_THUMB_TYPE_OVERRIDE: u32 = 2147483648u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CBA_CHECK_ENGOPT_DISALLOW_NETWORK_PATHS: u32 = 1879048192u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CBA_DEBUG_INFO: u32 = 268435456u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CBA_DEFERRED_SYMBOL_LOAD_CANCEL: u32 = 7u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CBA_DEFERRED_SYMBOL_LOAD_COMPLETE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CBA_DEFERRED_SYMBOL_LOAD_FAILURE: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CBA_DEFERRED_SYMBOL_LOAD_PARTIAL: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CBA_DEFERRED_SYMBOL_LOAD_START: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CBA_DUPLICATE_SYMBOL: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CBA_ENGINE_PRESENT: u32 = 1610612736u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CBA_EVENT: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CBA_MAP_JIT_SYMBOL: u32 = 2684354560u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CBA_READ_MEMORY: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CBA_SET_OPTIONS: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CBA_SRCSRV_EVENT: u32 = 1073741824u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CBA_SRCSRV_INFO: u32 = 536870912u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CBA_SYMBOLS_UNLOADED: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CBA_UPDATE_STATUS_BAR: u32 = 1342177280u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CBA_XML_LOG: u32 = 2415919104u32;
pub const CDebugDocumentHelper: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x83b8bca6_687c_11d0_a405_00aa0060275c);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CERT_PE_IMAGE_DIGEST_DEBUG_INFO: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CERT_PE_IMAGE_DIGEST_NON_PE_INFO: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CERT_PE_IMAGE_DIGEST_RESOURCES: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CERT_SECTION_TYPE_ANY: u32 = 255u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CHECKSUM_MAPVIEW_FAILURE: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CHECKSUM_MAP_FAILURE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CHECKSUM_OPEN_FAILURE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CHECKSUM_SUCCESS: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CHECKSUM_UNICODE_FAILURE: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CROSS_PLATFORM_MAXIMUM_PROCESSORS: u32 = 2048u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CURRENT_KD_SECONDARY_VERSION: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_SIMULATION_EXDI: i32 = 1i32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_SIMULATION_NONE: i32 = 0i32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_VERS_FLAG_DATA: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_VERS_FLAG_HAL_IN_NTOS: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_VERS_FLAG_HSS: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_VERS_FLAG_MP: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_VERS_FLAG_NOMM: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_VERS_FLAG_PARTITIONS: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_VERS_FLAG_PTR64: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_ADDRESS_AT_END: u32 = 131072u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_ADDRESS_OF_FIELD: u32 = 65536u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_ARRAY: u32 = 32768u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_BLOCK_RECURSE: u32 = 2097152u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_CALL_FOR_EACH: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_COMPACT_OUT: u32 = 8192u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_COPY_TYPE_DATA: u32 = 262144u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_FIELD_ARRAY: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_FIELD_CALL_BEFORE_PRINT: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_FIELD_COPY_FIELD_DATA: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_FIELD_DEFAULT_STRING: u32 = 65536u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_FIELD_FULL_NAME: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_FIELD_GUID_STRING: u32 = 524288u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_FIELD_MULTI_STRING: u32 = 262144u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_FIELD_NO_CALLBACK_REQ: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_FIELD_NO_PRINT: u32 = 16384u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_FIELD_RECUR_ON_THIS: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_FIELD_RETURN_ADDRESS: u32 = 4096u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_FIELD_SIZE_IN_BITS: u32 = 8192u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_FIELD_UTF32_STRING: u32 = 1048576u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_FIELD_WCHAR_STRING: u32 = 131072u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_FUNCTION_FORMAT: u32 = 1048576u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_GET_SIZE_ONLY: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_LIST: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_MATCH_SIZE: u32 = 4194304u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_NO_INDENT: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_NO_OFFSET: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_NO_PRINT: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_READ_PHYSICAL: u32 = 524288u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_DUMP_VERBOSE: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_FRAME_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_FRAME_IGNORE_INLINE: u32 = 4294967295u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_RETURN_SUBTYPES: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_RETURN_TYPE: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBG_RETURN_TYPE_VALUES: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBHHEADER_PDBGUID: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ADDSYNTHMOD_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ADDSYNTHMOD_ZEROBASE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ADDSYNTHSYM_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ANY_ID: u32 = 4294967295u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ASMOPT_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ASMOPT_IGNORE_OUTPUT_WIDTH: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ASMOPT_NO_CODE_BYTES: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ASMOPT_SOURCE_LINE_NUMBER: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ASMOPT_VERBOSE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ATTACH_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ATTACH_EXDI_DRIVER: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ATTACH_EXISTING: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ATTACH_INSTALL_DRIVER: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ATTACH_INVASIVE_RESUME_PROCESS: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ATTACH_KERNEL_CONNECTION: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ATTACH_LOCAL_KERNEL: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ATTACH_NONINVASIVE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ATTACH_NONINVASIVE_ALLOW_PARTIAL: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ATTACH_NONINVASIVE_NO_SUSPEND: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_BREAKPOINT_ADDER_ONLY: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_BREAKPOINT_CODE: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_BREAKPOINT_DATA: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_BREAKPOINT_DEFERRED: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_BREAKPOINT_ENABLED: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_BREAKPOINT_GO_ONLY: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_BREAKPOINT_INLINE: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_BREAKPOINT_ONE_SHOT: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_BREAKPOINT_TIME: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_BREAK_EXECUTE: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_BREAK_IO: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_BREAK_READ: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_BREAK_WRITE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_ALL: u32 = 4294967295u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_DATA: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_REFRESH: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_REFRESH_ADDBREAKPOINT: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_REFRESH_EVALUATE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_REFRESH_EXECUTE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_REFRESH_EXECUTECOMMANDFILE: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_REFRESH_INLINESTEP: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_REFRESH_INLINESTEP_PSEUDO: u32 = 17u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_REFRESH_REMOVEBREAKPOINT: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_REFRESH_SETSCOPE: u32 = 12u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_REFRESH_SETSCOPEFRAMEBYINDEX: u32 = 13u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_REFRESH_SETSCOPEFROMJITDEBUGINFO: u32 = 14u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_REFRESH_SETSCOPEFROMSTOREDEVENT: u32 = 15u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_REFRESH_SETVALUE: u32 = 10u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_REFRESH_SETVALUE2: u32 = 11u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_REFRESH_WRITEPHYSICAL: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_REFRESH_WRITEPHYSICAL2: u32 = 9u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_REFRESH_WRITEVIRTUAL: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_REFRESH_WRITEVIRTUALUNCACHED: u32 = 7u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CDS_REGISTERS: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CES_ALL: u32 = 4294967295u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CES_ASSEMBLY_OPTIONS: u32 = 4096u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CES_BREAKPOINTS: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CES_CODE_LEVEL: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CES_CURRENT_THREAD: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CES_EFFECTIVE_PROCESSOR: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CES_ENGINE_OPTIONS: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CES_EVENT_FILTERS: u32 = 256u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CES_EXECUTION_STATUS: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CES_EXPRESSION_SYNTAX: u32 = 8192u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CES_EXTENSIONS: u32 = 1024u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CES_LOG_FILE: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CES_PROCESS_OPTIONS: u32 = 512u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CES_RADIX: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CES_SYSTEMS: u32 = 2048u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CES_TEXT_REPLACEMENTS: u32 = 16384u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CLASS_IMAGE_FILE: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CLASS_KERNEL: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CLASS_UNINITIALIZED: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CLASS_USER_WINDOWS: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CLIENT_CDB: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CLIENT_KD: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CLIENT_NTKD: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CLIENT_NTSD: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CLIENT_UNKNOWN: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CLIENT_VSINT: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CLIENT_WINDBG: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CLIENT_WINIDE: u32 = 7u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CMDEX_ADD_EVENT_STRING: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CMDEX_INVALID: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CMDEX_RESET_EVENT_STRINGS: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_COMMAND_EXCEPTION_ID: u32 = 3688893886u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CONNECT_SESSION_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CONNECT_SESSION_NO_ANNOUNCE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CONNECT_SESSION_NO_VERSION: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CSS_ALL: u32 = 4294967295u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CSS_COLLAPSE_CHILDREN: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CSS_LOADS: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CSS_PATHS: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CSS_SCOPE: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CSS_SYMBOL_OPTIONS: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CSS_TYPE_OPTIONS: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CSS_UNLOADS: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CURRENT_DEFAULT: u32 = 15u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CURRENT_DISASM: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CURRENT_REGISTERS: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CURRENT_SOURCE_LINE: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_CURRENT_SYMBOL: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_BASE_TRANSLATION_VIRTUAL_OFFSET: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_BreakpointWithStatusAddr: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_CmNtCSDVersionAddr: u32 = 616u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_DumpAttributes: u32 = 100072u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_DumpFormatVersion: u32 = 100040u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_DumpMmStorage: u32 = 100064u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_DumpPowerState: u32 = 100056u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_DumpWriterStatus: u32 = 100032u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_DumpWriterVersion: u32 = 100048u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_EtwpDebuggerData: u32 = 816u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_ExpNumberOfPagedPoolsAddr: u32 = 112u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_ExpPagedPoolDescriptorAddr: u32 = 104u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_ExpSystemResourcesListAddr: u32 = 96u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_IopErrorLogListHeadAddr: u32 = 144u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_KPCR_OFFSET: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_KPRCB_OFFSET: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_KTHREAD_OFFSET: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_KdPrintBufferSizeAddr: u32 = 720u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_KdPrintCircularBufferAddr: u32 = 480u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_KdPrintCircularBufferEndAddr: u32 = 488u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_KdPrintCircularBufferPtrAddr: u32 = 712u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_KdPrintRolloverCountAddr: u32 = 504u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_KdPrintWritePointerAddr: u32 = 496u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_KeBugCheckCallbackListHeadAddr: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_KeTimeIncrementAddr: u32 = 120u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_KeUserCallbackDispatcherAddr: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_KernBase: u32 = 24u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_KernelVerifierAddr: u32 = 576u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_KiBugcheckDataAddr: u32 = 136u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_KiCallUserModeAddr: u32 = 56u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_KiNormalSystemCall: u32 = 528u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_KiProcessorBlockAddr: u32 = 536u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmAllocatedNonPagedPoolAddr: u32 = 592u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmAvailablePagesAddr: u32 = 424u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmBadPagesDetected: u32 = 800u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmDriverCommitAddr: u32 = 352u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmExtendedCommitAddr: u32 = 376u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmFreePageListHeadAddr: u32 = 392u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmHighestPhysicalPageAddr: u32 = 240u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmHighestUserAddressAddr: u32 = 456u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmLastUnloadedDriverAddr: u32 = 552u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmLoadedUserImageListAddr: u32 = 512u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmLowestPhysicalPageAddr: u32 = 232u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmMaximumNonPagedPoolInBytesAddr: u32 = 256u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmModifiedNoWritePageListHeadAddr: u32 = 416u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmModifiedPageListHeadAddr: u32 = 408u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmNonPagedPoolEndAddr: u32 = 280u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmNonPagedPoolStartAddr: u32 = 272u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmNonPagedSystemStartAddr: u32 = 264u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmNumberOfPagingFilesAddr: u32 = 224u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmNumberOfPhysicalPagesAddr: u32 = 248u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmPageSize: u32 = 312u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmPagedPoolCommitAddr: u32 = 368u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmPagedPoolEndAddr: u32 = 296u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmPagedPoolInformationAddr: u32 = 304u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmPagedPoolStartAddr: u32 = 288u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmPeakCommitmentAddr: u32 = 600u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmPfnDatabaseAddr: u32 = 192u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmPhysicalMemoryBlockAddr: u32 = 624u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmProcessCommitAddr: u32 = 360u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmResidentAvailablePagesAddr: u32 = 432u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmSessionBase: u32 = 632u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmSessionSize: u32 = 640u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmSharedCommitAddr: u32 = 344u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmSizeOfPagedPoolInBytesAddr: u32 = 320u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmSpecialPoolTagAddr: u32 = 568u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmStandbyPageListHeadAddr: u32 = 400u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmSubsectionBaseAddr: u32 = 216u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmSystemCacheEndAddr: u32 = 176u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmSystemCacheStartAddr: u32 = 168u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmSystemCacheWsAddr: u32 = 184u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmSystemParentTablePage: u32 = 648u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmSystemPtesEndAddr: u32 = 208u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmSystemPtesStartAddr: u32 = 200u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmSystemRangeStartAddr: u32 = 464u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmTotalCommitLimitAddr: u32 = 328u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmTotalCommitLimitMaximumAddr: u32 = 608u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmTotalCommittedPagesAddr: u32 = 336u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmTriageActionTakenAddr: u32 = 560u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmUnloadedDriversAddr: u32 = 544u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmUserProbeAddressAddr: u32 = 472u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmVerifierDataAddr: u32 = 584u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmVirtualTranslationBase: u32 = 656u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_MmZeroedPageListHeadAddr: u32 = 384u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_NonPagedPoolDescriptorAddr: u32 = 448u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_NtBuildLabAddr: u32 = 520u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_ObpRootDirectoryObjectAddr: u32 = 152u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_ObpTypeObjectTypeAddr: u32 = 160u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_OffsetEprocessDirectoryTableBase: u32 = 686u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_OffsetEprocessParentCID: u32 = 684u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_OffsetEprocessPeb: u32 = 682u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_OffsetKThreadApcProcess: u32 = 672u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_OffsetKThreadBStore: u32 = 676u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_OffsetKThreadBStoreLimit: u32 = 678u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_OffsetKThreadInitialStack: u32 = 670u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_OffsetKThreadKernelStack: u32 = 668u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_OffsetKThreadNextProcessor: u32 = 664u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_OffsetKThreadState: u32 = 674u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_OffsetKThreadTeb: u32 = 666u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_OffsetPrcbCpuType: u32 = 696u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_OffsetPrcbCurrentThread: u32 = 692u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_OffsetPrcbDpcRoutine: u32 = 690u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_OffsetPrcbMhz: u32 = 694u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_OffsetPrcbNumber: u32 = 702u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_OffsetPrcbProcessorState: u32 = 700u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_OffsetPrcbVendorString: u32 = 698u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_PROCESSOR_IDENTIFICATION: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_PROCESSOR_SPEED: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_PaeEnabled: u32 = 100000u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_PoolTrackTableAddr: u32 = 440u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_ProductType: u32 = 100016u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_PsActiveProcessHeadAddr: u32 = 80u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_PsLoadedModuleListAddr: u32 = 72u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_PspCidTableAddr: u32 = 88u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_PteBase: u32 = 864u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_SPACE_BUS_DATA: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_SPACE_CONTROL: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_SPACE_COUNT: u32 = 7u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_SPACE_DEBUGGER_DATA: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_SPACE_IO: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_SPACE_MSR: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_SPACE_PHYSICAL: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_SPACE_VIRTUAL: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_SavedContextAddr: u32 = 40u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_SharedUserData: u32 = 100008u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_SizeEProcess: u32 = 680u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_SizeEThread: u32 = 704u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_SizePrcb: u32 = 688u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DATA_SuiteMask: u32 = 100024u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DISASM_EFFECTIVE_ADDRESS: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DISASM_MATCHING_SYMBOLS: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DISASM_SOURCE_FILE_NAME: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DISASM_SOURCE_LINE_NUMBER: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DUMP_ACTIVE: u32 = 1030u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DUMP_DEFAULT: u32 = 1025u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DUMP_FILE_BASE: u32 = 4294967295u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DUMP_FILE_LOAD_FAILED_INDEX: u32 = 4294967295u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DUMP_FILE_ORIGINAL_CAB_INDEX: u32 = 4294967294u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DUMP_FILE_PAGE_FILE_DUMP: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DUMP_FULL: u32 = 1026u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DUMP_IMAGE_FILE: u32 = 1027u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DUMP_SMALL: u32 = 1024u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DUMP_TRACE_LOG: u32 = 1028u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_DUMP_WINDOWS_CE: u32 = 1029u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ECREATE_PROCESS_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ECREATE_PROCESS_INHERIT_HANDLES: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ECREATE_PROCESS_USE_IMPLICIT_COMMAND_LINE: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ECREATE_PROCESS_USE_VERIFIER_FLAGS: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EINDEX_FROM_CURRENT: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EINDEX_FROM_END: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EINDEX_FROM_START: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EINDEX_NAME: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_END_ACTIVE_DETACH: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_END_ACTIVE_TERMINATE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_END_DISCONNECT: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_END_PASSIVE: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_END_REENTRANT: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_ALL: u32 = 15728639u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_ALLOW_NETWORK_PATHS: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_ALLOW_READ_ONLY_BREAKPOINTS: u32 = 1024u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_DEBUGGING_SENSITIVE_DATA: u32 = 4194304u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_DISABLESQM: u32 = 524288u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_DISABLE_EXECUTION_COMMANDS: u32 = 65536u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_DISABLE_MANAGED_SUPPORT: u32 = 16384u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_DISABLE_MODULE_SYMBOL_LOAD: u32 = 32768u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_DISABLE_STEPLINES_OPTIONS: u32 = 2097152u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_DISALLOW_IMAGE_FILE_MAPPING: u32 = 131072u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_DISALLOW_NETWORK_PATHS: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_DISALLOW_SHELL_COMMANDS: u32 = 4096u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_FAIL_INCOMPLETE_INFORMATION: u32 = 512u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_FINAL_BREAK: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_IGNORE_DBGHELP_VERSION: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_IGNORE_EXTENSION_VERSIONS: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_IGNORE_LOADER_EXCEPTIONS: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_INITIAL_BREAK: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_INITIAL_MODULE_BREAK: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_KD_QUIET_MODE: u32 = 8192u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_NO_EXECUTE_REPEAT: u32 = 256u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_PREFER_DML: u32 = 262144u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_PREFER_TRACE_FILES: u32 = 8388608u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_ENGOPT_SYNCHRONIZE_BREAKPOINTS: u32 = 2048u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EVENT_BREAKPOINT: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EVENT_CHANGE_DEBUGGEE_STATE: u32 = 1024u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EVENT_CHANGE_ENGINE_STATE: u32 = 2048u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EVENT_CHANGE_SYMBOL_STATE: u32 = 4096u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EVENT_CREATE_PROCESS: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EVENT_CREATE_THREAD: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EVENT_EXCEPTION: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EVENT_EXIT_PROCESS: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EVENT_EXIT_THREAD: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EVENT_LOAD_MODULE: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EVENT_SERVICE_EXCEPTION: u32 = 8192u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EVENT_SESSION_STATUS: u32 = 512u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EVENT_SYSTEM_ERROR: u32 = 256u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EVENT_UNLOAD_MODULE: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXECUTE_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXECUTE_ECHO: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXECUTE_EVENT: u32 = 2048u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXECUTE_EXTENSION: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXECUTE_HOTKEY: u32 = 1024u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXECUTE_INTERNAL: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXECUTE_MENU: u32 = 512u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXECUTE_NOT_LOGGED: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXECUTE_NO_REPEAT: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXECUTE_SCRIPT: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXECUTE_TOOLBAR: u32 = 256u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXECUTE_USER_CLICKED: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXECUTE_USER_TYPED: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXEC_FLAGS_NONBLOCK: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXPR_CPLUSPLUS: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXPR_MASM: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXTENSION_AT_ENGINE: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXTINIT_HAS_COMMAND_HELP: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXT_PVALUE_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXT_PVTYPE_IS_POINTER: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXT_PVTYPE_IS_VALUE: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_EXT_QVALUE_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FILTER_BREAK: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FILTER_CREATE_PROCESS: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FILTER_CREATE_THREAD: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FILTER_DEBUGGEE_OUTPUT: u32 = 9u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FILTER_EXIT_PROCESS: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FILTER_EXIT_THREAD: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FILTER_GO_HANDLED: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FILTER_GO_NOT_HANDLED: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FILTER_IGNORE: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FILTER_INITIAL_BREAKPOINT: u32 = 7u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FILTER_INITIAL_MODULE_LOAD: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FILTER_LOAD_MODULE: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FILTER_OUTPUT: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FILTER_REMOVE: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FILTER_SECOND_CHANCE_BREAK: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FILTER_SYSTEM_ERROR: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FILTER_UNLOAD_MODULE: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FIND_SOURCE_BEST_MATCH: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FIND_SOURCE_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FIND_SOURCE_FULL_PATH: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FIND_SOURCE_NO_SRCSRV: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FIND_SOURCE_TOKEN_LOOKUP: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FIND_SOURCE_WITH_CHECKSUM: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FIND_SOURCE_WITH_CHECKSUM_STRICT: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_CAB_SECONDARY_ALL_IMAGES: u32 = 268435456u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_CAB_SECONDARY_FILES: u32 = 1073741824u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_NO_OVERWRITE: u32 = 2147483648u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_ADD_AVX_XSTATE_CONTEXT: u32 = 131072u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_CODE_SEGMENTS: u32 = 4096u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_DATA_SEGMENTS: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_FILTER_MEMORY: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_FILTER_PATHS: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_FILTER_TRIAGE: u32 = 65536u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_FULL_AUXILIARY_STATE: u32 = 16384u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_FULL_MEMORY: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_FULL_MEMORY_INFO: u32 = 1024u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_HANDLE_DATA: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_IGNORE_INACCESSIBLE_MEM: u32 = 134217728u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_INDIRECT_MEMORY: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_IPT_TRACE: u32 = 262144u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_MODULE_HEADERS: u32 = 32768u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_NO_AUXILIARY_STATE: u32 = 8192u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_NO_OPTIONAL_DATA: u32 = 512u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_PRIVATE_READ_WRITE_MEMORY: u32 = 256u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_PROCESS_THREAD_DATA: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_SCAN_PARTIAL_PAGES: u32 = 268435456u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_THREAD_INFO: u32 = 2048u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_USER_SMALL_UNLOADED_MODULES: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FORMAT_WRITE_CAB: u32 = 536870912u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FRAME_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_FRAME_IGNORE_INLINE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GETFNENT_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GETFNENT_RAW_ENTRY_ONLY: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GETMOD_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GETMOD_NO_LOADED_MODULES: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GETMOD_NO_UNLOADED_MODULES: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GET_PROC_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GET_PROC_FULL_MATCH: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GET_PROC_ONLY_MATCH: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GET_PROC_SERVICE_NAME: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GET_TEXT_COMPLETIONS_IS_DOT_COMMAND: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GET_TEXT_COMPLETIONS_IS_EXTENSION_COMMAND: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GET_TEXT_COMPLETIONS_IS_SYMBOL: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GET_TEXT_COMPLETIONS_NO_DOT_COMMANDS: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GET_TEXT_COMPLETIONS_NO_EXTENSION_COMMANDS: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GET_TEXT_COMPLETIONS_NO_SYMBOLS: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GSEL_ALLOW_HIGHER: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GSEL_ALLOW_LOWER: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GSEL_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GSEL_INLINE_CALLSITE: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GSEL_NEAREST_ONLY: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_GSEL_NO_SYMBOL_LOADS: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_HANDLE_DATA_TYPE_ALL_HANDLE_OPERATIONS: u32 = 10u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_HANDLE_DATA_TYPE_BASIC: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_HANDLE_DATA_TYPE_HANDLE_COUNT: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_HANDLE_DATA_TYPE_MINI_EVENT_1: u32 = 13u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_HANDLE_DATA_TYPE_MINI_MUTANT_1: u32 = 7u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_HANDLE_DATA_TYPE_MINI_MUTANT_2: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_HANDLE_DATA_TYPE_MINI_PROCESS_1: u32 = 11u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_HANDLE_DATA_TYPE_MINI_PROCESS_2: u32 = 12u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_HANDLE_DATA_TYPE_MINI_SECTION_1: u32 = 14u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_HANDLE_DATA_TYPE_MINI_SEMAPHORE_1: u32 = 15u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_HANDLE_DATA_TYPE_MINI_THREAD_1: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_HANDLE_DATA_TYPE_OBJECT_NAME: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_HANDLE_DATA_TYPE_OBJECT_NAME_WIDE: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_HANDLE_DATA_TYPE_PER_HANDLE_OPERATIONS: u32 = 9u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_HANDLE_DATA_TYPE_TYPE_NAME: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_HANDLE_DATA_TYPE_TYPE_NAME_WIDE: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_INTERRUPT_ACTIVE: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_INTERRUPT_EXIT: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_INTERRUPT_PASSIVE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_IOUTPUT_ADDR_TRANSLATE: u32 = 134217728u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_IOUTPUT_BREAKPOINT: u32 = 536870912u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_IOUTPUT_EVENT: u32 = 268435456u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_IOUTPUT_KD_PROTOCOL: u32 = 2147483648u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_IOUTPUT_REMOTING: u32 = 1073741824u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_KERNEL_ACTIVE_DUMP: u32 = 1030u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_KERNEL_CONNECTION: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_KERNEL_DUMP: u32 = 1025u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_KERNEL_EXDI_DRIVER: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_KERNEL_FULL_DUMP: u32 = 1026u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_KERNEL_IDNA: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_KERNEL_INSTALL_DRIVER: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_KERNEL_LOCAL: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_KERNEL_REPT: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_KERNEL_SMALL_DUMP: u32 = 1024u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_KERNEL_TRACE_LOG: u32 = 1028u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_KNOWN_STRUCT_GET_NAMES: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_KNOWN_STRUCT_GET_SINGLE_LINE_OUTPUT: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_KNOWN_STRUCT_SUPPRESS_TYPE_NAME: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_LEVEL_ASSEMBLY: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_LEVEL_SOURCE: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_LIVE_USER_NON_INVASIVE: u32 = 33u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_LOG_APPEND: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_LOG_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_LOG_DML: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_LOG_UNICODE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MANAGED_ALLOWED: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MANAGED_DISABLED: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MANAGED_DLL_LOADED: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MANRESET_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MANRESET_LOAD_DLL: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MANSTR_LOADED_SUPPORT_DLL: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MANSTR_LOAD_STATUS: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MANSTR_NONE: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MODNAME_IMAGE: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MODNAME_LOADED_IMAGE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MODNAME_MAPPED_IMAGE: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MODNAME_MODULE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MODNAME_SYMBOL_FILE: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MODULE_EXE_MODULE: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MODULE_EXPLICIT: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MODULE_LOADED: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MODULE_SECONDARY: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MODULE_SYM_BAD_CHECKSUM: u32 = 65536u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MODULE_SYNTHETIC: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MODULE_UNLOADED: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_MODULE_USER_MODE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_NOTIFY_SESSION_ACCESSIBLE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_NOTIFY_SESSION_ACTIVE: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_NOTIFY_SESSION_INACCESSIBLE: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_NOTIFY_SESSION_INACTIVE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OFFSINFO_VIRTUAL_SOURCE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCBF_COMBINED_EXPLICIT_FLUSH: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCBF_DML_HAS_SPECIAL_CHARACTERS: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCBF_DML_HAS_TAGS: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCBI_ANY_FORMAT: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCBI_DML: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCBI_EXPLICIT_FLUSH: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCBI_TEXT: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCB_DML: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCB_EXPLICIT_FLUSH: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCB_TEXT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCTL_ALL_CLIENTS: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCTL_ALL_OTHER_CLIENTS: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCTL_AMBIENT: u32 = 4294967295u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCTL_AMBIENT_DML: u32 = 4294967294u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCTL_AMBIENT_TEXT: u32 = 4294967295u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCTL_DML: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCTL_IGNORE: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCTL_LOG_ONLY: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCTL_NOT_LOGGED: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCTL_OVERRIDE_MASK: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCTL_SEND_MASK: u32 = 7u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTCTL_THIS_CLIENT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_DEBUGGEE: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_DEBUGGEE_PROMPT: u32 = 256u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_ERROR: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_EXTENSION_WARNING: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_IDENTITY_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_NAME_END: ::windows::core::PCSTR = ::windows::s!("**NAME**");
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_NAME_END_T: ::windows::core::PCWSTR = ::windows::w!("**NAME**");
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_NAME_END_WIDE: ::windows::core::PCWSTR = ::windows::w!("**NAME**");
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_NORMAL: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_OFFSET_END: ::windows::core::PCSTR = ::windows::s!("**OFF**");
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_OFFSET_END_T: ::windows::core::PCWSTR = ::windows::w!("**OFF**");
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_OFFSET_END_WIDE: ::windows::core::PCWSTR = ::windows::w!("**OFF**");
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_PROMPT: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_PROMPT_REGISTERS: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_STATUS: u32 = 1024u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_SYMBOLS: u32 = 512u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_SYMBOLS_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_SYMBOLS_NO_NAMES: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_SYMBOLS_NO_OFFSETS: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_SYMBOLS_NO_TYPES: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_SYMBOLS_NO_VALUES: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_TYPE_END: ::windows::core::PCSTR = ::windows::s!("**TYPE**");
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_TYPE_END_T: ::windows::core::PCWSTR = ::windows::w!("**TYPE**");
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_TYPE_END_WIDE: ::windows::core::PCWSTR = ::windows::w!("**TYPE**");
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_VALUE_END: ::windows::core::PCSTR = ::windows::s!("**VALUE**");
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_VALUE_END_T: ::windows::core::PCWSTR = ::windows::w!("**VALUE**");
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_VALUE_END_WIDE: ::windows::core::PCWSTR = ::windows::w!("**VALUE**");
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_VERBOSE: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_WARNING: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTPUT_XML: u32 = 2048u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTSYM_ALLOW_DISPLACEMENT: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTSYM_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTSYM_FORCE_OFFSET: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTSYM_SOURCE_LINE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTTYPE_ADDRESS_AT_END: u32 = 131072u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTTYPE_ADDRESS_OF_FIELD: u32 = 65536u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTTYPE_BLOCK_RECURSE: u32 = 2097152u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTTYPE_COMPACT_OUTPUT: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTTYPE_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTTYPE_NO_INDENT: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTTYPE_NO_OFFSET: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUTTYPE_VERBOSE: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_OUT_TEXT_REPL_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_PHYSICAL_CACHED: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_PHYSICAL_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_PHYSICAL_UNCACHED: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_PHYSICAL_WRITE_COMBINED: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_PROCESS_DETACH_ON_EXIT: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_PROCESS_ONLY_THIS_PROCESS: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_PROC_DESC_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_PROC_DESC_NO_COMMAND_LINE: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_PROC_DESC_NO_MTS_PACKAGES: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_PROC_DESC_NO_PATHS: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_PROC_DESC_NO_SERVICES: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_PROC_DESC_NO_SESSION_ID: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_PROC_DESC_NO_USER_NAME: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_PROC_DESC_WITH_PACKAGEFAMILY: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REGISTERS_ALL: u32 = 7u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REGISTERS_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REGISTERS_FLOAT: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REGISTERS_INT32: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REGISTERS_INT64: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REGISTER_SUB_REGISTER: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REGSRC_DEBUGGEE: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REGSRC_EXPLICIT: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REGSRC_FRAME: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_ADD_CACHED_SYMBOL_INFO: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_CLOSE_TOKEN: u32 = 30u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_CURRENT_OUTPUT_CALLBACKS_ARE_DML_AWARE: u32 = 19u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_DUPLICATE_TOKEN: u32 = 28u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_EXT_TYPED_DATA_ANSI: u32 = 12u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_GET_ADDITIONAL_CREATE_OPTIONS: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_GET_CACHED_SYMBOL_INFO: u32 = 15u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_GET_CAPTURED_EVENT_CODE_OFFSET: u32 = 10u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_GET_DUMP_HEADER: u32 = 21u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_GET_EXTENSION_SEARCH_PATH_WIDE: u32 = 13u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_GET_INSTRUMENTATION_VERSION: u32 = 37u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_GET_MODULE_ARCHITECTURE: u32 = 38u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_GET_OFFSET_UNWIND_INFORMATION: u32 = 20u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_GET_TEXT_COMPLETIONS_ANSI: u32 = 18u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_GET_TEXT_COMPLETIONS_WIDE: u32 = 14u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_GET_WIN32_MAJOR_MINOR_VERSIONS: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_INLINE_QUERY: u32 = 35u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_MIDORI: u32 = 23u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_MISC_INFORMATION: u32 = 25u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_OPEN_PROCESS_TOKEN: u32 = 26u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_OPEN_THREAD_TOKEN: u32 = 27u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_PROCESS_DESCRIPTORS: u32 = 24u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_QUERY_INFO_TOKEN: u32 = 29u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_READ_CAPTURED_EVENT_CODE_STREAM: u32 = 11u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_READ_USER_MINIDUMP_STREAM: u32 = 7u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_REMOVE_CACHED_SYMBOL_INFO: u32 = 17u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_RESUME_THREAD: u32 = 34u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_SET_ADDITIONAL_CREATE_OPTIONS: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_SET_DUMP_HEADER: u32 = 22u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_SET_LOCAL_IMPLICIT_COMMAND_LINE: u32 = 9u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_SOURCE_PATH_HAS_SOURCE_SERVER: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_TARGET_CAN_DETACH: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_TARGET_EXCEPTION_CONTEXT: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_TARGET_EXCEPTION_RECORD: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_TARGET_EXCEPTION_THREAD: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_TL_INSTRUMENTATION_AWARE: u32 = 36u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_WOW_MODULE: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_REQUEST_WOW_PROCESS: u32 = 31u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SCOPE_GROUP_ALL: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SCOPE_GROUP_ARGUMENTS: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SCOPE_GROUP_BY_DATAMODEL: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SCOPE_GROUP_LOCALS: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SERVERS_ALL: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SERVERS_DEBUGGER: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SERVERS_PROCESS: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SESSION_ACTIVE: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SESSION_END: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SESSION_END_SESSION_ACTIVE_DETACH: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SESSION_END_SESSION_ACTIVE_TERMINATE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SESSION_END_SESSION_PASSIVE: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SESSION_FAILURE: u32 = 7u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SESSION_HIBERNATE: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SESSION_REBOOT: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SOURCE_IS_STATEMENT: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SRCFILE_SYMBOL_CHECKSUMINFO: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SRCFILE_SYMBOL_TOKEN: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SRCFILE_SYMBOL_TOKEN_SOURCE_COMMAND_WIDE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STACK_ARGUMENTS: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STACK_COLUMN_NAMES: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STACK_DML: u32 = 2048u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STACK_FRAME_ADDRESSES: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STACK_FRAME_ADDRESSES_RA_ONLY: u32 = 256u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STACK_FRAME_ARCH: u32 = 16384u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STACK_FRAME_MEMORY_USAGE: u32 = 512u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STACK_FRAME_NUMBERS: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STACK_FRAME_OFFSETS: u32 = 4096u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STACK_FUNCTION_INFO: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STACK_NONVOLATILE_REGISTERS: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STACK_PARAMETERS: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STACK_PARAMETERS_NEWLINE: u32 = 1024u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STACK_PROVIDER: u32 = 8192u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STACK_SOURCE_LINE: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_BREAK: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_GO: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_GO_HANDLED: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_GO_NOT_HANDLED: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_IGNORE_EVENT: u32 = 9u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_INSIDE_WAIT: u64 = 4294967296u64;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_MASK: u32 = 31u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_NO_CHANGE: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_NO_DEBUGGEE: u32 = 7u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_OUT_OF_SYNC: u32 = 15u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_RESTART_REQUESTED: u32 = 10u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_REVERSE_GO: u32 = 11u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_REVERSE_STEP_BRANCH: u32 = 12u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_REVERSE_STEP_INTO: u32 = 14u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_REVERSE_STEP_OVER: u32 = 13u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_STEP_BRANCH: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_STEP_INTO: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_STEP_OVER: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_TIMEOUT: u32 = 17u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_WAIT_INPUT: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_STATUS_WAIT_TIMEOUT: u64 = 8589934592u64;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMBOL_EXPANDED: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMBOL_EXPANSION_LEVEL_MASK: u32 = 15u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMBOL_IS_ARGUMENT: u32 = 256u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMBOL_IS_ARRAY: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMBOL_IS_FLOAT: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMBOL_IS_LOCAL: u32 = 512u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMBOL_READ_ONLY: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMENT_IS_CODE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMENT_IS_DATA: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMENT_IS_LOCAL: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMENT_IS_MANAGED: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMENT_IS_PARAMETER: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMENT_IS_SYNTHETIC: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMINFO_BREAKPOINT_SOURCE_LINE: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMINFO_GET_MODULE_SYMBOL_NAMES_AND_OFFSETS: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMINFO_GET_SYMBOL_NAME_BY_OFFSET_AND_TAG_WIDE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMINFO_IMAGEHLP_MODULEW64: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMTYPE_CODEVIEW: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMTYPE_COFF: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMTYPE_DEFERRED: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMTYPE_DIA: u32 = 7u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMTYPE_EXPORT: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMTYPE_NONE: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMTYPE_PDB: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYMTYPE_SYM: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYSOBJINFO_CURRENT_PROCESS_COOKIE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYSOBJINFO_THREAD_BASIC_INFORMATION: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYSOBJINFO_THREAD_NAME_WIDE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYSVERSTR_BUILD: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_SYSVERSTR_SERVICE_PACK: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TBINFO_AFFINITY: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TBINFO_ALL: u32 = 63u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TBINFO_EXIT_STATUS: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TBINFO_PRIORITY: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TBINFO_PRIORITY_CLASS: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TBINFO_START_OFFSET: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TBINFO_TIMES: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TEXT_ALLOWBREAKPOINTS: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TEXT_ALLOWERRORREPORT: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TEXT_EVALUATETOCODECONTEXT: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TEXT_ISEXPRESSION: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TEXT_ISNONUSERCODE: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TEXT_NOSIDEEFFECTS: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TEXT_RETURNVALUE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TYPED_DATA_IS_IN_MEMORY: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TYPED_DATA_PHYSICAL_CACHED: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TYPED_DATA_PHYSICAL_DEFAULT: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TYPED_DATA_PHYSICAL_MEMORY: u32 = 14u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TYPED_DATA_PHYSICAL_UNCACHED: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TYPED_DATA_PHYSICAL_WRITE_COMBINED: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TYPEOPTS_FORCERADIX_OUTPUT: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TYPEOPTS_LONGSTATUS_DISPLAY: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TYPEOPTS_MATCH_MAXSIZE: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_TYPEOPTS_UNICODE_DISPLAY: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_USER_WINDOWS_DUMP: u32 = 1025u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_USER_WINDOWS_DUMP_WINDOWS_CE: u32 = 1029u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_USER_WINDOWS_IDNA: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_USER_WINDOWS_PROCESS: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_USER_WINDOWS_PROCESS_SERVER: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_USER_WINDOWS_REPT: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_USER_WINDOWS_SMALL_DUMP: u32 = 1024u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_VALUE_FLOAT128: u32 = 9u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_VALUE_FLOAT32: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_VALUE_FLOAT64: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_VALUE_FLOAT80: u32 = 7u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_VALUE_FLOAT82: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_VALUE_INT16: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_VALUE_INT32: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_VALUE_INT64: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_VALUE_INT8: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_VALUE_INVALID: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_VALUE_TYPES: u32 = 12u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_VALUE_VECTOR128: u32 = 11u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_VALUE_VECTOR64: u32 = 10u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_VSEARCH_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_VSEARCH_WRITABLE_ONLY: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_VSOURCE_DEBUGGEE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_VSOURCE_DUMP_WITHOUT_MEMINFO: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_VSOURCE_INVALID: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_VSOURCE_MAPPED_IMAGE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEBUG_WAIT_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DMP_CONTEXT_RECORD_SIZE_32: u32 = 1200u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DMP_CONTEXT_RECORD_SIZE_64: u32 = 3000u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DMP_HEADER_COMMENT_SIZE: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DMP_PHYSICAL_MEMORY_BLOCK_SIZE_32: u32 = 700u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DMP_PHYSICAL_MEMORY_BLOCK_SIZE_64: u32 = 700u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DMP_RESERVED_0_SIZE_32: u32 = 1760u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DMP_RESERVED_0_SIZE_64: u32 = 4008u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DMP_RESERVED_2_SIZE_32: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DMP_RESERVED_3_SIZE_32: u32 = 56u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DSLFLAG_MISMATCHED_DBG: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DSLFLAG_MISMATCHED_PDB: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DUMP_SUMMARY_VALID_CURRENT_USER_VA: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DUMP_SUMMARY_VALID_KERNEL_VA: u32 = 1u32;
pub const DebugHelper: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0bfcc060_8c1d_11d0_accd_00aa0060275c);
pub const DefaultDebugSessionProvider: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x834128a2_51f4_11d0_8f20_00805f2cd064);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ERROR_DBG_CANCELLED: u32 = 3221226695u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ERROR_DBG_TIMEOUT: u32 = 3221226932u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ERROR_IMAGE_NOT_STRIPPED: u32 = 34816u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ERROR_NO_DBG_POINTER: u32 = 34817u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ERROR_NO_PDB_POINTER: u32 = 34818u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ESLFLAG_FULLPATH: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ESLFLAG_INLINE_SITE: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ESLFLAG_NEAREST: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ESLFLAG_NEXT: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ESLFLAG_PREV: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EVENT_SRCSPEW: u32 = 100u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EVENT_SRCSPEW_END: u32 = 199u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EVENT_SRCSPEW_START: u32 = 100u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXIT_ON_CONTROLC: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_API_VERSION_NUMBER: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_API_VERSION_NUMBER32: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_API_VERSION_NUMBER64: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_FIND_FILE_ALLOW_GIVEN_PATH: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_OUTPUT_VER: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDF_PHYSICAL_CACHED: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDF_PHYSICAL_DEFAULT: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDF_PHYSICAL_MEMORY: u32 = 14u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDF_PHYSICAL_UNCACHED: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDF_PHYSICAL_WRITE_COMBINED: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const E_JsDEBUG_INVALID_MEMORY_ADDRESS: ::windows::core::HRESULT = ::windows::core::HRESULT(-1916338171i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const E_JsDEBUG_MISMATCHED_RUNTIME: ::windows::core::HRESULT = ::windows::core::HRESULT(-1916338175i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const E_JsDEBUG_OUTSIDE_OF_VM: ::windows::core::HRESULT = ::windows::core::HRESULT(-1916338172i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const E_JsDEBUG_RUNTIME_NOT_IN_DEBUG_MODE: ::windows::core::HRESULT = ::windows::core::HRESULT(-1916338169i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const E_JsDEBUG_SOURCE_LOCATION_NOT_FOUND: ::windows::core::HRESULT = ::windows::core::HRESULT(-1916338170i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const E_JsDEBUG_UNKNOWN_THREAD: ::windows::core::HRESULT = ::windows::core::HRESULT(-1916338174i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_JsDEBUG: u32 = 3527u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FIELDS_DID_NOT_MATCH: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FLAG_ENGINE_PRESENT: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FLAG_ENGOPT_DISALLOW_NETWORK_PATHS: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FLAG_OVERRIDE_ARM_MACHINE_TYPE: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const GETATTRFLAG_HUMANTEXT: u32 = 32768u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const GETATTRFLAG_THIS: u32 = 256u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const GETATTRTYPE_DEPSCAN: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const GETATTRTYPE_NORMAL: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_DISASSEMBLE_BUFFER: u32 = 44u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_DUMP_SYMBOL_INFO: u32 = 22u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_FIND_FILE: u32 = 40u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_GET_ANY_MODULE_IN_RANGE: u32 = 45u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_GET_BUS_DATA: u32 = 20u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_GET_CACHE_SIZE: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_GET_CLR_DATA_INTERFACE: u32 = 38u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_GET_CONTEXT_EX: u32 = 48u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_GET_CURRENT_PROCESS: u32 = 26u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_GET_CURRENT_PROCESS_HANDLE: u32 = 28u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_GET_CURRENT_THREAD: u32 = 25u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_GET_DEBUGGER_DATA: u32 = 14u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_GET_EXCEPTION_RECORD: u32 = 18u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_GET_EXPRESSION_EX: u32 = 30u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_GET_INPUT_LINE: u32 = 29u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_GET_KERNEL_VERSION: u32 = 15u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_GET_PEB_ADDRESS: u32 = 129u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_GET_SET_SYMPATH: u32 = 17u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_GET_TEB_ADDRESS: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_GET_THREAD_OS_INFO: u32 = 37u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_GET_TYPE_SIZE: u32 = 27u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_IS_PTR64: u32 = 19u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_KD_CONTEXT: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_KSTACK_HELP: u32 = 10u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_LOWMEM_CHECK: u32 = 23u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_MATCH_PATTERN_A: u32 = 39u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_OBSOLETE_PLACEHOLDER_36: u32 = 36u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_PHYSICAL_TO_VIRTUAL: u32 = 47u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_POINTER_SEARCH_PHYSICAL: u32 = 35u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_QUERY_TARGET_INTERFACE: u32 = 42u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_READ_CONTROL_SPACE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_READ_IO_SPACE: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_READ_IO_SPACE_EX: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_READ_MSR: u32 = 12u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_READ_PHYSICAL: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_READ_PHYSICAL_WITH_FLAGS: u32 = 33u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_RELOAD_SYMBOLS: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_SEARCH_MEMORY: u32 = 24u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_SET_BUS_DATA: u32 = 21u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_SET_THREAD: u32 = 11u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_TRANSLATE_VIRTUAL_TO_PHYSICAL: u32 = 31u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_TYPED_DATA: u32 = 43u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_TYPED_DATA_OBSOLETE: u32 = 41u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_VIRTUAL_TO_PHYSICAL: u32 = 46u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_WRITE_CONTROL_SPACE: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_WRITE_IO_SPACE: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_WRITE_IO_SPACE_EX: u32 = 9u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_WRITE_MSR: u32 = 13u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_WRITE_PHYSICAL: u32 = 7u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IG_WRITE_PHYSICAL_WITH_FLAGS: u32 = 34u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_MODULE_REGION_ADDITIONAL: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_MODULE_REGION_ALL: u32 = 255u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_MODULE_REGION_DLLBASE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_MODULE_REGION_DLLRANGE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_MODULE_REGION_JIT: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_RMAP_BIG_ENDIAN: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_RMAP_FIXUP_ARM64X: u32 = 268435456u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_RMAP_FIXUP_IMAGEBASE: u32 = 2147483648u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_RMAP_IGNORE_MISCOMPARE: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_RMAP_LOAD_RW_DATA_SECTIONS: u32 = 536870912u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_RMAP_MAPPED_FLAT: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_RMAP_OMIT_SHARED_RW_DATA_SECTIONS: u32 = 1073741824u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_SYMBOL_FUNCTION: u32 = 2048u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_SYMBOL_INFO_CONSTANT: u32 = 256u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_SYMBOL_INFO_FRAMERELATIVE: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_SYMBOL_INFO_LOCAL: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_SYMBOL_INFO_PARAMETER: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_SYMBOL_INFO_REGISTER: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_SYMBOL_INFO_REGRELATIVE: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_SYMBOL_INFO_TLSRELATIVE: u32 = 16384u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_SYMBOL_INFO_VALUEPRESENT: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_SYMBOL_THUNK: u32 = 8192u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_SYMBOL_VIRTUAL: u32 = 4096u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INCORRECT_VERSION_INFO: u32 = 7u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INLINE_FRAME_CONTEXT_IGNORE: u32 = 4294967295u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INLINE_FRAME_CONTEXT_INIT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INSUFFICIENT_SPACE_TO_COPY: u32 = 10u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INTERFACESAFE_FOR_UNTRUSTED_CALLER: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INTERFACESAFE_FOR_UNTRUSTED_DATA: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INTERFACE_USES_DISPEX: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INTERFACE_USES_SECURITY_MANAGER: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IOCTL_IPMI_INTERNAL_RECORD_SEL_EVENT: u32 = 2232320u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IPMI_IOCTL_INDEX: u32 = 1024u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IPMI_OS_SEL_RECORD_MASK: u32 = 65535u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IPMI_OS_SEL_RECORD_VERSION: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IPMI_OS_SEL_RECORD_VERSION_1: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KD_SECONDARY_VERSION_AMD64_CONTEXT: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KD_SECONDARY_VERSION_AMD64_OBSOLETE_CONTEXT_1: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KD_SECONDARY_VERSION_AMD64_OBSOLETE_CONTEXT_2: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KD_SECONDARY_VERSION_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MAX_SYM_NAME: u32 = 2000u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MEMORY_READ_ERROR: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_MISC1_PROCESSOR_POWER_INFO: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_MISC3_PROCESS_EXECUTE_FLAGS: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_MISC3_PROCESS_INTEGRITY: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_MISC3_PROTECTED_PROCESS: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_MISC3_TIMEZONE: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_MISC4_BUILDSTRING: u32 = 256u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_MISC5_PROCESS_COOKIE: u32 = 512u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_PROCESS_VM_COUNTERS: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_PROCESS_VM_COUNTERS_EX: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_PROCESS_VM_COUNTERS_EX2: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_PROCESS_VM_COUNTERS_JOB: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_PROCESS_VM_COUNTERS_VIRTUALSIZE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_SYSMEMINFO1_BASICPERF: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_SYSMEMINFO1_FILECACHE_TRANSITIONREPURPOSECOUNT_FLAGS: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_SYSMEMINFO1_PERF_CCTOTALDIRTYPAGES_CCDIRTYPAGETHRESHOLD: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_SYSMEMINFO1_PERF_RESIDENTAVAILABLEPAGES_SHAREDCOMMITPAGES: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_VERSION: u32 = 42899u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MODULE_ORDERS_LOADTIME: u32 = 268435456u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MODULE_ORDERS_MASK: u32 = 4026531840u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MODULE_ORDERS_MODULENAME: u32 = 536870912u32;
pub const MachineDebugManager_DEBUG: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x49769cec_3a55_4bb0_b697_88fede77e8ea);
pub const MachineDebugManager_RETAIL: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0c0a3666_30c9_11d0_8f20_00805f2cd064);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NULL_FIELD_NAME: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NULL_SYM_DUMP_PARAM: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NUM_SSRVOPTS: u32 = 32u32;
pub const OID_JSSIP: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x06c9e010_38ce_11d4_a2a3_00104bd35090);
pub const OID_VBSSIP: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1629f04e_2799_4db5_8fe5_ace10f17ebab);
pub const OID_WSFSIP: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x1a610570_38ce_11d4_a2a3_00104bd35090);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PHYS_FLAG_CACHED: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PHYS_FLAG_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PHYS_FLAG_UNCACHED: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PHYS_FLAG_WRITE_COMBINED: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_NAME_ID_UNAVAILABLE: u32 = 4294967295u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PTR_SEARCH_NO_SYMBOL_CHECK: u32 = 2147483648u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PTR_SEARCH_PHYS_ALL_HITS: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PTR_SEARCH_PHYS_PTE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PTR_SEARCH_PHYS_RANGE_CHECK_ONLY: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PTR_SEARCH_PHYS_SIZE_SHIFT: u32 = 3u32;
pub const ProcessDebugManager: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x78a51822_51f4_11d0_8f20_00805f2cd064);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const RESTORE_LAST_ERROR_NAME: ::windows::core::PCWSTR = ::windows::w!("RestoreLastError");
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const RESTORE_LAST_ERROR_NAME_A: ::windows::core::PCSTR = ::windows::s!("RestoreLastError");
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const RESTORE_LAST_ERROR_NAME_W: ::windows::core::PCWSTR = ::windows::w!("RestoreLastError");
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTINFO_ITYPEINFO: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTINFO_IUNKNOWN: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTINTERRUPT_DEBUG: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTINTERRUPT_RAISEEXCEPTION: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTITEM_CODEONLY: u32 = 512u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTITEM_GLOBALMEMBERS: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTITEM_ISPERSISTENT: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTITEM_ISSOURCE: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTITEM_ISVISIBLE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTITEM_NOCODE: u32 = 1024u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROC_HOSTMANAGESSOURCE: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROC_IMPLICIT_PARENTS: u32 = 512u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROC_IMPLICIT_THIS: u32 = 256u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROC_ISEXPRESSION: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROC_ISXDOMAIN: u32 = 1024u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROP_ABBREVIATE_GLOBALNAME_RESOLUTION: u32 = 1879048194u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROP_BUILDNUMBER: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROP_CATCHEXCEPTION: u32 = 4097u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROP_CONVERSIONLCID: u32 = 4098u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROP_DEBUGGER: u32 = 4352u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROP_DELAYEDEVENTSINKING: u32 = 4096u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROP_GCCONTROLSOFTCLOSE: u32 = 8192u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROP_HACK_FIBERSUPPORT: u32 = 1879048192u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROP_HACK_TRIDENTEVENTSINK: u32 = 1879048193u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROP_HOSTKEEPALIVE: u32 = 1879048196u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROP_HOSTSTACKREQUIRED: u32 = 4099u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROP_INTEGERMODE: u32 = 12288u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROP_INVOKEVERSIONING: u32 = 16384u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROP_JITDEBUG: u32 = 4353u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROP_MAJORVERSION: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROP_MINORVERSION: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROP_NAME: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROP_SCRIPTSAREFULLYTRUSTED: u32 = 4100u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTPROP_STRINGCOMPAREINSTANCE: u32 = 12289u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTSTAT_INSTRUCTION_COUNT: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTSTAT_INTSTRUCTION_TIME: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTSTAT_STATEMENT_COUNT: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTSTAT_TOTAL_TIME: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTTEXT_DELAYEXECUTION: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTTEXT_HOSTMANAGESSOURCE: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTTEXT_ISEXPRESSION: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTTEXT_ISNONUSERCODE: u32 = 512u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTTEXT_ISPERSISTENT: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTTEXT_ISVISIBLE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTTEXT_ISXDOMAIN: u32 = 256u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTTYPELIB_ISCONTROL: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTTYPELIB_ISPERSISTENT: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPT_CMPL_COMMIT: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPT_CMPL_ENUMLIST: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPT_CMPL_ENUM_TRIGGER: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPT_CMPL_GLOBALLIST: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPT_CMPL_MEMBERLIST: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPT_CMPL_MEMBER_TRIGGER: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPT_CMPL_NOLIST: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPT_CMPL_PARAMTIP: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPT_CMPL_PARAM_TRIGGER: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPT_ENCODE_DEFAULT_LANGUAGE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPT_ENCODE_NO_ASP_LANGUAGE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPT_ENCODE_SECTION: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPT_E_PROPAGATE: i32 = -2147352318i32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPT_E_RECORDED: i32 = -2040119292i32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPT_E_REPORTED: i32 = -2147352319i32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SOURCETEXT_ATTR_COMMENT: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SOURCETEXT_ATTR_FUNCTION_START: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SOURCETEXT_ATTR_HUMANTEXT: u32 = 32768u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SOURCETEXT_ATTR_IDENTIFIER: u32 = 256u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SOURCETEXT_ATTR_KEYWORD: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SOURCETEXT_ATTR_MEMBERLOOKUP: u32 = 512u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SOURCETEXT_ATTR_NONSOURCE: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SOURCETEXT_ATTR_NUMBER: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SOURCETEXT_ATTR_OPERATOR: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SOURCETEXT_ATTR_STRING: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SOURCETEXT_ATTR_THIS: u32 = 1024u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SPLITSYM_EXTRACT_ALL: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SPLITSYM_REMOVE_PRIVATE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SPLITSYM_SYMBOLPATH_IS_SRC: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVACTION_CHECKSUMSTATUS: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVACTION_EVENT: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVACTION_EVENTW: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVACTION_HTTPSTATUS: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVACTION_QUERYCANCEL: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVACTION_SIZE: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVACTION_TRACE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVACTION_XMLOUTPUT: u32 = 7u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_CALLBACK: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_CALLBACKW: u32 = 65536u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_DISABLE_PING_HOST: u32 = 67108864u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_DISABLE_TIMEOUT: u32 = 134217728u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_DONT_UNCOMPRESS: u32 = 33554432u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_DOWNSTREAM_STORE: u32 = 8192u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_ENABLE_COMM_MSG: u32 = 268435456u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_FAVOR_COMPRESSED: u32 = 2097152u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_FLAT_DEFAULT_STORE: u32 = 131072u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_GETPATH: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_MAX: u32 = 2147483648u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_MESSAGE: u32 = 524288u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_NOCOPY: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_OLDGUIDPTR: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_OVERWRITE: u32 = 16384u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_PARAMTYPE: u32 = 256u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_PARENTWIN: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_PROXY: u32 = 4096u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_PROXYW: u32 = 262144u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_RESETTOU: u32 = 32768u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_RETRY_APP_HANG: u32 = 2147483648u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_SECURE: u32 = 512u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_SERVICE: u32 = 1048576u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_SETCONTEXT: u32 = 2048u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_STRING: u32 = 4194304u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_TRACE: u32 = 1024u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_UNATTENDED: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_URI_FILTER: u32 = 536870912u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_URI_TIERS: u32 = 1073741824u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_WINHTTP: u32 = 8388608u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_WININET: u32 = 16777216u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVURI_ALL: u32 = 255u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVURI_COMPRESSED: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVURI_FILEPTR: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVURI_HTTP_COMPRESSED: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVURI_HTTP_FILEPTR: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVURI_HTTP_MASK: u32 = 15u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVURI_HTTP_NORMAL: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVURI_NORMAL: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVURI_UNC_COMPRESSED: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVURI_UNC_FILEPTR: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVURI_UNC_MASK: u32 = 240u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVURI_UNC_NORMAL: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const STACK_FRAME_TYPE_IGNORE: u32 = 255u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const STACK_FRAME_TYPE_INIT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const STACK_FRAME_TYPE_INLINE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const STACK_FRAME_TYPE_RA: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const STACK_FRAME_TYPE_STACK: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMBOL_TYPE_INDEX_NOT_FOUND: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMBOL_TYPE_INFO_NOT_FOUND: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMENUM_OPTIONS_DEFAULT: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMENUM_OPTIONS_INLINE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_FIXUP_ARM64X: u32 = 16777216u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_FUNC_NO_RETURN: u32 = 1048576u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_GLOBAL: u32 = 33554432u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_NULL: u32 = 524288u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_PUBLIC_CODE: u32 = 4194304u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_REGREL_ALIASINDIR: u32 = 8388608u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_RESET: u32 = 2147483648u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_SYNTHETIC_ZEROBASE: u32 = 2097152u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMF_CONSTANT: u32 = 256u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMF_EXPORT: u32 = 512u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMF_FORWARDER: u32 = 1024u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMF_FRAMEREL: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMF_FUNCTION: u32 = 2048u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMF_LOCAL: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMF_OMAP_GENERATED: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMF_OMAP_MODIFIED: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMF_PARAMETER: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMF_REGISTER: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMF_REGREL: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMF_THUNK: u32 = 8192u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMF_TLSREL: u32 = 16384u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMF_VIRTUAL: u32 = 4096u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_ALLOW_ABSOLUTE_SYMBOLS: u32 = 2048u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_ALLOW_ZERO_ADDRESS: u32 = 16777216u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_AUTO_PUBLICS: u32 = 65536u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_CASE_INSENSITIVE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_DEBUG: u32 = 2147483648u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_DEFERRED_LOADS: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_DISABLE_FAST_SYMBOLS: u32 = 268435456u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_DISABLE_SRVSTAR_ON_STARTUP: u32 = 1073741824u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_DISABLE_SYMSRV_AUTODETECT: u32 = 33554432u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_DISABLE_SYMSRV_TIMEOUT: u32 = 536870912u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_EXACT_SYMBOLS: u32 = 1024u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_FAIL_CRITICAL_ERRORS: u32 = 512u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_FAVOR_COMPRESSED: u32 = 8388608u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_FLAT_DIRECTORY: u32 = 4194304u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_IGNORE_CVREC: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_IGNORE_IMAGEDIR: u32 = 2097152u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_IGNORE_NT_SYMPATH: u32 = 4096u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_INCLUDE_32BIT_MODULES: u32 = 8192u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_LOAD_ANYTHING: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_LOAD_LINES: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_NO_CPP: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_NO_IMAGE_SEARCH: u32 = 131072u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_NO_PROMPTS: u32 = 524288u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_NO_PUBLICS: u32 = 32768u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_NO_UNQUALIFIED_LOADS: u32 = 256u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_OMAP_FIND_NEAREST: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_OVERWRITE: u32 = 1048576u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_PUBLICS_ONLY: u32 = 16384u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_READONLY_CACHE: u32 = 67108864u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_SECURE: u32 = 262144u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_SYMPATH_LAST: u32 = 134217728u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_UNDNAME: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMSEARCH_ALLITEMS: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMSEARCH_GLOBALSONLY: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMSEARCH_MASKOBJS: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMSEARCH_RECURSE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMSRV_VERSION: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMSTOREOPT_ALT_INDEX: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMSTOREOPT_UNICODE: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYM_INLINE_COMP_DIFFERENT: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYM_INLINE_COMP_ERROR: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYM_INLINE_COMP_IDENTICAL: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYM_INLINE_COMP_STEPIN: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYM_INLINE_COMP_STEPOUT: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYM_INLINE_COMP_STEPOVER: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYM_STKWALK_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYM_STKWALK_FORCE_FRAMEPTR: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYM_STKWALK_ZEROEXTEND_PTRS: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TEXT_DOC_ATTR_READONLY: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TEXT_DOC_ATTR_TYPE_PRIMARY: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TEXT_DOC_ATTR_TYPE_SCRIPT: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TEXT_DOC_ATTR_TYPE_WORKER: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const THREAD_BLOCKED: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const THREAD_OUT_OF_CONTEXT: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const THREAD_STATE_RUNNING: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const THREAD_STATE_SUSPENDED: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNAVAILABLE_ERROR: u32 = 12u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNDNAME_32_BIT_DECODE: u32 = 2048u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNDNAME_COMPLETE: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNDNAME_NAME_ONLY: u32 = 4096u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNDNAME_NO_ACCESS_SPECIFIERS: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNDNAME_NO_ALLOCATION_LANGUAGE: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNDNAME_NO_ALLOCATION_MODEL: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNDNAME_NO_ARGUMENTS: u32 = 8192u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNDNAME_NO_CV_THISTYPE: u32 = 64u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNDNAME_NO_FUNCTION_RETURNS: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNDNAME_NO_LEADING_UNDERSCORES: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNDNAME_NO_MEMBER_TYPE: u32 = 512u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNDNAME_NO_MS_KEYWORDS: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNDNAME_NO_MS_THISTYPE: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNDNAME_NO_RETURN_UDT_MODEL: u32 = 1024u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNDNAME_NO_SPECIAL_SYMS: u32 = 16384u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNDNAME_NO_THISTYPE: u32 = 96u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNDNAME_NO_THROW_SIGNATURES: u32 = 256u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WCT_MAX_NODE_COUNT: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WCT_NETWORK_IO_FLAG: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WCT_OBJNAME_LENGTH: u32 = 128u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WDBGEXTS_ADDRESS_DEFAULT: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WDBGEXTS_ADDRESS_RESERVED0: u32 = 2147483648u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WDBGEXTS_ADDRESS_SEG16: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WDBGEXTS_ADDRESS_SEG32: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_BAD_PAGE_LIST_LOCATION: u32 = 15u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_BAD_PAGE_LIST_MAX_SIZE: u32 = 14u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_CMCI_THRESHOLD_COUNT: u32 = 10u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_CMCI_THRESHOLD_POLL_COUNT: u32 = 12u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_CMCI_THRESHOLD_TIME: u32 = 11u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_DEVICE_DRIVER_BUFFER_SET_MAX: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_DEVICE_DRIVER_BUFFER_SET_MIN: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_DEVICE_DRIVER_BUFFER_SET_V1: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_DEVICE_DRIVER_CONFIG_MAX: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_DEVICE_DRIVER_CONFIG_MIN: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_DEVICE_DRIVER_CONFIG_V1: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_DEVICE_DRIVER_CONFIG_V2: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_DISABLE_DUMMY_WRITE: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_DISABLE_OFFLINE: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_AERBRIDGE: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_AERENDPOINT: u32 = 7u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_AERROOTPORT: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_GENERIC: u32 = 9u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_GENERIC_V2: u32 = 10u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_IPFCMC: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_IPFCPE: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_IPFMCA: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_XPFCMC: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_XPFMCE: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_ERROR_SOURCE_DESCRIPTOR_TYPE_XPFNMI: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_ERROR_SOURCE_DESCRIPTOR_VERSION_10: u32 = 10u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_ERROR_SOURCE_DESCRIPTOR_VERSION_11: u32 = 11u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_ERROR_SOURCE_FLAG_DEFAULTSOURCE: u32 = 2147483648u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_ERROR_SOURCE_FLAG_FIRMWAREFIRST: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_ERROR_SOURCE_FLAG_GHES_ASSIST: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_ERROR_SOURCE_FLAG_GLOBAL: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_ERROR_SOURCE_INVALID_RELATED_SOURCE: u32 = 65535u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_MAX_MC_BANKS: u32 = 32u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_MEM_PERSISTOFFLINE: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_MEM_PFA_DISABLE: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_MEM_PFA_PAGECOUNT: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_MEM_PFA_THRESHOLD: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_MEM_PFA_TIMEOUT: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_NOTIFICATION_TYPE_ARMV8_SEA: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_NOTIFICATION_TYPE_ARMV8_SEI: u32 = 9u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_NOTIFICATION_TYPE_CMCI: u32 = 5u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_NOTIFICATION_TYPE_EXTERNALINTERRUPT: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_NOTIFICATION_TYPE_EXTERNALINTERRUPT_GSIV: u32 = 10u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_NOTIFICATION_TYPE_GPIO_SIGNAL: u32 = 7u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_NOTIFICATION_TYPE_LOCALINTERRUPT: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_NOTIFICATION_TYPE_MCE: u32 = 6u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_NOTIFICATION_TYPE_NMI: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_NOTIFICATION_TYPE_POLLED: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_NOTIFICATION_TYPE_SCI: u32 = 3u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_NOTIFICATION_TYPE_SDEI: u32 = 11u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_NOTIFY_ALL_OFFLINES: u32 = 16u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_PENDING_PAGE_LIST_SZ: u32 = 13u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_RESTORE_CMCI_ATTEMPTS: u32 = 8u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_RESTORE_CMCI_ENABLED: u32 = 7u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_RESTORE_CMCI_ERR_LIMIT: u32 = 9u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_XPF_MC_BANK_STATUSFORMAT_AMD64MCA: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_XPF_MC_BANK_STATUSFORMAT_IA32MCA: u32 = 0u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_XPF_MC_BANK_STATUSFORMAT_Intel64MCA: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WOW64_CONTEXT_EXCEPTION_ACTIVE: u32 = 134217728u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WOW64_CONTEXT_EXCEPTION_REPORTING: u32 = 2147483648u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WOW64_CONTEXT_EXCEPTION_REQUEST: u32 = 1073741824u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WOW64_CONTEXT_SERVICE_ACTIVE: u32 = 268435456u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WOW64_CONTEXT_i386: u32 = 65536u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WOW64_CONTEXT_i486: u32 = 65536u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WOW64_MAXIMUM_SUPPORTED_EXTENSION: u32 = 512u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WOW64_SIZE_OF_80387_REGISTERS: u32 = 80u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const fasaCaseSensitive: u32 = 4u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const fasaPreferInternalHandler: u32 = 1u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const fasaSupportInternalHandler: u32 = 2u32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const sevMax: i32 = 4i32;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct ADDRESS_MODE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const AddrMode1616: ADDRESS_MODE = ADDRESS_MODE(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const AddrMode1632: ADDRESS_MODE = ADDRESS_MODE(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const AddrModeReal: ADDRESS_MODE = ADDRESS_MODE(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const AddrModeFlat: ADDRESS_MODE = ADDRESS_MODE(3i32);
impl ::core::marker::Copy for ADDRESS_MODE {}
impl ::core::clone::Clone for ADDRESS_MODE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ADDRESS_MODE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ADDRESS_MODE {
    type Abi = Self;
}
impl ::core::fmt::Debug for ADDRESS_MODE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ADDRESS_MODE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct APPLICATION_NODE_EVENT_FILTER(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FILTER_EXCLUDE_NOTHING: APPLICATION_NODE_EVENT_FILTER = APPLICATION_NODE_EVENT_FILTER(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FILTER_EXCLUDE_ANONYMOUS_CODE: APPLICATION_NODE_EVENT_FILTER = APPLICATION_NODE_EVENT_FILTER(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FILTER_EXCLUDE_EVAL_CODE: APPLICATION_NODE_EVENT_FILTER = APPLICATION_NODE_EVENT_FILTER(2i32);
impl ::core::marker::Copy for APPLICATION_NODE_EVENT_FILTER {}
impl ::core::clone::Clone for APPLICATION_NODE_EVENT_FILTER {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for APPLICATION_NODE_EVENT_FILTER {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for APPLICATION_NODE_EVENT_FILTER {
    type Abi = Self;
}
impl ::core::fmt::Debug for APPLICATION_NODE_EVENT_FILTER {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("APPLICATION_NODE_EVENT_FILTER").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct BREAKPOINT_STATE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BREAKPOINT_DELETED: BREAKPOINT_STATE = BREAKPOINT_STATE(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BREAKPOINT_DISABLED: BREAKPOINT_STATE = BREAKPOINT_STATE(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BREAKPOINT_ENABLED: BREAKPOINT_STATE = BREAKPOINT_STATE(2i32);
impl ::core::marker::Copy for BREAKPOINT_STATE {}
impl ::core::clone::Clone for BREAKPOINT_STATE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for BREAKPOINT_STATE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for BREAKPOINT_STATE {
    type Abi = Self;
}
impl ::core::fmt::Debug for BREAKPOINT_STATE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("BREAKPOINT_STATE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct BREAKREASON(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BREAKREASON_STEP: BREAKREASON = BREAKREASON(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BREAKREASON_BREAKPOINT: BREAKREASON = BREAKREASON(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BREAKREASON_DEBUGGER_BLOCK: BREAKREASON = BREAKREASON(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BREAKREASON_HOST_INITIATED: BREAKREASON = BREAKREASON(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BREAKREASON_LANGUAGE_INITIATED: BREAKREASON = BREAKREASON(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BREAKREASON_DEBUGGER_HALT: BREAKREASON = BREAKREASON(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BREAKREASON_ERROR: BREAKREASON = BREAKREASON(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BREAKREASON_JIT: BREAKREASON = BREAKREASON(7i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BREAKREASON_MUTATION_BREAKPOINT: BREAKREASON = BREAKREASON(8i32);
impl ::core::marker::Copy for BREAKREASON {}
impl ::core::clone::Clone for BREAKREASON {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for BREAKREASON {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for BREAKREASON {
    type Abi = Self;
}
impl ::core::fmt::Debug for BREAKREASON {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("BREAKREASON").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct BREAKRESUMEACTION(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BREAKRESUMEACTION_ABORT: BREAKRESUMEACTION = BREAKRESUMEACTION(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BREAKRESUMEACTION_CONTINUE: BREAKRESUMEACTION = BREAKRESUMEACTION(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BREAKRESUMEACTION_STEP_INTO: BREAKRESUMEACTION = BREAKRESUMEACTION(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BREAKRESUMEACTION_STEP_OVER: BREAKRESUMEACTION = BREAKRESUMEACTION(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BREAKRESUMEACTION_STEP_OUT: BREAKRESUMEACTION = BREAKRESUMEACTION(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BREAKRESUMEACTION_IGNORE: BREAKRESUMEACTION = BREAKRESUMEACTION(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BREAKRESUMEACTION_STEP_DOCUMENT: BREAKRESUMEACTION = BREAKRESUMEACTION(6i32);
impl ::core::marker::Copy for BREAKRESUMEACTION {}
impl ::core::clone::Clone for BREAKRESUMEACTION {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for BREAKRESUMEACTION {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for BREAKRESUMEACTION {
    type Abi = Self;
}
impl ::core::fmt::Debug for BREAKRESUMEACTION {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("BREAKRESUMEACTION").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct BUGCHECK_ERROR(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const HARDWARE_PROFILE_UNDOCKED_STRING: BUGCHECK_ERROR = BUGCHECK_ERROR(1073807361u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const HARDWARE_PROFILE_DOCKED_STRING: BUGCHECK_ERROR = BUGCHECK_ERROR(1073807362u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const HARDWARE_PROFILE_UNKNOWN_STRING: BUGCHECK_ERROR = BUGCHECK_ERROR(1073807363u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WINDOWS_NT_BANNER: BUGCHECK_ERROR = BUGCHECK_ERROR(1073741950u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WINDOWS_NT_CSD_STRING: BUGCHECK_ERROR = BUGCHECK_ERROR(1073741959u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WINDOWS_NT_INFO_STRING: BUGCHECK_ERROR = BUGCHECK_ERROR(1073741960u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WINDOWS_NT_MP_STRING: BUGCHECK_ERROR = BUGCHECK_ERROR(1073741961u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const THREAD_TERMINATE_HELD_MUTEX: BUGCHECK_ERROR = BUGCHECK_ERROR(1073741962u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WINDOWS_NT_INFO_STRING_PLURAL: BUGCHECK_ERROR = BUGCHECK_ERROR(1073741981u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WINDOWS_NT_RC_STRING: BUGCHECK_ERROR = BUGCHECK_ERROR(1073741982u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const APC_INDEX_MISMATCH: BUGCHECK_ERROR = BUGCHECK_ERROR(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEVICE_QUEUE_NOT_BUSY: BUGCHECK_ERROR = BUGCHECK_ERROR(2u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_AFFINITY_SET: BUGCHECK_ERROR = BUGCHECK_ERROR(3u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_DATA_ACCESS_TRAP: BUGCHECK_ERROR = BUGCHECK_ERROR(4u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_PROCESS_ATTACH_ATTEMPT: BUGCHECK_ERROR = BUGCHECK_ERROR(5u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_PROCESS_DETACH_ATTEMPT: BUGCHECK_ERROR = BUGCHECK_ERROR(6u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_SOFTWARE_INTERRUPT: BUGCHECK_ERROR = BUGCHECK_ERROR(7u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IRQL_NOT_DISPATCH_LEVEL: BUGCHECK_ERROR = BUGCHECK_ERROR(8u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IRQL_NOT_GREATER_OR_EQUAL: BUGCHECK_ERROR = BUGCHECK_ERROR(9u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IRQL_NOT_LESS_OR_EQUAL: BUGCHECK_ERROR = BUGCHECK_ERROR(10u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NO_EXCEPTION_HANDLING_SUPPORT: BUGCHECK_ERROR = BUGCHECK_ERROR(11u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MAXIMUM_WAIT_OBJECTS_EXCEEDED: BUGCHECK_ERROR = BUGCHECK_ERROR(12u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MUTEX_LEVEL_NUMBER_VIOLATION: BUGCHECK_ERROR = BUGCHECK_ERROR(13u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NO_USER_MODE_CONTEXT: BUGCHECK_ERROR = BUGCHECK_ERROR(14u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SPIN_LOCK_ALREADY_OWNED: BUGCHECK_ERROR = BUGCHECK_ERROR(15u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SPIN_LOCK_NOT_OWNED: BUGCHECK_ERROR = BUGCHECK_ERROR(16u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const THREAD_NOT_MUTEX_OWNER: BUGCHECK_ERROR = BUGCHECK_ERROR(17u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TRAP_CAUSE_UNKNOWN: BUGCHECK_ERROR = BUGCHECK_ERROR(18u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EMPTY_THREAD_REAPER_LIST: BUGCHECK_ERROR = BUGCHECK_ERROR(19u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CREATE_DELETE_LOCK_NOT_LOCKED: BUGCHECK_ERROR = BUGCHECK_ERROR(20u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const LAST_CHANCE_CALLED_FROM_KMODE: BUGCHECK_ERROR = BUGCHECK_ERROR(21u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CID_HANDLE_CREATION: BUGCHECK_ERROR = BUGCHECK_ERROR(22u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CID_HANDLE_DELETION: BUGCHECK_ERROR = BUGCHECK_ERROR(23u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const REFERENCE_BY_POINTER: BUGCHECK_ERROR = BUGCHECK_ERROR(24u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BAD_POOL_HEADER: BUGCHECK_ERROR = BUGCHECK_ERROR(25u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MEMORY_MANAGEMENT: BUGCHECK_ERROR = BUGCHECK_ERROR(26u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PFN_SHARE_COUNT: BUGCHECK_ERROR = BUGCHECK_ERROR(27u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PFN_REFERENCE_COUNT: BUGCHECK_ERROR = BUGCHECK_ERROR(28u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NO_SPIN_LOCK_AVAILABLE: BUGCHECK_ERROR = BUGCHECK_ERROR(29u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KMODE_EXCEPTION_NOT_HANDLED: BUGCHECK_ERROR = BUGCHECK_ERROR(30u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SHARED_RESOURCE_CONV_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(31u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KERNEL_APC_PENDING_DURING_EXIT: BUGCHECK_ERROR = BUGCHECK_ERROR(32u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const QUOTA_UNDERFLOW: BUGCHECK_ERROR = BUGCHECK_ERROR(33u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FILE_SYSTEM: BUGCHECK_ERROR = BUGCHECK_ERROR(34u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FAT_FILE_SYSTEM: BUGCHECK_ERROR = BUGCHECK_ERROR(35u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NTFS_FILE_SYSTEM: BUGCHECK_ERROR = BUGCHECK_ERROR(36u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NPFS_FILE_SYSTEM: BUGCHECK_ERROR = BUGCHECK_ERROR(37u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CDFS_FILE_SYSTEM: BUGCHECK_ERROR = BUGCHECK_ERROR(38u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const RDR_FILE_SYSTEM: BUGCHECK_ERROR = BUGCHECK_ERROR(39u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CORRUPT_ACCESS_TOKEN: BUGCHECK_ERROR = BUGCHECK_ERROR(40u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SECURITY_SYSTEM: BUGCHECK_ERROR = BUGCHECK_ERROR(41u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INCONSISTENT_IRP: BUGCHECK_ERROR = BUGCHECK_ERROR(42u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PANIC_STACK_SWITCH: BUGCHECK_ERROR = BUGCHECK_ERROR(43u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PORT_DRIVER_INTERNAL: BUGCHECK_ERROR = BUGCHECK_ERROR(44u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCSI_DISK_DRIVER_INTERNAL: BUGCHECK_ERROR = BUGCHECK_ERROR(45u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DATA_BUS_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(46u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INSTRUCTION_BUS_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(47u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SET_OF_INVALID_CONTEXT: BUGCHECK_ERROR = BUGCHECK_ERROR(48u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PHASE0_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(49u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PHASE1_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(50u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNEXPECTED_INITIALIZATION_CALL: BUGCHECK_ERROR = BUGCHECK_ERROR(51u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CACHE_MANAGER: BUGCHECK_ERROR = BUGCHECK_ERROR(52u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NO_MORE_IRP_STACK_LOCATIONS: BUGCHECK_ERROR = BUGCHECK_ERROR(53u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEVICE_REFERENCE_COUNT_NOT_ZERO: BUGCHECK_ERROR = BUGCHECK_ERROR(54u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FLOPPY_INTERNAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(55u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SERIAL_DRIVER_INTERNAL: BUGCHECK_ERROR = BUGCHECK_ERROR(56u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYSTEM_EXIT_OWNED_MUTEX: BUGCHECK_ERROR = BUGCHECK_ERROR(57u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYSTEM_UNWIND_PREVIOUS_USER: BUGCHECK_ERROR = BUGCHECK_ERROR(58u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYSTEM_SERVICE_EXCEPTION: BUGCHECK_ERROR = BUGCHECK_ERROR(59u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INTERRUPT_UNWIND_ATTEMPTED: BUGCHECK_ERROR = BUGCHECK_ERROR(60u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INTERRUPT_EXCEPTION_NOT_HANDLED: BUGCHECK_ERROR = BUGCHECK_ERROR(61u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MULTIPROCESSOR_CONFIGURATION_NOT_SUPPORTED: BUGCHECK_ERROR = BUGCHECK_ERROR(62u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NO_MORE_SYSTEM_PTES: BUGCHECK_ERROR = BUGCHECK_ERROR(63u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TARGET_MDL_TOO_SMALL: BUGCHECK_ERROR = BUGCHECK_ERROR(64u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MUST_SUCCEED_POOL_EMPTY: BUGCHECK_ERROR = BUGCHECK_ERROR(65u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ATDISK_DRIVER_INTERNAL: BUGCHECK_ERROR = BUGCHECK_ERROR(66u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NO_SUCH_PARTITION: BUGCHECK_ERROR = BUGCHECK_ERROR(67u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MULTIPLE_IRP_COMPLETE_REQUESTS: BUGCHECK_ERROR = BUGCHECK_ERROR(68u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INSUFFICIENT_SYSTEM_MAP_REGS: BUGCHECK_ERROR = BUGCHECK_ERROR(69u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEREF_UNKNOWN_LOGON_SESSION: BUGCHECK_ERROR = BUGCHECK_ERROR(70u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const REF_UNKNOWN_LOGON_SESSION: BUGCHECK_ERROR = BUGCHECK_ERROR(71u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CANCEL_STATE_IN_COMPLETED_IRP: BUGCHECK_ERROR = BUGCHECK_ERROR(72u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PAGE_FAULT_WITH_INTERRUPTS_OFF: BUGCHECK_ERROR = BUGCHECK_ERROR(73u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IRQL_GT_ZERO_AT_SYSTEM_SERVICE: BUGCHECK_ERROR = BUGCHECK_ERROR(74u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const STREAMS_INTERNAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(75u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FATAL_UNHANDLED_HARD_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(76u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NO_PAGES_AVAILABLE: BUGCHECK_ERROR = BUGCHECK_ERROR(77u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PFN_LIST_CORRUPT: BUGCHECK_ERROR = BUGCHECK_ERROR(78u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NDIS_INTERNAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(79u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PAGE_FAULT_IN_NONPAGED_AREA: BUGCHECK_ERROR = BUGCHECK_ERROR(80u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PAGE_FAULT_IN_NONPAGED_AREA_M: BUGCHECK_ERROR = BUGCHECK_ERROR(268435536u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const REGISTRY_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(81u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MAILSLOT_FILE_SYSTEM: BUGCHECK_ERROR = BUGCHECK_ERROR(82u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NO_BOOT_DEVICE: BUGCHECK_ERROR = BUGCHECK_ERROR(83u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const LM_SERVER_INTERNAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(84u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DATA_COHERENCY_EXCEPTION: BUGCHECK_ERROR = BUGCHECK_ERROR(85u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INSTRUCTION_COHERENCY_EXCEPTION: BUGCHECK_ERROR = BUGCHECK_ERROR(86u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const XNS_INTERNAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(87u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VOLMGRX_INTERNAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(88u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PINBALL_FILE_SYSTEM: BUGCHECK_ERROR = BUGCHECK_ERROR(89u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CRITICAL_SERVICE_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(90u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SET_ENV_VAR_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(91u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const HAL_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(92u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNSUPPORTED_PROCESSOR: BUGCHECK_ERROR = BUGCHECK_ERROR(93u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(94u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SECURITY_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(95u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROCESS_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(96u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const HAL1_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(97u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT1_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(98u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SECURITY1_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(99u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMBOLIC_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(100u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MEMORY1_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(101u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CACHE_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(102u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CONFIG_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(103u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FILE_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(104u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IO1_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(105u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const LPC_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(106u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROCESS1_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(107u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const REFMON_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(108u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SESSION1_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(109u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BOOTPROC_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(110u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VSL_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(111u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SOFT_RESTART_FATAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(112u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ASSIGN_DRIVE_LETTERS_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(114u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CONFIG_LIST_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(115u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BAD_SYSTEM_CONFIG_INFO: BUGCHECK_ERROR = BUGCHECK_ERROR(116u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CANNOT_WRITE_CONFIGURATION: BUGCHECK_ERROR = BUGCHECK_ERROR(117u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROCESS_HAS_LOCKED_PAGES: BUGCHECK_ERROR = BUGCHECK_ERROR(118u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KERNEL_STACK_INPAGE_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(119u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PHASE0_EXCEPTION: BUGCHECK_ERROR = BUGCHECK_ERROR(120u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MISMATCHED_HAL: BUGCHECK_ERROR = BUGCHECK_ERROR(121u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KERNEL_DATA_INPAGE_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(122u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INACCESSIBLE_BOOT_DEVICE: BUGCHECK_ERROR = BUGCHECK_ERROR(123u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BUGCODE_NDIS_DRIVER: BUGCHECK_ERROR = BUGCHECK_ERROR(124u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INSTALL_MORE_MEMORY: BUGCHECK_ERROR = BUGCHECK_ERROR(125u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYSTEM_THREAD_EXCEPTION_NOT_HANDLED: BUGCHECK_ERROR = BUGCHECK_ERROR(126u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYSTEM_THREAD_EXCEPTION_NOT_HANDLED_M: BUGCHECK_ERROR = BUGCHECK_ERROR(268435582u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNEXPECTED_KERNEL_MODE_TRAP: BUGCHECK_ERROR = BUGCHECK_ERROR(127u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNEXPECTED_KERNEL_MODE_TRAP_M: BUGCHECK_ERROR = BUGCHECK_ERROR(268435583u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NMI_HARDWARE_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(128u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SPIN_LOCK_INIT_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(129u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DFS_FILE_SYSTEM: BUGCHECK_ERROR = BUGCHECK_ERROR(130u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OFS_FILE_SYSTEM: BUGCHECK_ERROR = BUGCHECK_ERROR(131u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const RECOM_DRIVER: BUGCHECK_ERROR = BUGCHECK_ERROR(132u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SETUP_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(133u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const AUDIT_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(134u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MBR_CHECKSUM_MISMATCH: BUGCHECK_ERROR = BUGCHECK_ERROR(139u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KERNEL_MODE_EXCEPTION_NOT_HANDLED: BUGCHECK_ERROR = BUGCHECK_ERROR(142u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KERNEL_MODE_EXCEPTION_NOT_HANDLED_M: BUGCHECK_ERROR = BUGCHECK_ERROR(268435598u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PP0_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(143u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PP1_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(144u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WIN32K_INIT_OR_RIT_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(145u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UP_DRIVER_ON_MP_SYSTEM: BUGCHECK_ERROR = BUGCHECK_ERROR(146u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_KERNEL_HANDLE: BUGCHECK_ERROR = BUGCHECK_ERROR(147u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KERNEL_STACK_LOCKED_AT_EXIT: BUGCHECK_ERROR = BUGCHECK_ERROR(148u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PNP_INTERNAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(149u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_WORK_QUEUE_ITEM: BUGCHECK_ERROR = BUGCHECK_ERROR(150u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BOUND_IMAGE_UNSUPPORTED: BUGCHECK_ERROR = BUGCHECK_ERROR(151u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const END_OF_NT_EVALUATION_PERIOD: BUGCHECK_ERROR = BUGCHECK_ERROR(152u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_REGION_OR_SEGMENT: BUGCHECK_ERROR = BUGCHECK_ERROR(153u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYSTEM_LICENSE_VIOLATION: BUGCHECK_ERROR = BUGCHECK_ERROR(154u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UDFS_FILE_SYSTEM: BUGCHECK_ERROR = BUGCHECK_ERROR(155u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MACHINE_CHECK_EXCEPTION: BUGCHECK_ERROR = BUGCHECK_ERROR(156u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const USER_MODE_HEALTH_MONITOR: BUGCHECK_ERROR = BUGCHECK_ERROR(158u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_POWER_STATE_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(159u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INTERNAL_POWER_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(160u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PCI_BUS_DRIVER_INTERNAL: BUGCHECK_ERROR = BUGCHECK_ERROR(161u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MEMORY_IMAGE_CORRUPT: BUGCHECK_ERROR = BUGCHECK_ERROR(162u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ACPI_DRIVER_INTERNAL: BUGCHECK_ERROR = BUGCHECK_ERROR(163u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CNSS_FILE_SYSTEM_FILTER: BUGCHECK_ERROR = BUGCHECK_ERROR(164u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ACPI_BIOS_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(165u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FP_EMULATION_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(166u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BAD_EXHANDLE: BUGCHECK_ERROR = BUGCHECK_ERROR(167u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BOOTING_IN_SAFEMODE_MINIMAL: BUGCHECK_ERROR = BUGCHECK_ERROR(168u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BOOTING_IN_SAFEMODE_NETWORK: BUGCHECK_ERROR = BUGCHECK_ERROR(169u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BOOTING_IN_SAFEMODE_DSREPAIR: BUGCHECK_ERROR = BUGCHECK_ERROR(170u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SESSION_HAS_VALID_POOL_ON_EXIT: BUGCHECK_ERROR = BUGCHECK_ERROR(171u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const HAL_MEMORY_ALLOCATION: BUGCHECK_ERROR = BUGCHECK_ERROR(172u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VIDEO_DRIVER_DEBUG_REPORT_REQUEST: BUGCHECK_ERROR = BUGCHECK_ERROR(1073741997u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BGI_DETECTED_VIOLATION: BUGCHECK_ERROR = BUGCHECK_ERROR(177u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VIDEO_DRIVER_INIT_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(180u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BOOTLOG_LOADED: BUGCHECK_ERROR = BUGCHECK_ERROR(181u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BOOTLOG_NOT_LOADED: BUGCHECK_ERROR = BUGCHECK_ERROR(182u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BOOTLOG_ENABLED: BUGCHECK_ERROR = BUGCHECK_ERROR(183u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ATTEMPTED_SWITCH_FROM_DPC: BUGCHECK_ERROR = BUGCHECK_ERROR(184u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CHIPSET_DETECTED_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(185u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SESSION_HAS_VALID_VIEWS_ON_EXIT: BUGCHECK_ERROR = BUGCHECK_ERROR(186u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NETWORK_BOOT_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(187u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NETWORK_BOOT_DUPLICATE_ADDRESS: BUGCHECK_ERROR = BUGCHECK_ERROR(188u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_HIBERNATED_STATE: BUGCHECK_ERROR = BUGCHECK_ERROR(189u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ATTEMPTED_WRITE_TO_READONLY_MEMORY: BUGCHECK_ERROR = BUGCHECK_ERROR(190u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MUTEX_ALREADY_OWNED: BUGCHECK_ERROR = BUGCHECK_ERROR(191u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PCI_CONFIG_SPACE_ACCESS_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(192u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION: BUGCHECK_ERROR = BUGCHECK_ERROR(193u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BAD_POOL_CALLER: BUGCHECK_ERROR = BUGCHECK_ERROR(194u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYSTEM_IMAGE_BAD_SIGNATURE: BUGCHECK_ERROR = BUGCHECK_ERROR(195u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_VERIFIER_DETECTED_VIOLATION: BUGCHECK_ERROR = BUGCHECK_ERROR(196u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_CORRUPTED_EXPOOL: BUGCHECK_ERROR = BUGCHECK_ERROR(197u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_CAUGHT_MODIFYING_FREED_POOL: BUGCHECK_ERROR = BUGCHECK_ERROR(198u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TIMER_OR_DPC_INVALID: BUGCHECK_ERROR = BUGCHECK_ERROR(199u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IRQL_UNEXPECTED_VALUE: BUGCHECK_ERROR = BUGCHECK_ERROR(200u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_VERIFIER_IOMANAGER_VIOLATION: BUGCHECK_ERROR = BUGCHECK_ERROR(201u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PNP_DETECTED_FATAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(202u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS: BUGCHECK_ERROR = BUGCHECK_ERROR(203u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PAGE_FAULT_IN_FREED_SPECIAL_POOL: BUGCHECK_ERROR = BUGCHECK_ERROR(204u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PAGE_FAULT_BEYOND_END_OF_ALLOCATION: BUGCHECK_ERROR = BUGCHECK_ERROR(205u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS: BUGCHECK_ERROR = BUGCHECK_ERROR(206u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TERMINAL_SERVER_DRIVER_MADE_INCORRECT_MEMORY_REFERENCE: BUGCHECK_ERROR = BUGCHECK_ERROR(207u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_CORRUPTED_MMPOOL: BUGCHECK_ERROR = BUGCHECK_ERROR(208u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_IRQL_NOT_LESS_OR_EQUAL: BUGCHECK_ERROR = BUGCHECK_ERROR(209u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BUGCODE_ID_DRIVER: BUGCHECK_ERROR = BUGCHECK_ERROR(210u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_PORTION_MUST_BE_NONPAGED: BUGCHECK_ERROR = BUGCHECK_ERROR(211u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD: BUGCHECK_ERROR = BUGCHECK_ERROR(212u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_PAGE_FAULT_IN_FREED_SPECIAL_POOL: BUGCHECK_ERROR = BUGCHECK_ERROR(213u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION: BUGCHECK_ERROR = BUGCHECK_ERROR(214u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION_M: BUGCHECK_ERROR = BUGCHECK_ERROR(268435670u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_UNMAPPING_INVALID_VIEW: BUGCHECK_ERROR = BUGCHECK_ERROR(215u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_USED_EXCESSIVE_PTES: BUGCHECK_ERROR = BUGCHECK_ERROR(216u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const LOCKED_PAGES_TRACKER_CORRUPTION: BUGCHECK_ERROR = BUGCHECK_ERROR(217u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYSTEM_PTE_MISUSE: BUGCHECK_ERROR = BUGCHECK_ERROR(218u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_CORRUPTED_SYSPTES: BUGCHECK_ERROR = BUGCHECK_ERROR(219u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_INVALID_STACK_ACCESS: BUGCHECK_ERROR = BUGCHECK_ERROR(220u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const POOL_CORRUPTION_IN_FILE_AREA: BUGCHECK_ERROR = BUGCHECK_ERROR(222u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMPERSONATING_WORKER_THREAD: BUGCHECK_ERROR = BUGCHECK_ERROR(223u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ACPI_BIOS_FATAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(224u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WORKER_THREAD_RETURNED_AT_BAD_IRQL: BUGCHECK_ERROR = BUGCHECK_ERROR(225u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MANUALLY_INITIATED_CRASH: BUGCHECK_ERROR = BUGCHECK_ERROR(226u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const RESOURCE_NOT_OWNED: BUGCHECK_ERROR = BUGCHECK_ERROR(227u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WORKER_INVALID: BUGCHECK_ERROR = BUGCHECK_ERROR(228u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const POWER_FAILURE_SIMULATE: BUGCHECK_ERROR = BUGCHECK_ERROR(229u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_VERIFIER_DMA_VIOLATION: BUGCHECK_ERROR = BUGCHECK_ERROR(230u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_FLOATING_POINT_STATE: BUGCHECK_ERROR = BUGCHECK_ERROR(231u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_CANCEL_OF_FILE_OPEN: BUGCHECK_ERROR = BUGCHECK_ERROR(232u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ACTIVE_EX_WORKER_THREAD_TERMINATION: BUGCHECK_ERROR = BUGCHECK_ERROR(233u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_UNSPECIFIED: BUGCHECK_ERROR = BUGCHECK_ERROR(61440u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_BLANKSCREEN: BUGCHECK_ERROR = BUGCHECK_ERROR(61442u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_INPUT: BUGCHECK_ERROR = BUGCHECK_ERROR(61443u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_WATCHDOG: BUGCHECK_ERROR = BUGCHECK_ERROR(61444u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_STARTNOTVISIBLE: BUGCHECK_ERROR = BUGCHECK_ERROR(61445u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_NAVIGATIONMODEL: BUGCHECK_ERROR = BUGCHECK_ERROR(61446u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_OUTOFMEMORY: BUGCHECK_ERROR = BUGCHECK_ERROR(61447u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_GRAPHICS: BUGCHECK_ERROR = BUGCHECK_ERROR(61448u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_NAVSERVERTIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(61449u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_CHROMEPROCESSCRASH: BUGCHECK_ERROR = BUGCHECK_ERROR(61450u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_NOTIFICATIONDISMISSAL: BUGCHECK_ERROR = BUGCHECK_ERROR(61451u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_SPEECHDISMISSAL: BUGCHECK_ERROR = BUGCHECK_ERROR(61452u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_CALLDISMISSAL: BUGCHECK_ERROR = BUGCHECK_ERROR(61453u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_APPBARDISMISSAL: BUGCHECK_ERROR = BUGCHECK_ERROR(61454u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_RILADAPTATIONCRASH: BUGCHECK_ERROR = BUGCHECK_ERROR(61455u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_APPLISTUNREACHABLE: BUGCHECK_ERROR = BUGCHECK_ERROR(61456u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_REPORTNOTIFICATIONFAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(61457u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_UNEXPECTEDSHUTDOWN: BUGCHECK_ERROR = BUGCHECK_ERROR(61458u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_RPCFAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(61459u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_AUXILIARYFULLDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(61460u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_ACCOUNTPROVSVCINITFAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(61461u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_MTBFCOMMANDTIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(789u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_MTBFCOMMANDHANG: BUGCHECK_ERROR = BUGCHECK_ERROR(61697u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_MTBFPASSBUGCHECK: BUGCHECK_ERROR = BUGCHECK_ERROR(61698u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_MTBFIOERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(61699u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_RENDERTHREADHANG: BUGCHECK_ERROR = BUGCHECK_ERROR(61952u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_RENDERMOBILEUIOOM: BUGCHECK_ERROR = BUGCHECK_ERROR(61953u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_DEVICEUPDATEUNSPECIFIED: BUGCHECK_ERROR = BUGCHECK_ERROR(62208u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_AUDIODRIVERHANG: BUGCHECK_ERROR = BUGCHECK_ERROR(62464u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_BATTERYPULLOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(62720u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_MEDIACORETESTHANG: BUGCHECK_ERROR = BUGCHECK_ERROR(62976u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_RESOURCEMANAGEMENT: BUGCHECK_ERROR = BUGCHECK_ERROR(63232u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_CAPTURESERVICE: BUGCHECK_ERROR = BUGCHECK_ERROR(63488u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_WAITFORSHELLREADY: BUGCHECK_ERROR = BUGCHECK_ERROR(63744u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_NONRESPONSIVEPROCESS: BUGCHECK_ERROR = BUGCHECK_ERROR(404u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SAVER_SICKAPPLICATION: BUGCHECK_ERROR = BUGCHECK_ERROR(34918u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const THREAD_STUCK_IN_DEVICE_DRIVER: BUGCHECK_ERROR = BUGCHECK_ERROR(234u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const THREAD_STUCK_IN_DEVICE_DRIVER_M: BUGCHECK_ERROR = BUGCHECK_ERROR(268435690u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DIRTY_MAPPED_PAGES_CONGESTION: BUGCHECK_ERROR = BUGCHECK_ERROR(235u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SESSION_HAS_VALID_SPECIAL_POOL_ON_EXIT: BUGCHECK_ERROR = BUGCHECK_ERROR(236u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNMOUNTABLE_BOOT_VOLUME: BUGCHECK_ERROR = BUGCHECK_ERROR(237u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CRITICAL_PROCESS_DIED: BUGCHECK_ERROR = BUGCHECK_ERROR(239u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const STORAGE_MINIPORT_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(240u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCSI_VERIFIER_DETECTED_VIOLATION: BUGCHECK_ERROR = BUGCHECK_ERROR(241u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const HARDWARE_INTERRUPT_STORM: BUGCHECK_ERROR = BUGCHECK_ERROR(242u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DISORDERLY_SHUTDOWN: BUGCHECK_ERROR = BUGCHECK_ERROR(243u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CRITICAL_OBJECT_TERMINATION: BUGCHECK_ERROR = BUGCHECK_ERROR(244u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FLTMGR_FILE_SYSTEM: BUGCHECK_ERROR = BUGCHECK_ERROR(245u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PCI_VERIFIER_DETECTED_VIOLATION: BUGCHECK_ERROR = BUGCHECK_ERROR(246u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_OVERRAN_STACK_BUFFER: BUGCHECK_ERROR = BUGCHECK_ERROR(247u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const RAMDISK_BOOT_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(248u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_RETURNED_STATUS_REPARSE_FOR_VOLUME_OPEN: BUGCHECK_ERROR = BUGCHECK_ERROR(249u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const HTTP_DRIVER_CORRUPTED: BUGCHECK_ERROR = BUGCHECK_ERROR(250u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const RECURSIVE_MACHINE_CHECK: BUGCHECK_ERROR = BUGCHECK_ERROR(251u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY: BUGCHECK_ERROR = BUGCHECK_ERROR(252u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DIRTY_NOWRITE_PAGES_CONGESTION: BUGCHECK_ERROR = BUGCHECK_ERROR(253u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BUGCODE_USB_DRIVER: BUGCHECK_ERROR = BUGCHECK_ERROR(254u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BC_BLUETOOTH_VERIFIER_FAULT: BUGCHECK_ERROR = BUGCHECK_ERROR(3070u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BC_BTHMINI_VERIFIER_FAULT: BUGCHECK_ERROR = BUGCHECK_ERROR(3071u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const RESERVE_QUEUE_OVERFLOW: BUGCHECK_ERROR = BUGCHECK_ERROR(255u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const LOADER_BLOCK_MISMATCH: BUGCHECK_ERROR = BUGCHECK_ERROR(256u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CLOCK_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(257u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DPC_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(258u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MUP_FILE_SYSTEM: BUGCHECK_ERROR = BUGCHECK_ERROR(259u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const AGP_INVALID_ACCESS: BUGCHECK_ERROR = BUGCHECK_ERROR(260u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const AGP_GART_CORRUPTION: BUGCHECK_ERROR = BUGCHECK_ERROR(261u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const AGP_ILLEGALLY_REPROGRAMMED: BUGCHECK_ERROR = BUGCHECK_ERROR(262u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KERNEL_EXPAND_STACK_ACTIVE: BUGCHECK_ERROR = BUGCHECK_ERROR(263u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const THIRD_PARTY_FILE_SYSTEM_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(264u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CRITICAL_STRUCTURE_CORRUPTION: BUGCHECK_ERROR = BUGCHECK_ERROR(265u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const APP_TAGGING_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(266u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DFSC_FILE_SYSTEM: BUGCHECK_ERROR = BUGCHECK_ERROR(267u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FSRTL_EXTRA_CREATE_PARAMETER_VIOLATION: BUGCHECK_ERROR = BUGCHECK_ERROR(268u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WDF_VIOLATION: BUGCHECK_ERROR = BUGCHECK_ERROR(269u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VIDEO_MEMORY_MANAGEMENT_INTERNAL: BUGCHECK_ERROR = BUGCHECK_ERROR(270u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_INVALID_CRUNTIME_PARAMETER: BUGCHECK_ERROR = BUGCHECK_ERROR(272u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const RECURSIVE_NMI: BUGCHECK_ERROR = BUGCHECK_ERROR(273u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MSRPC_STATE_VIOLATION: BUGCHECK_ERROR = BUGCHECK_ERROR(274u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VIDEO_DXGKRNL_FATAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(275u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VIDEO_SHADOW_DRIVER_FATAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(276u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const AGP_INTERNAL: BUGCHECK_ERROR = BUGCHECK_ERROR(277u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VIDEO_TDR_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(278u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VIDEO_TDR_TIMEOUT_DETECTED: BUGCHECK_ERROR = BUGCHECK_ERROR(279u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NTHV_GUEST_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(280u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VIDEO_SCHEDULER_INTERNAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(281u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EM_INITIALIZATION_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(282u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_RETURNED_HOLDING_CANCEL_LOCK: BUGCHECK_ERROR = BUGCHECK_ERROR(283u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ATTEMPTED_WRITE_TO_CM_PROTECTED_STORAGE: BUGCHECK_ERROR = BUGCHECK_ERROR(284u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EVENT_TRACING_FATAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(285u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TOO_MANY_RECURSIVE_FAULTS: BUGCHECK_ERROR = BUGCHECK_ERROR(286u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_DRIVER_HANDLE: BUGCHECK_ERROR = BUGCHECK_ERROR(287u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BITLOCKER_FATAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(288u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_VIOLATION: BUGCHECK_ERROR = BUGCHECK_ERROR(289u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_INTERNAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(290u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CRYPTO_SELF_TEST_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(291u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WHEA_UNCORRECTABLE_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(292u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NMR_INVALID_STATE: BUGCHECK_ERROR = BUGCHECK_ERROR(293u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NETIO_INVALID_POOL_CALLER: BUGCHECK_ERROR = BUGCHECK_ERROR(294u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PAGE_NOT_ZERO: BUGCHECK_ERROR = BUGCHECK_ERROR(295u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WORKER_THREAD_RETURNED_WITH_BAD_IO_PRIORITY: BUGCHECK_ERROR = BUGCHECK_ERROR(296u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WORKER_THREAD_RETURNED_WITH_BAD_PAGING_IO_PRIORITY: BUGCHECK_ERROR = BUGCHECK_ERROR(297u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MUI_NO_VALID_SYSTEM_LANGUAGE: BUGCHECK_ERROR = BUGCHECK_ERROR(298u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FAULTY_HARDWARE_CORRUPTED_PAGE: BUGCHECK_ERROR = BUGCHECK_ERROR(299u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXFAT_FILE_SYSTEM: BUGCHECK_ERROR = BUGCHECK_ERROR(300u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VOLSNAP_OVERLAPPED_TABLE_ACCESS: BUGCHECK_ERROR = BUGCHECK_ERROR(301u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_MDL_RANGE: BUGCHECK_ERROR = BUGCHECK_ERROR(302u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VHD_BOOT_INITIALIZATION_FAILED: BUGCHECK_ERROR = BUGCHECK_ERROR(303u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DYNAMIC_ADD_PROCESSOR_MISMATCH: BUGCHECK_ERROR = BUGCHECK_ERROR(304u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_EXTENDED_PROCESSOR_STATE: BUGCHECK_ERROR = BUGCHECK_ERROR(305u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const RESOURCE_OWNER_POINTER_INVALID: BUGCHECK_ERROR = BUGCHECK_ERROR(306u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DPC_WATCHDOG_VIOLATION: BUGCHECK_ERROR = BUGCHECK_ERROR(307u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVE_EXTENDER: BUGCHECK_ERROR = BUGCHECK_ERROR(308u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const REGISTRY_FILTER_DRIVER_EXCEPTION: BUGCHECK_ERROR = BUGCHECK_ERROR(309u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VHD_BOOT_HOST_VOLUME_NOT_ENOUGH_SPACE: BUGCHECK_ERROR = BUGCHECK_ERROR(310u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WIN32K_HANDLE_MANAGER: BUGCHECK_ERROR = BUGCHECK_ERROR(311u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const GPIO_CONTROLLER_DRIVER_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(312u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KERNEL_SECURITY_CHECK_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(313u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KERNEL_MODE_HEAP_CORRUPTION: BUGCHECK_ERROR = BUGCHECK_ERROR(314u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PASSIVE_INTERRUPT_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(315u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_IO_BOOST_STATE: BUGCHECK_ERROR = BUGCHECK_ERROR(316u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CRITICAL_INITIALIZATION_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(317u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ERRATA_WORKAROUND_UNSUCCESSFUL: BUGCHECK_ERROR = BUGCHECK_ERROR(318u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const REGISTRY_CALLBACK_DRIVER_EXCEPTION: BUGCHECK_ERROR = BUGCHECK_ERROR(319u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const STORAGE_DEVICE_ABNORMALITY_DETECTED: BUGCHECK_ERROR = BUGCHECK_ERROR(320u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VIDEO_ENGINE_TIMEOUT_DETECTED: BUGCHECK_ERROR = BUGCHECK_ERROR(321u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VIDEO_TDR_APPLICATION_BLOCKED: BUGCHECK_ERROR = BUGCHECK_ERROR(322u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROCESSOR_DRIVER_INTERNAL: BUGCHECK_ERROR = BUGCHECK_ERROR(323u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BUGCODE_USB3_DRIVER: BUGCHECK_ERROR = BUGCHECK_ERROR(324u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SECURE_BOOT_VIOLATION: BUGCHECK_ERROR = BUGCHECK_ERROR(325u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NDIS_NET_BUFFER_LIST_INFO_ILLEGALLY_TRANSFERRED: BUGCHECK_ERROR = BUGCHECK_ERROR(326u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ABNORMAL_RESET_DETECTED: BUGCHECK_ERROR = BUGCHECK_ERROR(327u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IO_OBJECT_INVALID: BUGCHECK_ERROR = BUGCHECK_ERROR(328u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const REFS_FILE_SYSTEM: BUGCHECK_ERROR = BUGCHECK_ERROR(329u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KERNEL_WMI_INTERNAL: BUGCHECK_ERROR = BUGCHECK_ERROR(330u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SOC_SUBSYSTEM_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(331u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FATAL_ABNORMAL_RESET_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(332u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXCEPTION_SCOPE_INVALID: BUGCHECK_ERROR = BUGCHECK_ERROR(333u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SOC_CRITICAL_DEVICE_REMOVED: BUGCHECK_ERROR = BUGCHECK_ERROR(334u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PDC_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(335u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TCPIP_AOAC_NIC_ACTIVE_REFERENCE_LEAK: BUGCHECK_ERROR = BUGCHECK_ERROR(336u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNSUPPORTED_INSTRUCTION_MODE: BUGCHECK_ERROR = BUGCHECK_ERROR(337u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_PUSH_LOCK_FLAGS: BUGCHECK_ERROR = BUGCHECK_ERROR(338u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KERNEL_LOCK_ENTRY_LEAKED_ON_THREAD_TERMINATION: BUGCHECK_ERROR = BUGCHECK_ERROR(339u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNEXPECTED_STORE_EXCEPTION: BUGCHECK_ERROR = BUGCHECK_ERROR(340u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OS_DATA_TAMPERING: BUGCHECK_ERROR = BUGCHECK_ERROR(341u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WINSOCK_DETECTED_HUNG_CLOSESOCKET_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(342u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KERNEL_THREAD_PRIORITY_FLOOR_VIOLATION: BUGCHECK_ERROR = BUGCHECK_ERROR(343u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ILLEGAL_IOMMU_PAGE_FAULT: BUGCHECK_ERROR = BUGCHECK_ERROR(344u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const HAL_ILLEGAL_IOMMU_PAGE_FAULT: BUGCHECK_ERROR = BUGCHECK_ERROR(345u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SDBUS_INTERNAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(346u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WORKER_THREAD_RETURNED_WITH_SYSTEM_PAGE_PRIORITY_ACTIVE: BUGCHECK_ERROR = BUGCHECK_ERROR(347u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PDC_WATCHDOG_TIMEOUT_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(348u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SOC_SUBSYSTEM_FAILURE_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(349u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BUGCODE_NDIS_DRIVER_LIVE_DUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(350u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CONNECTED_STANDBY_WATCHDOG_TIMEOUT_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(351u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WIN32K_ATOMIC_CHECK_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(352u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const LIVE_SYSTEM_DUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(353u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KERNEL_AUTO_BOOST_INVALID_LOCK_RELEASE: BUGCHECK_ERROR = BUGCHECK_ERROR(354u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WORKER_THREAD_TEST_CONDITION: BUGCHECK_ERROR = BUGCHECK_ERROR(355u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WIN32K_CRITICAL_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(356u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CLUSTER_CSV_STATUS_IO_TIMEOUT_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(357u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CLUSTER_RESOURCE_CALL_TIMEOUT_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(358u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CLUSTER_CSV_SNAPSHOT_DEVICE_INFO_TIMEOUT_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(359u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CLUSTER_CSV_STATE_TRANSITION_TIMEOUT_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(360u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CLUSTER_CSV_VOLUME_ARRIVAL_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(361u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CLUSTER_CSV_VOLUME_REMOVAL_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(362u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CLUSTER_CSV_CLUSTER_WATCHDOG_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(363u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_RUNDOWN_PROTECTION_FLAGS: BUGCHECK_ERROR = BUGCHECK_ERROR(364u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_SLOT_ALLOCATOR_FLAGS: BUGCHECK_ERROR = BUGCHECK_ERROR(365u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ERESOURCE_INVALID_RELEASE: BUGCHECK_ERROR = BUGCHECK_ERROR(366u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CLUSTER_CSV_STATE_TRANSITION_INTERVAL_TIMEOUT_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(367u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CLUSTER_CSV_CLUSSVC_DISCONNECT_WATCHDOG: BUGCHECK_ERROR = BUGCHECK_ERROR(368u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CRYPTO_LIBRARY_INTERNAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(369u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const COREMSGCALL_INTERNAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(371u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const COREMSG_INTERNAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(372u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PREVIOUS_FATAL_ABNORMAL_RESET_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(373u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ELAM_DRIVER_DETECTED_FATAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(376u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CLUSTER_CLUSPORT_STATUS_IO_TIMEOUT_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(377u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_CONFIGURATION_ILLEGAL: BUGCHECK_ERROR = BUGCHECK_ERROR(379u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PDC_LOCK_WATCHDOG_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(380u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PDC_UNEXPECTED_REVOCATION_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(381u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MICROCODE_REVISION_MISMATCH: BUGCHECK_ERROR = BUGCHECK_ERROR(382u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const HYPERGUARD_INITIALIZATION_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(383u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WVR_LIVEDUMP_REPLICATION_IOCONTEXT_TIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(384u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WVR_LIVEDUMP_STATE_TRANSITION_TIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(385u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WVR_LIVEDUMP_RECOVERY_IOCONTEXT_TIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(386u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WVR_LIVEDUMP_APP_IO_TIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(387u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WVR_LIVEDUMP_MANUALLY_INITIATED: BUGCHECK_ERROR = BUGCHECK_ERROR(388u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WVR_LIVEDUMP_STATE_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(389u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WVR_LIVEDUMP_CRITICAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(390u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VIDEO_DWMINIT_TIMEOUT_FALLBACK_BDD: BUGCHECK_ERROR = BUGCHECK_ERROR(391u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CLUSTER_CSVFS_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(392u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BAD_OBJECT_HEADER: BUGCHECK_ERROR = BUGCHECK_ERROR(393u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SILO_CORRUPT: BUGCHECK_ERROR = BUGCHECK_ERROR(394u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SECURE_KERNEL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(395u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const HYPERGUARD_VIOLATION: BUGCHECK_ERROR = BUGCHECK_ERROR(396u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SECURE_FAULT_UNHANDLED: BUGCHECK_ERROR = BUGCHECK_ERROR(397u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KERNEL_PARTITION_REFERENCE_VIOLATION: BUGCHECK_ERROR = BUGCHECK_ERROR(398u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYNTHETIC_EXCEPTION_UNHANDLED: BUGCHECK_ERROR = BUGCHECK_ERROR(399u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WIN32K_CRITICAL_FAILURE_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(400u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PF_DETECTED_CORRUPTION: BUGCHECK_ERROR = BUGCHECK_ERROR(401u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KERNEL_AUTO_BOOST_LOCK_ACQUISITION_WITH_RAISED_IRQL: BUGCHECK_ERROR = BUGCHECK_ERROR(402u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VIDEO_DXGKRNL_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(403u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KERNEL_STORAGE_SLOT_IN_USE: BUGCHECK_ERROR = BUGCHECK_ERROR(409u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SMB_SERVER_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(405u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const LOADER_ROLLBACK_DETECTED: BUGCHECK_ERROR = BUGCHECK_ERROR(406u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WIN32K_SECURITY_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(407u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UFX_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(408u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WORKER_THREAD_RETURNED_WHILE_ATTACHED_TO_SILO: BUGCHECK_ERROR = BUGCHECK_ERROR(410u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TTM_FATAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(411u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WIN32K_POWER_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(412u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CLUSTER_SVHDX_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(413u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BUGCODE_NETADAPTER_DRIVER: BUGCHECK_ERROR = BUGCHECK_ERROR(414u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PDC_PRIVILEGE_CHECK_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(415u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TTM_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(416u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WIN32K_CALLOUT_WATCHDOG_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(417u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WIN32K_CALLOUT_WATCHDOG_BUGCHECK: BUGCHECK_ERROR = BUGCHECK_ERROR(418u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CALL_HAS_NOT_RETURNED_WATCHDOG_TIMEOUT_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(419u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIPS_SW_HW_DIVERGENCE_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(420u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const USB_DRIPS_BLOCKER_SURPRISE_REMOVAL_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(421u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BLUETOOTH_ERROR_RECOVERY_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(422u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SMB_REDIRECTOR_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(423u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VIDEO_DXGKRNL_BLACK_SCREEN_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(424u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DIRECTED_FX_TRANSITION_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(425u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXCEPTION_ON_INVALID_STACK: BUGCHECK_ERROR = BUGCHECK_ERROR(426u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNWIND_ON_INVALID_STACK: BUGCHECK_ERROR = BUGCHECK_ERROR(427u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VIDEO_MINIPORT_FAILED_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(432u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VIDEO_MINIPORT_BLACK_SCREEN_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(440u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_VERIFIER_DETECTED_VIOLATION_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(452u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IO_THREADPOOL_DEADLOCK_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(453u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FAST_ERESOURCE_PRECONDITION_VIOLATION: BUGCHECK_ERROR = BUGCHECK_ERROR(454u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const STORE_DATA_STRUCTURE_CORRUPTION: BUGCHECK_ERROR = BUGCHECK_ERROR(455u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MANUALLY_INITIATED_POWER_BUTTON_HOLD: BUGCHECK_ERROR = BUGCHECK_ERROR(456u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const USER_MODE_HEALTH_MONITOR_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(457u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYNTHETIC_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(458u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_SILO_DETACH: BUGCHECK_ERROR = BUGCHECK_ERROR(459u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXRESOURCE_TIMEOUT_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(460u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_CALLBACK_STACK_ADDRESS: BUGCHECK_ERROR = BUGCHECK_ERROR(461u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_KERNEL_STACK_ADDRESS: BUGCHECK_ERROR = BUGCHECK_ERROR(462u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const HARDWARE_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(463u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ACPI_FIRMWARE_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(464u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TELEMETRY_ASSERTS_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(465u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WORKER_THREAD_INVALID_STATE: BUGCHECK_ERROR = BUGCHECK_ERROR(466u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WFP_INVALID_OPERATION: BUGCHECK_ERROR = BUGCHECK_ERROR(467u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UCMUCSI_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(468u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_PNP_WATCHDOG: BUGCHECK_ERROR = BUGCHECK_ERROR(469u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WORKER_THREAD_RETURNED_WITH_NON_DEFAULT_WORKLOAD_CLASS: BUGCHECK_ERROR = BUGCHECK_ERROR(470u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EFS_FATAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(471u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UCMUCSI_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(472u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const HAL_IOMMU_INTERNAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(473u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const HAL_BLOCKED_PROCESSOR_INTERNAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(474u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IPI_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(475u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DMA_COMMON_BUFFER_VECTOR_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(476u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BUGCODE_MBBADAPTER_DRIVER: BUGCHECK_ERROR = BUGCHECK_ERROR(477u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BUGCODE_WIFIADAPTER_DRIVER: BUGCHECK_ERROR = BUGCHECK_ERROR(478u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROCESSOR_START_TIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(479u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_ALTERNATE_SYSTEM_CALL_HANDLER_REGISTRATION: BUGCHECK_ERROR = BUGCHECK_ERROR(480u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEVICE_DIAGNOSTIC_LOG_LIVEDUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(481u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const AZURE_DEVICE_FW_DUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(482u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BREAKAWAY_CABLE_TRANSITION: BUGCHECK_ERROR = BUGCHECK_ERROR(483u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VIDEO_DXGKRNL_SYSMM_FATAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(484u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DRIVER_VERIFIER_TRACKING_LIVE_DUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(485u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CRASHDUMP_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(486u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const REGISTRY_LIVE_DUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(487u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const INVALID_THREAD_AFFINITY_STATE: BUGCHECK_ERROR = BUGCHECK_ERROR(488u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ILLEGAL_ATS_INITIALIZATION: BUGCHECK_ERROR = BUGCHECK_ERROR(489u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SECURE_PCI_CONFIG_SPACE_ACCESS_VIOLATION: BUGCHECK_ERROR = BUGCHECK_ERROR(490u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DAM_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(491u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const XBOX_VMCTRL_CS_TIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(854u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const XBOX_CORRUPTED_IMAGE: BUGCHECK_ERROR = BUGCHECK_ERROR(855u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const XBOX_INVERTED_FUNCTION_TABLE_OVERFLOW: BUGCHECK_ERROR = BUGCHECK_ERROR(856u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const XBOX_CORRUPTED_IMAGE_BASE: BUGCHECK_ERROR = BUGCHECK_ERROR(857u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const XBOX_XDS_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(858u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const XBOX_SHUTDOWN_WATCHDOG_TIMEOUT: BUGCHECK_ERROR = BUGCHECK_ERROR(859u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const XBOX_360_SYSTEM_CRASH: BUGCHECK_ERROR = BUGCHECK_ERROR(864u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const XBOX_360_SYSTEM_CRASH_RESERVED: BUGCHECK_ERROR = BUGCHECK_ERROR(1056u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const XBOX_SECURITY_FAILUE: BUGCHECK_ERROR = BUGCHECK_ERROR(1057u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KERNEL_CFG_INIT_FAILURE: BUGCHECK_ERROR = BUGCHECK_ERROR(1058u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MANUALLY_INITIATED_POWER_BUTTON_HOLD_LIVE_DUMP: BUGCHECK_ERROR = BUGCHECK_ERROR(4552u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const HYPERVISOR_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(131073u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WINLOGON_FATAL_ERROR: BUGCHECK_ERROR = BUGCHECK_ERROR(3221226010u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MANUALLY_INITIATED_CRASH1: BUGCHECK_ERROR = BUGCHECK_ERROR(3735936685u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BUGCHECK_CONTEXT_MODIFIER: BUGCHECK_ERROR = BUGCHECK_ERROR(2147483648u32);
impl ::core::marker::Copy for BUGCHECK_ERROR {}
impl ::core::clone::Clone for BUGCHECK_ERROR {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for BUGCHECK_ERROR {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for BUGCHECK_ERROR {
    type Abi = Self;
}
impl ::core::fmt::Debug for BUGCHECK_ERROR {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("BUGCHECK_ERROR").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct CallingConventionKind(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CallingConventionUnknown: CallingConventionKind = CallingConventionKind(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CallingConventionCDecl: CallingConventionKind = CallingConventionKind(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CallingConventionFastCall: CallingConventionKind = CallingConventionKind(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CallingConventionStdCall: CallingConventionKind = CallingConventionKind(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CallingConventionSysCall: CallingConventionKind = CallingConventionKind(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CallingConventionThisCall: CallingConventionKind = CallingConventionKind(5i32);
impl ::core::marker::Copy for CallingConventionKind {}
impl ::core::clone::Clone for CallingConventionKind {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for CallingConventionKind {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for CallingConventionKind {
    type Abi = Self;
}
impl ::core::fmt::Debug for CallingConventionKind {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("CallingConventionKind").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct DBGKD_MAJOR_TYPES(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_MAJOR_NT: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_MAJOR_XBOX: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_MAJOR_BIG: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_MAJOR_EXDI: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_MAJOR_NTBD: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_MAJOR_EFI: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_MAJOR_TNT: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_MAJOR_SINGULARITY: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(7i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_MAJOR_HYPERVISOR: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_MAJOR_MIDORI: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(9i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_MAJOR_CE: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(10i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGKD_MAJOR_COUNT: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(11i32);
impl ::core::marker::Copy for DBGKD_MAJOR_TYPES {}
impl ::core::clone::Clone for DBGKD_MAJOR_TYPES {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for DBGKD_MAJOR_TYPES {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for DBGKD_MAJOR_TYPES {
    type Abi = Self;
}
impl ::core::fmt::Debug for DBGKD_MAJOR_TYPES {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DBGKD_MAJOR_TYPES").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct DBGPROP_ATTRIB_FLAGS(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_NO_ATTRIB: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(0u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_VALUE_IS_INVALID: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(8u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_VALUE_IS_EXPANDABLE: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(16u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_VALUE_IS_FAKE: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(32u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_VALUE_IS_METHOD: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(256u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_VALUE_IS_EVENT: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(512u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_VALUE_IS_RAW_STRING: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(1024u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_VALUE_READONLY: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(2048u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_ACCESS_PUBLIC: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(4096u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_ACCESS_PRIVATE: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(8192u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_ACCESS_PROTECTED: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(16384u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_ACCESS_FINAL: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(32768u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_STORAGE_GLOBAL: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(65536u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_STORAGE_STATIC: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(131072u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_STORAGE_FIELD: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(262144u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_STORAGE_VIRTUAL: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(524288u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_TYPE_IS_CONSTANT: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(1048576u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_TYPE_IS_SYNCHRONIZED: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(2097152u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_TYPE_IS_VOLATILE: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(4194304u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_HAS_EXTENDED_ATTRIBS: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(8388608u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_FRAME_INTRYBLOCK: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(16777216u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_FRAME_INCATCHBLOCK: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(33554432u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_FRAME_INFINALLYBLOCK: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(67108864u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_VALUE_IS_RETURN_VALUE: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(134217728u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_ATTRIB_VALUE_PENDING_MUTATION: DBGPROP_ATTRIB_FLAGS = DBGPROP_ATTRIB_FLAGS(268435456u32);
impl ::core::marker::Copy for DBGPROP_ATTRIB_FLAGS {}
impl ::core::clone::Clone for DBGPROP_ATTRIB_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for DBGPROP_ATTRIB_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for DBGPROP_ATTRIB_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for DBGPROP_ATTRIB_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DBGPROP_ATTRIB_FLAGS").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for DBGPROP_ATTRIB_FLAGS {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for DBGPROP_ATTRIB_FLAGS {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for DBGPROP_ATTRIB_FLAGS {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for DBGPROP_ATTRIB_FLAGS {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for DBGPROP_ATTRIB_FLAGS {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct DBGPROP_INFO(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_INFO_NAME: DBGPROP_INFO = DBGPROP_INFO(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_INFO_TYPE: DBGPROP_INFO = DBGPROP_INFO(2u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_INFO_VALUE: DBGPROP_INFO = DBGPROP_INFO(4u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_INFO_FULLNAME: DBGPROP_INFO = DBGPROP_INFO(32u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_INFO_ATTRIBUTES: DBGPROP_INFO = DBGPROP_INFO(8u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_INFO_DEBUGPROP: DBGPROP_INFO = DBGPROP_INFO(16u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_INFO_BEAUTIFY: DBGPROP_INFO = DBGPROP_INFO(33554432u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_INFO_CALLTOSTRING: DBGPROP_INFO = DBGPROP_INFO(67108864u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBGPROP_INFO_AUTOEXPAND: DBGPROP_INFO = DBGPROP_INFO(134217728u32);
impl ::core::marker::Copy for DBGPROP_INFO {}
impl ::core::clone::Clone for DBGPROP_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for DBGPROP_INFO {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for DBGPROP_INFO {
    type Abi = Self;
}
impl ::core::fmt::Debug for DBGPROP_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DBGPROP_INFO").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for DBGPROP_INFO {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for DBGPROP_INFO {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for DBGPROP_INFO {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for DBGPROP_INFO {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for DBGPROP_INFO {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct DEBUG_EVENT_CODE(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CREATE_PROCESS_DEBUG_EVENT: DEBUG_EVENT_CODE = DEBUG_EVENT_CODE(3u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CREATE_THREAD_DEBUG_EVENT: DEBUG_EVENT_CODE = DEBUG_EVENT_CODE(2u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXCEPTION_DEBUG_EVENT: DEBUG_EVENT_CODE = DEBUG_EVENT_CODE(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXIT_PROCESS_DEBUG_EVENT: DEBUG_EVENT_CODE = DEBUG_EVENT_CODE(5u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXIT_THREAD_DEBUG_EVENT: DEBUG_EVENT_CODE = DEBUG_EVENT_CODE(4u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const LOAD_DLL_DEBUG_EVENT: DEBUG_EVENT_CODE = DEBUG_EVENT_CODE(6u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OUTPUT_DEBUG_STRING_EVENT: DEBUG_EVENT_CODE = DEBUG_EVENT_CODE(8u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const RIP_EVENT: DEBUG_EVENT_CODE = DEBUG_EVENT_CODE(9u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNLOAD_DLL_DEBUG_EVENT: DEBUG_EVENT_CODE = DEBUG_EVENT_CODE(7u32);
impl ::core::marker::Copy for DEBUG_EVENT_CODE {}
impl ::core::clone::Clone for DEBUG_EVENT_CODE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for DEBUG_EVENT_CODE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for DEBUG_EVENT_CODE {
    type Abi = Self;
}
impl ::core::fmt::Debug for DEBUG_EVENT_CODE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DEBUG_EVENT_CODE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct DEBUG_EVENT_INFO_TYPE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEIT_GENERAL: DEBUG_EVENT_INFO_TYPE = DEBUG_EVENT_INFO_TYPE(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEIT_ASMJS_IN_DEBUGGING: DEBUG_EVENT_INFO_TYPE = DEBUG_EVENT_INFO_TYPE(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEIT_ASMJS_SUCCEEDED: DEBUG_EVENT_INFO_TYPE = DEBUG_EVENT_INFO_TYPE(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DEIT_ASMJS_FAILED: DEBUG_EVENT_INFO_TYPE = DEBUG_EVENT_INFO_TYPE(3i32);
impl ::core::marker::Copy for DEBUG_EVENT_INFO_TYPE {}
impl ::core::clone::Clone for DEBUG_EVENT_INFO_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for DEBUG_EVENT_INFO_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for DEBUG_EVENT_INFO_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for DEBUG_EVENT_INFO_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DEBUG_EVENT_INFO_TYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct DEBUG_STACKFRAME_TYPE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DST_SCRIPT_FRAME: DEBUG_STACKFRAME_TYPE = DEBUG_STACKFRAME_TYPE(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DST_INTERNAL_FRAME: DEBUG_STACKFRAME_TYPE = DEBUG_STACKFRAME_TYPE(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DST_INVOCATION_FRAME: DEBUG_STACKFRAME_TYPE = DEBUG_STACKFRAME_TYPE(2i32);
impl ::core::marker::Copy for DEBUG_STACKFRAME_TYPE {}
impl ::core::clone::Clone for DEBUG_STACKFRAME_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for DEBUG_STACKFRAME_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for DEBUG_STACKFRAME_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for DEBUG_STACKFRAME_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DEBUG_STACKFRAME_TYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct DOCUMENTNAMETYPE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DOCUMENTNAMETYPE_APPNODE: DOCUMENTNAMETYPE = DOCUMENTNAMETYPE(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DOCUMENTNAMETYPE_TITLE: DOCUMENTNAMETYPE = DOCUMENTNAMETYPE(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DOCUMENTNAMETYPE_FILE_TAIL: DOCUMENTNAMETYPE = DOCUMENTNAMETYPE(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DOCUMENTNAMETYPE_URL: DOCUMENTNAMETYPE = DOCUMENTNAMETYPE(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DOCUMENTNAMETYPE_UNIQUE_TITLE: DOCUMENTNAMETYPE = DOCUMENTNAMETYPE(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DOCUMENTNAMETYPE_SOURCE_MAP_URL: DOCUMENTNAMETYPE = DOCUMENTNAMETYPE(5i32);
impl ::core::marker::Copy for DOCUMENTNAMETYPE {}
impl ::core::clone::Clone for DOCUMENTNAMETYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for DOCUMENTNAMETYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for DOCUMENTNAMETYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for DOCUMENTNAMETYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DOCUMENTNAMETYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct DUMP_TYPE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DUMP_TYPE_INVALID: DUMP_TYPE = DUMP_TYPE(-1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DUMP_TYPE_UNKNOWN: DUMP_TYPE = DUMP_TYPE(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DUMP_TYPE_FULL: DUMP_TYPE = DUMP_TYPE(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DUMP_TYPE_SUMMARY: DUMP_TYPE = DUMP_TYPE(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DUMP_TYPE_HEADER: DUMP_TYPE = DUMP_TYPE(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DUMP_TYPE_TRIAGE: DUMP_TYPE = DUMP_TYPE(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DUMP_TYPE_BITMAP_FULL: DUMP_TYPE = DUMP_TYPE(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DUMP_TYPE_BITMAP_KERNEL: DUMP_TYPE = DUMP_TYPE(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DUMP_TYPE_AUTOMATIC: DUMP_TYPE = DUMP_TYPE(7i32);
impl ::core::marker::Copy for DUMP_TYPE {}
impl ::core::clone::Clone for DUMP_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for DUMP_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for DUMP_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for DUMP_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("DUMP_TYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct ERRORRESUMEACTION(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ERRORRESUMEACTION_ReexecuteErrorStatement: ERRORRESUMEACTION = ERRORRESUMEACTION(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ERRORRESUMEACTION_AbortCallAndReturnErrorToCaller: ERRORRESUMEACTION = ERRORRESUMEACTION(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ERRORRESUMEACTION_SkipErrorStatement: ERRORRESUMEACTION = ERRORRESUMEACTION(2i32);
impl ::core::marker::Copy for ERRORRESUMEACTION {}
impl ::core::clone::Clone for ERRORRESUMEACTION {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ERRORRESUMEACTION {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ERRORRESUMEACTION {
    type Abi = Self;
}
impl ::core::fmt::Debug for ERRORRESUMEACTION {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ERRORRESUMEACTION").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct EXT_TDOP(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDOP_COPY: EXT_TDOP = EXT_TDOP(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDOP_RELEASE: EXT_TDOP = EXT_TDOP(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDOP_SET_FROM_EXPR: EXT_TDOP = EXT_TDOP(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDOP_SET_FROM_U64_EXPR: EXT_TDOP = EXT_TDOP(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDOP_GET_FIELD: EXT_TDOP = EXT_TDOP(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDOP_EVALUATE: EXT_TDOP = EXT_TDOP(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDOP_GET_TYPE_NAME: EXT_TDOP = EXT_TDOP(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDOP_OUTPUT_TYPE_NAME: EXT_TDOP = EXT_TDOP(7i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDOP_OUTPUT_SIMPLE_VALUE: EXT_TDOP = EXT_TDOP(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDOP_OUTPUT_FULL_VALUE: EXT_TDOP = EXT_TDOP(9i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDOP_HAS_FIELD: EXT_TDOP = EXT_TDOP(10i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDOP_GET_FIELD_OFFSET: EXT_TDOP = EXT_TDOP(11i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDOP_GET_ARRAY_ELEMENT: EXT_TDOP = EXT_TDOP(12i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDOP_GET_DEREFERENCE: EXT_TDOP = EXT_TDOP(13i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDOP_GET_TYPE_SIZE: EXT_TDOP = EXT_TDOP(14i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDOP_OUTPUT_TYPE_DEFINITION: EXT_TDOP = EXT_TDOP(15i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDOP_GET_POINTER_TO: EXT_TDOP = EXT_TDOP(16i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDOP_SET_FROM_TYPE_ID_AND_U64: EXT_TDOP = EXT_TDOP(17i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDOP_SET_PTR_FROM_TYPE_ID_AND_U64: EXT_TDOP = EXT_TDOP(18i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EXT_TDOP_COUNT: EXT_TDOP = EXT_TDOP(19i32);
impl ::core::marker::Copy for EXT_TDOP {}
impl ::core::clone::Clone for EXT_TDOP {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for EXT_TDOP {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for EXT_TDOP {
    type Abi = Self;
}
impl ::core::fmt::Debug for EXT_TDOP {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("EXT_TDOP").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct EX_PROP_INFO_FLAGS(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EX_PROP_INFO_ID: EX_PROP_INFO_FLAGS = EX_PROP_INFO_FLAGS(256i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EX_PROP_INFO_NTYPE: EX_PROP_INFO_FLAGS = EX_PROP_INFO_FLAGS(512i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EX_PROP_INFO_NVALUE: EX_PROP_INFO_FLAGS = EX_PROP_INFO_FLAGS(1024i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EX_PROP_INFO_LOCKBYTES: EX_PROP_INFO_FLAGS = EX_PROP_INFO_FLAGS(2048i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const EX_PROP_INFO_DEBUGEXTPROP: EX_PROP_INFO_FLAGS = EX_PROP_INFO_FLAGS(4096i32);
impl ::core::marker::Copy for EX_PROP_INFO_FLAGS {}
impl ::core::clone::Clone for EX_PROP_INFO_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for EX_PROP_INFO_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for EX_PROP_INFO_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for EX_PROP_INFO_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("EX_PROP_INFO_FLAGS").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct ErrorClass(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ErrorClassWarning: ErrorClass = ErrorClass(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ErrorClassError: ErrorClass = ErrorClass(1i32);
impl ::core::marker::Copy for ErrorClass {}
impl ::core::clone::Clone for ErrorClass {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ErrorClass {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ErrorClass {
    type Abi = Self;
}
impl ::core::fmt::Debug for ErrorClass {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ErrorClass").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct FACILITY_CODE(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_NULL: FACILITY_CODE = FACILITY_CODE(0u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_RPC: FACILITY_CODE = FACILITY_CODE(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DISPATCH: FACILITY_CODE = FACILITY_CODE(2u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_STORAGE: FACILITY_CODE = FACILITY_CODE(3u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_ITF: FACILITY_CODE = FACILITY_CODE(4u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WIN32: FACILITY_CODE = FACILITY_CODE(7u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WINDOWS: FACILITY_CODE = FACILITY_CODE(8u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_SSPI: FACILITY_CODE = FACILITY_CODE(9u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_SECURITY: FACILITY_CODE = FACILITY_CODE(9u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_CONTROL: FACILITY_CODE = FACILITY_CODE(10u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_CERT: FACILITY_CODE = FACILITY_CODE(11u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_INTERNET: FACILITY_CODE = FACILITY_CODE(12u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_MEDIASERVER: FACILITY_CODE = FACILITY_CODE(13u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_MSMQ: FACILITY_CODE = FACILITY_CODE(14u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_SETUPAPI: FACILITY_CODE = FACILITY_CODE(15u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_SCARD: FACILITY_CODE = FACILITY_CODE(16u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_COMPLUS: FACILITY_CODE = FACILITY_CODE(17u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_AAF: FACILITY_CODE = FACILITY_CODE(18u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_URT: FACILITY_CODE = FACILITY_CODE(19u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_ACS: FACILITY_CODE = FACILITY_CODE(20u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DPLAY: FACILITY_CODE = FACILITY_CODE(21u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_UMI: FACILITY_CODE = FACILITY_CODE(22u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_SXS: FACILITY_CODE = FACILITY_CODE(23u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WINDOWS_CE: FACILITY_CODE = FACILITY_CODE(24u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_HTTP: FACILITY_CODE = FACILITY_CODE(25u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_USERMODE_COMMONLOG: FACILITY_CODE = FACILITY_CODE(26u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WER: FACILITY_CODE = FACILITY_CODE(27u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_USERMODE_FILTER_MANAGER: FACILITY_CODE = FACILITY_CODE(31u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_BACKGROUNDCOPY: FACILITY_CODE = FACILITY_CODE(32u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_CONFIGURATION: FACILITY_CODE = FACILITY_CODE(33u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WIA: FACILITY_CODE = FACILITY_CODE(33u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_STATE_MANAGEMENT: FACILITY_CODE = FACILITY_CODE(34u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_METADIRECTORY: FACILITY_CODE = FACILITY_CODE(35u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WINDOWSUPDATE: FACILITY_CODE = FACILITY_CODE(36u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DIRECTORYSERVICE: FACILITY_CODE = FACILITY_CODE(37u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_GRAPHICS: FACILITY_CODE = FACILITY_CODE(38u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_SHELL: FACILITY_CODE = FACILITY_CODE(39u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_NAP: FACILITY_CODE = FACILITY_CODE(39u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_TPM_SERVICES: FACILITY_CODE = FACILITY_CODE(40u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_TPM_SOFTWARE: FACILITY_CODE = FACILITY_CODE(41u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_UI: FACILITY_CODE = FACILITY_CODE(42u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_XAML: FACILITY_CODE = FACILITY_CODE(43u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_ACTION_QUEUE: FACILITY_CODE = FACILITY_CODE(44u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_PLA: FACILITY_CODE = FACILITY_CODE(48u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WINDOWS_SETUP: FACILITY_CODE = FACILITY_CODE(48u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_FVE: FACILITY_CODE = FACILITY_CODE(49u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_FWP: FACILITY_CODE = FACILITY_CODE(50u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WINRM: FACILITY_CODE = FACILITY_CODE(51u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_NDIS: FACILITY_CODE = FACILITY_CODE(52u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_USERMODE_HYPERVISOR: FACILITY_CODE = FACILITY_CODE(53u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_CMI: FACILITY_CODE = FACILITY_CODE(54u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_USERMODE_VIRTUALIZATION: FACILITY_CODE = FACILITY_CODE(55u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_USERMODE_VOLMGR: FACILITY_CODE = FACILITY_CODE(56u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_BCD: FACILITY_CODE = FACILITY_CODE(57u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_USERMODE_VHD: FACILITY_CODE = FACILITY_CODE(58u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_USERMODE_HNS: FACILITY_CODE = FACILITY_CODE(59u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_SDIAG: FACILITY_CODE = FACILITY_CODE(60u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WEBSERVICES: FACILITY_CODE = FACILITY_CODE(61u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WINPE: FACILITY_CODE = FACILITY_CODE(61u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WPN: FACILITY_CODE = FACILITY_CODE(62u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WINDOWS_STORE: FACILITY_CODE = FACILITY_CODE(63u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_INPUT: FACILITY_CODE = FACILITY_CODE(64u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_QUIC: FACILITY_CODE = FACILITY_CODE(65u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_EAP: FACILITY_CODE = FACILITY_CODE(66u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_IORING: FACILITY_CODE = FACILITY_CODE(70u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WINDOWS_DEFENDER: FACILITY_CODE = FACILITY_CODE(80u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_OPC: FACILITY_CODE = FACILITY_CODE(81u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_XPS: FACILITY_CODE = FACILITY_CODE(82u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_MBN: FACILITY_CODE = FACILITY_CODE(84u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_POWERSHELL: FACILITY_CODE = FACILITY_CODE(84u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_RAS: FACILITY_CODE = FACILITY_CODE(83u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_P2P_INT: FACILITY_CODE = FACILITY_CODE(98u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_P2P: FACILITY_CODE = FACILITY_CODE(99u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DAF: FACILITY_CODE = FACILITY_CODE(100u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_BLUETOOTH_ATT: FACILITY_CODE = FACILITY_CODE(101u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_AUDIO: FACILITY_CODE = FACILITY_CODE(102u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_STATEREPOSITORY: FACILITY_CODE = FACILITY_CODE(103u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_VISUALCPP: FACILITY_CODE = FACILITY_CODE(109u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_SCRIPT: FACILITY_CODE = FACILITY_CODE(112u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_PARSE: FACILITY_CODE = FACILITY_CODE(113u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_BLB: FACILITY_CODE = FACILITY_CODE(120u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_BLB_CLI: FACILITY_CODE = FACILITY_CODE(121u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WSBAPP: FACILITY_CODE = FACILITY_CODE(122u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_BLBUI: FACILITY_CODE = FACILITY_CODE(128u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_USN: FACILITY_CODE = FACILITY_CODE(129u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_USERMODE_VOLSNAP: FACILITY_CODE = FACILITY_CODE(130u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_TIERING: FACILITY_CODE = FACILITY_CODE(131u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WSB_ONLINE: FACILITY_CODE = FACILITY_CODE(133u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_ONLINE_ID: FACILITY_CODE = FACILITY_CODE(134u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DEVICE_UPDATE_AGENT: FACILITY_CODE = FACILITY_CODE(135u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DRVSERVICING: FACILITY_CODE = FACILITY_CODE(136u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DLS: FACILITY_CODE = FACILITY_CODE(153u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DELIVERY_OPTIMIZATION: FACILITY_CODE = FACILITY_CODE(208u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_USERMODE_SPACES: FACILITY_CODE = FACILITY_CODE(231u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_USER_MODE_SECURITY_CORE: FACILITY_CODE = FACILITY_CODE(232u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_USERMODE_LICENSING: FACILITY_CODE = FACILITY_CODE(234u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_SOS: FACILITY_CODE = FACILITY_CODE(160u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_OCP_UPDATE_AGENT: FACILITY_CODE = FACILITY_CODE(173u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DEBUGGERS: FACILITY_CODE = FACILITY_CODE(176u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_SPP: FACILITY_CODE = FACILITY_CODE(256u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_RESTORE: FACILITY_CODE = FACILITY_CODE(256u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DMSERVER: FACILITY_CODE = FACILITY_CODE(256u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DEPLOYMENT_SERVICES_SERVER: FACILITY_CODE = FACILITY_CODE(257u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DEPLOYMENT_SERVICES_IMAGING: FACILITY_CODE = FACILITY_CODE(258u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DEPLOYMENT_SERVICES_MANAGEMENT: FACILITY_CODE = FACILITY_CODE(259u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DEPLOYMENT_SERVICES_UTIL: FACILITY_CODE = FACILITY_CODE(260u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DEPLOYMENT_SERVICES_BINLSVC: FACILITY_CODE = FACILITY_CODE(261u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DEPLOYMENT_SERVICES_PXE: FACILITY_CODE = FACILITY_CODE(263u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DEPLOYMENT_SERVICES_TFTP: FACILITY_CODE = FACILITY_CODE(264u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DEPLOYMENT_SERVICES_TRANSPORT_MANAGEMENT: FACILITY_CODE = FACILITY_CODE(272u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DEPLOYMENT_SERVICES_DRIVER_PROVISIONING: FACILITY_CODE = FACILITY_CODE(278u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DEPLOYMENT_SERVICES_MULTICAST_SERVER: FACILITY_CODE = FACILITY_CODE(289u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DEPLOYMENT_SERVICES_MULTICAST_CLIENT: FACILITY_CODE = FACILITY_CODE(290u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DEPLOYMENT_SERVICES_CONTENT_PROVIDER: FACILITY_CODE = FACILITY_CODE(293u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_HSP_SERVICES: FACILITY_CODE = FACILITY_CODE(296u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_HSP_SOFTWARE: FACILITY_CODE = FACILITY_CODE(297u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_LINGUISTIC_SERVICES: FACILITY_CODE = FACILITY_CODE(305u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_AUDIOSTREAMING: FACILITY_CODE = FACILITY_CODE(1094u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_TTD: FACILITY_CODE = FACILITY_CODE(1490u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_ACCELERATOR: FACILITY_CODE = FACILITY_CODE(1536u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WMAAECMA: FACILITY_CODE = FACILITY_CODE(1996u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DIRECTMUSIC: FACILITY_CODE = FACILITY_CODE(2168u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DIRECT3D10: FACILITY_CODE = FACILITY_CODE(2169u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DXGI: FACILITY_CODE = FACILITY_CODE(2170u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DXGI_DDI: FACILITY_CODE = FACILITY_CODE(2171u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DIRECT3D11: FACILITY_CODE = FACILITY_CODE(2172u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DIRECT3D11_DEBUG: FACILITY_CODE = FACILITY_CODE(2173u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DIRECT3D12: FACILITY_CODE = FACILITY_CODE(2174u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DIRECT3D12_DEBUG: FACILITY_CODE = FACILITY_CODE(2175u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DXCORE: FACILITY_CODE = FACILITY_CODE(2176u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_PRESENTATION: FACILITY_CODE = FACILITY_CODE(2177u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_LEAP: FACILITY_CODE = FACILITY_CODE(2184u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_AUDCLNT: FACILITY_CODE = FACILITY_CODE(2185u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WINCODEC_DWRITE_DWM: FACILITY_CODE = FACILITY_CODE(2200u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WINML: FACILITY_CODE = FACILITY_CODE(2192u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DIRECT2D: FACILITY_CODE = FACILITY_CODE(2201u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_DEFRAG: FACILITY_CODE = FACILITY_CODE(2304u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_USERMODE_SDBUS: FACILITY_CODE = FACILITY_CODE(2305u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_JSCRIPT: FACILITY_CODE = FACILITY_CODE(2306u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_PIDGENX: FACILITY_CODE = FACILITY_CODE(2561u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_EAS: FACILITY_CODE = FACILITY_CODE(85u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WEB: FACILITY_CODE = FACILITY_CODE(885u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WEB_SOCKET: FACILITY_CODE = FACILITY_CODE(886u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_MOBILE: FACILITY_CODE = FACILITY_CODE(1793u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_SQLITE: FACILITY_CODE = FACILITY_CODE(1967u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_SERVICE_FABRIC: FACILITY_CODE = FACILITY_CODE(1968u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_UTC: FACILITY_CODE = FACILITY_CODE(1989u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_WEP: FACILITY_CODE = FACILITY_CODE(2049u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_SYNCENGINE: FACILITY_CODE = FACILITY_CODE(2050u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_XBOX: FACILITY_CODE = FACILITY_CODE(2339u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_GAME: FACILITY_CODE = FACILITY_CODE(2340u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_PIX: FACILITY_CODE = FACILITY_CODE(2748u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FACILITY_NT_BIT: FACILITY_CODE = FACILITY_CODE(268435456u32);
impl ::core::marker::Copy for FACILITY_CODE {}
impl ::core::clone::Clone for FACILITY_CODE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for FACILITY_CODE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for FACILITY_CODE {
    type Abi = Self;
}
impl ::core::fmt::Debug for FACILITY_CODE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("FACILITY_CODE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct FORMAT_MESSAGE_OPTIONS(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FORMAT_MESSAGE_ALLOCATE_BUFFER: FORMAT_MESSAGE_OPTIONS = FORMAT_MESSAGE_OPTIONS(256u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FORMAT_MESSAGE_ARGUMENT_ARRAY: FORMAT_MESSAGE_OPTIONS = FORMAT_MESSAGE_OPTIONS(8192u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FORMAT_MESSAGE_FROM_HMODULE: FORMAT_MESSAGE_OPTIONS = FORMAT_MESSAGE_OPTIONS(2048u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FORMAT_MESSAGE_FROM_STRING: FORMAT_MESSAGE_OPTIONS = FORMAT_MESSAGE_OPTIONS(1024u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FORMAT_MESSAGE_FROM_SYSTEM: FORMAT_MESSAGE_OPTIONS = FORMAT_MESSAGE_OPTIONS(4096u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FORMAT_MESSAGE_IGNORE_INSERTS: FORMAT_MESSAGE_OPTIONS = FORMAT_MESSAGE_OPTIONS(512u32);
impl ::core::marker::Copy for FORMAT_MESSAGE_OPTIONS {}
impl ::core::clone::Clone for FORMAT_MESSAGE_OPTIONS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for FORMAT_MESSAGE_OPTIONS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for FORMAT_MESSAGE_OPTIONS {
    type Abi = Self;
}
impl ::core::fmt::Debug for FORMAT_MESSAGE_OPTIONS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("FORMAT_MESSAGE_OPTIONS").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for FORMAT_MESSAGE_OPTIONS {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for FORMAT_MESSAGE_OPTIONS {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for FORMAT_MESSAGE_OPTIONS {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for FORMAT_MESSAGE_OPTIONS {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for FORMAT_MESSAGE_OPTIONS {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct IMAGEHLP_CBA_EVENT_SEVERITY(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const sevInfo: IMAGEHLP_CBA_EVENT_SEVERITY = IMAGEHLP_CBA_EVENT_SEVERITY(0u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const sevProblem: IMAGEHLP_CBA_EVENT_SEVERITY = IMAGEHLP_CBA_EVENT_SEVERITY(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const sevAttn: IMAGEHLP_CBA_EVENT_SEVERITY = IMAGEHLP_CBA_EVENT_SEVERITY(2u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const sevFatal: IMAGEHLP_CBA_EVENT_SEVERITY = IMAGEHLP_CBA_EVENT_SEVERITY(3u32);
impl ::core::marker::Copy for IMAGEHLP_CBA_EVENT_SEVERITY {}
impl ::core::clone::Clone for IMAGEHLP_CBA_EVENT_SEVERITY {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for IMAGEHLP_CBA_EVENT_SEVERITY {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for IMAGEHLP_CBA_EVENT_SEVERITY {
    type Abi = Self;
}
impl ::core::fmt::Debug for IMAGEHLP_CBA_EVENT_SEVERITY {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMAGEHLP_CBA_EVENT_SEVERITY").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct IMAGEHLP_EXTENDED_OPTIONS(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_EX_DISABLEACCESSTIMEUPDATE: IMAGEHLP_EXTENDED_OPTIONS = IMAGEHLP_EXTENDED_OPTIONS(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_EX_LASTVALIDDEBUGDIRECTORY: IMAGEHLP_EXTENDED_OPTIONS = IMAGEHLP_EXTENDED_OPTIONS(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_EX_NOIMPLICITPATTERNSEARCH: IMAGEHLP_EXTENDED_OPTIONS = IMAGEHLP_EXTENDED_OPTIONS(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_EX_NEVERLOADSYMBOLS: IMAGEHLP_EXTENDED_OPTIONS = IMAGEHLP_EXTENDED_OPTIONS(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMOPT_EX_MAX: IMAGEHLP_EXTENDED_OPTIONS = IMAGEHLP_EXTENDED_OPTIONS(4i32);
impl ::core::marker::Copy for IMAGEHLP_EXTENDED_OPTIONS {}
impl ::core::clone::Clone for IMAGEHLP_EXTENDED_OPTIONS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for IMAGEHLP_EXTENDED_OPTIONS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for IMAGEHLP_EXTENDED_OPTIONS {
    type Abi = Self;
}
impl ::core::fmt::Debug for IMAGEHLP_EXTENDED_OPTIONS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMAGEHLP_EXTENDED_OPTIONS").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct IMAGEHLP_GET_TYPE_INFO_FLAGS(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_GET_TYPE_INFO_CHILDREN: IMAGEHLP_GET_TYPE_INFO_FLAGS = IMAGEHLP_GET_TYPE_INFO_FLAGS(2u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_GET_TYPE_INFO_UNCACHED: IMAGEHLP_GET_TYPE_INFO_FLAGS = IMAGEHLP_GET_TYPE_INFO_FLAGS(1u32);
impl ::core::marker::Copy for IMAGEHLP_GET_TYPE_INFO_FLAGS {}
impl ::core::clone::Clone for IMAGEHLP_GET_TYPE_INFO_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for IMAGEHLP_GET_TYPE_INFO_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for IMAGEHLP_GET_TYPE_INFO_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for IMAGEHLP_GET_TYPE_INFO_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMAGEHLP_GET_TYPE_INFO_FLAGS").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct IMAGEHLP_HD_TYPE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const hdBase: IMAGEHLP_HD_TYPE = IMAGEHLP_HD_TYPE(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const hdSym: IMAGEHLP_HD_TYPE = IMAGEHLP_HD_TYPE(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const hdSrc: IMAGEHLP_HD_TYPE = IMAGEHLP_HD_TYPE(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const hdMax: IMAGEHLP_HD_TYPE = IMAGEHLP_HD_TYPE(3i32);
impl ::core::marker::Copy for IMAGEHLP_HD_TYPE {}
impl ::core::clone::Clone for IMAGEHLP_HD_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for IMAGEHLP_HD_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for IMAGEHLP_HD_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for IMAGEHLP_HD_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMAGEHLP_HD_TYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct IMAGEHLP_SF_TYPE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const sfImage: IMAGEHLP_SF_TYPE = IMAGEHLP_SF_TYPE(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const sfDbg: IMAGEHLP_SF_TYPE = IMAGEHLP_SF_TYPE(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const sfPdb: IMAGEHLP_SF_TYPE = IMAGEHLP_SF_TYPE(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const sfMpd: IMAGEHLP_SF_TYPE = IMAGEHLP_SF_TYPE(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const sfMax: IMAGEHLP_SF_TYPE = IMAGEHLP_SF_TYPE(4i32);
impl ::core::marker::Copy for IMAGEHLP_SF_TYPE {}
impl ::core::clone::Clone for IMAGEHLP_SF_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for IMAGEHLP_SF_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for IMAGEHLP_SF_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for IMAGEHLP_SF_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMAGEHLP_SF_TYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct IMAGEHLP_STATUS_REASON(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BindOutOfMemory: IMAGEHLP_STATUS_REASON = IMAGEHLP_STATUS_REASON(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BindRvaToVaFailed: IMAGEHLP_STATUS_REASON = IMAGEHLP_STATUS_REASON(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BindNoRoomInImage: IMAGEHLP_STATUS_REASON = IMAGEHLP_STATUS_REASON(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BindImportModuleFailed: IMAGEHLP_STATUS_REASON = IMAGEHLP_STATUS_REASON(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BindImportProcedureFailed: IMAGEHLP_STATUS_REASON = IMAGEHLP_STATUS_REASON(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BindImportModule: IMAGEHLP_STATUS_REASON = IMAGEHLP_STATUS_REASON(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BindImportProcedure: IMAGEHLP_STATUS_REASON = IMAGEHLP_STATUS_REASON(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BindForwarder: IMAGEHLP_STATUS_REASON = IMAGEHLP_STATUS_REASON(7i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BindForwarderNOT: IMAGEHLP_STATUS_REASON = IMAGEHLP_STATUS_REASON(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BindImageModified: IMAGEHLP_STATUS_REASON = IMAGEHLP_STATUS_REASON(9i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BindExpandFileHeaders: IMAGEHLP_STATUS_REASON = IMAGEHLP_STATUS_REASON(10i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BindImageComplete: IMAGEHLP_STATUS_REASON = IMAGEHLP_STATUS_REASON(11i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BindMismatchedSymbols: IMAGEHLP_STATUS_REASON = IMAGEHLP_STATUS_REASON(12i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BindSymbolsNotUpdated: IMAGEHLP_STATUS_REASON = IMAGEHLP_STATUS_REASON(13i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BindImportProcedure32: IMAGEHLP_STATUS_REASON = IMAGEHLP_STATUS_REASON(14i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BindImportProcedure64: IMAGEHLP_STATUS_REASON = IMAGEHLP_STATUS_REASON(15i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BindForwarder32: IMAGEHLP_STATUS_REASON = IMAGEHLP_STATUS_REASON(16i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BindForwarder64: IMAGEHLP_STATUS_REASON = IMAGEHLP_STATUS_REASON(17i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BindForwarderNOT32: IMAGEHLP_STATUS_REASON = IMAGEHLP_STATUS_REASON(18i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const BindForwarderNOT64: IMAGEHLP_STATUS_REASON = IMAGEHLP_STATUS_REASON(19i32);
impl ::core::marker::Copy for IMAGEHLP_STATUS_REASON {}
impl ::core::clone::Clone for IMAGEHLP_STATUS_REASON {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for IMAGEHLP_STATUS_REASON {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for IMAGEHLP_STATUS_REASON {
    type Abi = Self;
}
impl ::core::fmt::Debug for IMAGEHLP_STATUS_REASON {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMAGEHLP_STATUS_REASON").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct IMAGEHLP_SYMBOL_TYPE_INFO(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_SYMTAG: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_SYMNAME: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_LENGTH: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_TYPE: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_TYPEID: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_BASETYPE: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_ARRAYINDEXTYPEID: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_FINDCHILDREN: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(7i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_DATAKIND: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_ADDRESSOFFSET: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(9i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_OFFSET: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(10i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_VALUE: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(11i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_COUNT: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(12i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_CHILDRENCOUNT: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(13i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_BITPOSITION: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(14i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_VIRTUALBASECLASS: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(15i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_VIRTUALTABLESHAPEID: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(16i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_VIRTUALBASEPOINTEROFFSET: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(17i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_CLASSPARENTID: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(18i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_NESTED: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(19i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_SYMINDEX: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(20i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_LEXICALPARENT: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(21i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_ADDRESS: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(22i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_THISADJUST: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(23i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_UDTKIND: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(24i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_IS_EQUIV_TO: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(25i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_CALLING_CONVENTION: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(26i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_IS_CLOSE_EQUIV_TO: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(27i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GTIEX_REQS_VALID: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(28i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_VIRTUALBASEOFFSET: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(29i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_VIRTUALBASEDISPINDEX: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(30i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_IS_REFERENCE: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(31i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_INDIRECTVIRTUALBASECLASS: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(32i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_VIRTUALBASETABLETYPE: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(33i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TI_GET_OBJECTPOINTERTYPE: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(34i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGEHLP_SYMBOL_TYPE_INFO_MAX: IMAGEHLP_SYMBOL_TYPE_INFO = IMAGEHLP_SYMBOL_TYPE_INFO(35i32);
impl ::core::marker::Copy for IMAGEHLP_SYMBOL_TYPE_INFO {}
impl ::core::clone::Clone for IMAGEHLP_SYMBOL_TYPE_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for IMAGEHLP_SYMBOL_TYPE_INFO {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for IMAGEHLP_SYMBOL_TYPE_INFO {
    type Abi = Self;
}
impl ::core::fmt::Debug for IMAGEHLP_SYMBOL_TYPE_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMAGEHLP_SYMBOL_TYPE_INFO").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct IMAGE_DEBUG_TYPE(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DEBUG_TYPE_UNKNOWN: IMAGE_DEBUG_TYPE = IMAGE_DEBUG_TYPE(0u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DEBUG_TYPE_COFF: IMAGE_DEBUG_TYPE = IMAGE_DEBUG_TYPE(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DEBUG_TYPE_CODEVIEW: IMAGE_DEBUG_TYPE = IMAGE_DEBUG_TYPE(2u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DEBUG_TYPE_FPO: IMAGE_DEBUG_TYPE = IMAGE_DEBUG_TYPE(3u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DEBUG_TYPE_MISC: IMAGE_DEBUG_TYPE = IMAGE_DEBUG_TYPE(4u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DEBUG_TYPE_EXCEPTION: IMAGE_DEBUG_TYPE = IMAGE_DEBUG_TYPE(5u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DEBUG_TYPE_FIXUP: IMAGE_DEBUG_TYPE = IMAGE_DEBUG_TYPE(6u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DEBUG_TYPE_BORLAND: IMAGE_DEBUG_TYPE = IMAGE_DEBUG_TYPE(9u32);
impl ::core::marker::Copy for IMAGE_DEBUG_TYPE {}
impl ::core::clone::Clone for IMAGE_DEBUG_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for IMAGE_DEBUG_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for IMAGE_DEBUG_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for IMAGE_DEBUG_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMAGE_DEBUG_TYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct IMAGE_DIRECTORY_ENTRY(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DIRECTORY_ENTRY_ARCHITECTURE: IMAGE_DIRECTORY_ENTRY = IMAGE_DIRECTORY_ENTRY(7u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DIRECTORY_ENTRY_BASERELOC: IMAGE_DIRECTORY_ENTRY = IMAGE_DIRECTORY_ENTRY(5u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT: IMAGE_DIRECTORY_ENTRY = IMAGE_DIRECTORY_ENTRY(11u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR: IMAGE_DIRECTORY_ENTRY = IMAGE_DIRECTORY_ENTRY(14u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DIRECTORY_ENTRY_DEBUG: IMAGE_DIRECTORY_ENTRY = IMAGE_DIRECTORY_ENTRY(6u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT: IMAGE_DIRECTORY_ENTRY = IMAGE_DIRECTORY_ENTRY(13u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DIRECTORY_ENTRY_EXCEPTION: IMAGE_DIRECTORY_ENTRY = IMAGE_DIRECTORY_ENTRY(3u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DIRECTORY_ENTRY_EXPORT: IMAGE_DIRECTORY_ENTRY = IMAGE_DIRECTORY_ENTRY(0u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DIRECTORY_ENTRY_GLOBALPTR: IMAGE_DIRECTORY_ENTRY = IMAGE_DIRECTORY_ENTRY(8u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DIRECTORY_ENTRY_IAT: IMAGE_DIRECTORY_ENTRY = IMAGE_DIRECTORY_ENTRY(12u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DIRECTORY_ENTRY_IMPORT: IMAGE_DIRECTORY_ENTRY = IMAGE_DIRECTORY_ENTRY(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG: IMAGE_DIRECTORY_ENTRY = IMAGE_DIRECTORY_ENTRY(10u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DIRECTORY_ENTRY_RESOURCE: IMAGE_DIRECTORY_ENTRY = IMAGE_DIRECTORY_ENTRY(2u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DIRECTORY_ENTRY_SECURITY: IMAGE_DIRECTORY_ENTRY = IMAGE_DIRECTORY_ENTRY(4u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DIRECTORY_ENTRY_TLS: IMAGE_DIRECTORY_ENTRY = IMAGE_DIRECTORY_ENTRY(9u32);
impl ::core::marker::Copy for IMAGE_DIRECTORY_ENTRY {}
impl ::core::clone::Clone for IMAGE_DIRECTORY_ENTRY {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for IMAGE_DIRECTORY_ENTRY {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for IMAGE_DIRECTORY_ENTRY {
    type Abi = Self;
}
impl ::core::fmt::Debug for IMAGE_DIRECTORY_ENTRY {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMAGE_DIRECTORY_ENTRY").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct IMAGE_DLL_CHARACTERISTICS(pub u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA: IMAGE_DLL_CHARACTERISTICS = IMAGE_DLL_CHARACTERISTICS(32u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE: IMAGE_DLL_CHARACTERISTICS = IMAGE_DLL_CHARACTERISTICS(64u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY: IMAGE_DLL_CHARACTERISTICS = IMAGE_DLL_CHARACTERISTICS(128u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DLLCHARACTERISTICS_NX_COMPAT: IMAGE_DLL_CHARACTERISTICS = IMAGE_DLL_CHARACTERISTICS(256u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DLLCHARACTERISTICS_NO_ISOLATION: IMAGE_DLL_CHARACTERISTICS = IMAGE_DLL_CHARACTERISTICS(512u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DLLCHARACTERISTICS_NO_SEH: IMAGE_DLL_CHARACTERISTICS = IMAGE_DLL_CHARACTERISTICS(1024u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DLLCHARACTERISTICS_NO_BIND: IMAGE_DLL_CHARACTERISTICS = IMAGE_DLL_CHARACTERISTICS(2048u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DLLCHARACTERISTICS_APPCONTAINER: IMAGE_DLL_CHARACTERISTICS = IMAGE_DLL_CHARACTERISTICS(4096u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DLLCHARACTERISTICS_WDM_DRIVER: IMAGE_DLL_CHARACTERISTICS = IMAGE_DLL_CHARACTERISTICS(8192u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DLLCHARACTERISTICS_GUARD_CF: IMAGE_DLL_CHARACTERISTICS = IMAGE_DLL_CHARACTERISTICS(16384u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE: IMAGE_DLL_CHARACTERISTICS = IMAGE_DLL_CHARACTERISTICS(32768u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DLLCHARACTERISTICS_EX_CET_COMPAT: IMAGE_DLL_CHARACTERISTICS = IMAGE_DLL_CHARACTERISTICS(1u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DLLCHARACTERISTICS_EX_CET_COMPAT_STRICT_MODE: IMAGE_DLL_CHARACTERISTICS = IMAGE_DLL_CHARACTERISTICS(2u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DLLCHARACTERISTICS_EX_CET_SET_CONTEXT_IP_VALIDATION_RELAXED_MODE: IMAGE_DLL_CHARACTERISTICS = IMAGE_DLL_CHARACTERISTICS(4u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DLLCHARACTERISTICS_EX_CET_DYNAMIC_APIS_ALLOW_IN_PROC: IMAGE_DLL_CHARACTERISTICS = IMAGE_DLL_CHARACTERISTICS(8u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DLLCHARACTERISTICS_EX_CET_RESERVED_1: IMAGE_DLL_CHARACTERISTICS = IMAGE_DLL_CHARACTERISTICS(16u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_DLLCHARACTERISTICS_EX_CET_RESERVED_2: IMAGE_DLL_CHARACTERISTICS = IMAGE_DLL_CHARACTERISTICS(32u16);
impl ::core::marker::Copy for IMAGE_DLL_CHARACTERISTICS {}
impl ::core::clone::Clone for IMAGE_DLL_CHARACTERISTICS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for IMAGE_DLL_CHARACTERISTICS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for IMAGE_DLL_CHARACTERISTICS {
    type Abi = Self;
}
impl ::core::fmt::Debug for IMAGE_DLL_CHARACTERISTICS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMAGE_DLL_CHARACTERISTICS").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for IMAGE_DLL_CHARACTERISTICS {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for IMAGE_DLL_CHARACTERISTICS {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for IMAGE_DLL_CHARACTERISTICS {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for IMAGE_DLL_CHARACTERISTICS {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for IMAGE_DLL_CHARACTERISTICS {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct IMAGE_FILE_CHARACTERISTICS(pub u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_RELOCS_STRIPPED: IMAGE_FILE_CHARACTERISTICS = IMAGE_FILE_CHARACTERISTICS(1u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_EXECUTABLE_IMAGE: IMAGE_FILE_CHARACTERISTICS = IMAGE_FILE_CHARACTERISTICS(2u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_LINE_NUMS_STRIPPED: IMAGE_FILE_CHARACTERISTICS = IMAGE_FILE_CHARACTERISTICS(4u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_LOCAL_SYMS_STRIPPED: IMAGE_FILE_CHARACTERISTICS = IMAGE_FILE_CHARACTERISTICS(8u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_AGGRESIVE_WS_TRIM: IMAGE_FILE_CHARACTERISTICS = IMAGE_FILE_CHARACTERISTICS(16u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_LARGE_ADDRESS_AWARE: IMAGE_FILE_CHARACTERISTICS = IMAGE_FILE_CHARACTERISTICS(32u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_BYTES_REVERSED_LO: IMAGE_FILE_CHARACTERISTICS = IMAGE_FILE_CHARACTERISTICS(128u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_32BIT_MACHINE: IMAGE_FILE_CHARACTERISTICS = IMAGE_FILE_CHARACTERISTICS(256u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_DEBUG_STRIPPED: IMAGE_FILE_CHARACTERISTICS = IMAGE_FILE_CHARACTERISTICS(512u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP: IMAGE_FILE_CHARACTERISTICS = IMAGE_FILE_CHARACTERISTICS(1024u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_NET_RUN_FROM_SWAP: IMAGE_FILE_CHARACTERISTICS = IMAGE_FILE_CHARACTERISTICS(2048u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_SYSTEM: IMAGE_FILE_CHARACTERISTICS = IMAGE_FILE_CHARACTERISTICS(4096u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_DLL: IMAGE_FILE_CHARACTERISTICS = IMAGE_FILE_CHARACTERISTICS(8192u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_UP_SYSTEM_ONLY: IMAGE_FILE_CHARACTERISTICS = IMAGE_FILE_CHARACTERISTICS(16384u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_BYTES_REVERSED_HI: IMAGE_FILE_CHARACTERISTICS = IMAGE_FILE_CHARACTERISTICS(32768u16);
impl ::core::marker::Copy for IMAGE_FILE_CHARACTERISTICS {}
impl ::core::clone::Clone for IMAGE_FILE_CHARACTERISTICS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for IMAGE_FILE_CHARACTERISTICS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for IMAGE_FILE_CHARACTERISTICS {
    type Abi = Self;
}
impl ::core::fmt::Debug for IMAGE_FILE_CHARACTERISTICS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMAGE_FILE_CHARACTERISTICS").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for IMAGE_FILE_CHARACTERISTICS {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for IMAGE_FILE_CHARACTERISTICS {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for IMAGE_FILE_CHARACTERISTICS {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for IMAGE_FILE_CHARACTERISTICS {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for IMAGE_FILE_CHARACTERISTICS {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct IMAGE_FILE_CHARACTERISTICS2(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_RELOCS_STRIPPED2: IMAGE_FILE_CHARACTERISTICS2 = IMAGE_FILE_CHARACTERISTICS2(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_EXECUTABLE_IMAGE2: IMAGE_FILE_CHARACTERISTICS2 = IMAGE_FILE_CHARACTERISTICS2(2u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_LINE_NUMS_STRIPPED2: IMAGE_FILE_CHARACTERISTICS2 = IMAGE_FILE_CHARACTERISTICS2(4u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_LOCAL_SYMS_STRIPPED2: IMAGE_FILE_CHARACTERISTICS2 = IMAGE_FILE_CHARACTERISTICS2(8u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_AGGRESIVE_WS_TRIM2: IMAGE_FILE_CHARACTERISTICS2 = IMAGE_FILE_CHARACTERISTICS2(16u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_LARGE_ADDRESS_AWARE2: IMAGE_FILE_CHARACTERISTICS2 = IMAGE_FILE_CHARACTERISTICS2(32u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_BYTES_REVERSED_LO2: IMAGE_FILE_CHARACTERISTICS2 = IMAGE_FILE_CHARACTERISTICS2(128u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_32BIT_MACHINE2: IMAGE_FILE_CHARACTERISTICS2 = IMAGE_FILE_CHARACTERISTICS2(256u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_DEBUG_STRIPPED2: IMAGE_FILE_CHARACTERISTICS2 = IMAGE_FILE_CHARACTERISTICS2(512u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP2: IMAGE_FILE_CHARACTERISTICS2 = IMAGE_FILE_CHARACTERISTICS2(1024u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_NET_RUN_FROM_SWAP2: IMAGE_FILE_CHARACTERISTICS2 = IMAGE_FILE_CHARACTERISTICS2(2048u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_SYSTEM_2: IMAGE_FILE_CHARACTERISTICS2 = IMAGE_FILE_CHARACTERISTICS2(4096u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_DLL_2: IMAGE_FILE_CHARACTERISTICS2 = IMAGE_FILE_CHARACTERISTICS2(8192u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_UP_SYSTEM_ONLY_2: IMAGE_FILE_CHARACTERISTICS2 = IMAGE_FILE_CHARACTERISTICS2(16384u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_FILE_BYTES_REVERSED_HI_2: IMAGE_FILE_CHARACTERISTICS2 = IMAGE_FILE_CHARACTERISTICS2(32768u32);
impl ::core::marker::Copy for IMAGE_FILE_CHARACTERISTICS2 {}
impl ::core::clone::Clone for IMAGE_FILE_CHARACTERISTICS2 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for IMAGE_FILE_CHARACTERISTICS2 {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for IMAGE_FILE_CHARACTERISTICS2 {
    type Abi = Self;
}
impl ::core::fmt::Debug for IMAGE_FILE_CHARACTERISTICS2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMAGE_FILE_CHARACTERISTICS2").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for IMAGE_FILE_CHARACTERISTICS2 {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for IMAGE_FILE_CHARACTERISTICS2 {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for IMAGE_FILE_CHARACTERISTICS2 {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for IMAGE_FILE_CHARACTERISTICS2 {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for IMAGE_FILE_CHARACTERISTICS2 {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct IMAGE_OPTIONAL_HEADER_MAGIC(pub u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_NT_OPTIONAL_HDR_MAGIC: IMAGE_OPTIONAL_HEADER_MAGIC = IMAGE_OPTIONAL_HEADER_MAGIC(523u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_NT_OPTIONAL_HDR32_MAGIC: IMAGE_OPTIONAL_HEADER_MAGIC = IMAGE_OPTIONAL_HEADER_MAGIC(267u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_NT_OPTIONAL_HDR64_MAGIC: IMAGE_OPTIONAL_HEADER_MAGIC = IMAGE_OPTIONAL_HEADER_MAGIC(523u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_ROM_OPTIONAL_HDR_MAGIC: IMAGE_OPTIONAL_HEADER_MAGIC = IMAGE_OPTIONAL_HEADER_MAGIC(263u16);
impl ::core::marker::Copy for IMAGE_OPTIONAL_HEADER_MAGIC {}
impl ::core::clone::Clone for IMAGE_OPTIONAL_HEADER_MAGIC {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for IMAGE_OPTIONAL_HEADER_MAGIC {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for IMAGE_OPTIONAL_HEADER_MAGIC {
    type Abi = Self;
}
impl ::core::fmt::Debug for IMAGE_OPTIONAL_HEADER_MAGIC {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMAGE_OPTIONAL_HEADER_MAGIC").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct IMAGE_SECTION_CHARACTERISTICS(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_TYPE_NO_PAD: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(8u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_CNT_CODE: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(32u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_CNT_INITIALIZED_DATA: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(64u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_CNT_UNINITIALIZED_DATA: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(128u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_LNK_OTHER: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(256u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_LNK_INFO: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(512u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_LNK_REMOVE: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(2048u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_LNK_COMDAT: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(4096u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_NO_DEFER_SPEC_EXC: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(16384u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_GPREL: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(32768u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_MEM_FARDATA: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(32768u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_MEM_PURGEABLE: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(131072u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_MEM_16BIT: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(131072u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_MEM_LOCKED: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(262144u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_MEM_PRELOAD: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(524288u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_ALIGN_1BYTES: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(1048576u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_ALIGN_2BYTES: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(2097152u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_ALIGN_4BYTES: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(3145728u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_ALIGN_8BYTES: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(4194304u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_ALIGN_16BYTES: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(5242880u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_ALIGN_32BYTES: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(6291456u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_ALIGN_64BYTES: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(7340032u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_ALIGN_128BYTES: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(8388608u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_ALIGN_256BYTES: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(9437184u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_ALIGN_512BYTES: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(10485760u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_ALIGN_1024BYTES: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(11534336u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_ALIGN_2048BYTES: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(12582912u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_ALIGN_4096BYTES: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(13631488u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_ALIGN_8192BYTES: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(14680064u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_ALIGN_MASK: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(15728640u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_LNK_NRELOC_OVFL: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(16777216u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_MEM_DISCARDABLE: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(33554432u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_MEM_NOT_CACHED: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(67108864u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_MEM_NOT_PAGED: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(134217728u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_MEM_SHARED: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(268435456u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_MEM_EXECUTE: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(536870912u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_MEM_READ: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(1073741824u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_MEM_WRITE: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(2147483648u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SCN_SCALE_INDEX: IMAGE_SECTION_CHARACTERISTICS = IMAGE_SECTION_CHARACTERISTICS(1u32);
impl ::core::marker::Copy for IMAGE_SECTION_CHARACTERISTICS {}
impl ::core::clone::Clone for IMAGE_SECTION_CHARACTERISTICS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for IMAGE_SECTION_CHARACTERISTICS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for IMAGE_SECTION_CHARACTERISTICS {
    type Abi = Self;
}
impl ::core::fmt::Debug for IMAGE_SECTION_CHARACTERISTICS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMAGE_SECTION_CHARACTERISTICS").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for IMAGE_SECTION_CHARACTERISTICS {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for IMAGE_SECTION_CHARACTERISTICS {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for IMAGE_SECTION_CHARACTERISTICS {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for IMAGE_SECTION_CHARACTERISTICS {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for IMAGE_SECTION_CHARACTERISTICS {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct IMAGE_SUBSYSTEM(pub u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SUBSYSTEM_UNKNOWN: IMAGE_SUBSYSTEM = IMAGE_SUBSYSTEM(0u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SUBSYSTEM_NATIVE: IMAGE_SUBSYSTEM = IMAGE_SUBSYSTEM(1u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SUBSYSTEM_WINDOWS_GUI: IMAGE_SUBSYSTEM = IMAGE_SUBSYSTEM(2u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SUBSYSTEM_WINDOWS_CUI: IMAGE_SUBSYSTEM = IMAGE_SUBSYSTEM(3u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SUBSYSTEM_OS2_CUI: IMAGE_SUBSYSTEM = IMAGE_SUBSYSTEM(5u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SUBSYSTEM_POSIX_CUI: IMAGE_SUBSYSTEM = IMAGE_SUBSYSTEM(7u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SUBSYSTEM_NATIVE_WINDOWS: IMAGE_SUBSYSTEM = IMAGE_SUBSYSTEM(8u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SUBSYSTEM_WINDOWS_CE_GUI: IMAGE_SUBSYSTEM = IMAGE_SUBSYSTEM(9u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SUBSYSTEM_EFI_APPLICATION: IMAGE_SUBSYSTEM = IMAGE_SUBSYSTEM(10u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER: IMAGE_SUBSYSTEM = IMAGE_SUBSYSTEM(11u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER: IMAGE_SUBSYSTEM = IMAGE_SUBSYSTEM(12u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SUBSYSTEM_EFI_ROM: IMAGE_SUBSYSTEM = IMAGE_SUBSYSTEM(13u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SUBSYSTEM_XBOX: IMAGE_SUBSYSTEM = IMAGE_SUBSYSTEM(14u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION: IMAGE_SUBSYSTEM = IMAGE_SUBSYSTEM(16u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IMAGE_SUBSYSTEM_XBOX_CODE_CATALOG: IMAGE_SUBSYSTEM = IMAGE_SUBSYSTEM(17u16);
impl ::core::marker::Copy for IMAGE_SUBSYSTEM {}
impl ::core::clone::Clone for IMAGE_SUBSYSTEM {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for IMAGE_SUBSYSTEM {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for IMAGE_SUBSYSTEM {
    type Abi = Self;
}
impl ::core::fmt::Debug for IMAGE_SUBSYSTEM {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IMAGE_SUBSYSTEM").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct IPMI_OS_SEL_RECORD_TYPE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IpmiOsSelRecordTypeWhea: IPMI_OS_SEL_RECORD_TYPE = IPMI_OS_SEL_RECORD_TYPE(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IpmiOsSelRecordTypeOther: IPMI_OS_SEL_RECORD_TYPE = IPMI_OS_SEL_RECORD_TYPE(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IpmiOsSelRecordTypeWheaErrorXpfMca: IPMI_OS_SEL_RECORD_TYPE = IPMI_OS_SEL_RECORD_TYPE(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IpmiOsSelRecordTypeWheaErrorPci: IPMI_OS_SEL_RECORD_TYPE = IPMI_OS_SEL_RECORD_TYPE(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IpmiOsSelRecordTypeWheaErrorNmi: IPMI_OS_SEL_RECORD_TYPE = IPMI_OS_SEL_RECORD_TYPE(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IpmiOsSelRecordTypeWheaErrorOther: IPMI_OS_SEL_RECORD_TYPE = IPMI_OS_SEL_RECORD_TYPE(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IpmiOsSelRecordTypeRaw: IPMI_OS_SEL_RECORD_TYPE = IPMI_OS_SEL_RECORD_TYPE(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IpmiOsSelRecordTypeDriver: IPMI_OS_SEL_RECORD_TYPE = IPMI_OS_SEL_RECORD_TYPE(7i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IpmiOsSelRecordTypeBugcheckRecovery: IPMI_OS_SEL_RECORD_TYPE = IPMI_OS_SEL_RECORD_TYPE(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IpmiOsSelRecordTypeBugcheckData: IPMI_OS_SEL_RECORD_TYPE = IPMI_OS_SEL_RECORD_TYPE(9i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IpmiOsSelRecordTypeMax: IPMI_OS_SEL_RECORD_TYPE = IPMI_OS_SEL_RECORD_TYPE(10i32);
impl ::core::marker::Copy for IPMI_OS_SEL_RECORD_TYPE {}
impl ::core::clone::Clone for IPMI_OS_SEL_RECORD_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for IPMI_OS_SEL_RECORD_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for IPMI_OS_SEL_RECORD_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for IPMI_OS_SEL_RECORD_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IPMI_OS_SEL_RECORD_TYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct IntrinsicKind(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IntrinsicVoid: IntrinsicKind = IntrinsicKind(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IntrinsicBool: IntrinsicKind = IntrinsicKind(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IntrinsicChar: IntrinsicKind = IntrinsicKind(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IntrinsicWChar: IntrinsicKind = IntrinsicKind(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IntrinsicInt: IntrinsicKind = IntrinsicKind(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IntrinsicUInt: IntrinsicKind = IntrinsicKind(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IntrinsicLong: IntrinsicKind = IntrinsicKind(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IntrinsicULong: IntrinsicKind = IntrinsicKind(7i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IntrinsicFloat: IntrinsicKind = IntrinsicKind(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IntrinsicHRESULT: IntrinsicKind = IntrinsicKind(9i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IntrinsicChar16: IntrinsicKind = IntrinsicKind(10i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IntrinsicChar32: IntrinsicKind = IntrinsicKind(11i32);
impl ::core::marker::Copy for IntrinsicKind {}
impl ::core::clone::Clone for IntrinsicKind {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for IntrinsicKind {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for IntrinsicKind {
    type Abi = Self;
}
impl ::core::fmt::Debug for IntrinsicKind {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("IntrinsicKind").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct JS_PROPERTY_ATTRIBUTES(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const JS_PROPERTY_ATTRIBUTE_NONE: JS_PROPERTY_ATTRIBUTES = JS_PROPERTY_ATTRIBUTES(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const JS_PROPERTY_HAS_CHILDREN: JS_PROPERTY_ATTRIBUTES = JS_PROPERTY_ATTRIBUTES(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const JS_PROPERTY_FAKE: JS_PROPERTY_ATTRIBUTES = JS_PROPERTY_ATTRIBUTES(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const JS_PROPERTY_METHOD: JS_PROPERTY_ATTRIBUTES = JS_PROPERTY_ATTRIBUTES(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const JS_PROPERTY_READONLY: JS_PROPERTY_ATTRIBUTES = JS_PROPERTY_ATTRIBUTES(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const JS_PROPERTY_NATIVE_WINRT_POINTER: JS_PROPERTY_ATTRIBUTES = JS_PROPERTY_ATTRIBUTES(16i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const JS_PROPERTY_FRAME_INTRYBLOCK: JS_PROPERTY_ATTRIBUTES = JS_PROPERTY_ATTRIBUTES(32i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const JS_PROPERTY_FRAME_INCATCHBLOCK: JS_PROPERTY_ATTRIBUTES = JS_PROPERTY_ATTRIBUTES(64i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const JS_PROPERTY_FRAME_INFINALLYBLOCK: JS_PROPERTY_ATTRIBUTES = JS_PROPERTY_ATTRIBUTES(128i32);
impl ::core::marker::Copy for JS_PROPERTY_ATTRIBUTES {}
impl ::core::clone::Clone for JS_PROPERTY_ATTRIBUTES {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for JS_PROPERTY_ATTRIBUTES {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for JS_PROPERTY_ATTRIBUTES {
    type Abi = Self;
}
impl ::core::fmt::Debug for JS_PROPERTY_ATTRIBUTES {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("JS_PROPERTY_ATTRIBUTES").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct JS_PROPERTY_MEMBERS(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const JS_PROPERTY_MEMBERS_ALL: JS_PROPERTY_MEMBERS = JS_PROPERTY_MEMBERS(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const JS_PROPERTY_MEMBERS_ARGUMENTS: JS_PROPERTY_MEMBERS = JS_PROPERTY_MEMBERS(1i32);
impl ::core::marker::Copy for JS_PROPERTY_MEMBERS {}
impl ::core::clone::Clone for JS_PROPERTY_MEMBERS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for JS_PROPERTY_MEMBERS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for JS_PROPERTY_MEMBERS {
    type Abi = Self;
}
impl ::core::fmt::Debug for JS_PROPERTY_MEMBERS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("JS_PROPERTY_MEMBERS").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct JsDebugReadMemoryFlags(pub i32);
impl JsDebugReadMemoryFlags {
    pub const None: Self = Self(0i32);
    pub const JsDebugAllowPartialRead: Self = Self(1i32);
}
impl ::core::marker::Copy for JsDebugReadMemoryFlags {}
impl ::core::clone::Clone for JsDebugReadMemoryFlags {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for JsDebugReadMemoryFlags {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for JsDebugReadMemoryFlags {
    type Abi = Self;
}
impl ::core::fmt::Debug for JsDebugReadMemoryFlags {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("JsDebugReadMemoryFlags").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct LanguageKind(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const LanguageUnknown: LanguageKind = LanguageKind(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const LanguageC: LanguageKind = LanguageKind(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const LanguageCPP: LanguageKind = LanguageKind(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const LanguageAssembly: LanguageKind = LanguageKind(3i32);
impl ::core::marker::Copy for LanguageKind {}
impl ::core::clone::Clone for LanguageKind {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for LanguageKind {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for LanguageKind {
    type Abi = Self;
}
impl ::core::fmt::Debug for LanguageKind {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("LanguageKind").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct LocationKind(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const LocationMember: LocationKind = LocationKind(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const LocationStatic: LocationKind = LocationKind(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const LocationConstant: LocationKind = LocationKind(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const LocationNone: LocationKind = LocationKind(3i32);
impl ::core::marker::Copy for LocationKind {}
impl ::core::clone::Clone for LocationKind {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for LocationKind {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for LocationKind {
    type Abi = Self;
}
impl ::core::fmt::Debug for LocationKind {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("LocationKind").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct MINIDUMP_CALLBACK_TYPE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ModuleCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ThreadCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ThreadExCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IncludeThreadCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IncludeModuleCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MemoryCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CancelCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WriteKernelMinidumpCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(7i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const KernelMinidumpStatusCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const RemoveMemoryCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(9i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IncludeVmRegionCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(10i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IoStartCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(11i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IoWriteAllCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(12i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IoFinishCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(13i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ReadMemoryFailureCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(14i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SecondaryFlagsCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(15i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IsProcessSnapshotCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(16i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VmStartCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(17i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VmQueryCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(18i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VmPreReadCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(19i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VmPostReadCallback: MINIDUMP_CALLBACK_TYPE = MINIDUMP_CALLBACK_TYPE(20i32);
impl ::core::marker::Copy for MINIDUMP_CALLBACK_TYPE {}
impl ::core::clone::Clone for MINIDUMP_CALLBACK_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for MINIDUMP_CALLBACK_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_CALLBACK_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for MINIDUMP_CALLBACK_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MINIDUMP_CALLBACK_TYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniHandleObjectInformationNone: MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniThreadInformation1: MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniMutantInformation1: MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniMutantInformation2: MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniProcessInformation1: MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniProcessInformation2: MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniEventInformation1: MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniSectionInformation1: MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE(7i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniSemaphoreInformation1: MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniHandleObjectInformationTypeMax: MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE = MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE(9i32);
impl ::core::marker::Copy for MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE {}
impl ::core::clone::Clone for MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct MINIDUMP_MISC_INFO_FLAGS(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_MISC1_PROCESS_ID: MINIDUMP_MISC_INFO_FLAGS = MINIDUMP_MISC_INFO_FLAGS(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_MISC1_PROCESS_TIMES: MINIDUMP_MISC_INFO_FLAGS = MINIDUMP_MISC_INFO_FLAGS(2u32);
impl ::core::marker::Copy for MINIDUMP_MISC_INFO_FLAGS {}
impl ::core::clone::Clone for MINIDUMP_MISC_INFO_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for MINIDUMP_MISC_INFO_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_MISC_INFO_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for MINIDUMP_MISC_INFO_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MINIDUMP_MISC_INFO_FLAGS").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for MINIDUMP_MISC_INFO_FLAGS {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for MINIDUMP_MISC_INFO_FLAGS {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for MINIDUMP_MISC_INFO_FLAGS {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for MINIDUMP_MISC_INFO_FLAGS {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for MINIDUMP_MISC_INFO_FLAGS {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct MINIDUMP_SECONDARY_FLAGS(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniSecondaryWithoutPowerInfo: MINIDUMP_SECONDARY_FLAGS = MINIDUMP_SECONDARY_FLAGS(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniSecondaryValidFlags: MINIDUMP_SECONDARY_FLAGS = MINIDUMP_SECONDARY_FLAGS(1i32);
impl ::core::marker::Copy for MINIDUMP_SECONDARY_FLAGS {}
impl ::core::clone::Clone for MINIDUMP_SECONDARY_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for MINIDUMP_SECONDARY_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_SECONDARY_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for MINIDUMP_SECONDARY_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MINIDUMP_SECONDARY_FLAGS").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct MINIDUMP_STREAM_TYPE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UnusedStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ReservedStream0: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ReservedStream1: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ThreadListStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ModuleListStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MemoryListStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ExceptionStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SystemInfoStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(7i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ThreadExListStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const Memory64ListStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(9i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CommentStreamA: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(10i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const CommentStreamW: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(11i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const HandleDataStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(12i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FunctionTableStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(13i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UnloadedModuleListStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(14i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiscInfoStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(15i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MemoryInfoListStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(16i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ThreadInfoListStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(17i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const HandleOperationListStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(18i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TokenStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(19i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const JavaScriptDataStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(20i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SystemMemoryInfoStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(21i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ProcessVmCountersStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(22i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const IptTraceStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(23i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ThreadNamesStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(24i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ceStreamNull: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(32768i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ceStreamSystemInfo: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(32769i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ceStreamException: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(32770i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ceStreamModuleList: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(32771i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ceStreamProcessList: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(32772i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ceStreamThreadList: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(32773i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ceStreamThreadContextList: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(32774i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ceStreamThreadCallStackList: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(32775i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ceStreamMemoryVirtualList: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(32776i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ceStreamMemoryPhysicalList: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(32777i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ceStreamBucketParameters: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(32778i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ceStreamProcessModuleMap: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(32779i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ceStreamDiagnosisList: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(32780i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const LastReservedStream: MINIDUMP_STREAM_TYPE = MINIDUMP_STREAM_TYPE(65535i32);
impl ::core::marker::Copy for MINIDUMP_STREAM_TYPE {}
impl ::core::clone::Clone for MINIDUMP_STREAM_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for MINIDUMP_STREAM_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_STREAM_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for MINIDUMP_STREAM_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MINIDUMP_STREAM_TYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct MINIDUMP_THREAD_INFO_DUMP_FLAGS(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_THREAD_INFO_ERROR_THREAD: MINIDUMP_THREAD_INFO_DUMP_FLAGS = MINIDUMP_THREAD_INFO_DUMP_FLAGS(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_THREAD_INFO_EXITED_THREAD: MINIDUMP_THREAD_INFO_DUMP_FLAGS = MINIDUMP_THREAD_INFO_DUMP_FLAGS(4u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_THREAD_INFO_INVALID_CONTEXT: MINIDUMP_THREAD_INFO_DUMP_FLAGS = MINIDUMP_THREAD_INFO_DUMP_FLAGS(16u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_THREAD_INFO_INVALID_INFO: MINIDUMP_THREAD_INFO_DUMP_FLAGS = MINIDUMP_THREAD_INFO_DUMP_FLAGS(8u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_THREAD_INFO_INVALID_TEB: MINIDUMP_THREAD_INFO_DUMP_FLAGS = MINIDUMP_THREAD_INFO_DUMP_FLAGS(32u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MINIDUMP_THREAD_INFO_WRITING_THREAD: MINIDUMP_THREAD_INFO_DUMP_FLAGS = MINIDUMP_THREAD_INFO_DUMP_FLAGS(2u32);
impl ::core::marker::Copy for MINIDUMP_THREAD_INFO_DUMP_FLAGS {}
impl ::core::clone::Clone for MINIDUMP_THREAD_INFO_DUMP_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for MINIDUMP_THREAD_INFO_DUMP_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_THREAD_INFO_DUMP_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for MINIDUMP_THREAD_INFO_DUMP_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MINIDUMP_THREAD_INFO_DUMP_FLAGS").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct MINIDUMP_TYPE(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpNormal: MINIDUMP_TYPE = MINIDUMP_TYPE(0u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpWithDataSegs: MINIDUMP_TYPE = MINIDUMP_TYPE(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpWithFullMemory: MINIDUMP_TYPE = MINIDUMP_TYPE(2u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpWithHandleData: MINIDUMP_TYPE = MINIDUMP_TYPE(4u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpFilterMemory: MINIDUMP_TYPE = MINIDUMP_TYPE(8u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpScanMemory: MINIDUMP_TYPE = MINIDUMP_TYPE(16u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpWithUnloadedModules: MINIDUMP_TYPE = MINIDUMP_TYPE(32u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpWithIndirectlyReferencedMemory: MINIDUMP_TYPE = MINIDUMP_TYPE(64u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpFilterModulePaths: MINIDUMP_TYPE = MINIDUMP_TYPE(128u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpWithProcessThreadData: MINIDUMP_TYPE = MINIDUMP_TYPE(256u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpWithPrivateReadWriteMemory: MINIDUMP_TYPE = MINIDUMP_TYPE(512u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpWithoutOptionalData: MINIDUMP_TYPE = MINIDUMP_TYPE(1024u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpWithFullMemoryInfo: MINIDUMP_TYPE = MINIDUMP_TYPE(2048u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpWithThreadInfo: MINIDUMP_TYPE = MINIDUMP_TYPE(4096u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpWithCodeSegs: MINIDUMP_TYPE = MINIDUMP_TYPE(8192u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpWithoutAuxiliaryState: MINIDUMP_TYPE = MINIDUMP_TYPE(16384u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpWithFullAuxiliaryState: MINIDUMP_TYPE = MINIDUMP_TYPE(32768u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpWithPrivateWriteCopyMemory: MINIDUMP_TYPE = MINIDUMP_TYPE(65536u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpIgnoreInaccessibleMemory: MINIDUMP_TYPE = MINIDUMP_TYPE(131072u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpWithTokenInformation: MINIDUMP_TYPE = MINIDUMP_TYPE(262144u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpWithModuleHeaders: MINIDUMP_TYPE = MINIDUMP_TYPE(524288u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpFilterTriage: MINIDUMP_TYPE = MINIDUMP_TYPE(1048576u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpWithAvxXStateContext: MINIDUMP_TYPE = MINIDUMP_TYPE(2097152u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpWithIptTrace: MINIDUMP_TYPE = MINIDUMP_TYPE(4194304u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpScanInaccessiblePartialPages: MINIDUMP_TYPE = MINIDUMP_TYPE(8388608u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpFilterWriteCombinedMemory: MINIDUMP_TYPE = MINIDUMP_TYPE(16777216u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MiniDumpValidTypeFlags: MINIDUMP_TYPE = MINIDUMP_TYPE(33554431u32);
impl ::core::marker::Copy for MINIDUMP_TYPE {}
impl ::core::clone::Clone for MINIDUMP_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for MINIDUMP_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for MINIDUMP_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MINIDUMP_TYPE").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for MINIDUMP_TYPE {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for MINIDUMP_TYPE {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for MINIDUMP_TYPE {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for MINIDUMP_TYPE {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for MINIDUMP_TYPE {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct MODLOAD_DATA_TYPE(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBHHEADER_DEBUGDIRS: MODLOAD_DATA_TYPE = MODLOAD_DATA_TYPE(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const DBHHEADER_CVMISC: MODLOAD_DATA_TYPE = MODLOAD_DATA_TYPE(2u32);
impl ::core::marker::Copy for MODLOAD_DATA_TYPE {}
impl ::core::clone::Clone for MODLOAD_DATA_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for MODLOAD_DATA_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for MODLOAD_DATA_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for MODLOAD_DATA_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MODLOAD_DATA_TYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct MODULE_WRITE_FLAGS(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ModuleWriteModule: MODULE_WRITE_FLAGS = MODULE_WRITE_FLAGS(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ModuleWriteDataSeg: MODULE_WRITE_FLAGS = MODULE_WRITE_FLAGS(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ModuleWriteMiscRecord: MODULE_WRITE_FLAGS = MODULE_WRITE_FLAGS(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ModuleWriteCvRecord: MODULE_WRITE_FLAGS = MODULE_WRITE_FLAGS(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ModuleReferencedByMemory: MODULE_WRITE_FLAGS = MODULE_WRITE_FLAGS(16i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ModuleWriteTlsData: MODULE_WRITE_FLAGS = MODULE_WRITE_FLAGS(32i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ModuleWriteCodeSegs: MODULE_WRITE_FLAGS = MODULE_WRITE_FLAGS(64i32);
impl ::core::marker::Copy for MODULE_WRITE_FLAGS {}
impl ::core::clone::Clone for MODULE_WRITE_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for MODULE_WRITE_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for MODULE_WRITE_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for MODULE_WRITE_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("MODULE_WRITE_FLAGS").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct ModelObjectKind(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ObjectPropertyAccessor: ModelObjectKind = ModelObjectKind(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ObjectContext: ModelObjectKind = ModelObjectKind(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ObjectTargetObject: ModelObjectKind = ModelObjectKind(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ObjectTargetObjectReference: ModelObjectKind = ModelObjectKind(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ObjectSynthetic: ModelObjectKind = ModelObjectKind(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ObjectNoValue: ModelObjectKind = ModelObjectKind(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ObjectError: ModelObjectKind = ModelObjectKind(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ObjectIntrinsic: ModelObjectKind = ModelObjectKind(7i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ObjectMethod: ModelObjectKind = ModelObjectKind(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ObjectKeyReference: ModelObjectKind = ModelObjectKind(9i32);
impl ::core::marker::Copy for ModelObjectKind {}
impl ::core::clone::Clone for ModelObjectKind {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ModelObjectKind {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ModelObjectKind {
    type Abi = Self;
}
impl ::core::fmt::Debug for ModelObjectKind {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ModelObjectKind").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct OBJECT_ATTRIB_FLAGS(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_NO_ATTRIB: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_NO_NAME: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_NO_TYPE: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_NO_VALUE: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_VALUE_IS_INVALID: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_VALUE_IS_OBJECT: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(16i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_VALUE_IS_ENUM: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(32i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_VALUE_IS_CUSTOM: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(64i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_OBJECT_IS_EXPANDABLE: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(112i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_VALUE_HAS_CODE: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(128i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_TYPE_IS_OBJECT: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(256i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_TYPE_HAS_CODE: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(512i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_TYPE_IS_EXPANDABLE: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(256i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_SLOT_IS_CATEGORY: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(1024i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_VALUE_READONLY: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(2048i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_ACCESS_PUBLIC: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(4096i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_ACCESS_PRIVATE: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(8192i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_ACCESS_PROTECTED: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(16384i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_ACCESS_FINAL: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(32768i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_STORAGE_GLOBAL: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(65536i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_STORAGE_STATIC: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(131072i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_STORAGE_FIELD: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(262144i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_STORAGE_VIRTUAL: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(524288i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_TYPE_IS_CONSTANT: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(1048576i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_TYPE_IS_SYNCHRONIZED: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(2097152i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_TYPE_IS_VOLATILE: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(4194304i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_HAS_EXTENDED_ATTRIBS: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(8388608i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_IS_CLASS: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(16777216i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_IS_FUNCTION: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(33554432i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_IS_VARIABLE: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(67108864i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_IS_PROPERTY: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(134217728i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_IS_MACRO: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(268435456i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_IS_TYPE: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(536870912i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_IS_INHERITED: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(1073741824i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const OBJECT_ATTRIB_IS_INTERFACE: OBJECT_ATTRIB_FLAGS = OBJECT_ATTRIB_FLAGS(-2147483648i32);
impl ::core::marker::Copy for OBJECT_ATTRIB_FLAGS {}
impl ::core::clone::Clone for OBJECT_ATTRIB_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for OBJECT_ATTRIB_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for OBJECT_ATTRIB_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for OBJECT_ATTRIB_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("OBJECT_ATTRIB_FLAGS").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct OPEN_THREAD_WAIT_CHAIN_SESSION_FLAGS(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WCT_ASYNC_OPEN_FLAG: OPEN_THREAD_WAIT_CHAIN_SESSION_FLAGS = OPEN_THREAD_WAIT_CHAIN_SESSION_FLAGS(1u32);
impl ::core::marker::Copy for OPEN_THREAD_WAIT_CHAIN_SESSION_FLAGS {}
impl ::core::clone::Clone for OPEN_THREAD_WAIT_CHAIN_SESSION_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for OPEN_THREAD_WAIT_CHAIN_SESSION_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for OPEN_THREAD_WAIT_CHAIN_SESSION_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for OPEN_THREAD_WAIT_CHAIN_SESSION_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("OPEN_THREAD_WAIT_CHAIN_SESSION_FLAGS").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct PROCESSOR_ARCHITECTURE(pub u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROCESSOR_ARCHITECTURE_AMD64: PROCESSOR_ARCHITECTURE = PROCESSOR_ARCHITECTURE(9u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROCESSOR_ARCHITECTURE_IA64: PROCESSOR_ARCHITECTURE = PROCESSOR_ARCHITECTURE(6u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROCESSOR_ARCHITECTURE_INTEL: PROCESSOR_ARCHITECTURE = PROCESSOR_ARCHITECTURE(0u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROCESSOR_ARCHITECTURE_ARM: PROCESSOR_ARCHITECTURE = PROCESSOR_ARCHITECTURE(5u16);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROCESSOR_ARCHITECTURE_UNKNOWN: PROCESSOR_ARCHITECTURE = PROCESSOR_ARCHITECTURE(65535u16);
impl ::core::marker::Copy for PROCESSOR_ARCHITECTURE {}
impl ::core::clone::Clone for PROCESSOR_ARCHITECTURE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for PROCESSOR_ARCHITECTURE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for PROCESSOR_ARCHITECTURE {
    type Abi = Self;
}
impl ::core::fmt::Debug for PROCESSOR_ARCHITECTURE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PROCESSOR_ARCHITECTURE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct PROFILER_EVENT_MASK(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_EVENT_MASK_TRACE_SCRIPT_FUNCTION_CALL: PROFILER_EVENT_MASK = PROFILER_EVENT_MASK(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_EVENT_MASK_TRACE_NATIVE_FUNCTION_CALL: PROFILER_EVENT_MASK = PROFILER_EVENT_MASK(2u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_EVENT_MASK_TRACE_DOM_FUNCTION_CALL: PROFILER_EVENT_MASK = PROFILER_EVENT_MASK(4u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_EVENT_MASK_TRACE_ALL: PROFILER_EVENT_MASK = PROFILER_EVENT_MASK(3u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_EVENT_MASK_TRACE_ALL_WITH_DOM: PROFILER_EVENT_MASK = PROFILER_EVENT_MASK(7u32);
impl ::core::marker::Copy for PROFILER_EVENT_MASK {}
impl ::core::clone::Clone for PROFILER_EVENT_MASK {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for PROFILER_EVENT_MASK {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for PROFILER_EVENT_MASK {
    type Abi = Self;
}
impl ::core::fmt::Debug for PROFILER_EVENT_MASK {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PROFILER_EVENT_MASK").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for PROFILER_EVENT_MASK {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for PROFILER_EVENT_MASK {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for PROFILER_EVENT_MASK {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for PROFILER_EVENT_MASK {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for PROFILER_EVENT_MASK {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct PROFILER_HEAP_ENUM_FLAGS(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_ENUM_FLAGS_NONE: PROFILER_HEAP_ENUM_FLAGS = PROFILER_HEAP_ENUM_FLAGS(0u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_ENUM_FLAGS_STORE_RELATIONSHIP_FLAGS: PROFILER_HEAP_ENUM_FLAGS = PROFILER_HEAP_ENUM_FLAGS(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_ENUM_FLAGS_SUBSTRINGS: PROFILER_HEAP_ENUM_FLAGS = PROFILER_HEAP_ENUM_FLAGS(2u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_ENUM_FLAGS_RELATIONSHIP_SUBSTRINGS: PROFILER_HEAP_ENUM_FLAGS = PROFILER_HEAP_ENUM_FLAGS(3u32);
impl ::core::marker::Copy for PROFILER_HEAP_ENUM_FLAGS {}
impl ::core::clone::Clone for PROFILER_HEAP_ENUM_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for PROFILER_HEAP_ENUM_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for PROFILER_HEAP_ENUM_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for PROFILER_HEAP_ENUM_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PROFILER_HEAP_ENUM_FLAGS").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for PROFILER_HEAP_ENUM_FLAGS {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for PROFILER_HEAP_ENUM_FLAGS {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for PROFILER_HEAP_ENUM_FLAGS {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for PROFILER_HEAP_ENUM_FLAGS {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for PROFILER_HEAP_ENUM_FLAGS {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct PROFILER_HEAP_OBJECT_FLAGS(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_FLAGS_NEW_OBJECT: PROFILER_HEAP_OBJECT_FLAGS = PROFILER_HEAP_OBJECT_FLAGS(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_FLAGS_IS_ROOT: PROFILER_HEAP_OBJECT_FLAGS = PROFILER_HEAP_OBJECT_FLAGS(2u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_FLAGS_SITE_CLOSED: PROFILER_HEAP_OBJECT_FLAGS = PROFILER_HEAP_OBJECT_FLAGS(4u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_FLAGS_EXTERNAL: PROFILER_HEAP_OBJECT_FLAGS = PROFILER_HEAP_OBJECT_FLAGS(8u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_FLAGS_EXTERNAL_UNKNOWN: PROFILER_HEAP_OBJECT_FLAGS = PROFILER_HEAP_OBJECT_FLAGS(16u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_FLAGS_EXTERNAL_DISPATCH: PROFILER_HEAP_OBJECT_FLAGS = PROFILER_HEAP_OBJECT_FLAGS(32u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_FLAGS_SIZE_APPROXIMATE: PROFILER_HEAP_OBJECT_FLAGS = PROFILER_HEAP_OBJECT_FLAGS(64u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_FLAGS_SIZE_UNAVAILABLE: PROFILER_HEAP_OBJECT_FLAGS = PROFILER_HEAP_OBJECT_FLAGS(128u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_FLAGS_NEW_STATE_UNAVAILABLE: PROFILER_HEAP_OBJECT_FLAGS = PROFILER_HEAP_OBJECT_FLAGS(256u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_FLAGS_WINRT_INSTANCE: PROFILER_HEAP_OBJECT_FLAGS = PROFILER_HEAP_OBJECT_FLAGS(512u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_FLAGS_WINRT_RUNTIMECLASS: PROFILER_HEAP_OBJECT_FLAGS = PROFILER_HEAP_OBJECT_FLAGS(1024u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_FLAGS_WINRT_DELEGATE: PROFILER_HEAP_OBJECT_FLAGS = PROFILER_HEAP_OBJECT_FLAGS(2048u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_FLAGS_WINRT_NAMESPACE: PROFILER_HEAP_OBJECT_FLAGS = PROFILER_HEAP_OBJECT_FLAGS(4096u32);
impl ::core::marker::Copy for PROFILER_HEAP_OBJECT_FLAGS {}
impl ::core::clone::Clone for PROFILER_HEAP_OBJECT_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for PROFILER_HEAP_OBJECT_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for PROFILER_HEAP_OBJECT_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for PROFILER_HEAP_OBJECT_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PROFILER_HEAP_OBJECT_FLAGS").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for PROFILER_HEAP_OBJECT_FLAGS {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for PROFILER_HEAP_OBJECT_FLAGS {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for PROFILER_HEAP_OBJECT_FLAGS {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for PROFILER_HEAP_OBJECT_FLAGS {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for PROFILER_HEAP_OBJECT_FLAGS {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_OPTIONAL_INFO_PROTOTYPE: PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE = PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_OPTIONAL_INFO_FUNCTION_NAME: PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE = PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_OPTIONAL_INFO_SCOPE_LIST: PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE = PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_OPTIONAL_INFO_INTERNAL_PROPERTY: PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE = PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_OPTIONAL_INFO_NAME_PROPERTIES: PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE = PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_OPTIONAL_INFO_INDEX_PROPERTIES: PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE = PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_OPTIONAL_INFO_ELEMENT_ATTRIBUTES_SIZE: PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE = PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE(7i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_OPTIONAL_INFO_ELEMENT_TEXT_CHILDREN_SIZE: PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE = PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_OPTIONAL_INFO_RELATIONSHIPS: PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE = PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE(9i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_OPTIONAL_INFO_WINRTEVENTS: PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE = PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE(10i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_OPTIONAL_INFO_WEAKMAP_COLLECTION_LIST: PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE = PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE(11i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_OPTIONAL_INFO_MAP_COLLECTION_LIST: PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE = PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE(12i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_OPTIONAL_INFO_SET_COLLECTION_LIST: PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE = PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE(13i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_OPTIONAL_INFO_MAX_VALUE: PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE = PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE(13i32);
impl ::core::marker::Copy for PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE {}
impl ::core::clone::Clone for PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS_NONE: PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS = PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS(0u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS_IS_GET_ACCESSOR: PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS = PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS(65536u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS_IS_SET_ACCESSOR: PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS = PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS(131072u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS_LET_VARIABLE: PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS = PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS(262144u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS_CONST_VARIABLE: PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS = PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS(524288u32);
impl ::core::marker::Copy for PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS {}
impl ::core::clone::Clone for PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for PROFILER_HEAP_OBJECT_RELATIONSHIP_FLAGS {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct PROFILER_HEAP_SUMMARY_VERSION(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_HEAP_SUMMARY_VERSION_1: PROFILER_HEAP_SUMMARY_VERSION = PROFILER_HEAP_SUMMARY_VERSION(1i32);
impl ::core::marker::Copy for PROFILER_HEAP_SUMMARY_VERSION {}
impl ::core::clone::Clone for PROFILER_HEAP_SUMMARY_VERSION {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for PROFILER_HEAP_SUMMARY_VERSION {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for PROFILER_HEAP_SUMMARY_VERSION {
    type Abi = Self;
}
impl ::core::fmt::Debug for PROFILER_HEAP_SUMMARY_VERSION {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PROFILER_HEAP_SUMMARY_VERSION").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct PROFILER_RELATIONSHIP_INFO(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_PROPERTY_TYPE_NUMBER: PROFILER_RELATIONSHIP_INFO = PROFILER_RELATIONSHIP_INFO(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_PROPERTY_TYPE_STRING: PROFILER_RELATIONSHIP_INFO = PROFILER_RELATIONSHIP_INFO(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_PROPERTY_TYPE_HEAP_OBJECT: PROFILER_RELATIONSHIP_INFO = PROFILER_RELATIONSHIP_INFO(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_PROPERTY_TYPE_EXTERNAL_OBJECT: PROFILER_RELATIONSHIP_INFO = PROFILER_RELATIONSHIP_INFO(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_PROPERTY_TYPE_BSTR: PROFILER_RELATIONSHIP_INFO = PROFILER_RELATIONSHIP_INFO(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_PROPERTY_TYPE_SUBSTRING: PROFILER_RELATIONSHIP_INFO = PROFILER_RELATIONSHIP_INFO(6i32);
impl ::core::marker::Copy for PROFILER_RELATIONSHIP_INFO {}
impl ::core::clone::Clone for PROFILER_RELATIONSHIP_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for PROFILER_RELATIONSHIP_INFO {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for PROFILER_RELATIONSHIP_INFO {
    type Abi = Self;
}
impl ::core::fmt::Debug for PROFILER_RELATIONSHIP_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PROFILER_RELATIONSHIP_INFO").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct PROFILER_SCRIPT_TYPE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_SCRIPT_TYPE_USER: PROFILER_SCRIPT_TYPE = PROFILER_SCRIPT_TYPE(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_SCRIPT_TYPE_DYNAMIC: PROFILER_SCRIPT_TYPE = PROFILER_SCRIPT_TYPE(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_SCRIPT_TYPE_NATIVE: PROFILER_SCRIPT_TYPE = PROFILER_SCRIPT_TYPE(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROFILER_SCRIPT_TYPE_DOM: PROFILER_SCRIPT_TYPE = PROFILER_SCRIPT_TYPE(3i32);
impl ::core::marker::Copy for PROFILER_SCRIPT_TYPE {}
impl ::core::clone::Clone for PROFILER_SCRIPT_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for PROFILER_SCRIPT_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for PROFILER_SCRIPT_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for PROFILER_SCRIPT_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PROFILER_SCRIPT_TYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct PROP_INFO_FLAGS(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROP_INFO_NAME: PROP_INFO_FLAGS = PROP_INFO_FLAGS(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROP_INFO_TYPE: PROP_INFO_FLAGS = PROP_INFO_FLAGS(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROP_INFO_VALUE: PROP_INFO_FLAGS = PROP_INFO_FLAGS(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROP_INFO_FULLNAME: PROP_INFO_FLAGS = PROP_INFO_FLAGS(32i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROP_INFO_ATTRIBUTES: PROP_INFO_FLAGS = PROP_INFO_FLAGS(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROP_INFO_DEBUGPROP: PROP_INFO_FLAGS = PROP_INFO_FLAGS(16i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PROP_INFO_AUTOEXPAND: PROP_INFO_FLAGS = PROP_INFO_FLAGS(134217728i32);
impl ::core::marker::Copy for PROP_INFO_FLAGS {}
impl ::core::clone::Clone for PROP_INFO_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for PROP_INFO_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for PROP_INFO_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for PROP_INFO_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PROP_INFO_FLAGS").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct PointerKind(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PointerStandard: PointerKind = PointerKind(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PointerReference: PointerKind = PointerKind(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PointerRValueReference: PointerKind = PointerKind(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PointerCXHat: PointerKind = PointerKind(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const PointerManagedReference: PointerKind = PointerKind(4i32);
impl ::core::marker::Copy for PointerKind {}
impl ::core::clone::Clone for PointerKind {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for PointerKind {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for PointerKind {
    type Abi = Self;
}
impl ::core::fmt::Debug for PointerKind {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PointerKind").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct PreferredFormat(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FormatNone: PreferredFormat = PreferredFormat(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FormatSingleCharacter: PreferredFormat = PreferredFormat(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FormatQuotedString: PreferredFormat = PreferredFormat(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FormatString: PreferredFormat = PreferredFormat(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FormatQuotedUnicodeString: PreferredFormat = PreferredFormat(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FormatUnicodeString: PreferredFormat = PreferredFormat(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FormatQuotedUTF8String: PreferredFormat = PreferredFormat(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FormatUTF8String: PreferredFormat = PreferredFormat(7i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FormatBSTRString: PreferredFormat = PreferredFormat(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FormatQuotedHString: PreferredFormat = PreferredFormat(9i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FormatHString: PreferredFormat = PreferredFormat(10i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FormatRaw: PreferredFormat = PreferredFormat(11i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FormatEnumNameOnly: PreferredFormat = PreferredFormat(12i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FormatEscapedStringWithQuote: PreferredFormat = PreferredFormat(13i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FormatUTF32String: PreferredFormat = PreferredFormat(14i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const FormatQuotedUTF32String: PreferredFormat = PreferredFormat(15i32);
impl ::core::marker::Copy for PreferredFormat {}
impl ::core::clone::Clone for PreferredFormat {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for PreferredFormat {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for PreferredFormat {
    type Abi = Self;
}
impl ::core::fmt::Debug for PreferredFormat {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("PreferredFormat").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct RIP_INFO_TYPE(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SLE_ERROR: RIP_INFO_TYPE = RIP_INFO_TYPE(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SLE_MINORERROR: RIP_INFO_TYPE = RIP_INFO_TYPE(2u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SLE_WARNING: RIP_INFO_TYPE = RIP_INFO_TYPE(3u32);
impl ::core::marker::Copy for RIP_INFO_TYPE {}
impl ::core::clone::Clone for RIP_INFO_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for RIP_INFO_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for RIP_INFO_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for RIP_INFO_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RIP_INFO_TYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct RTL_VIRTUAL_UNWIND_HANDLER_TYPE(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNW_FLAG_NHANDLER: RTL_VIRTUAL_UNWIND_HANDLER_TYPE = RTL_VIRTUAL_UNWIND_HANDLER_TYPE(0u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNW_FLAG_EHANDLER: RTL_VIRTUAL_UNWIND_HANDLER_TYPE = RTL_VIRTUAL_UNWIND_HANDLER_TYPE(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNW_FLAG_UHANDLER: RTL_VIRTUAL_UNWIND_HANDLER_TYPE = RTL_VIRTUAL_UNWIND_HANDLER_TYPE(2u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const UNW_FLAG_CHAININFO: RTL_VIRTUAL_UNWIND_HANDLER_TYPE = RTL_VIRTUAL_UNWIND_HANDLER_TYPE(4u32);
impl ::core::marker::Copy for RTL_VIRTUAL_UNWIND_HANDLER_TYPE {}
impl ::core::clone::Clone for RTL_VIRTUAL_UNWIND_HANDLER_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for RTL_VIRTUAL_UNWIND_HANDLER_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for RTL_VIRTUAL_UNWIND_HANDLER_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for RTL_VIRTUAL_UNWIND_HANDLER_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RTL_VIRTUAL_UNWIND_HANDLER_TYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct RawSearchFlags(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const RawSearchNone: RawSearchFlags = RawSearchFlags(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const RawSearchNoBases: RawSearchFlags = RawSearchFlags(1i32);
impl ::core::marker::Copy for RawSearchFlags {}
impl ::core::clone::Clone for RawSearchFlags {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for RawSearchFlags {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for RawSearchFlags {
    type Abi = Self;
}
impl ::core::fmt::Debug for RawSearchFlags {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("RawSearchFlags").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SCRIPTGCTYPE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTGCTYPE_NORMAL: SCRIPTGCTYPE = SCRIPTGCTYPE(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTGCTYPE_EXHAUSTIVE: SCRIPTGCTYPE = SCRIPTGCTYPE(1i32);
impl ::core::marker::Copy for SCRIPTGCTYPE {}
impl ::core::clone::Clone for SCRIPTGCTYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SCRIPTGCTYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SCRIPTGCTYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for SCRIPTGCTYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SCRIPTGCTYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SCRIPTLANGUAGEVERSION(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTLANGUAGEVERSION_DEFAULT: SCRIPTLANGUAGEVERSION = SCRIPTLANGUAGEVERSION(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTLANGUAGEVERSION_5_7: SCRIPTLANGUAGEVERSION = SCRIPTLANGUAGEVERSION(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTLANGUAGEVERSION_5_8: SCRIPTLANGUAGEVERSION = SCRIPTLANGUAGEVERSION(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTLANGUAGEVERSION_MAX: SCRIPTLANGUAGEVERSION = SCRIPTLANGUAGEVERSION(255i32);
impl ::core::marker::Copy for SCRIPTLANGUAGEVERSION {}
impl ::core::clone::Clone for SCRIPTLANGUAGEVERSION {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SCRIPTLANGUAGEVERSION {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SCRIPTLANGUAGEVERSION {
    type Abi = Self;
}
impl ::core::fmt::Debug for SCRIPTLANGUAGEVERSION {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SCRIPTLANGUAGEVERSION").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SCRIPTSTATE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTSTATE_UNINITIALIZED: SCRIPTSTATE = SCRIPTSTATE(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTSTATE_INITIALIZED: SCRIPTSTATE = SCRIPTSTATE(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTSTATE_STARTED: SCRIPTSTATE = SCRIPTSTATE(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTSTATE_CONNECTED: SCRIPTSTATE = SCRIPTSTATE(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTSTATE_DISCONNECTED: SCRIPTSTATE = SCRIPTSTATE(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTSTATE_CLOSED: SCRIPTSTATE = SCRIPTSTATE(4i32);
impl ::core::marker::Copy for SCRIPTSTATE {}
impl ::core::clone::Clone for SCRIPTSTATE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SCRIPTSTATE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SCRIPTSTATE {
    type Abi = Self;
}
impl ::core::fmt::Debug for SCRIPTSTATE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SCRIPTSTATE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SCRIPTTHREADSTATE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTTHREADSTATE_NOTINSCRIPT: SCRIPTTHREADSTATE = SCRIPTTHREADSTATE(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTTHREADSTATE_RUNNING: SCRIPTTHREADSTATE = SCRIPTTHREADSTATE(1i32);
impl ::core::marker::Copy for SCRIPTTHREADSTATE {}
impl ::core::clone::Clone for SCRIPTTHREADSTATE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SCRIPTTHREADSTATE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SCRIPTTHREADSTATE {
    type Abi = Self;
}
impl ::core::fmt::Debug for SCRIPTTHREADSTATE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SCRIPTTHREADSTATE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SCRIPTTRACEINFO(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTTRACEINFO_SCRIPTSTART: SCRIPTTRACEINFO = SCRIPTTRACEINFO(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTTRACEINFO_SCRIPTEND: SCRIPTTRACEINFO = SCRIPTTRACEINFO(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTTRACEINFO_COMCALLSTART: SCRIPTTRACEINFO = SCRIPTTRACEINFO(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTTRACEINFO_COMCALLEND: SCRIPTTRACEINFO = SCRIPTTRACEINFO(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTTRACEINFO_CREATEOBJSTART: SCRIPTTRACEINFO = SCRIPTTRACEINFO(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTTRACEINFO_CREATEOBJEND: SCRIPTTRACEINFO = SCRIPTTRACEINFO(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTTRACEINFO_GETOBJSTART: SCRIPTTRACEINFO = SCRIPTTRACEINFO(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTTRACEINFO_GETOBJEND: SCRIPTTRACEINFO = SCRIPTTRACEINFO(7i32);
impl ::core::marker::Copy for SCRIPTTRACEINFO {}
impl ::core::clone::Clone for SCRIPTTRACEINFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SCRIPTTRACEINFO {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SCRIPTTRACEINFO {
    type Abi = Self;
}
impl ::core::fmt::Debug for SCRIPTTRACEINFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SCRIPTTRACEINFO").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SCRIPTUICHANDLING(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTUICHANDLING_ALLOW: SCRIPTUICHANDLING = SCRIPTUICHANDLING(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTUICHANDLING_NOUIERROR: SCRIPTUICHANDLING = SCRIPTUICHANDLING(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTUICHANDLING_NOUIDEFAULT: SCRIPTUICHANDLING = SCRIPTUICHANDLING(2i32);
impl ::core::marker::Copy for SCRIPTUICHANDLING {}
impl ::core::clone::Clone for SCRIPTUICHANDLING {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SCRIPTUICHANDLING {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SCRIPTUICHANDLING {
    type Abi = Self;
}
impl ::core::fmt::Debug for SCRIPTUICHANDLING {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SCRIPTUICHANDLING").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SCRIPTUICITEM(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTUICITEM_INPUTBOX: SCRIPTUICITEM = SCRIPTUICITEM(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SCRIPTUICITEM_MSGBOX: SCRIPTUICITEM = SCRIPTUICITEM(2i32);
impl ::core::marker::Copy for SCRIPTUICITEM {}
impl ::core::clone::Clone for SCRIPTUICITEM {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SCRIPTUICITEM {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SCRIPTUICITEM {
    type Abi = Self;
}
impl ::core::fmt::Debug for SCRIPTUICITEM {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SCRIPTUICITEM").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SCRIPT_DEBUGGER_OPTIONS(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SDO_NONE: SCRIPT_DEBUGGER_OPTIONS = SCRIPT_DEBUGGER_OPTIONS(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SDO_ENABLE_FIRST_CHANCE_EXCEPTIONS: SCRIPT_DEBUGGER_OPTIONS = SCRIPT_DEBUGGER_OPTIONS(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SDO_ENABLE_WEB_WORKER_SUPPORT: SCRIPT_DEBUGGER_OPTIONS = SCRIPT_DEBUGGER_OPTIONS(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SDO_ENABLE_NONUSER_CODE_SUPPORT: SCRIPT_DEBUGGER_OPTIONS = SCRIPT_DEBUGGER_OPTIONS(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SDO_ENABLE_LIBRARY_STACK_FRAME: SCRIPT_DEBUGGER_OPTIONS = SCRIPT_DEBUGGER_OPTIONS(8i32);
impl ::core::marker::Copy for SCRIPT_DEBUGGER_OPTIONS {}
impl ::core::clone::Clone for SCRIPT_DEBUGGER_OPTIONS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SCRIPT_DEBUGGER_OPTIONS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SCRIPT_DEBUGGER_OPTIONS {
    type Abi = Self;
}
impl ::core::fmt::Debug for SCRIPT_DEBUGGER_OPTIONS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SCRIPT_DEBUGGER_OPTIONS").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ETK_FIRST_CHANCE: SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND = SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ETK_USER_UNHANDLED: SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND = SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ETK_UNHANDLED: SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND = SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND(2i32);
impl ::core::marker::Copy for SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND {}
impl ::core::clone::Clone for SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND {
    type Abi = Self;
}
impl ::core::fmt::Debug for SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SCRIPT_INVOCATION_CONTEXT_TYPE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SICT_Event: SCRIPT_INVOCATION_CONTEXT_TYPE = SCRIPT_INVOCATION_CONTEXT_TYPE(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SICT_SetTimeout: SCRIPT_INVOCATION_CONTEXT_TYPE = SCRIPT_INVOCATION_CONTEXT_TYPE(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SICT_SetInterval: SCRIPT_INVOCATION_CONTEXT_TYPE = SCRIPT_INVOCATION_CONTEXT_TYPE(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SICT_SetImmediate: SCRIPT_INVOCATION_CONTEXT_TYPE = SCRIPT_INVOCATION_CONTEXT_TYPE(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SICT_RequestAnimationFrame: SCRIPT_INVOCATION_CONTEXT_TYPE = SCRIPT_INVOCATION_CONTEXT_TYPE(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SICT_ToString: SCRIPT_INVOCATION_CONTEXT_TYPE = SCRIPT_INVOCATION_CONTEXT_TYPE(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SICT_MutationObserverCheckpoint: SCRIPT_INVOCATION_CONTEXT_TYPE = SCRIPT_INVOCATION_CONTEXT_TYPE(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SICT_WWAExecUnsafeLocalFunction: SCRIPT_INVOCATION_CONTEXT_TYPE = SCRIPT_INVOCATION_CONTEXT_TYPE(7i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SICT_WWAExecAtPriority: SCRIPT_INVOCATION_CONTEXT_TYPE = SCRIPT_INVOCATION_CONTEXT_TYPE(8i32);
impl ::core::marker::Copy for SCRIPT_INVOCATION_CONTEXT_TYPE {}
impl ::core::clone::Clone for SCRIPT_INVOCATION_CONTEXT_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SCRIPT_INVOCATION_CONTEXT_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SCRIPT_INVOCATION_CONTEXT_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for SCRIPT_INVOCATION_CONTEXT_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SCRIPT_INVOCATION_CONTEXT_TYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SYMBOL_INFO_FLAGS(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_CLR_TOKEN: SYMBOL_INFO_FLAGS = SYMBOL_INFO_FLAGS(262144u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_CONSTANT: SYMBOL_INFO_FLAGS = SYMBOL_INFO_FLAGS(256u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_EXPORT: SYMBOL_INFO_FLAGS = SYMBOL_INFO_FLAGS(512u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_FORWARDER: SYMBOL_INFO_FLAGS = SYMBOL_INFO_FLAGS(1024u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_FRAMEREL: SYMBOL_INFO_FLAGS = SYMBOL_INFO_FLAGS(32u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_FUNCTION: SYMBOL_INFO_FLAGS = SYMBOL_INFO_FLAGS(2048u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_ILREL: SYMBOL_INFO_FLAGS = SYMBOL_INFO_FLAGS(65536u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_LOCAL: SYMBOL_INFO_FLAGS = SYMBOL_INFO_FLAGS(128u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_METADATA: SYMBOL_INFO_FLAGS = SYMBOL_INFO_FLAGS(131072u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_PARAMETER: SYMBOL_INFO_FLAGS = SYMBOL_INFO_FLAGS(64u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_REGISTER: SYMBOL_INFO_FLAGS = SYMBOL_INFO_FLAGS(8u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_REGREL: SYMBOL_INFO_FLAGS = SYMBOL_INFO_FLAGS(16u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_SLOT: SYMBOL_INFO_FLAGS = SYMBOL_INFO_FLAGS(32768u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_THUNK: SYMBOL_INFO_FLAGS = SYMBOL_INFO_FLAGS(8192u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_TLSREL: SYMBOL_INFO_FLAGS = SYMBOL_INFO_FLAGS(16384u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_VALUEPRESENT: SYMBOL_INFO_FLAGS = SYMBOL_INFO_FLAGS(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMFLAG_VIRTUAL: SYMBOL_INFO_FLAGS = SYMBOL_INFO_FLAGS(4096u32);
impl ::core::marker::Copy for SYMBOL_INFO_FLAGS {}
impl ::core::clone::Clone for SYMBOL_INFO_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SYMBOL_INFO_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SYMBOL_INFO_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for SYMBOL_INFO_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SYMBOL_INFO_FLAGS").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for SYMBOL_INFO_FLAGS {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for SYMBOL_INFO_FLAGS {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for SYMBOL_INFO_FLAGS {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for SYMBOL_INFO_FLAGS {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for SYMBOL_INFO_FLAGS {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SYM_FIND_ID_OPTION(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_DWORD: SYM_FIND_ID_OPTION = SYM_FIND_ID_OPTION(2u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_DWORDPTR: SYM_FIND_ID_OPTION = SYM_FIND_ID_OPTION(4u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SSRVOPT_GUIDPTR: SYM_FIND_ID_OPTION = SYM_FIND_ID_OPTION(8u32);
impl ::core::marker::Copy for SYM_FIND_ID_OPTION {}
impl ::core::clone::Clone for SYM_FIND_ID_OPTION {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SYM_FIND_ID_OPTION {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SYM_FIND_ID_OPTION {
    type Abi = Self;
}
impl ::core::fmt::Debug for SYM_FIND_ID_OPTION {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SYM_FIND_ID_OPTION").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SYM_LOAD_FLAGS(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SLMFLAG_NONE: SYM_LOAD_FLAGS = SYM_LOAD_FLAGS(0u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SLMFLAG_VIRTUAL: SYM_LOAD_FLAGS = SYM_LOAD_FLAGS(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SLMFLAG_ALT_INDEX: SYM_LOAD_FLAGS = SYM_LOAD_FLAGS(2u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SLMFLAG_NO_SYMBOLS: SYM_LOAD_FLAGS = SYM_LOAD_FLAGS(4u32);
impl ::core::marker::Copy for SYM_LOAD_FLAGS {}
impl ::core::clone::Clone for SYM_LOAD_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SYM_LOAD_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SYM_LOAD_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for SYM_LOAD_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SYM_LOAD_FLAGS").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for SYM_LOAD_FLAGS {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for SYM_LOAD_FLAGS {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for SYM_LOAD_FLAGS {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for SYM_LOAD_FLAGS {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for SYM_LOAD_FLAGS {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SYM_SRV_STORE_FILE_FLAGS(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMSTOREOPT_COMPRESS: SYM_SRV_STORE_FILE_FLAGS = SYM_SRV_STORE_FILE_FLAGS(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMSTOREOPT_OVERWRITE: SYM_SRV_STORE_FILE_FLAGS = SYM_SRV_STORE_FILE_FLAGS(2u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMSTOREOPT_PASS_IF_EXISTS: SYM_SRV_STORE_FILE_FLAGS = SYM_SRV_STORE_FILE_FLAGS(64u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMSTOREOPT_POINTER: SYM_SRV_STORE_FILE_FLAGS = SYM_SRV_STORE_FILE_FLAGS(8u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SYMSTOREOPT_RETURNINDEX: SYM_SRV_STORE_FILE_FLAGS = SYM_SRV_STORE_FILE_FLAGS(4u32);
impl ::core::marker::Copy for SYM_SRV_STORE_FILE_FLAGS {}
impl ::core::clone::Clone for SYM_SRV_STORE_FILE_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SYM_SRV_STORE_FILE_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SYM_SRV_STORE_FILE_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for SYM_SRV_STORE_FILE_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SYM_SRV_STORE_FILE_FLAGS").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SYM_TYPE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SymNone: SYM_TYPE = SYM_TYPE(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SymCoff: SYM_TYPE = SYM_TYPE(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SymCv: SYM_TYPE = SYM_TYPE(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SymPdb: SYM_TYPE = SYM_TYPE(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SymExport: SYM_TYPE = SYM_TYPE(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SymDeferred: SYM_TYPE = SYM_TYPE(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SymSym: SYM_TYPE = SYM_TYPE(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SymDia: SYM_TYPE = SYM_TYPE(7i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SymVirtual: SYM_TYPE = SYM_TYPE(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const NumSymTypes: SYM_TYPE = SYM_TYPE(9i32);
impl ::core::marker::Copy for SYM_TYPE {}
impl ::core::clone::Clone for SYM_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SYM_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SYM_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for SYM_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SYM_TYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct ScriptChangeKind(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ScriptRename: ScriptChangeKind = ScriptChangeKind(0i32);
impl ::core::marker::Copy for ScriptChangeKind {}
impl ::core::clone::Clone for ScriptChangeKind {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ScriptChangeKind {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ScriptChangeKind {
    type Abi = Self;
}
impl ::core::fmt::Debug for ScriptChangeKind {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ScriptChangeKind").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct ScriptDebugEvent(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ScriptDebugBreakpoint: ScriptDebugEvent = ScriptDebugEvent(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ScriptDebugStep: ScriptDebugEvent = ScriptDebugEvent(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ScriptDebugException: ScriptDebugEvent = ScriptDebugEvent(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ScriptDebugAsyncBreak: ScriptDebugEvent = ScriptDebugEvent(3i32);
impl ::core::marker::Copy for ScriptDebugEvent {}
impl ::core::clone::Clone for ScriptDebugEvent {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ScriptDebugEvent {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ScriptDebugEvent {
    type Abi = Self;
}
impl ::core::fmt::Debug for ScriptDebugEvent {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ScriptDebugEvent").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct ScriptDebugEventFilter(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ScriptDebugEventFilterEntry: ScriptDebugEventFilter = ScriptDebugEventFilter(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ScriptDebugEventFilterException: ScriptDebugEventFilter = ScriptDebugEventFilter(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ScriptDebugEventFilterUnhandledException: ScriptDebugEventFilter = ScriptDebugEventFilter(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ScriptDebugEventFilterAbort: ScriptDebugEventFilter = ScriptDebugEventFilter(3i32);
impl ::core::marker::Copy for ScriptDebugEventFilter {}
impl ::core::clone::Clone for ScriptDebugEventFilter {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ScriptDebugEventFilter {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ScriptDebugEventFilter {
    type Abi = Self;
}
impl ::core::fmt::Debug for ScriptDebugEventFilter {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ScriptDebugEventFilter").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct ScriptDebugState(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ScriptDebugNoDebugger: ScriptDebugState = ScriptDebugState(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ScriptDebugNotExecuting: ScriptDebugState = ScriptDebugState(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ScriptDebugExecuting: ScriptDebugState = ScriptDebugState(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ScriptDebugBreak: ScriptDebugState = ScriptDebugState(3i32);
impl ::core::marker::Copy for ScriptDebugState {}
impl ::core::clone::Clone for ScriptDebugState {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ScriptDebugState {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ScriptDebugState {
    type Abi = Self;
}
impl ::core::fmt::Debug for ScriptDebugState {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ScriptDebugState").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct ScriptExecutionKind(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ScriptExecutionNormal: ScriptExecutionKind = ScriptExecutionKind(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ScriptExecutionStepIn: ScriptExecutionKind = ScriptExecutionKind(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ScriptExecutionStepOut: ScriptExecutionKind = ScriptExecutionKind(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ScriptExecutionStepOver: ScriptExecutionKind = ScriptExecutionKind(3i32);
impl ::core::marker::Copy for ScriptExecutionKind {}
impl ::core::clone::Clone for ScriptExecutionKind {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for ScriptExecutionKind {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for ScriptExecutionKind {
    type Abi = Self;
}
impl ::core::fmt::Debug for ScriptExecutionKind {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("ScriptExecutionKind").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SignatureComparison(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const Unrelated: SignatureComparison = SignatureComparison(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const Ambiguous: SignatureComparison = SignatureComparison(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const LessSpecific: SignatureComparison = SignatureComparison(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const MoreSpecific: SignatureComparison = SignatureComparison(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const Identical: SignatureComparison = SignatureComparison(4i32);
impl ::core::marker::Copy for SignatureComparison {}
impl ::core::clone::Clone for SignatureComparison {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SignatureComparison {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SignatureComparison {
    type Abi = Self;
}
impl ::core::fmt::Debug for SignatureComparison {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SignatureComparison").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SymbolKind(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const Symbol: SymbolKind = SymbolKind(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SymbolModule: SymbolKind = SymbolKind(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SymbolType: SymbolKind = SymbolKind(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SymbolField: SymbolKind = SymbolKind(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SymbolConstant: SymbolKind = SymbolKind(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SymbolData: SymbolKind = SymbolKind(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SymbolBaseClass: SymbolKind = SymbolKind(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SymbolPublic: SymbolKind = SymbolKind(7i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SymbolFunction: SymbolKind = SymbolKind(8i32);
impl ::core::marker::Copy for SymbolKind {}
impl ::core::clone::Clone for SymbolKind {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SymbolKind {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SymbolKind {
    type Abi = Self;
}
impl ::core::fmt::Debug for SymbolKind {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SymbolKind").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SymbolSearchOptions(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SymbolSearchNone: SymbolSearchOptions = SymbolSearchOptions(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SymbolSearchCompletion: SymbolSearchOptions = SymbolSearchOptions(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SymbolSearchCaseInsensitive: SymbolSearchOptions = SymbolSearchOptions(2i32);
impl ::core::marker::Copy for SymbolSearchOptions {}
impl ::core::clone::Clone for SymbolSearchOptions {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for SymbolSearchOptions {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for SymbolSearchOptions {
    type Abi = Self;
}
impl ::core::fmt::Debug for SymbolSearchOptions {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("SymbolSearchOptions").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct THREAD_ERROR_MODE(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SEM_ALL_ERRORS: THREAD_ERROR_MODE = THREAD_ERROR_MODE(0u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SEM_FAILCRITICALERRORS: THREAD_ERROR_MODE = THREAD_ERROR_MODE(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SEM_NOGPFAULTERRORBOX: THREAD_ERROR_MODE = THREAD_ERROR_MODE(2u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SEM_NOOPENFILEERRORBOX: THREAD_ERROR_MODE = THREAD_ERROR_MODE(32768u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const SEM_NOALIGNMENTFAULTEXCEPT: THREAD_ERROR_MODE = THREAD_ERROR_MODE(4u32);
impl ::core::marker::Copy for THREAD_ERROR_MODE {}
impl ::core::clone::Clone for THREAD_ERROR_MODE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for THREAD_ERROR_MODE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for THREAD_ERROR_MODE {
    type Abi = Self;
}
impl ::core::fmt::Debug for THREAD_ERROR_MODE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("THREAD_ERROR_MODE").field(&self.0).finish()
    }
}
impl ::core::ops::BitOr for THREAD_ERROR_MODE {
    type Output = Self;
    fn bitor(self, other: Self) -> Self {
        Self(self.0 | other.0)
    }
}
impl ::core::ops::BitAnd for THREAD_ERROR_MODE {
    type Output = Self;
    fn bitand(self, other: Self) -> Self {
        Self(self.0 & other.0)
    }
}
impl ::core::ops::BitOrAssign for THREAD_ERROR_MODE {
    fn bitor_assign(&mut self, other: Self) {
        self.0.bitor_assign(other.0)
    }
}
impl ::core::ops::BitAndAssign for THREAD_ERROR_MODE {
    fn bitand_assign(&mut self, other: Self) {
        self.0.bitand_assign(other.0)
    }
}
impl ::core::ops::Not for THREAD_ERROR_MODE {
    type Output = Self;
    fn not(self) -> Self {
        Self(self.0.not())
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct THREAD_WRITE_FLAGS(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ThreadWriteThread: THREAD_WRITE_FLAGS = THREAD_WRITE_FLAGS(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ThreadWriteStack: THREAD_WRITE_FLAGS = THREAD_WRITE_FLAGS(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ThreadWriteContext: THREAD_WRITE_FLAGS = THREAD_WRITE_FLAGS(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ThreadWriteBackingStore: THREAD_WRITE_FLAGS = THREAD_WRITE_FLAGS(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ThreadWriteInstructionWindow: THREAD_WRITE_FLAGS = THREAD_WRITE_FLAGS(16i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ThreadWriteThreadData: THREAD_WRITE_FLAGS = THREAD_WRITE_FLAGS(32i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const ThreadWriteThreadInfo: THREAD_WRITE_FLAGS = THREAD_WRITE_FLAGS(64i32);
impl ::core::marker::Copy for THREAD_WRITE_FLAGS {}
impl ::core::clone::Clone for THREAD_WRITE_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for THREAD_WRITE_FLAGS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for THREAD_WRITE_FLAGS {
    type Abi = Self;
}
impl ::core::fmt::Debug for THREAD_WRITE_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("THREAD_WRITE_FLAGS").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct TypeKind(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TypeUDT: TypeKind = TypeKind(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TypePointer: TypeKind = TypeKind(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TypeMemberPointer: TypeKind = TypeKind(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TypeArray: TypeKind = TypeKind(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TypeFunction: TypeKind = TypeKind(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TypeTypedef: TypeKind = TypeKind(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TypeEnum: TypeKind = TypeKind(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TypeIntrinsic: TypeKind = TypeKind(7i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const TypeExtendedArray: TypeKind = TypeKind(8i32);
impl ::core::marker::Copy for TypeKind {}
impl ::core::clone::Clone for TypeKind {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for TypeKind {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for TypeKind {
    type Abi = Self;
}
impl ::core::fmt::Debug for TypeKind {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("TypeKind").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct VER_PLATFORM(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VER_PLATFORM_WIN32s: VER_PLATFORM = VER_PLATFORM(0u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VER_PLATFORM_WIN32_WINDOWS: VER_PLATFORM = VER_PLATFORM(1u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VER_PLATFORM_WIN32_NT: VER_PLATFORM = VER_PLATFORM(2u32);
impl ::core::marker::Copy for VER_PLATFORM {}
impl ::core::clone::Clone for VER_PLATFORM {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for VER_PLATFORM {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for VER_PLATFORM {
    type Abi = Self;
}
impl ::core::fmt::Debug for VER_PLATFORM {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("VER_PLATFORM").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct VarArgsKind(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VarArgsNone: VarArgsKind = VarArgsKind(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const VarArgsCStyle: VarArgsKind = VarArgsKind(1i32);
impl ::core::marker::Copy for VarArgsKind {}
impl ::core::clone::Clone for VarArgsKind {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for VarArgsKind {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for VarArgsKind {
    type Abi = Self;
}
impl ::core::fmt::Debug for VarArgsKind {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("VarArgsKind").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct WAIT_CHAIN_THREAD_OPTIONS(pub u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WCT_OUT_OF_PROC_COM_FLAG: WAIT_CHAIN_THREAD_OPTIONS = WAIT_CHAIN_THREAD_OPTIONS(2u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WCT_OUT_OF_PROC_CS_FLAG: WAIT_CHAIN_THREAD_OPTIONS = WAIT_CHAIN_THREAD_OPTIONS(4u32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WCT_OUT_OF_PROC_FLAG: WAIT_CHAIN_THREAD_OPTIONS = WAIT_CHAIN_THREAD_OPTIONS(1u32);
impl ::core::marker::Copy for WAIT_CHAIN_THREAD_OPTIONS {}
impl ::core::clone::Clone for WAIT_CHAIN_THREAD_OPTIONS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for WAIT_CHAIN_THREAD_OPTIONS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for WAIT_CHAIN_THREAD_OPTIONS {
    type Abi = Self;
}
impl ::core::fmt::Debug for WAIT_CHAIN_THREAD_OPTIONS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WAIT_CHAIN_THREAD_OPTIONS").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct WCT_OBJECT_STATUS(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctStatusNoAccess: WCT_OBJECT_STATUS = WCT_OBJECT_STATUS(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctStatusRunning: WCT_OBJECT_STATUS = WCT_OBJECT_STATUS(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctStatusBlocked: WCT_OBJECT_STATUS = WCT_OBJECT_STATUS(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctStatusPidOnly: WCT_OBJECT_STATUS = WCT_OBJECT_STATUS(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctStatusPidOnlyRpcss: WCT_OBJECT_STATUS = WCT_OBJECT_STATUS(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctStatusOwned: WCT_OBJECT_STATUS = WCT_OBJECT_STATUS(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctStatusNotOwned: WCT_OBJECT_STATUS = WCT_OBJECT_STATUS(7i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctStatusAbandoned: WCT_OBJECT_STATUS = WCT_OBJECT_STATUS(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctStatusUnknown: WCT_OBJECT_STATUS = WCT_OBJECT_STATUS(9i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctStatusError: WCT_OBJECT_STATUS = WCT_OBJECT_STATUS(10i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctStatusMax: WCT_OBJECT_STATUS = WCT_OBJECT_STATUS(11i32);
impl ::core::marker::Copy for WCT_OBJECT_STATUS {}
impl ::core::clone::Clone for WCT_OBJECT_STATUS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for WCT_OBJECT_STATUS {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for WCT_OBJECT_STATUS {
    type Abi = Self;
}
impl ::core::fmt::Debug for WCT_OBJECT_STATUS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WCT_OBJECT_STATUS").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct WCT_OBJECT_TYPE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctCriticalSectionType: WCT_OBJECT_TYPE = WCT_OBJECT_TYPE(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctSendMessageType: WCT_OBJECT_TYPE = WCT_OBJECT_TYPE(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctMutexType: WCT_OBJECT_TYPE = WCT_OBJECT_TYPE(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctAlpcType: WCT_OBJECT_TYPE = WCT_OBJECT_TYPE(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctComType: WCT_OBJECT_TYPE = WCT_OBJECT_TYPE(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctThreadWaitType: WCT_OBJECT_TYPE = WCT_OBJECT_TYPE(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctProcessWaitType: WCT_OBJECT_TYPE = WCT_OBJECT_TYPE(7i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctThreadType: WCT_OBJECT_TYPE = WCT_OBJECT_TYPE(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctComActivationType: WCT_OBJECT_TYPE = WCT_OBJECT_TYPE(9i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctUnknownType: WCT_OBJECT_TYPE = WCT_OBJECT_TYPE(10i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctSocketIoType: WCT_OBJECT_TYPE = WCT_OBJECT_TYPE(11i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctSmbIoType: WCT_OBJECT_TYPE = WCT_OBJECT_TYPE(12i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WctMaxType: WCT_OBJECT_TYPE = WCT_OBJECT_TYPE(13i32);
impl ::core::marker::Copy for WCT_OBJECT_TYPE {}
impl ::core::clone::Clone for WCT_OBJECT_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for WCT_OBJECT_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for WCT_OBJECT_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for WCT_OBJECT_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WCT_OBJECT_TYPE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct WHEA_ERROR_SOURCE_STATE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcStateStopped: WHEA_ERROR_SOURCE_STATE = WHEA_ERROR_SOURCE_STATE(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcStateStarted: WHEA_ERROR_SOURCE_STATE = WHEA_ERROR_SOURCE_STATE(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcStateRemoved: WHEA_ERROR_SOURCE_STATE = WHEA_ERROR_SOURCE_STATE(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcStateRemovePending: WHEA_ERROR_SOURCE_STATE = WHEA_ERROR_SOURCE_STATE(4i32);
impl ::core::marker::Copy for WHEA_ERROR_SOURCE_STATE {}
impl ::core::clone::Clone for WHEA_ERROR_SOURCE_STATE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for WHEA_ERROR_SOURCE_STATE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for WHEA_ERROR_SOURCE_STATE {
    type Abi = Self;
}
impl ::core::fmt::Debug for WHEA_ERROR_SOURCE_STATE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WHEA_ERROR_SOURCE_STATE").field(&self.0).finish()
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct WHEA_ERROR_SOURCE_TYPE(pub i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcTypeMCE: WHEA_ERROR_SOURCE_TYPE = WHEA_ERROR_SOURCE_TYPE(0i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcTypeCMC: WHEA_ERROR_SOURCE_TYPE = WHEA_ERROR_SOURCE_TYPE(1i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcTypeCPE: WHEA_ERROR_SOURCE_TYPE = WHEA_ERROR_SOURCE_TYPE(2i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcTypeNMI: WHEA_ERROR_SOURCE_TYPE = WHEA_ERROR_SOURCE_TYPE(3i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcTypePCIe: WHEA_ERROR_SOURCE_TYPE = WHEA_ERROR_SOURCE_TYPE(4i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcTypeGeneric: WHEA_ERROR_SOURCE_TYPE = WHEA_ERROR_SOURCE_TYPE(5i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcTypeINIT: WHEA_ERROR_SOURCE_TYPE = WHEA_ERROR_SOURCE_TYPE(6i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcTypeBOOT: WHEA_ERROR_SOURCE_TYPE = WHEA_ERROR_SOURCE_TYPE(7i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcTypeSCIGeneric: WHEA_ERROR_SOURCE_TYPE = WHEA_ERROR_SOURCE_TYPE(8i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcTypeIPFMCA: WHEA_ERROR_SOURCE_TYPE = WHEA_ERROR_SOURCE_TYPE(9i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcTypeIPFCMC: WHEA_ERROR_SOURCE_TYPE = WHEA_ERROR_SOURCE_TYPE(10i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcTypeIPFCPE: WHEA_ERROR_SOURCE_TYPE = WHEA_ERROR_SOURCE_TYPE(11i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcTypeGenericV2: WHEA_ERROR_SOURCE_TYPE = WHEA_ERROR_SOURCE_TYPE(12i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcTypeSCIGenericV2: WHEA_ERROR_SOURCE_TYPE = WHEA_ERROR_SOURCE_TYPE(13i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcTypeBMC: WHEA_ERROR_SOURCE_TYPE = WHEA_ERROR_SOURCE_TYPE(14i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcTypePMEM: WHEA_ERROR_SOURCE_TYPE = WHEA_ERROR_SOURCE_TYPE(15i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcTypeDeviceDriver: WHEA_ERROR_SOURCE_TYPE = WHEA_ERROR_SOURCE_TYPE(16i32);
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub const WheaErrSrcTypeMax: WHEA_ERROR_SOURCE_TYPE = WHEA_ERROR_SOURCE_TYPE(17i32);
impl ::core::marker::Copy for WHEA_ERROR_SOURCE_TYPE {}
impl ::core::clone::Clone for WHEA_ERROR_SOURCE_TYPE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::default::Default for WHEA_ERROR_SOURCE_TYPE {
    fn default() -> Self {
        Self(0)
    }
}
unsafe impl ::windows::core::Abi for WHEA_ERROR_SOURCE_TYPE {
    type Abi = Self;
}
impl ::core::fmt::Debug for WHEA_ERROR_SOURCE_TYPE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_tuple("WHEA_ERROR_SOURCE_TYPE").field(&self.0).finish()
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "x86")]
pub struct ADDRESS {
    pub Offset: u32,
    pub Segment: u16,
    pub Mode: ADDRESS_MODE,
}
#[cfg(target_arch = "x86")]
impl ::core::marker::Copy for ADDRESS {}
#[cfg(target_arch = "x86")]
impl ::core::clone::Clone for ADDRESS {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86")]
impl ::core::fmt::Debug for ADDRESS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("ADDRESS").field("Offset", &self.Offset).field("Segment", &self.Segment).field("Mode", &self.Mode).finish()
    }
}
#[cfg(target_arch = "x86")]
unsafe impl ::windows::core::Abi for ADDRESS {
    type Abi = Self;
}
#[cfg(target_arch = "x86")]
impl ::core::cmp::PartialEq for ADDRESS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<ADDRESS>()) == 0 }
    }
}
#[cfg(target_arch = "x86")]
impl ::core::cmp::Eq for ADDRESS {}
#[cfg(target_arch = "x86")]
impl ::core::default::Default for ADDRESS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct ADDRESS64 {
    pub Offset: u64,
    pub Segment: u16,
    pub Mode: ADDRESS_MODE,
}
impl ::core::marker::Copy for ADDRESS64 {}
impl ::core::clone::Clone for ADDRESS64 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for ADDRESS64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("ADDRESS64").field("Offset", &self.Offset).field("Segment", &self.Segment).field("Mode", &self.Mode).finish()
    }
}
unsafe impl ::windows::core::Abi for ADDRESS64 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for ADDRESS64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<ADDRESS64>()) == 0 }
    }
}
impl ::core::cmp::Eq for ADDRESS64 {}
impl ::core::default::Default for ADDRESS64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union AER_BRIDGE_DESCRIPTOR_FLAGS {
    pub Anonymous: AER_BRIDGE_DESCRIPTOR_FLAGS_0,
    pub AsUSHORT: u16,
}
impl ::core::marker::Copy for AER_BRIDGE_DESCRIPTOR_FLAGS {}
impl ::core::clone::Clone for AER_BRIDGE_DESCRIPTOR_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for AER_BRIDGE_DESCRIPTOR_FLAGS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for AER_BRIDGE_DESCRIPTOR_FLAGS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<AER_BRIDGE_DESCRIPTOR_FLAGS>()) == 0 }
    }
}
impl ::core::cmp::Eq for AER_BRIDGE_DESCRIPTOR_FLAGS {}
impl ::core::default::Default for AER_BRIDGE_DESCRIPTOR_FLAGS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct AER_BRIDGE_DESCRIPTOR_FLAGS_0 {
    pub _bitfield: u16,
}
impl ::core::marker::Copy for AER_BRIDGE_DESCRIPTOR_FLAGS_0 {}
impl ::core::clone::Clone for AER_BRIDGE_DESCRIPTOR_FLAGS_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for AER_BRIDGE_DESCRIPTOR_FLAGS_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for AER_BRIDGE_DESCRIPTOR_FLAGS_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<AER_BRIDGE_DESCRIPTOR_FLAGS_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for AER_BRIDGE_DESCRIPTOR_FLAGS_0 {}
impl ::core::default::Default for AER_BRIDGE_DESCRIPTOR_FLAGS_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union AER_ENDPOINT_DESCRIPTOR_FLAGS {
    pub Anonymous: AER_ENDPOINT_DESCRIPTOR_FLAGS_0,
    pub AsUSHORT: u16,
}
impl ::core::marker::Copy for AER_ENDPOINT_DESCRIPTOR_FLAGS {}
impl ::core::clone::Clone for AER_ENDPOINT_DESCRIPTOR_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for AER_ENDPOINT_DESCRIPTOR_FLAGS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for AER_ENDPOINT_DESCRIPTOR_FLAGS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<AER_ENDPOINT_DESCRIPTOR_FLAGS>()) == 0 }
    }
}
impl ::core::cmp::Eq for AER_ENDPOINT_DESCRIPTOR_FLAGS {}
impl ::core::default::Default for AER_ENDPOINT_DESCRIPTOR_FLAGS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct AER_ENDPOINT_DESCRIPTOR_FLAGS_0 {
    pub _bitfield: u16,
}
impl ::core::marker::Copy for AER_ENDPOINT_DESCRIPTOR_FLAGS_0 {}
impl ::core::clone::Clone for AER_ENDPOINT_DESCRIPTOR_FLAGS_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for AER_ENDPOINT_DESCRIPTOR_FLAGS_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for AER_ENDPOINT_DESCRIPTOR_FLAGS_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<AER_ENDPOINT_DESCRIPTOR_FLAGS_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for AER_ENDPOINT_DESCRIPTOR_FLAGS_0 {}
impl ::core::default::Default for AER_ENDPOINT_DESCRIPTOR_FLAGS_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union AER_ROOTPORT_DESCRIPTOR_FLAGS {
    pub Anonymous: AER_ROOTPORT_DESCRIPTOR_FLAGS_0,
    pub AsUSHORT: u16,
}
impl ::core::marker::Copy for AER_ROOTPORT_DESCRIPTOR_FLAGS {}
impl ::core::clone::Clone for AER_ROOTPORT_DESCRIPTOR_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for AER_ROOTPORT_DESCRIPTOR_FLAGS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for AER_ROOTPORT_DESCRIPTOR_FLAGS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<AER_ROOTPORT_DESCRIPTOR_FLAGS>()) == 0 }
    }
}
impl ::core::cmp::Eq for AER_ROOTPORT_DESCRIPTOR_FLAGS {}
impl ::core::default::Default for AER_ROOTPORT_DESCRIPTOR_FLAGS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct AER_ROOTPORT_DESCRIPTOR_FLAGS_0 {
    pub _bitfield: u16,
}
impl ::core::marker::Copy for AER_ROOTPORT_DESCRIPTOR_FLAGS_0 {}
impl ::core::clone::Clone for AER_ROOTPORT_DESCRIPTOR_FLAGS_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for AER_ROOTPORT_DESCRIPTOR_FLAGS_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for AER_ROOTPORT_DESCRIPTOR_FLAGS_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<AER_ROOTPORT_DESCRIPTOR_FLAGS_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for AER_ROOTPORT_DESCRIPTOR_FLAGS_0 {}
impl ::core::default::Default for AER_ROOTPORT_DESCRIPTOR_FLAGS_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct API_VERSION {
    pub MajorVersion: u16,
    pub MinorVersion: u16,
    pub Revision: u16,
    pub Reserved: u16,
}
impl ::core::marker::Copy for API_VERSION {}
impl ::core::clone::Clone for API_VERSION {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for API_VERSION {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("API_VERSION").field("MajorVersion", &self.MajorVersion).field("MinorVersion", &self.MinorVersion).field("Revision", &self.Revision).field("Reserved", &self.Reserved).finish()
    }
}
unsafe impl ::windows::core::Abi for API_VERSION {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for API_VERSION {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<API_VERSION>()) == 0 }
    }
}
impl ::core::cmp::Eq for API_VERSION {}
impl ::core::default::Default for API_VERSION {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
pub struct ARM64_NT_CONTEXT {
    pub ContextFlags: u32,
    pub Cpsr: u32,
    pub Anonymous: ARM64_NT_CONTEXT_0,
    pub Sp: u64,
    pub Pc: u64,
    pub V: [ARM64_NT_NEON128; 32],
    pub Fpcr: u32,
    pub Fpsr: u32,
    pub Bcr: [u32; 8],
    pub Bvr: [u64; 8],
    pub Wcr: [u32; 2],
    pub Wvr: [u64; 2],
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
impl ::core::marker::Copy for ARM64_NT_CONTEXT {}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
impl ::core::clone::Clone for ARM64_NT_CONTEXT {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
unsafe impl ::windows::core::Abi for ARM64_NT_CONTEXT {
    type Abi = Self;
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
impl ::core::cmp::PartialEq for ARM64_NT_CONTEXT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<ARM64_NT_CONTEXT>()) == 0 }
    }
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
impl ::core::cmp::Eq for ARM64_NT_CONTEXT {}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
impl ::core::default::Default for ARM64_NT_CONTEXT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
pub union ARM64_NT_CONTEXT_0 {
    pub Anonymous: ARM64_NT_CONTEXT_0_0,
    pub X: [u64; 31],
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
impl ::core::marker::Copy for ARM64_NT_CONTEXT_0 {}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
impl ::core::clone::Clone for ARM64_NT_CONTEXT_0 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
unsafe impl ::windows::core::Abi for ARM64_NT_CONTEXT_0 {
    type Abi = Self;
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
impl ::core::cmp::PartialEq for ARM64_NT_CONTEXT_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<ARM64_NT_CONTEXT_0>()) == 0 }
    }
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
impl ::core::cmp::Eq for ARM64_NT_CONTEXT_0 {}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
impl ::core::default::Default for ARM64_NT_CONTEXT_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
pub struct ARM64_NT_CONTEXT_0_0 {
    pub X0: u64,
    pub X1: u64,
    pub X2: u64,
    pub X3: u64,
    pub X4: u64,
    pub X5: u64,
    pub X6: u64,
    pub X7: u64,
    pub X8: u64,
    pub X9: u64,
    pub X10: u64,
    pub X11: u64,
    pub X12: u64,
    pub X13: u64,
    pub X14: u64,
    pub X15: u64,
    pub X16: u64,
    pub X17: u64,
    pub X18: u64,
    pub X19: u64,
    pub X20: u64,
    pub X21: u64,
    pub X22: u64,
    pub X23: u64,
    pub X24: u64,
    pub X25: u64,
    pub X26: u64,
    pub X27: u64,
    pub X28: u64,
    pub Fp: u64,
    pub Lr: u64,
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
impl ::core::marker::Copy for ARM64_NT_CONTEXT_0_0 {}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
impl ::core::clone::Clone for ARM64_NT_CONTEXT_0_0 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
impl ::core::fmt::Debug for ARM64_NT_CONTEXT_0_0 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("ARM64_NT_CONTEXT_0_0")
            .field("X0", &self.X0)
            .field("X1", &self.X1)
            .field("X2", &self.X2)
            .field("X3", &self.X3)
            .field("X4", &self.X4)
            .field("X5", &self.X5)
            .field("X6", &self.X6)
            .field("X7", &self.X7)
            .field("X8", &self.X8)
            .field("X9", &self.X9)
            .field("X10", &self.X10)
            .field("X11", &self.X11)
            .field("X12", &self.X12)
            .field("X13", &self.X13)
            .field("X14", &self.X14)
            .field("X15", &self.X15)
            .field("X16", &self.X16)
            .field("X17", &self.X17)
            .field("X18", &self.X18)
            .field("X19", &self.X19)
            .field("X20", &self.X20)
            .field("X21", &self.X21)
            .field("X22", &self.X22)
            .field("X23", &self.X23)
            .field("X24", &self.X24)
            .field("X25", &self.X25)
            .field("X26", &self.X26)
            .field("X27", &self.X27)
            .field("X28", &self.X28)
            .field("Fp", &self.Fp)
            .field("Lr", &self.Lr)
            .finish()
    }
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
unsafe impl ::windows::core::Abi for ARM64_NT_CONTEXT_0_0 {
    type Abi = Self;
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
impl ::core::cmp::PartialEq for ARM64_NT_CONTEXT_0_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<ARM64_NT_CONTEXT_0_0>()) == 0 }
    }
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
impl ::core::cmp::Eq for ARM64_NT_CONTEXT_0_0 {}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
impl ::core::default::Default for ARM64_NT_CONTEXT_0_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union ARM64_NT_NEON128 {
    pub Anonymous: ARM64_NT_NEON128_0,
    pub D: [f64; 2],
    pub S: [f32; 4],
    pub H: [u16; 8],
    pub B: [u8; 16],
}
impl ::core::marker::Copy for ARM64_NT_NEON128 {}
impl ::core::clone::Clone for ARM64_NT_NEON128 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for ARM64_NT_NEON128 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for ARM64_NT_NEON128 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<ARM64_NT_NEON128>()) == 0 }
    }
}
impl ::core::cmp::Eq for ARM64_NT_NEON128 {}
impl ::core::default::Default for ARM64_NT_NEON128 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct ARM64_NT_NEON128_0 {
    pub Low: u64,
    pub High: i64,
}
impl ::core::marker::Copy for ARM64_NT_NEON128_0 {}
impl ::core::clone::Clone for ARM64_NT_NEON128_0 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for ARM64_NT_NEON128_0 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("ARM64_NT_NEON128_0").field("Low", &self.Low).field("High", &self.High).finish()
    }
}
unsafe impl ::windows::core::Abi for ARM64_NT_NEON128_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for ARM64_NT_NEON128_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<ARM64_NT_NEON128_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for ARM64_NT_NEON128_0 {}
impl ::core::default::Default for ARM64_NT_NEON128_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct ArrayDimension {
    pub LowerBound: i64,
    pub Length: u64,
    pub Stride: u64,
}
impl ::core::marker::Copy for ArrayDimension {}
impl ::core::clone::Clone for ArrayDimension {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for ArrayDimension {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("ArrayDimension").field("LowerBound", &self.LowerBound).field("Length", &self.Length).field("Stride", &self.Stride).finish()
    }
}
unsafe impl ::windows::core::Abi for ArrayDimension {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for ArrayDimension {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<ArrayDimension>()) == 0 }
    }
}
impl ::core::cmp::Eq for ArrayDimension {}
impl ::core::default::Default for ArrayDimension {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct BUSDATA {
    pub BusDataType: u32,
    pub BusNumber: u32,
    pub SlotNumber: u32,
    pub Buffer: *mut ::core::ffi::c_void,
    pub Offset: u32,
    pub Length: u32,
}
impl ::core::marker::Copy for BUSDATA {}
impl ::core::clone::Clone for BUSDATA {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for BUSDATA {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("BUSDATA").field("BusDataType", &self.BusDataType).field("BusNumber", &self.BusNumber).field("SlotNumber", &self.SlotNumber).field("Buffer", &self.Buffer).field("Offset", &self.Offset).field("Length", &self.Length).finish()
    }
}
unsafe impl ::windows::core::Abi for BUSDATA {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for BUSDATA {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<BUSDATA>()) == 0 }
    }
}
impl ::core::cmp::Eq for BUSDATA {}
impl ::core::default::Default for BUSDATA {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
pub struct CONTEXT {
    pub ContextFlags: u32,
    pub Cpsr: u32,
    pub Anonymous: CONTEXT_0,
    pub Sp: u64,
    pub Pc: u64,
    pub V: [ARM64_NT_NEON128; 32],
    pub Fpcr: u32,
    pub Fpsr: u32,
    pub Bcr: [u32; 8],
    pub Bvr: [u64; 8],
    pub Wcr: [u32; 2],
    pub Wvr: [u64; 2],
}
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for CONTEXT {}
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for CONTEXT {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
unsafe impl ::windows::core::Abi for CONTEXT {
    type Abi = Self;
}
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::PartialEq for CONTEXT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<CONTEXT>()) == 0 }
    }
}
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::Eq for CONTEXT {}
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for CONTEXT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
pub union CONTEXT_0 {
    pub Anonymous: CONTEXT_0_0,
    pub X: [u64; 31],
}
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for CONTEXT_0 {}
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for CONTEXT_0 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
unsafe impl ::windows::core::Abi for CONTEXT_0 {
    type Abi = Self;
}
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::PartialEq for CONTEXT_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<CONTEXT_0>()) == 0 }
    }
}
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::Eq for CONTEXT_0 {}
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for CONTEXT_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
pub struct CONTEXT_0_0 {
    pub X0: u64,
    pub X1: u64,
    pub X2: u64,
    pub X3: u64,
    pub X4: u64,
    pub X5: u64,
    pub X6: u64,
    pub X7: u64,
    pub X8: u64,
    pub X9: u64,
    pub X10: u64,
    pub X11: u64,
    pub X12: u64,
    pub X13: u64,
    pub X14: u64,
    pub X15: u64,
    pub X16: u64,
    pub X17: u64,
    pub X18: u64,
    pub X19: u64,
    pub X20: u64,
    pub X21: u64,
    pub X22: u64,
    pub X23: u64,
    pub X24: u64,
    pub X25: u64,
    pub X26: u64,
    pub X27: u64,
    pub X28: u64,
    pub Fp: u64,
    pub Lr: u64,
}
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for CONTEXT_0_0 {}
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for CONTEXT_0_0 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::fmt::Debug for CONTEXT_0_0 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("CONTEXT_0_0")
            .field("X0", &self.X0)
            .field("X1", &self.X1)
            .field("X2", &self.X2)
            .field("X3", &self.X3)
            .field("X4", &self.X4)
            .field("X5", &self.X5)
            .field("X6", &self.X6)
            .field("X7", &self.X7)
            .field("X8", &self.X8)
            .field("X9", &self.X9)
            .field("X10", &self.X10)
            .field("X11", &self.X11)
            .field("X12", &self.X12)
            .field("X13", &self.X13)
            .field("X14", &self.X14)
            .field("X15", &self.X15)
            .field("X16", &self.X16)
            .field("X17", &self.X17)
            .field("X18", &self.X18)
            .field("X19", &self.X19)
            .field("X20", &self.X20)
            .field("X21", &self.X21)
            .field("X22", &self.X22)
            .field("X23", &self.X23)
            .field("X24", &self.X24)
            .field("X25", &self.X25)
            .field("X26", &self.X26)
            .field("X27", &self.X27)
            .field("X28", &self.X28)
            .field("Fp", &self.Fp)
            .field("Lr", &self.Lr)
            .finish()
    }
}
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
unsafe impl ::windows::core::Abi for CONTEXT_0_0 {
    type Abi = Self;
}
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::PartialEq for CONTEXT_0_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<CONTEXT_0_0>()) == 0 }
    }
}
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::Eq for CONTEXT_0_0 {}
#[cfg(target_arch = "aarch64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for CONTEXT_0_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
pub struct CONTEXT {
    pub P1Home: u64,
    pub P2Home: u64,
    pub P3Home: u64,
    pub P4Home: u64,
    pub P5Home: u64,
    pub P6Home: u64,
    pub ContextFlags: u32,
    pub MxCsr: u32,
    pub SegCs: u16,
    pub SegDs: u16,
    pub SegEs: u16,
    pub SegFs: u16,
    pub SegGs: u16,
    pub SegSs: u16,
    pub EFlags: u32,
    pub Dr0: u64,
    pub Dr1: u64,
    pub Dr2: u64,
    pub Dr3: u64,
    pub Dr6: u64,
    pub Dr7: u64,
    pub Rax: u64,
    pub Rcx: u64,
    pub Rdx: u64,
    pub Rbx: u64,
    pub Rsp: u64,
    pub Rbp: u64,
    pub Rsi: u64,
    pub Rdi: u64,
    pub R8: u64,
    pub R9: u64,
    pub R10: u64,
    pub R11: u64,
    pub R12: u64,
    pub R13: u64,
    pub R14: u64,
    pub R15: u64,
    pub Rip: u64,
    pub Anonymous: CONTEXT_0,
    pub VectorRegister: [M128A; 26],
    pub VectorControl: u64,
    pub DebugControl: u64,
    pub LastBranchToRip: u64,
    pub LastBranchFromRip: u64,
    pub LastExceptionToRip: u64,
    pub LastExceptionFromRip: u64,
}
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for CONTEXT {}
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for CONTEXT {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
unsafe impl ::windows::core::Abi for CONTEXT {
    type Abi = Self;
}
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::PartialEq for CONTEXT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<CONTEXT>()) == 0 }
    }
}
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::Eq for CONTEXT {}
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for CONTEXT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
pub union CONTEXT_0 {
    pub FltSave: XSAVE_FORMAT,
    pub Anonymous: CONTEXT_0_0,
}
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for CONTEXT_0 {}
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for CONTEXT_0 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
unsafe impl ::windows::core::Abi for CONTEXT_0 {
    type Abi = Self;
}
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::PartialEq for CONTEXT_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<CONTEXT_0>()) == 0 }
    }
}
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::Eq for CONTEXT_0 {}
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for CONTEXT_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
pub struct CONTEXT_0_0 {
    pub Header: [M128A; 2],
    pub Legacy: [M128A; 8],
    pub Xmm0: M128A,
    pub Xmm1: M128A,
    pub Xmm2: M128A,
    pub Xmm3: M128A,
    pub Xmm4: M128A,
    pub Xmm5: M128A,
    pub Xmm6: M128A,
    pub Xmm7: M128A,
    pub Xmm8: M128A,
    pub Xmm9: M128A,
    pub Xmm10: M128A,
    pub Xmm11: M128A,
    pub Xmm12: M128A,
    pub Xmm13: M128A,
    pub Xmm14: M128A,
    pub Xmm15: M128A,
}
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for CONTEXT_0_0 {}
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for CONTEXT_0_0 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::fmt::Debug for CONTEXT_0_0 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("CONTEXT_0_0")
            .field("Header", &self.Header)
            .field("Legacy", &self.Legacy)
            .field("Xmm0", &self.Xmm0)
            .field("Xmm1", &self.Xmm1)
            .field("Xmm2", &self.Xmm2)
            .field("Xmm3", &self.Xmm3)
            .field("Xmm4", &self.Xmm4)
            .field("Xmm5", &self.Xmm5)
            .field("Xmm6", &self.Xmm6)
            .field("Xmm7", &self.Xmm7)
            .field("Xmm8", &self.Xmm8)
            .field("Xmm9", &self.Xmm9)
            .field("Xmm10", &self.Xmm10)
            .field("Xmm11", &self.Xmm11)
            .field("Xmm12", &self.Xmm12)
            .field("Xmm13", &self.Xmm13)
            .field("Xmm14", &self.Xmm14)
            .field("Xmm15", &self.Xmm15)
            .finish()
    }
}
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
unsafe impl ::windows::core::Abi for CONTEXT_0_0 {
    type Abi = Self;
}
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::PartialEq for CONTEXT_0_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<CONTEXT_0_0>()) == 0 }
    }
}
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::Eq for CONTEXT_0_0 {}
#[cfg(target_arch = "x86_64")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for CONTEXT_0_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_System_Kernel")]
pub struct CONTEXT {
    pub ContextFlags: u32,
    pub Dr0: u32,
    pub Dr1: u32,
    pub Dr2: u32,
    pub Dr3: u32,
    pub Dr6: u32,
    pub Dr7: u32,
    pub FloatSave: super::super::Kernel::FLOATING_SAVE_AREA,
    pub SegGs: u32,
    pub SegFs: u32,
    pub SegEs: u32,
    pub SegDs: u32,
    pub Edi: u32,
    pub Esi: u32,
    pub Ebx: u32,
    pub Edx: u32,
    pub Ecx: u32,
    pub Eax: u32,
    pub Ebp: u32,
    pub Eip: u32,
    pub SegCs: u32,
    pub EFlags: u32,
    pub Esp: u32,
    pub SegSs: u32,
    pub ExtendedRegisters: [u8; 512],
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for CONTEXT {}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for CONTEXT {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_System_Kernel")]
unsafe impl ::windows::core::Abi for CONTEXT {
    type Abi = Self;
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::PartialEq for CONTEXT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<CONTEXT>()) == 0 }
    }
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::Eq for CONTEXT {}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for CONTEXT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union CPU_INFORMATION {
    pub X86CpuInfo: CPU_INFORMATION_1,
    pub OtherCpuInfo: CPU_INFORMATION_0,
}
impl ::core::marker::Copy for CPU_INFORMATION {}
impl ::core::clone::Clone for CPU_INFORMATION {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for CPU_INFORMATION {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for CPU_INFORMATION {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<CPU_INFORMATION>()) == 0 }
    }
}
impl ::core::cmp::Eq for CPU_INFORMATION {}
impl ::core::default::Default for CPU_INFORMATION {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct CPU_INFORMATION_0 {
    pub ProcessorFeatures: [u64; 2],
}
impl ::core::marker::Copy for CPU_INFORMATION_0 {}
impl ::core::clone::Clone for CPU_INFORMATION_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for CPU_INFORMATION_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for CPU_INFORMATION_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<CPU_INFORMATION_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for CPU_INFORMATION_0 {}
impl ::core::default::Default for CPU_INFORMATION_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct CPU_INFORMATION_1 {
    pub VendorId: [u32; 3],
    pub VersionInformation: u32,
    pub FeatureInformation: u32,
    pub AMDExtendedCpuFeatures: u32,
}
impl ::core::marker::Copy for CPU_INFORMATION_1 {}
impl ::core::clone::Clone for CPU_INFORMATION_1 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for CPU_INFORMATION_1 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("CPU_INFORMATION_1").field("VendorId", &self.VendorId).field("VersionInformation", &self.VersionInformation).field("FeatureInformation", &self.FeatureInformation).field("AMDExtendedCpuFeatures", &self.AMDExtendedCpuFeatures).finish()
    }
}
unsafe impl ::windows::core::Abi for CPU_INFORMATION_1 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for CPU_INFORMATION_1 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<CPU_INFORMATION_1>()) == 0 }
    }
}
impl ::core::cmp::Eq for CPU_INFORMATION_1 {}
impl ::core::default::Default for CPU_INFORMATION_1 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
pub struct CREATE_PROCESS_DEBUG_INFO {
    pub hFile: super::super::super::Foundation::HANDLE,
    pub hProcess: super::super::super::Foundation::HANDLE,
    pub hThread: super::super::super::Foundation::HANDLE,
    pub lpBaseOfImage: *mut ::core::ffi::c_void,
    pub dwDebugInfoFileOffset: u32,
    pub nDebugInfoSize: u32,
    pub lpThreadLocalBase: *mut ::core::ffi::c_void,
    pub lpStartAddress: super::super::Threading::LPTHREAD_START_ROUTINE,
    pub lpImageName: *mut ::core::ffi::c_void,
    pub fUnicode: u16,
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::marker::Copy for CREATE_PROCESS_DEBUG_INFO {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::clone::Clone for CREATE_PROCESS_DEBUG_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::fmt::Debug for CREATE_PROCESS_DEBUG_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("CREATE_PROCESS_DEBUG_INFO")
            .field("hFile", &self.hFile)
            .field("hProcess", &self.hProcess)
            .field("hThread", &self.hThread)
            .field("lpBaseOfImage", &self.lpBaseOfImage)
            .field("dwDebugInfoFileOffset", &self.dwDebugInfoFileOffset)
            .field("nDebugInfoSize", &self.nDebugInfoSize)
            .field("lpThreadLocalBase", &self.lpThreadLocalBase)
            .field("lpStartAddress", &self.lpStartAddress.map(|f| f as usize))
            .field("lpImageName", &self.lpImageName)
            .field("fUnicode", &self.fUnicode)
            .finish()
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
unsafe impl ::windows::core::Abi for CREATE_PROCESS_DEBUG_INFO {
    type Abi = Self;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::cmp::PartialEq for CREATE_PROCESS_DEBUG_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<CREATE_PROCESS_DEBUG_INFO>()) == 0 }
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::cmp::Eq for CREATE_PROCESS_DEBUG_INFO {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::default::Default for CREATE_PROCESS_DEBUG_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
pub struct CREATE_THREAD_DEBUG_INFO {
    pub hThread: super::super::super::Foundation::HANDLE,
    pub lpThreadLocalBase: *mut ::core::ffi::c_void,
    pub lpStartAddress: super::super::Threading::LPTHREAD_START_ROUTINE,
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::marker::Copy for CREATE_THREAD_DEBUG_INFO {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::clone::Clone for CREATE_THREAD_DEBUG_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::fmt::Debug for CREATE_THREAD_DEBUG_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("CREATE_THREAD_DEBUG_INFO").field("hThread", &self.hThread).field("lpThreadLocalBase", &self.lpThreadLocalBase).field("lpStartAddress", &self.lpStartAddress.map(|f| f as usize)).finish()
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
unsafe impl ::windows::core::Abi for CREATE_THREAD_DEBUG_INFO {
    type Abi = Self;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::cmp::PartialEq for CREATE_THREAD_DEBUG_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<CREATE_THREAD_DEBUG_INFO>()) == 0 }
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::cmp::Eq for CREATE_THREAD_DEBUG_INFO {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::default::Default for CREATE_THREAD_DEBUG_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DBGHELP_DATA_REPORT_STRUCT {
    pub pBinPathNonExist: ::windows::core::PCWSTR,
    pub pSymbolPathNonExist: ::windows::core::PCWSTR,
}
impl ::core::marker::Copy for DBGHELP_DATA_REPORT_STRUCT {}
impl ::core::clone::Clone for DBGHELP_DATA_REPORT_STRUCT {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DBGHELP_DATA_REPORT_STRUCT {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DBGHELP_DATA_REPORT_STRUCT").field("pBinPathNonExist", &self.pBinPathNonExist).field("pSymbolPathNonExist", &self.pSymbolPathNonExist).finish()
    }
}
unsafe impl ::windows::core::Abi for DBGHELP_DATA_REPORT_STRUCT {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DBGHELP_DATA_REPORT_STRUCT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DBGHELP_DATA_REPORT_STRUCT>()) == 0 }
    }
}
impl ::core::cmp::Eq for DBGHELP_DATA_REPORT_STRUCT {}
impl ::core::default::Default for DBGHELP_DATA_REPORT_STRUCT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(feature = "Win32_System_Kernel")]
pub struct DBGKD_DEBUG_DATA_HEADER32 {
    pub List: super::super::Kernel::LIST_ENTRY32,
    pub OwnerTag: u32,
    pub Size: u32,
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for DBGKD_DEBUG_DATA_HEADER32 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for DBGKD_DEBUG_DATA_HEADER32 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::fmt::Debug for DBGKD_DEBUG_DATA_HEADER32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DBGKD_DEBUG_DATA_HEADER32").field("List", &self.List).field("OwnerTag", &self.OwnerTag).field("Size", &self.Size).finish()
    }
}
#[cfg(feature = "Win32_System_Kernel")]
unsafe impl ::windows::core::Abi for DBGKD_DEBUG_DATA_HEADER32 {
    type Abi = Self;
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::PartialEq for DBGKD_DEBUG_DATA_HEADER32 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DBGKD_DEBUG_DATA_HEADER32>()) == 0 }
    }
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::Eq for DBGKD_DEBUG_DATA_HEADER32 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for DBGKD_DEBUG_DATA_HEADER32 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(feature = "Win32_System_Kernel")]
pub struct DBGKD_DEBUG_DATA_HEADER64 {
    pub List: super::super::Kernel::LIST_ENTRY64,
    pub OwnerTag: u32,
    pub Size: u32,
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for DBGKD_DEBUG_DATA_HEADER64 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for DBGKD_DEBUG_DATA_HEADER64 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::fmt::Debug for DBGKD_DEBUG_DATA_HEADER64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DBGKD_DEBUG_DATA_HEADER64").field("List", &self.List).field("OwnerTag", &self.OwnerTag).field("Size", &self.Size).finish()
    }
}
#[cfg(feature = "Win32_System_Kernel")]
unsafe impl ::windows::core::Abi for DBGKD_DEBUG_DATA_HEADER64 {
    type Abi = Self;
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::PartialEq for DBGKD_DEBUG_DATA_HEADER64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DBGKD_DEBUG_DATA_HEADER64>()) == 0 }
    }
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::Eq for DBGKD_DEBUG_DATA_HEADER64 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for DBGKD_DEBUG_DATA_HEADER64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DBGKD_GET_VERSION32 {
    pub MajorVersion: u16,
    pub MinorVersion: u16,
    pub ProtocolVersion: u16,
    pub Flags: u16,
    pub KernBase: u32,
    pub PsLoadedModuleList: u32,
    pub MachineType: u16,
    pub ThCallbackStack: u16,
    pub NextCallback: u16,
    pub FramePointer: u16,
    pub KiCallUserMode: u32,
    pub KeUserCallbackDispatcher: u32,
    pub BreakpointWithStatus: u32,
    pub DebuggerDataList: u32,
}
impl ::core::marker::Copy for DBGKD_GET_VERSION32 {}
impl ::core::clone::Clone for DBGKD_GET_VERSION32 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DBGKD_GET_VERSION32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DBGKD_GET_VERSION32")
            .field("MajorVersion", &self.MajorVersion)
            .field("MinorVersion", &self.MinorVersion)
            .field("ProtocolVersion", &self.ProtocolVersion)
            .field("Flags", &self.Flags)
            .field("KernBase", &self.KernBase)
            .field("PsLoadedModuleList", &self.PsLoadedModuleList)
            .field("MachineType", &self.MachineType)
            .field("ThCallbackStack", &self.ThCallbackStack)
            .field("NextCallback", &self.NextCallback)
            .field("FramePointer", &self.FramePointer)
            .field("KiCallUserMode", &self.KiCallUserMode)
            .field("KeUserCallbackDispatcher", &self.KeUserCallbackDispatcher)
            .field("BreakpointWithStatus", &self.BreakpointWithStatus)
            .field("DebuggerDataList", &self.DebuggerDataList)
            .finish()
    }
}
unsafe impl ::windows::core::Abi for DBGKD_GET_VERSION32 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DBGKD_GET_VERSION32 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DBGKD_GET_VERSION32>()) == 0 }
    }
}
impl ::core::cmp::Eq for DBGKD_GET_VERSION32 {}
impl ::core::default::Default for DBGKD_GET_VERSION32 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DBGKD_GET_VERSION64 {
    pub MajorVersion: u16,
    pub MinorVersion: u16,
    pub ProtocolVersion: u8,
    pub KdSecondaryVersion: u8,
    pub Flags: u16,
    pub MachineType: u16,
    pub MaxPacketType: u8,
    pub MaxStateChange: u8,
    pub MaxManipulate: u8,
    pub Simulation: u8,
    pub Unused: [u16; 1],
    pub KernBase: u64,
    pub PsLoadedModuleList: u64,
    pub DebuggerDataList: u64,
}
impl ::core::marker::Copy for DBGKD_GET_VERSION64 {}
impl ::core::clone::Clone for DBGKD_GET_VERSION64 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DBGKD_GET_VERSION64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DBGKD_GET_VERSION64")
            .field("MajorVersion", &self.MajorVersion)
            .field("MinorVersion", &self.MinorVersion)
            .field("ProtocolVersion", &self.ProtocolVersion)
            .field("KdSecondaryVersion", &self.KdSecondaryVersion)
            .field("Flags", &self.Flags)
            .field("MachineType", &self.MachineType)
            .field("MaxPacketType", &self.MaxPacketType)
            .field("MaxStateChange", &self.MaxStateChange)
            .field("MaxManipulate", &self.MaxManipulate)
            .field("Simulation", &self.Simulation)
            .field("Unused", &self.Unused)
            .field("KernBase", &self.KernBase)
            .field("PsLoadedModuleList", &self.PsLoadedModuleList)
            .field("DebuggerDataList", &self.DebuggerDataList)
            .finish()
    }
}
unsafe impl ::windows::core::Abi for DBGKD_GET_VERSION64 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DBGKD_GET_VERSION64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DBGKD_GET_VERSION64>()) == 0 }
    }
}
impl ::core::cmp::Eq for DBGKD_GET_VERSION64 {}
impl ::core::default::Default for DBGKD_GET_VERSION64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_BREAKPOINT_PARAMETERS {
    pub Offset: u64,
    pub Id: u32,
    pub BreakType: u32,
    pub ProcType: u32,
    pub Flags: u32,
    pub DataSize: u32,
    pub DataAccessType: u32,
    pub PassCount: u32,
    pub CurrentPassCount: u32,
    pub MatchThread: u32,
    pub CommandSize: u32,
    pub OffsetExpressionSize: u32,
}
impl ::core::marker::Copy for DEBUG_BREAKPOINT_PARAMETERS {}
impl ::core::clone::Clone for DEBUG_BREAKPOINT_PARAMETERS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_BREAKPOINT_PARAMETERS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_BREAKPOINT_PARAMETERS")
            .field("Offset", &self.Offset)
            .field("Id", &self.Id)
            .field("BreakType", &self.BreakType)
            .field("ProcType", &self.ProcType)
            .field("Flags", &self.Flags)
            .field("DataSize", &self.DataSize)
            .field("DataAccessType", &self.DataAccessType)
            .field("PassCount", &self.PassCount)
            .field("CurrentPassCount", &self.CurrentPassCount)
            .field("MatchThread", &self.MatchThread)
            .field("CommandSize", &self.CommandSize)
            .field("OffsetExpressionSize", &self.OffsetExpressionSize)
            .finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_BREAKPOINT_PARAMETERS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_BREAKPOINT_PARAMETERS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_BREAKPOINT_PARAMETERS>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_BREAKPOINT_PARAMETERS {}
impl ::core::default::Default for DEBUG_BREAKPOINT_PARAMETERS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_CACHED_SYMBOL_INFO {
    pub ModBase: u64,
    pub Arg1: u64,
    pub Arg2: u64,
    pub Id: u32,
    pub Arg3: u32,
}
impl ::core::marker::Copy for DEBUG_CACHED_SYMBOL_INFO {}
impl ::core::clone::Clone for DEBUG_CACHED_SYMBOL_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_CACHED_SYMBOL_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_CACHED_SYMBOL_INFO").field("ModBase", &self.ModBase).field("Arg1", &self.Arg1).field("Arg2", &self.Arg2).field("Id", &self.Id).field("Arg3", &self.Arg3).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_CACHED_SYMBOL_INFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_CACHED_SYMBOL_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_CACHED_SYMBOL_INFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_CACHED_SYMBOL_INFO {}
impl ::core::default::Default for DEBUG_CACHED_SYMBOL_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_CLIENT_CONTEXT {
    pub cbSize: u32,
    pub eClient: u32,
}
impl ::core::marker::Copy for DEBUG_CLIENT_CONTEXT {}
impl ::core::clone::Clone for DEBUG_CLIENT_CONTEXT {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_CLIENT_CONTEXT {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_CLIENT_CONTEXT").field("cbSize", &self.cbSize).field("eClient", &self.eClient).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_CLIENT_CONTEXT {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_CLIENT_CONTEXT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_CLIENT_CONTEXT>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_CLIENT_CONTEXT {}
impl ::core::default::Default for DEBUG_CLIENT_CONTEXT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_CREATE_PROCESS_OPTIONS {
    pub CreateFlags: u32,
    pub EngCreateFlags: u32,
    pub VerifierFlags: u32,
    pub Reserved: u32,
}
impl ::core::marker::Copy for DEBUG_CREATE_PROCESS_OPTIONS {}
impl ::core::clone::Clone for DEBUG_CREATE_PROCESS_OPTIONS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_CREATE_PROCESS_OPTIONS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_CREATE_PROCESS_OPTIONS").field("CreateFlags", &self.CreateFlags).field("EngCreateFlags", &self.EngCreateFlags).field("VerifierFlags", &self.VerifierFlags).field("Reserved", &self.Reserved).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_CREATE_PROCESS_OPTIONS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_CREATE_PROCESS_OPTIONS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_CREATE_PROCESS_OPTIONS>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_CREATE_PROCESS_OPTIONS {}
impl ::core::default::Default for DEBUG_CREATE_PROCESS_OPTIONS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
pub struct DEBUG_EVENT {
    pub dwDebugEventCode: DEBUG_EVENT_CODE,
    pub dwProcessId: u32,
    pub dwThreadId: u32,
    pub u: DEBUG_EVENT_0,
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::marker::Copy for DEBUG_EVENT {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::clone::Clone for DEBUG_EVENT {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
unsafe impl ::windows::core::Abi for DEBUG_EVENT {
    type Abi = Self;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::cmp::PartialEq for DEBUG_EVENT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_EVENT>()) == 0 }
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::cmp::Eq for DEBUG_EVENT {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::default::Default for DEBUG_EVENT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
pub union DEBUG_EVENT_0 {
    pub Exception: EXCEPTION_DEBUG_INFO,
    pub CreateThread: CREATE_THREAD_DEBUG_INFO,
    pub CreateProcessInfo: CREATE_PROCESS_DEBUG_INFO,
    pub ExitThread: EXIT_THREAD_DEBUG_INFO,
    pub ExitProcess: EXIT_PROCESS_DEBUG_INFO,
    pub LoadDll: LOAD_DLL_DEBUG_INFO,
    pub UnloadDll: UNLOAD_DLL_DEBUG_INFO,
    pub DebugString: OUTPUT_DEBUG_STRING_INFO,
    pub RipInfo: RIP_INFO,
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::marker::Copy for DEBUG_EVENT_0 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::clone::Clone for DEBUG_EVENT_0 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
unsafe impl ::windows::core::Abi for DEBUG_EVENT_0 {
    type Abi = Self;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::cmp::PartialEq for DEBUG_EVENT_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_EVENT_0>()) == 0 }
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::cmp::Eq for DEBUG_EVENT_0 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))]
impl ::core::default::Default for DEBUG_EVENT_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_EVENT_CONTEXT {
    pub Size: u32,
    pub ProcessEngineId: u32,
    pub ThreadEngineId: u32,
    pub FrameEngineId: u32,
}
impl ::core::marker::Copy for DEBUG_EVENT_CONTEXT {}
impl ::core::clone::Clone for DEBUG_EVENT_CONTEXT {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_EVENT_CONTEXT {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_EVENT_CONTEXT").field("Size", &self.Size).field("ProcessEngineId", &self.ProcessEngineId).field("ThreadEngineId", &self.ThreadEngineId).field("FrameEngineId", &self.FrameEngineId).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_EVENT_CONTEXT {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_EVENT_CONTEXT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_EVENT_CONTEXT>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_EVENT_CONTEXT {}
impl ::core::default::Default for DEBUG_EVENT_CONTEXT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_EXCEPTION_FILTER_PARAMETERS {
    pub ExecutionOption: u32,
    pub ContinueOption: u32,
    pub TextSize: u32,
    pub CommandSize: u32,
    pub SecondCommandSize: u32,
    pub ExceptionCode: u32,
}
impl ::core::marker::Copy for DEBUG_EXCEPTION_FILTER_PARAMETERS {}
impl ::core::clone::Clone for DEBUG_EXCEPTION_FILTER_PARAMETERS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_EXCEPTION_FILTER_PARAMETERS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_EXCEPTION_FILTER_PARAMETERS").field("ExecutionOption", &self.ExecutionOption).field("ContinueOption", &self.ContinueOption).field("TextSize", &self.TextSize).field("CommandSize", &self.CommandSize).field("SecondCommandSize", &self.SecondCommandSize).field("ExceptionCode", &self.ExceptionCode).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_EXCEPTION_FILTER_PARAMETERS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_EXCEPTION_FILTER_PARAMETERS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_EXCEPTION_FILTER_PARAMETERS>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_EXCEPTION_FILTER_PARAMETERS {}
impl ::core::default::Default for DEBUG_EXCEPTION_FILTER_PARAMETERS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_GET_TEXT_COMPLETIONS_IN {
    pub Flags: u32,
    pub MatchCountLimit: u32,
    pub Reserved: [u64; 3],
}
impl ::core::marker::Copy for DEBUG_GET_TEXT_COMPLETIONS_IN {}
impl ::core::clone::Clone for DEBUG_GET_TEXT_COMPLETIONS_IN {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_GET_TEXT_COMPLETIONS_IN {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_GET_TEXT_COMPLETIONS_IN").field("Flags", &self.Flags).field("MatchCountLimit", &self.MatchCountLimit).field("Reserved", &self.Reserved).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_GET_TEXT_COMPLETIONS_IN {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_GET_TEXT_COMPLETIONS_IN {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_GET_TEXT_COMPLETIONS_IN>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_GET_TEXT_COMPLETIONS_IN {}
impl ::core::default::Default for DEBUG_GET_TEXT_COMPLETIONS_IN {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_GET_TEXT_COMPLETIONS_OUT {
    pub Flags: u32,
    pub ReplaceIndex: u32,
    pub MatchCount: u32,
    pub Reserved1: u32,
    pub Reserved2: [u64; 2],
}
impl ::core::marker::Copy for DEBUG_GET_TEXT_COMPLETIONS_OUT {}
impl ::core::clone::Clone for DEBUG_GET_TEXT_COMPLETIONS_OUT {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_GET_TEXT_COMPLETIONS_OUT {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_GET_TEXT_COMPLETIONS_OUT").field("Flags", &self.Flags).field("ReplaceIndex", &self.ReplaceIndex).field("MatchCount", &self.MatchCount).field("Reserved1", &self.Reserved1).field("Reserved2", &self.Reserved2).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_GET_TEXT_COMPLETIONS_OUT {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_GET_TEXT_COMPLETIONS_OUT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_GET_TEXT_COMPLETIONS_OUT>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_GET_TEXT_COMPLETIONS_OUT {}
impl ::core::default::Default for DEBUG_GET_TEXT_COMPLETIONS_OUT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_HANDLE_DATA_BASIC {
    pub TypeNameSize: u32,
    pub ObjectNameSize: u32,
    pub Attributes: u32,
    pub GrantedAccess: u32,
    pub HandleCount: u32,
    pub PointerCount: u32,
}
impl ::core::marker::Copy for DEBUG_HANDLE_DATA_BASIC {}
impl ::core::clone::Clone for DEBUG_HANDLE_DATA_BASIC {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_HANDLE_DATA_BASIC {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_HANDLE_DATA_BASIC").field("TypeNameSize", &self.TypeNameSize).field("ObjectNameSize", &self.ObjectNameSize).field("Attributes", &self.Attributes).field("GrantedAccess", &self.GrantedAccess).field("HandleCount", &self.HandleCount).field("PointerCount", &self.PointerCount).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_HANDLE_DATA_BASIC {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_HANDLE_DATA_BASIC {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_HANDLE_DATA_BASIC>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_HANDLE_DATA_BASIC {}
impl ::core::default::Default for DEBUG_HANDLE_DATA_BASIC {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_LAST_EVENT_INFO_BREAKPOINT {
    pub Id: u32,
}
impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_BREAKPOINT {}
impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_BREAKPOINT {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_LAST_EVENT_INFO_BREAKPOINT {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_LAST_EVENT_INFO_BREAKPOINT").field("Id", &self.Id).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_LAST_EVENT_INFO_BREAKPOINT {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_LAST_EVENT_INFO_BREAKPOINT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_LAST_EVENT_INFO_BREAKPOINT>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_LAST_EVENT_INFO_BREAKPOINT {}
impl ::core::default::Default for DEBUG_LAST_EVENT_INFO_BREAKPOINT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_LAST_EVENT_INFO_EXCEPTION {
    pub ExceptionRecord: EXCEPTION_RECORD64,
    pub FirstChance: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_EXCEPTION {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_EXCEPTION {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DEBUG_LAST_EVENT_INFO_EXCEPTION {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_LAST_EVENT_INFO_EXCEPTION").field("ExceptionRecord", &self.ExceptionRecord).field("FirstChance", &self.FirstChance).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for DEBUG_LAST_EVENT_INFO_EXCEPTION {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_LAST_EVENT_INFO_EXCEPTION {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_LAST_EVENT_INFO_EXCEPTION>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_LAST_EVENT_INFO_EXCEPTION {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_LAST_EVENT_INFO_EXCEPTION {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {
    pub ExitCode: u32,
}
impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {}
impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_LAST_EVENT_INFO_EXIT_PROCESS").field("ExitCode", &self.ExitCode).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_LAST_EVENT_INFO_EXIT_PROCESS>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {}
impl ::core::default::Default for DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_LAST_EVENT_INFO_EXIT_THREAD {
    pub ExitCode: u32,
}
impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_EXIT_THREAD {}
impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_EXIT_THREAD {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_LAST_EVENT_INFO_EXIT_THREAD {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_LAST_EVENT_INFO_EXIT_THREAD").field("ExitCode", &self.ExitCode).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_LAST_EVENT_INFO_EXIT_THREAD {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_LAST_EVENT_INFO_EXIT_THREAD {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_LAST_EVENT_INFO_EXIT_THREAD>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_LAST_EVENT_INFO_EXIT_THREAD {}
impl ::core::default::Default for DEBUG_LAST_EVENT_INFO_EXIT_THREAD {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_LAST_EVENT_INFO_LOAD_MODULE {
    pub Base: u64,
}
impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_LOAD_MODULE {}
impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_LOAD_MODULE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_LAST_EVENT_INFO_LOAD_MODULE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_LAST_EVENT_INFO_LOAD_MODULE").field("Base", &self.Base).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_LAST_EVENT_INFO_LOAD_MODULE {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_LAST_EVENT_INFO_LOAD_MODULE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_LAST_EVENT_INFO_LOAD_MODULE>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_LAST_EVENT_INFO_LOAD_MODULE {}
impl ::core::default::Default for DEBUG_LAST_EVENT_INFO_LOAD_MODULE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION {
    pub Kind: u32,
    pub DataSize: u32,
    pub Address: u64,
}
impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION {}
impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION").field("Kind", &self.Kind).field("DataSize", &self.DataSize).field("Address", &self.Address).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION {}
impl ::core::default::Default for DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {
    pub Error: u32,
    pub Level: u32,
}
impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {}
impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR").field("Error", &self.Error).field("Level", &self.Level).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {}
impl ::core::default::Default for DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {
    pub Base: u64,
}
impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {}
impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE").field("Base", &self.Base).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {}
impl ::core::default::Default for DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_MODULE_AND_ID {
    pub ModuleBase: u64,
    pub Id: u64,
}
impl ::core::marker::Copy for DEBUG_MODULE_AND_ID {}
impl ::core::clone::Clone for DEBUG_MODULE_AND_ID {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_MODULE_AND_ID {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_MODULE_AND_ID").field("ModuleBase", &self.ModuleBase).field("Id", &self.Id).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_MODULE_AND_ID {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_MODULE_AND_ID {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_MODULE_AND_ID>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_MODULE_AND_ID {}
impl ::core::default::Default for DEBUG_MODULE_AND_ID {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_MODULE_PARAMETERS {
    pub Base: u64,
    pub Size: u32,
    pub TimeDateStamp: u32,
    pub Checksum: u32,
    pub Flags: u32,
    pub SymbolType: u32,
    pub ImageNameSize: u32,
    pub ModuleNameSize: u32,
    pub LoadedImageNameSize: u32,
    pub SymbolFileNameSize: u32,
    pub MappedImageNameSize: u32,
    pub Reserved: [u64; 2],
}
impl ::core::marker::Copy for DEBUG_MODULE_PARAMETERS {}
impl ::core::clone::Clone for DEBUG_MODULE_PARAMETERS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_MODULE_PARAMETERS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_MODULE_PARAMETERS")
            .field("Base", &self.Base)
            .field("Size", &self.Size)
            .field("TimeDateStamp", &self.TimeDateStamp)
            .field("Checksum", &self.Checksum)
            .field("Flags", &self.Flags)
            .field("SymbolType", &self.SymbolType)
            .field("ImageNameSize", &self.ImageNameSize)
            .field("ModuleNameSize", &self.ModuleNameSize)
            .field("LoadedImageNameSize", &self.LoadedImageNameSize)
            .field("SymbolFileNameSize", &self.SymbolFileNameSize)
            .field("MappedImageNameSize", &self.MappedImageNameSize)
            .field("Reserved", &self.Reserved)
            .finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_MODULE_PARAMETERS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_MODULE_PARAMETERS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_MODULE_PARAMETERS>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_MODULE_PARAMETERS {}
impl ::core::default::Default for DEBUG_MODULE_PARAMETERS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_OFFSET_REGION {
    pub Base: u64,
    pub Size: u64,
}
impl ::core::marker::Copy for DEBUG_OFFSET_REGION {}
impl ::core::clone::Clone for DEBUG_OFFSET_REGION {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_OFFSET_REGION {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_OFFSET_REGION").field("Base", &self.Base).field("Size", &self.Size).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_OFFSET_REGION {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_OFFSET_REGION {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_OFFSET_REGION>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_OFFSET_REGION {}
impl ::core::default::Default for DEBUG_OFFSET_REGION {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub union DEBUG_PROCESSOR_IDENTIFICATION_ALL {
    pub Alpha: DEBUG_PROCESSOR_IDENTIFICATION_ALPHA,
    pub Amd64: DEBUG_PROCESSOR_IDENTIFICATION_AMD64,
    pub Ia64: DEBUG_PROCESSOR_IDENTIFICATION_IA64,
    pub X86: DEBUG_PROCESSOR_IDENTIFICATION_X86,
    pub Arm: DEBUG_PROCESSOR_IDENTIFICATION_ARM,
    pub Arm64: DEBUG_PROCESSOR_IDENTIFICATION_ARM64,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_ALL {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_ALL {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for DEBUG_PROCESSOR_IDENTIFICATION_ALL {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_PROCESSOR_IDENTIFICATION_ALL {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_PROCESSOR_IDENTIFICATION_ALL>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_PROCESSOR_IDENTIFICATION_ALL {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_PROCESSOR_IDENTIFICATION_ALL {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {
    pub Type: u32,
    pub Revision: u32,
}
impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {}
impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_PROCESSOR_IDENTIFICATION_ALPHA").field("Type", &self.Type).field("Revision", &self.Revision).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_PROCESSOR_IDENTIFICATION_ALPHA>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {}
impl ::core::default::Default for DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {
    pub Family: u32,
    pub Model: u32,
    pub Stepping: u32,
    pub VendorString: [super::super::super::Foundation::CHAR; 16],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_PROCESSOR_IDENTIFICATION_AMD64").field("Family", &self.Family).field("Model", &self.Model).field("Stepping", &self.Stepping).field("VendorString", &self.VendorString).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_PROCESSOR_IDENTIFICATION_AMD64>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_PROCESSOR_IDENTIFICATION_ARM {
    pub Model: u32,
    pub Revision: u32,
    pub VendorString: [super::super::super::Foundation::CHAR; 16],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_ARM {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_ARM {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DEBUG_PROCESSOR_IDENTIFICATION_ARM {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_PROCESSOR_IDENTIFICATION_ARM").field("Model", &self.Model).field("Revision", &self.Revision).field("VendorString", &self.VendorString).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for DEBUG_PROCESSOR_IDENTIFICATION_ARM {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_PROCESSOR_IDENTIFICATION_ARM {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_PROCESSOR_IDENTIFICATION_ARM>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_PROCESSOR_IDENTIFICATION_ARM {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_PROCESSOR_IDENTIFICATION_ARM {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_PROCESSOR_IDENTIFICATION_ARM64 {
    pub Model: u32,
    pub Revision: u32,
    pub VendorString: [super::super::super::Foundation::CHAR; 16],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_ARM64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_ARM64 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DEBUG_PROCESSOR_IDENTIFICATION_ARM64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_PROCESSOR_IDENTIFICATION_ARM64").field("Model", &self.Model).field("Revision", &self.Revision).field("VendorString", &self.VendorString).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for DEBUG_PROCESSOR_IDENTIFICATION_ARM64 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_PROCESSOR_IDENTIFICATION_ARM64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_PROCESSOR_IDENTIFICATION_ARM64>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_PROCESSOR_IDENTIFICATION_ARM64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_PROCESSOR_IDENTIFICATION_ARM64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_PROCESSOR_IDENTIFICATION_IA64 {
    pub Model: u32,
    pub Revision: u32,
    pub Family: u32,
    pub ArchRev: u32,
    pub VendorString: [super::super::super::Foundation::CHAR; 16],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_IA64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_IA64 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DEBUG_PROCESSOR_IDENTIFICATION_IA64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_PROCESSOR_IDENTIFICATION_IA64").field("Model", &self.Model).field("Revision", &self.Revision).field("Family", &self.Family).field("ArchRev", &self.ArchRev).field("VendorString", &self.VendorString).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for DEBUG_PROCESSOR_IDENTIFICATION_IA64 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_PROCESSOR_IDENTIFICATION_IA64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_PROCESSOR_IDENTIFICATION_IA64>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_PROCESSOR_IDENTIFICATION_IA64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_PROCESSOR_IDENTIFICATION_IA64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_PROCESSOR_IDENTIFICATION_X86 {
    pub Family: u32,
    pub Model: u32,
    pub Stepping: u32,
    pub VendorString: [super::super::super::Foundation::CHAR; 16],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_X86 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_X86 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DEBUG_PROCESSOR_IDENTIFICATION_X86 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_PROCESSOR_IDENTIFICATION_X86").field("Family", &self.Family).field("Model", &self.Model).field("Stepping", &self.Stepping).field("VendorString", &self.VendorString).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for DEBUG_PROCESSOR_IDENTIFICATION_X86 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_PROCESSOR_IDENTIFICATION_X86 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_PROCESSOR_IDENTIFICATION_X86>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_PROCESSOR_IDENTIFICATION_X86 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_PROCESSOR_IDENTIFICATION_X86 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_READ_USER_MINIDUMP_STREAM {
    pub StreamType: u32,
    pub Flags: u32,
    pub Offset: u64,
    pub Buffer: *mut ::core::ffi::c_void,
    pub BufferSize: u32,
    pub BufferUsed: u32,
}
impl ::core::marker::Copy for DEBUG_READ_USER_MINIDUMP_STREAM {}
impl ::core::clone::Clone for DEBUG_READ_USER_MINIDUMP_STREAM {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_READ_USER_MINIDUMP_STREAM {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_READ_USER_MINIDUMP_STREAM").field("StreamType", &self.StreamType).field("Flags", &self.Flags).field("Offset", &self.Offset).field("Buffer", &self.Buffer).field("BufferSize", &self.BufferSize).field("BufferUsed", &self.BufferUsed).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_READ_USER_MINIDUMP_STREAM {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_READ_USER_MINIDUMP_STREAM {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_READ_USER_MINIDUMP_STREAM>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_READ_USER_MINIDUMP_STREAM {}
impl ::core::default::Default for DEBUG_READ_USER_MINIDUMP_STREAM {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_REGISTER_DESCRIPTION {
    pub Type: u32,
    pub Flags: u32,
    pub SubregMaster: u32,
    pub SubregLength: u32,
    pub SubregMask: u64,
    pub SubregShift: u32,
    pub Reserved0: u32,
}
impl ::core::marker::Copy for DEBUG_REGISTER_DESCRIPTION {}
impl ::core::clone::Clone for DEBUG_REGISTER_DESCRIPTION {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_REGISTER_DESCRIPTION {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_REGISTER_DESCRIPTION").field("Type", &self.Type).field("Flags", &self.Flags).field("SubregMaster", &self.SubregMaster).field("SubregLength", &self.SubregLength).field("SubregMask", &self.SubregMask).field("SubregShift", &self.SubregShift).field("Reserved0", &self.Reserved0).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_REGISTER_DESCRIPTION {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_REGISTER_DESCRIPTION {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_REGISTER_DESCRIPTION>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_REGISTER_DESCRIPTION {}
impl ::core::default::Default for DEBUG_REGISTER_DESCRIPTION {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_SPECIFIC_FILTER_PARAMETERS {
    pub ExecutionOption: u32,
    pub ContinueOption: u32,
    pub TextSize: u32,
    pub CommandSize: u32,
    pub ArgumentSize: u32,
}
impl ::core::marker::Copy for DEBUG_SPECIFIC_FILTER_PARAMETERS {}
impl ::core::clone::Clone for DEBUG_SPECIFIC_FILTER_PARAMETERS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_SPECIFIC_FILTER_PARAMETERS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_SPECIFIC_FILTER_PARAMETERS").field("ExecutionOption", &self.ExecutionOption).field("ContinueOption", &self.ContinueOption).field("TextSize", &self.TextSize).field("CommandSize", &self.CommandSize).field("ArgumentSize", &self.ArgumentSize).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_SPECIFIC_FILTER_PARAMETERS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_SPECIFIC_FILTER_PARAMETERS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_SPECIFIC_FILTER_PARAMETERS>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_SPECIFIC_FILTER_PARAMETERS {}
impl ::core::default::Default for DEBUG_SPECIFIC_FILTER_PARAMETERS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_STACK_FRAME {
    pub InstructionOffset: u64,
    pub ReturnOffset: u64,
    pub FrameOffset: u64,
    pub StackOffset: u64,
    pub FuncTableEntry: u64,
    pub Params: [u64; 4],
    pub Reserved: [u64; 6],
    pub Virtual: super::super::super::Foundation::BOOL,
    pub FrameNumber: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_STACK_FRAME {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_STACK_FRAME {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DEBUG_STACK_FRAME {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_STACK_FRAME").field("InstructionOffset", &self.InstructionOffset).field("ReturnOffset", &self.ReturnOffset).field("FrameOffset", &self.FrameOffset).field("StackOffset", &self.StackOffset).field("FuncTableEntry", &self.FuncTableEntry).field("Params", &self.Params).field("Reserved", &self.Reserved).field("Virtual", &self.Virtual).field("FrameNumber", &self.FrameNumber).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for DEBUG_STACK_FRAME {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_STACK_FRAME {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_STACK_FRAME>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_STACK_FRAME {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_STACK_FRAME {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_STACK_FRAME_EX {
    pub InstructionOffset: u64,
    pub ReturnOffset: u64,
    pub FrameOffset: u64,
    pub StackOffset: u64,
    pub FuncTableEntry: u64,
    pub Params: [u64; 4],
    pub Reserved: [u64; 6],
    pub Virtual: super::super::super::Foundation::BOOL,
    pub FrameNumber: u32,
    pub InlineFrameContext: u32,
    pub Reserved1: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_STACK_FRAME_EX {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_STACK_FRAME_EX {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DEBUG_STACK_FRAME_EX {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_STACK_FRAME_EX")
            .field("InstructionOffset", &self.InstructionOffset)
            .field("ReturnOffset", &self.ReturnOffset)
            .field("FrameOffset", &self.FrameOffset)
            .field("StackOffset", &self.StackOffset)
            .field("FuncTableEntry", &self.FuncTableEntry)
            .field("Params", &self.Params)
            .field("Reserved", &self.Reserved)
            .field("Virtual", &self.Virtual)
            .field("FrameNumber", &self.FrameNumber)
            .field("InlineFrameContext", &self.InlineFrameContext)
            .field("Reserved1", &self.Reserved1)
            .finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for DEBUG_STACK_FRAME_EX {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_STACK_FRAME_EX {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_STACK_FRAME_EX>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_STACK_FRAME_EX {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_STACK_FRAME_EX {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_SYMBOL_ENTRY {
    pub ModuleBase: u64,
    pub Offset: u64,
    pub Id: u64,
    pub Arg64: u64,
    pub Size: u32,
    pub Flags: u32,
    pub TypeId: u32,
    pub NameSize: u32,
    pub Token: u32,
    pub Tag: u32,
    pub Arg32: u32,
    pub Reserved: u32,
}
impl ::core::marker::Copy for DEBUG_SYMBOL_ENTRY {}
impl ::core::clone::Clone for DEBUG_SYMBOL_ENTRY {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_SYMBOL_ENTRY {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_SYMBOL_ENTRY").field("ModuleBase", &self.ModuleBase).field("Offset", &self.Offset).field("Id", &self.Id).field("Arg64", &self.Arg64).field("Size", &self.Size).field("Flags", &self.Flags).field("TypeId", &self.TypeId).field("NameSize", &self.NameSize).field("Token", &self.Token).field("Tag", &self.Tag).field("Arg32", &self.Arg32).field("Reserved", &self.Reserved).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_SYMBOL_ENTRY {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_SYMBOL_ENTRY {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_SYMBOL_ENTRY>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_SYMBOL_ENTRY {}
impl ::core::default::Default for DEBUG_SYMBOL_ENTRY {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_SYMBOL_PARAMETERS {
    pub Module: u64,
    pub TypeId: u32,
    pub ParentSymbol: u32,
    pub SubElements: u32,
    pub Flags: u32,
    pub Reserved: u64,
}
impl ::core::marker::Copy for DEBUG_SYMBOL_PARAMETERS {}
impl ::core::clone::Clone for DEBUG_SYMBOL_PARAMETERS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_SYMBOL_PARAMETERS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_SYMBOL_PARAMETERS").field("Module", &self.Module).field("TypeId", &self.TypeId).field("ParentSymbol", &self.ParentSymbol).field("SubElements", &self.SubElements).field("Flags", &self.Flags).field("Reserved", &self.Reserved).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_SYMBOL_PARAMETERS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_SYMBOL_PARAMETERS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_SYMBOL_PARAMETERS>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_SYMBOL_PARAMETERS {}
impl ::core::default::Default for DEBUG_SYMBOL_PARAMETERS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_SYMBOL_SOURCE_ENTRY {
    pub ModuleBase: u64,
    pub Offset: u64,
    pub FileNameId: u64,
    pub EngineInternal: u64,
    pub Size: u32,
    pub Flags: u32,
    pub FileNameSize: u32,
    pub StartLine: u32,
    pub EndLine: u32,
    pub StartColumn: u32,
    pub EndColumn: u32,
    pub Reserved: u32,
}
impl ::core::marker::Copy for DEBUG_SYMBOL_SOURCE_ENTRY {}
impl ::core::clone::Clone for DEBUG_SYMBOL_SOURCE_ENTRY {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_SYMBOL_SOURCE_ENTRY {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_SYMBOL_SOURCE_ENTRY").field("ModuleBase", &self.ModuleBase).field("Offset", &self.Offset).field("FileNameId", &self.FileNameId).field("EngineInternal", &self.EngineInternal).field("Size", &self.Size).field("Flags", &self.Flags).field("FileNameSize", &self.FileNameSize).field("StartLine", &self.StartLine).field("EndLine", &self.EndLine).field("StartColumn", &self.StartColumn).field("EndColumn", &self.EndColumn).field("Reserved", &self.Reserved).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_SYMBOL_SOURCE_ENTRY {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_SYMBOL_SOURCE_ENTRY {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_SYMBOL_SOURCE_ENTRY>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_SYMBOL_SOURCE_ENTRY {}
impl ::core::default::Default for DEBUG_SYMBOL_SOURCE_ENTRY {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_THREAD_BASIC_INFORMATION {
    pub Valid: u32,
    pub ExitStatus: u32,
    pub PriorityClass: u32,
    pub Priority: u32,
    pub CreateTime: u64,
    pub ExitTime: u64,
    pub KernelTime: u64,
    pub UserTime: u64,
    pub StartOffset: u64,
    pub Affinity: u64,
}
impl ::core::marker::Copy for DEBUG_THREAD_BASIC_INFORMATION {}
impl ::core::clone::Clone for DEBUG_THREAD_BASIC_INFORMATION {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_THREAD_BASIC_INFORMATION {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_THREAD_BASIC_INFORMATION").field("Valid", &self.Valid).field("ExitStatus", &self.ExitStatus).field("PriorityClass", &self.PriorityClass).field("Priority", &self.Priority).field("CreateTime", &self.CreateTime).field("ExitTime", &self.ExitTime).field("KernelTime", &self.KernelTime).field("UserTime", &self.UserTime).field("StartOffset", &self.StartOffset).field("Affinity", &self.Affinity).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_THREAD_BASIC_INFORMATION {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_THREAD_BASIC_INFORMATION {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_THREAD_BASIC_INFORMATION>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_THREAD_BASIC_INFORMATION {}
impl ::core::default::Default for DEBUG_THREAD_BASIC_INFORMATION {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DEBUG_TYPED_DATA {
    pub ModBase: u64,
    pub Offset: u64,
    pub EngineHandle: u64,
    pub Data: u64,
    pub Size: u32,
    pub Flags: u32,
    pub TypeId: u32,
    pub BaseTypeId: u32,
    pub Tag: u32,
    pub Register: u32,
    pub Internal: [u64; 9],
}
impl ::core::marker::Copy for DEBUG_TYPED_DATA {}
impl ::core::clone::Clone for DEBUG_TYPED_DATA {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DEBUG_TYPED_DATA {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_TYPED_DATA").field("ModBase", &self.ModBase).field("Offset", &self.Offset).field("EngineHandle", &self.EngineHandle).field("Data", &self.Data).field("Size", &self.Size).field("Flags", &self.Flags).field("TypeId", &self.TypeId).field("BaseTypeId", &self.BaseTypeId).field("Tag", &self.Tag).field("Register", &self.Register).field("Internal", &self.Internal).finish()
    }
}
unsafe impl ::windows::core::Abi for DEBUG_TYPED_DATA {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DEBUG_TYPED_DATA {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_TYPED_DATA>()) == 0 }
    }
}
impl ::core::cmp::Eq for DEBUG_TYPED_DATA {}
impl ::core::default::Default for DEBUG_TYPED_DATA {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_VALUE {
    pub Anonymous: DEBUG_VALUE_0,
    pub TailOfRawBytes: u32,
    pub Type: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_VALUE {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_VALUE {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for DEBUG_VALUE {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_VALUE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_VALUE>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_VALUE {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_VALUE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub union DEBUG_VALUE_0 {
    pub I8: u8,
    pub I16: u16,
    pub I32: u32,
    pub Anonymous: DEBUG_VALUE_0_0,
    pub F32: f32,
    pub F64: f64,
    pub F80Bytes: [u8; 10],
    pub F82Bytes: [u8; 11],
    pub F128Bytes: [u8; 16],
    pub VI8: [u8; 16],
    pub VI16: [u16; 8],
    pub VI32: [u32; 4],
    pub VI64: [u64; 2],
    pub VF32: [f32; 4],
    pub VF64: [f64; 2],
    pub I64Parts32: DEBUG_VALUE_0_2,
    pub F128Parts64: DEBUG_VALUE_0_1,
    pub RawBytes: [u8; 24],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_VALUE_0 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_VALUE_0 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for DEBUG_VALUE_0 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_VALUE_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_VALUE_0>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_VALUE_0 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_VALUE_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_VALUE_0_0 {
    pub I64: u64,
    pub Nat: super::super::super::Foundation::BOOL,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_VALUE_0_0 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_VALUE_0_0 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DEBUG_VALUE_0_0 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_VALUE_0_0").field("I64", &self.I64).field("Nat", &self.Nat).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for DEBUG_VALUE_0_0 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_VALUE_0_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_VALUE_0_0>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_VALUE_0_0 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_VALUE_0_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_VALUE_0_1 {
    pub LowPart: u64,
    pub HighPart: i64,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_VALUE_0_1 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_VALUE_0_1 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DEBUG_VALUE_0_1 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_VALUE_0_1").field("LowPart", &self.LowPart).field("HighPart", &self.HighPart).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for DEBUG_VALUE_0_1 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_VALUE_0_1 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_VALUE_0_1>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_VALUE_0_1 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_VALUE_0_1 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_VALUE_0_2 {
    pub LowPart: u32,
    pub HighPart: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_VALUE_0_2 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_VALUE_0_2 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DEBUG_VALUE_0_2 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DEBUG_VALUE_0_2").field("LowPart", &self.LowPart).field("HighPart", &self.HighPart).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for DEBUG_VALUE_0_2 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_VALUE_0_2 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DEBUG_VALUE_0_2>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_VALUE_0_2 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_VALUE_0_2 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
pub struct DISPATCHER_CONTEXT {
    pub ControlPc: usize,
    pub ImageBase: usize,
    pub FunctionEntry: *mut IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY,
    pub EstablisherFrame: usize,
    pub TargetPc: usize,
    pub ContextRecord: *mut CONTEXT,
    pub LanguageHandler: super::super::Kernel::EXCEPTION_ROUTINE,
    pub HandlerData: *mut ::core::ffi::c_void,
    pub HistoryTable: *mut UNWIND_HISTORY_TABLE,
    pub ScopeIndex: u32,
    pub ControlPcIsUnwound: super::super::super::Foundation::BOOLEAN,
    pub NonVolatileRegisters: *mut u8,
}
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::marker::Copy for DISPATCHER_CONTEXT {}
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::clone::Clone for DISPATCHER_CONTEXT {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::fmt::Debug for DISPATCHER_CONTEXT {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DISPATCHER_CONTEXT")
            .field("ControlPc", &self.ControlPc)
            .field("ImageBase", &self.ImageBase)
            .field("FunctionEntry", &self.FunctionEntry)
            .field("EstablisherFrame", &self.EstablisherFrame)
            .field("TargetPc", &self.TargetPc)
            .field("ContextRecord", &self.ContextRecord)
            .field("LanguageHandler", &self.LanguageHandler.map(|f| f as usize))
            .field("HandlerData", &self.HandlerData)
            .field("HistoryTable", &self.HistoryTable)
            .field("ScopeIndex", &self.ScopeIndex)
            .field("ControlPcIsUnwound", &self.ControlPcIsUnwound)
            .field("NonVolatileRegisters", &self.NonVolatileRegisters)
            .finish()
    }
}
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
unsafe impl ::windows::core::Abi for DISPATCHER_CONTEXT {
    type Abi = Self;
}
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::cmp::PartialEq for DISPATCHER_CONTEXT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DISPATCHER_CONTEXT>()) == 0 }
    }
}
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::cmp::Eq for DISPATCHER_CONTEXT {}
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::default::Default for DISPATCHER_CONTEXT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(target_arch = "x86_64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
pub struct DISPATCHER_CONTEXT {
    pub ControlPc: u64,
    pub ImageBase: u64,
    pub FunctionEntry: *mut IMAGE_RUNTIME_FUNCTION_ENTRY,
    pub EstablisherFrame: u64,
    pub TargetIp: u64,
    pub ContextRecord: *mut CONTEXT,
    pub LanguageHandler: super::super::Kernel::EXCEPTION_ROUTINE,
    pub HandlerData: *mut ::core::ffi::c_void,
    pub HistoryTable: *mut UNWIND_HISTORY_TABLE,
    pub ScopeIndex: u32,
    pub Fill0: u32,
}
#[cfg(target_arch = "x86_64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::marker::Copy for DISPATCHER_CONTEXT {}
#[cfg(target_arch = "x86_64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::clone::Clone for DISPATCHER_CONTEXT {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86_64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::fmt::Debug for DISPATCHER_CONTEXT {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DISPATCHER_CONTEXT")
            .field("ControlPc", &self.ControlPc)
            .field("ImageBase", &self.ImageBase)
            .field("FunctionEntry", &self.FunctionEntry)
            .field("EstablisherFrame", &self.EstablisherFrame)
            .field("TargetIp", &self.TargetIp)
            .field("ContextRecord", &self.ContextRecord)
            .field("LanguageHandler", &self.LanguageHandler.map(|f| f as usize))
            .field("HandlerData", &self.HandlerData)
            .field("HistoryTable", &self.HistoryTable)
            .field("ScopeIndex", &self.ScopeIndex)
            .field("Fill0", &self.Fill0)
            .finish()
    }
}
#[cfg(target_arch = "x86_64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
unsafe impl ::windows::core::Abi for DISPATCHER_CONTEXT {
    type Abi = Self;
}
#[cfg(target_arch = "x86_64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::cmp::PartialEq for DISPATCHER_CONTEXT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DISPATCHER_CONTEXT>()) == 0 }
    }
}
#[cfg(target_arch = "x86_64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::cmp::Eq for DISPATCHER_CONTEXT {}
#[cfg(target_arch = "x86_64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::default::Default for DISPATCHER_CONTEXT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union DUMP_FILE_ATTRIBUTES {
    pub Anonymous: DUMP_FILE_ATTRIBUTES_0,
    pub Attributes: u32,
}
impl ::core::marker::Copy for DUMP_FILE_ATTRIBUTES {}
impl ::core::clone::Clone for DUMP_FILE_ATTRIBUTES {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for DUMP_FILE_ATTRIBUTES {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DUMP_FILE_ATTRIBUTES {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DUMP_FILE_ATTRIBUTES>()) == 0 }
    }
}
impl ::core::cmp::Eq for DUMP_FILE_ATTRIBUTES {}
impl ::core::default::Default for DUMP_FILE_ATTRIBUTES {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DUMP_FILE_ATTRIBUTES_0 {
    pub _bitfield: u32,
}
impl ::core::marker::Copy for DUMP_FILE_ATTRIBUTES_0 {}
impl ::core::clone::Clone for DUMP_FILE_ATTRIBUTES_0 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for DUMP_FILE_ATTRIBUTES_0 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DUMP_FILE_ATTRIBUTES_0").field("_bitfield", &self._bitfield).finish()
    }
}
unsafe impl ::windows::core::Abi for DUMP_FILE_ATTRIBUTES_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for DUMP_FILE_ATTRIBUTES_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DUMP_FILE_ATTRIBUTES_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for DUMP_FILE_ATTRIBUTES_0 {}
impl ::core::default::Default for DUMP_FILE_ATTRIBUTES_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct DUMP_HEADER32 {
    pub Signature: u32,
    pub ValidDump: u32,
    pub MajorVersion: u32,
    pub MinorVersion: u32,
    pub DirectoryTableBase: u32,
    pub PfnDataBase: u32,
    pub PsLoadedModuleList: u32,
    pub PsActiveProcessHead: u32,
    pub MachineImageType: u32,
    pub NumberProcessors: u32,
    pub BugCheckCode: u32,
    pub BugCheckParameter1: u32,
    pub BugCheckParameter2: u32,
    pub BugCheckParameter3: u32,
    pub BugCheckParameter4: u32,
    pub VersionUser: [super::super::super::Foundation::CHAR; 32],
    pub PaeEnabled: u8,
    pub KdSecondaryVersion: u8,
    pub Spare3: [u8; 2],
    pub KdDebuggerDataBlock: u32,
    pub Anonymous: DUMP_HEADER32_0,
    pub ContextRecord: [u8; 1200],
    pub Exception: EXCEPTION_RECORD32,
    pub Comment: [super::super::super::Foundation::CHAR; 128],
    pub Attributes: DUMP_FILE_ATTRIBUTES,
    pub BootId: u32,
    pub _reserved0: [u8; 1760],
    pub DumpType: u32,
    pub MiniDumpFields: u32,
    pub SecondaryDataState: u32,
    pub ProductType: u32,
    pub SuiteMask: u32,
    pub WriterStatus: u32,
    pub RequiredDumpSpace: i64,
    pub _reserved2: [u8; 16],
    pub SystemUpTime: i64,
    pub SystemTime: i64,
    pub _reserved3: [u8; 56],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DUMP_HEADER32 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DUMP_HEADER32 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for DUMP_HEADER32 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DUMP_HEADER32 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DUMP_HEADER32>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DUMP_HEADER32 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DUMP_HEADER32 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub union DUMP_HEADER32_0 {
    pub PhysicalMemoryBlock: PHYSICAL_MEMORY_DESCRIPTOR32,
    pub PhysicalMemoryBlockBuffer: [u8; 700],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DUMP_HEADER32_0 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DUMP_HEADER32_0 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for DUMP_HEADER32_0 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DUMP_HEADER32_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DUMP_HEADER32_0>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DUMP_HEADER32_0 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DUMP_HEADER32_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct DUMP_HEADER64 {
    pub Signature: u32,
    pub ValidDump: u32,
    pub MajorVersion: u32,
    pub MinorVersion: u32,
    pub DirectoryTableBase: u64,
    pub PfnDataBase: u64,
    pub PsLoadedModuleList: u64,
    pub PsActiveProcessHead: u64,
    pub MachineImageType: u32,
    pub NumberProcessors: u32,
    pub BugCheckCode: u32,
    pub BugCheckParameter1: u64,
    pub BugCheckParameter2: u64,
    pub BugCheckParameter3: u64,
    pub BugCheckParameter4: u64,
    pub VersionUser: [super::super::super::Foundation::CHAR; 32],
    pub KdDebuggerDataBlock: u64,
    pub Anonymous: DUMP_HEADER64_0,
    pub ContextRecord: [u8; 3000],
    pub Exception: EXCEPTION_RECORD64,
    pub DumpType: u32,
    pub RequiredDumpSpace: i64,
    pub SystemTime: i64,
    pub Comment: [super::super::super::Foundation::CHAR; 128],
    pub SystemUpTime: i64,
    pub MiniDumpFields: u32,
    pub SecondaryDataState: u32,
    pub ProductType: u32,
    pub SuiteMask: u32,
    pub WriterStatus: u32,
    pub Unused1: u8,
    pub KdSecondaryVersion: u8,
    pub Unused: [u8; 2],
    pub Attributes: DUMP_FILE_ATTRIBUTES,
    pub BootId: u32,
    pub _reserved0: [u8; 4008],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DUMP_HEADER64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DUMP_HEADER64 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for DUMP_HEADER64 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DUMP_HEADER64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DUMP_HEADER64>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DUMP_HEADER64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DUMP_HEADER64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub union DUMP_HEADER64_0 {
    pub PhysicalMemoryBlock: PHYSICAL_MEMORY_DESCRIPTOR64,
    pub PhysicalMemoryBlockBuffer: [u8; 700],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DUMP_HEADER64_0 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DUMP_HEADER64_0 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for DUMP_HEADER64_0 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DUMP_HEADER64_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<DUMP_HEADER64_0>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DUMP_HEADER64_0 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DUMP_HEADER64_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct DebugPropertyInfo {
    pub m_dwValidFields: u32,
    pub m_bstrName: ::windows::core::BSTR,
    pub m_bstrType: ::windows::core::BSTR,
    pub m_bstrValue: ::windows::core::BSTR,
    pub m_bstrFullName: ::windows::core::BSTR,
    pub m_dwAttrib: u32,
    pub m_pDebugProp: ::core::option::Option<IDebugProperty>,
}
impl ::core::clone::Clone for DebugPropertyInfo {
    fn clone(&self) -> Self {
        Self {
            m_dwValidFields: self.m_dwValidFields,
            m_bstrName: self.m_bstrName.clone(),
            m_bstrType: self.m_bstrType.clone(),
            m_bstrValue: self.m_bstrValue.clone(),
            m_bstrFullName: self.m_bstrFullName.clone(),
            m_dwAttrib: self.m_dwAttrib,
            m_pDebugProp: self.m_pDebugProp.clone(),
        }
    }
}
impl ::core::fmt::Debug for DebugPropertyInfo {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DebugPropertyInfo").field("m_dwValidFields", &self.m_dwValidFields).field("m_bstrName", &self.m_bstrName).field("m_bstrType", &self.m_bstrType).field("m_bstrValue", &self.m_bstrValue).field("m_bstrFullName", &self.m_bstrFullName).field("m_dwAttrib", &self.m_dwAttrib).field("m_pDebugProp", &self.m_pDebugProp).finish()
    }
}
unsafe impl ::windows::core::Abi for DebugPropertyInfo {
    type Abi = ::core::mem::ManuallyDrop<Self>;
}
impl ::core::cmp::PartialEq for DebugPropertyInfo {
    fn eq(&self, other: &Self) -> bool {
        self.m_dwValidFields == other.m_dwValidFields && self.m_bstrName == other.m_bstrName && self.m_bstrType == other.m_bstrType && self.m_bstrValue == other.m_bstrValue && self.m_bstrFullName == other.m_bstrFullName && self.m_dwAttrib == other.m_dwAttrib && self.m_pDebugProp == other.m_pDebugProp
    }
}
impl ::core::cmp::Eq for DebugPropertyInfo {}
impl ::core::default::Default for DebugPropertyInfo {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct DebugStackFrameDescriptor {
    pub pdsf: ::core::option::Option<IDebugStackFrame>,
    pub dwMin: u32,
    pub dwLim: u32,
    pub fFinal: super::super::super::Foundation::BOOL,
    pub punkFinal: ::core::option::Option<::windows::core::IUnknown>,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DebugStackFrameDescriptor {
    fn clone(&self) -> Self {
        Self { pdsf: self.pdsf.clone(), dwMin: self.dwMin, dwLim: self.dwLim, fFinal: self.fFinal, punkFinal: self.punkFinal.clone() }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DebugStackFrameDescriptor {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DebugStackFrameDescriptor").field("pdsf", &self.pdsf).field("dwMin", &self.dwMin).field("dwLim", &self.dwLim).field("fFinal", &self.fFinal).field("punkFinal", &self.punkFinal).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for DebugStackFrameDescriptor {
    type Abi = ::core::mem::ManuallyDrop<Self>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DebugStackFrameDescriptor {
    fn eq(&self, other: &Self) -> bool {
        self.pdsf == other.pdsf && self.dwMin == other.dwMin && self.dwLim == other.dwLim && self.fFinal == other.fFinal && self.punkFinal == other.punkFinal
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DebugStackFrameDescriptor {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DebugStackFrameDescriptor {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct DebugStackFrameDescriptor64 {
    pub pdsf: ::core::option::Option<IDebugStackFrame>,
    pub dwMin: u64,
    pub dwLim: u64,
    pub fFinal: super::super::super::Foundation::BOOL,
    pub punkFinal: ::core::option::Option<::windows::core::IUnknown>,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DebugStackFrameDescriptor64 {
    fn clone(&self) -> Self {
        Self { pdsf: self.pdsf.clone(), dwMin: self.dwMin, dwLim: self.dwLim, fFinal: self.fFinal, punkFinal: self.punkFinal.clone() }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DebugStackFrameDescriptor64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("DebugStackFrameDescriptor64").field("pdsf", &self.pdsf).field("dwMin", &self.dwMin).field("dwLim", &self.dwLim).field("fFinal", &self.fFinal).field("punkFinal", &self.punkFinal).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for DebugStackFrameDescriptor64 {
    type Abi = ::core::mem::ManuallyDrop<Self>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DebugStackFrameDescriptor64 {
    fn eq(&self, other: &Self) -> bool {
        self.pdsf == other.pdsf && self.dwMin == other.dwMin && self.dwLim == other.dwLim && self.fFinal == other.fFinal && self.punkFinal == other.punkFinal
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DebugStackFrameDescriptor64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DebugStackFrameDescriptor64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct EXCEPTION_DEBUG_INFO {
    pub ExceptionRecord: EXCEPTION_RECORD,
    pub dwFirstChance: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for EXCEPTION_DEBUG_INFO {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for EXCEPTION_DEBUG_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for EXCEPTION_DEBUG_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("EXCEPTION_DEBUG_INFO").field("ExceptionRecord", &self.ExceptionRecord).field("dwFirstChance", &self.dwFirstChance).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for EXCEPTION_DEBUG_INFO {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for EXCEPTION_DEBUG_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<EXCEPTION_DEBUG_INFO>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for EXCEPTION_DEBUG_INFO {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for EXCEPTION_DEBUG_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
pub struct EXCEPTION_POINTERS {
    pub ExceptionRecord: *mut EXCEPTION_RECORD,
    pub ContextRecord: *mut CONTEXT,
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::marker::Copy for EXCEPTION_POINTERS {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::clone::Clone for EXCEPTION_POINTERS {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::fmt::Debug for EXCEPTION_POINTERS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("EXCEPTION_POINTERS").field("ExceptionRecord", &self.ExceptionRecord).field("ContextRecord", &self.ContextRecord).finish()
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
unsafe impl ::windows::core::Abi for EXCEPTION_POINTERS {
    type Abi = Self;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::cmp::PartialEq for EXCEPTION_POINTERS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<EXCEPTION_POINTERS>()) == 0 }
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::cmp::Eq for EXCEPTION_POINTERS {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::default::Default for EXCEPTION_POINTERS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct EXCEPTION_RECORD {
    pub ExceptionCode: super::super::super::Foundation::NTSTATUS,
    pub ExceptionFlags: u32,
    pub ExceptionRecord: *mut EXCEPTION_RECORD,
    pub ExceptionAddress: *mut ::core::ffi::c_void,
    pub NumberParameters: u32,
    pub ExceptionInformation: [usize; 15],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for EXCEPTION_RECORD {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for EXCEPTION_RECORD {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for EXCEPTION_RECORD {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("EXCEPTION_RECORD").field("ExceptionCode", &self.ExceptionCode).field("ExceptionFlags", &self.ExceptionFlags).field("ExceptionRecord", &self.ExceptionRecord).field("ExceptionAddress", &self.ExceptionAddress).field("NumberParameters", &self.NumberParameters).field("ExceptionInformation", &self.ExceptionInformation).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for EXCEPTION_RECORD {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for EXCEPTION_RECORD {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<EXCEPTION_RECORD>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for EXCEPTION_RECORD {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for EXCEPTION_RECORD {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct EXCEPTION_RECORD32 {
    pub ExceptionCode: super::super::super::Foundation::NTSTATUS,
    pub ExceptionFlags: u32,
    pub ExceptionRecord: u32,
    pub ExceptionAddress: u32,
    pub NumberParameters: u32,
    pub ExceptionInformation: [u32; 15],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for EXCEPTION_RECORD32 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for EXCEPTION_RECORD32 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for EXCEPTION_RECORD32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("EXCEPTION_RECORD32").field("ExceptionCode", &self.ExceptionCode).field("ExceptionFlags", &self.ExceptionFlags).field("ExceptionRecord", &self.ExceptionRecord).field("ExceptionAddress", &self.ExceptionAddress).field("NumberParameters", &self.NumberParameters).field("ExceptionInformation", &self.ExceptionInformation).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for EXCEPTION_RECORD32 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for EXCEPTION_RECORD32 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<EXCEPTION_RECORD32>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for EXCEPTION_RECORD32 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for EXCEPTION_RECORD32 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct EXCEPTION_RECORD64 {
    pub ExceptionCode: super::super::super::Foundation::NTSTATUS,
    pub ExceptionFlags: u32,
    pub ExceptionRecord: u64,
    pub ExceptionAddress: u64,
    pub NumberParameters: u32,
    pub __unusedAlignment: u32,
    pub ExceptionInformation: [u64; 15],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for EXCEPTION_RECORD64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for EXCEPTION_RECORD64 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for EXCEPTION_RECORD64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("EXCEPTION_RECORD64").field("ExceptionCode", &self.ExceptionCode).field("ExceptionFlags", &self.ExceptionFlags).field("ExceptionRecord", &self.ExceptionRecord).field("ExceptionAddress", &self.ExceptionAddress).field("NumberParameters", &self.NumberParameters).field("__unusedAlignment", &self.__unusedAlignment).field("ExceptionInformation", &self.ExceptionInformation).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for EXCEPTION_RECORD64 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for EXCEPTION_RECORD64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<EXCEPTION_RECORD64>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for EXCEPTION_RECORD64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for EXCEPTION_RECORD64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct EXIT_PROCESS_DEBUG_INFO {
    pub dwExitCode: u32,
}
impl ::core::marker::Copy for EXIT_PROCESS_DEBUG_INFO {}
impl ::core::clone::Clone for EXIT_PROCESS_DEBUG_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for EXIT_PROCESS_DEBUG_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("EXIT_PROCESS_DEBUG_INFO").field("dwExitCode", &self.dwExitCode).finish()
    }
}
unsafe impl ::windows::core::Abi for EXIT_PROCESS_DEBUG_INFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for EXIT_PROCESS_DEBUG_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<EXIT_PROCESS_DEBUG_INFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for EXIT_PROCESS_DEBUG_INFO {}
impl ::core::default::Default for EXIT_PROCESS_DEBUG_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct EXIT_THREAD_DEBUG_INFO {
    pub dwExitCode: u32,
}
impl ::core::marker::Copy for EXIT_THREAD_DEBUG_INFO {}
impl ::core::clone::Clone for EXIT_THREAD_DEBUG_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for EXIT_THREAD_DEBUG_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("EXIT_THREAD_DEBUG_INFO").field("dwExitCode", &self.dwExitCode).finish()
    }
}
unsafe impl ::windows::core::Abi for EXIT_THREAD_DEBUG_INFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for EXIT_THREAD_DEBUG_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<EXIT_THREAD_DEBUG_INFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for EXIT_THREAD_DEBUG_INFO {}
impl ::core::default::Default for EXIT_THREAD_DEBUG_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct EXTSTACKTRACE {
    pub FramePointer: u32,
    pub ProgramCounter: u32,
    pub ReturnAddress: u32,
    pub Args: [u32; 4],
}
impl ::core::marker::Copy for EXTSTACKTRACE {}
impl ::core::clone::Clone for EXTSTACKTRACE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for EXTSTACKTRACE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("EXTSTACKTRACE").field("FramePointer", &self.FramePointer).field("ProgramCounter", &self.ProgramCounter).field("ReturnAddress", &self.ReturnAddress).field("Args", &self.Args).finish()
    }
}
unsafe impl ::windows::core::Abi for EXTSTACKTRACE {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for EXTSTACKTRACE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<EXTSTACKTRACE>()) == 0 }
    }
}
impl ::core::cmp::Eq for EXTSTACKTRACE {}
impl ::core::default::Default for EXTSTACKTRACE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct EXTSTACKTRACE32 {
    pub FramePointer: u32,
    pub ProgramCounter: u32,
    pub ReturnAddress: u32,
    pub Args: [u32; 4],
}
impl ::core::marker::Copy for EXTSTACKTRACE32 {}
impl ::core::clone::Clone for EXTSTACKTRACE32 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for EXTSTACKTRACE32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("EXTSTACKTRACE32").field("FramePointer", &self.FramePointer).field("ProgramCounter", &self.ProgramCounter).field("ReturnAddress", &self.ReturnAddress).field("Args", &self.Args).finish()
    }
}
unsafe impl ::windows::core::Abi for EXTSTACKTRACE32 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for EXTSTACKTRACE32 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<EXTSTACKTRACE32>()) == 0 }
    }
}
impl ::core::cmp::Eq for EXTSTACKTRACE32 {}
impl ::core::default::Default for EXTSTACKTRACE32 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct EXTSTACKTRACE64 {
    pub FramePointer: u64,
    pub ProgramCounter: u64,
    pub ReturnAddress: u64,
    pub Args: [u64; 4],
}
impl ::core::marker::Copy for EXTSTACKTRACE64 {}
impl ::core::clone::Clone for EXTSTACKTRACE64 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for EXTSTACKTRACE64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("EXTSTACKTRACE64").field("FramePointer", &self.FramePointer).field("ProgramCounter", &self.ProgramCounter).field("ReturnAddress", &self.ReturnAddress).field("Args", &self.Args).finish()
    }
}
unsafe impl ::windows::core::Abi for EXTSTACKTRACE64 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for EXTSTACKTRACE64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<EXTSTACKTRACE64>()) == 0 }
    }
}
impl ::core::cmp::Eq for EXTSTACKTRACE64 {}
impl ::core::default::Default for EXTSTACKTRACE64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct EXT_API_VERSION {
    pub MajorVersion: u16,
    pub MinorVersion: u16,
    pub Revision: u16,
    pub Reserved: u16,
}
impl ::core::marker::Copy for EXT_API_VERSION {}
impl ::core::clone::Clone for EXT_API_VERSION {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for EXT_API_VERSION {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("EXT_API_VERSION").field("MajorVersion", &self.MajorVersion).field("MinorVersion", &self.MinorVersion).field("Revision", &self.Revision).field("Reserved", &self.Reserved).finish()
    }
}
unsafe impl ::windows::core::Abi for EXT_API_VERSION {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for EXT_API_VERSION {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<EXT_API_VERSION>()) == 0 }
    }
}
impl ::core::cmp::Eq for EXT_API_VERSION {}
impl ::core::default::Default for EXT_API_VERSION {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct EXT_FIND_FILE {
    pub FileName: ::windows::core::PCWSTR,
    pub IndexedSize: u64,
    pub ImageTimeDateStamp: u32,
    pub ImageCheckSum: u32,
    pub ExtraInfo: *mut ::core::ffi::c_void,
    pub ExtraInfoSize: u32,
    pub Flags: u32,
    pub FileMapping: *mut ::core::ffi::c_void,
    pub FileMappingSize: u64,
    pub FileHandle: super::super::super::Foundation::HANDLE,
    pub FoundFileName: ::windows::core::PWSTR,
    pub FoundFileNameChars: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for EXT_FIND_FILE {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for EXT_FIND_FILE {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for EXT_FIND_FILE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("EXT_FIND_FILE")
            .field("FileName", &self.FileName)
            .field("IndexedSize", &self.IndexedSize)
            .field("ImageTimeDateStamp", &self.ImageTimeDateStamp)
            .field("ImageCheckSum", &self.ImageCheckSum)
            .field("ExtraInfo", &self.ExtraInfo)
            .field("ExtraInfoSize", &self.ExtraInfoSize)
            .field("Flags", &self.Flags)
            .field("FileMapping", &self.FileMapping)
            .field("FileMappingSize", &self.FileMappingSize)
            .field("FileHandle", &self.FileHandle)
            .field("FoundFileName", &self.FoundFileName)
            .field("FoundFileNameChars", &self.FoundFileNameChars)
            .finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for EXT_FIND_FILE {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for EXT_FIND_FILE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<EXT_FIND_FILE>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for EXT_FIND_FILE {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for EXT_FIND_FILE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct EXT_MATCH_PATTERN_A {
    pub Str: ::windows::core::PCSTR,
    pub Pattern: ::windows::core::PCSTR,
    pub CaseSensitive: u32,
}
impl ::core::marker::Copy for EXT_MATCH_PATTERN_A {}
impl ::core::clone::Clone for EXT_MATCH_PATTERN_A {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for EXT_MATCH_PATTERN_A {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("EXT_MATCH_PATTERN_A").field("Str", &self.Str).field("Pattern", &self.Pattern).field("CaseSensitive", &self.CaseSensitive).finish()
    }
}
unsafe impl ::windows::core::Abi for EXT_MATCH_PATTERN_A {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for EXT_MATCH_PATTERN_A {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<EXT_MATCH_PATTERN_A>()) == 0 }
    }
}
impl ::core::cmp::Eq for EXT_MATCH_PATTERN_A {}
impl ::core::default::Default for EXT_MATCH_PATTERN_A {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct EXT_TYPED_DATA {
    pub Operation: EXT_TDOP,
    pub Flags: u32,
    pub InData: DEBUG_TYPED_DATA,
    pub OutData: DEBUG_TYPED_DATA,
    pub InStrIndex: u32,
    pub In32: u32,
    pub Out32: u32,
    pub In64: u64,
    pub Out64: u64,
    pub StrBufferIndex: u32,
    pub StrBufferChars: u32,
    pub StrCharsNeeded: u32,
    pub DataBufferIndex: u32,
    pub DataBufferBytes: u32,
    pub DataBytesNeeded: u32,
    pub Status: ::windows::core::HRESULT,
    pub Reserved: [u64; 8],
}
impl ::core::marker::Copy for EXT_TYPED_DATA {}
impl ::core::clone::Clone for EXT_TYPED_DATA {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for EXT_TYPED_DATA {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("EXT_TYPED_DATA")
            .field("Operation", &self.Operation)
            .field("Flags", &self.Flags)
            .field("InData", &self.InData)
            .field("OutData", &self.OutData)
            .field("InStrIndex", &self.InStrIndex)
            .field("In32", &self.In32)
            .field("Out32", &self.Out32)
            .field("In64", &self.In64)
            .field("Out64", &self.Out64)
            .field("StrBufferIndex", &self.StrBufferIndex)
            .field("StrBufferChars", &self.StrBufferChars)
            .field("StrCharsNeeded", &self.StrCharsNeeded)
            .field("DataBufferIndex", &self.DataBufferIndex)
            .field("DataBufferBytes", &self.DataBufferBytes)
            .field("DataBytesNeeded", &self.DataBytesNeeded)
            .field("Status", &self.Status)
            .field("Reserved", &self.Reserved)
            .finish()
    }
}
unsafe impl ::windows::core::Abi for EXT_TYPED_DATA {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for EXT_TYPED_DATA {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<EXT_TYPED_DATA>()) == 0 }
    }
}
impl ::core::cmp::Eq for EXT_TYPED_DATA {}
impl ::core::default::Default for EXT_TYPED_DATA {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Ole\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole"))]
pub struct ExtendedDebugPropertyInfo {
    pub dwValidFields: u32,
    pub pszName: ::windows::core::PWSTR,
    pub pszType: ::windows::core::PWSTR,
    pub pszValue: ::windows::core::PWSTR,
    pub pszFullName: ::windows::core::PWSTR,
    pub dwAttrib: u32,
    pub pDebugProp: ::core::option::Option<IDebugProperty>,
    pub nDISPID: u32,
    pub nType: u32,
    pub varValue: super::super::Com::VARIANT,
    pub plbValue: ::core::option::Option<super::super::Com::StructuredStorage::ILockBytes>,
    pub pDebugExtProp: ::core::option::Option<IDebugExtendedProperty>,
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole"))]
impl ::core::clone::Clone for ExtendedDebugPropertyInfo {
    fn clone(&self) -> Self {
        Self {
            dwValidFields: self.dwValidFields,
            pszName: self.pszName,
            pszType: self.pszType,
            pszValue: self.pszValue,
            pszFullName: self.pszFullName,
            dwAttrib: self.dwAttrib,
            pDebugProp: self.pDebugProp.clone(),
            nDISPID: self.nDISPID,
            nType: self.nType,
            varValue: self.varValue.clone(),
            plbValue: self.plbValue.clone(),
            pDebugExtProp: self.pDebugExtProp.clone(),
        }
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole"))]
unsafe impl ::windows::core::Abi for ExtendedDebugPropertyInfo {
    type Abi = ::core::mem::ManuallyDrop<Self>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole"))]
impl ::core::cmp::PartialEq for ExtendedDebugPropertyInfo {
    fn eq(&self, other: &Self) -> bool {
        self.dwValidFields == other.dwValidFields && self.pszName == other.pszName && self.pszType == other.pszType && self.pszValue == other.pszValue && self.pszFullName == other.pszFullName && self.dwAttrib == other.dwAttrib && self.pDebugProp == other.pDebugProp && self.nDISPID == other.nDISPID && self.nType == other.nType && self.varValue == other.varValue && self.plbValue == other.plbValue && self.pDebugExtProp == other.pDebugExtProp
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole"))]
impl ::core::cmp::Eq for ExtendedDebugPropertyInfo {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole"))]
impl ::core::default::Default for ExtendedDebugPropertyInfo {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct FIELD_INFO {
    pub fName: *mut u8,
    pub printName: *mut u8,
    pub size: u32,
    pub fOptions: u32,
    pub address: u64,
    pub Anonymous: FIELD_INFO_0,
    pub TypeId: u32,
    pub FieldOffset: u32,
    pub BufferSize: u32,
    pub BitField: FIELD_INFO_1,
    pub _bitfield: u32,
}
impl ::core::marker::Copy for FIELD_INFO {}
impl ::core::clone::Clone for FIELD_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for FIELD_INFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for FIELD_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<FIELD_INFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for FIELD_INFO {}
impl ::core::default::Default for FIELD_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union FIELD_INFO_0 {
    pub fieldCallBack: *mut ::core::ffi::c_void,
    pub pBuffer: *mut ::core::ffi::c_void,
}
impl ::core::marker::Copy for FIELD_INFO_0 {}
impl ::core::clone::Clone for FIELD_INFO_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for FIELD_INFO_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for FIELD_INFO_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<FIELD_INFO_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for FIELD_INFO_0 {}
impl ::core::default::Default for FIELD_INFO_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct FIELD_INFO_1 {
    pub Position: u16,
    pub Size: u16,
}
impl ::core::marker::Copy for FIELD_INFO_1 {}
impl ::core::clone::Clone for FIELD_INFO_1 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for FIELD_INFO_1 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("FIELD_INFO_1").field("Position", &self.Position).field("Size", &self.Size).finish()
    }
}
unsafe impl ::windows::core::Abi for FIELD_INFO_1 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for FIELD_INFO_1 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<FIELD_INFO_1>()) == 0 }
    }
}
impl ::core::cmp::Eq for FIELD_INFO_1 {}
impl ::core::default::Default for FIELD_INFO_1 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct FPO_DATA {
    pub ulOffStart: u32,
    pub cbProcSize: u32,
    pub cdwLocals: u32,
    pub cdwParams: u16,
    pub _bitfield: u16,
}
impl ::core::marker::Copy for FPO_DATA {}
impl ::core::clone::Clone for FPO_DATA {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for FPO_DATA {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("FPO_DATA").field("ulOffStart", &self.ulOffStart).field("cbProcSize", &self.cbProcSize).field("cdwLocals", &self.cdwLocals).field("cdwParams", &self.cdwParams).field("_bitfield", &self._bitfield).finish()
    }
}
unsafe impl ::windows::core::Abi for FPO_DATA {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for FPO_DATA {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<FPO_DATA>()) == 0 }
    }
}
impl ::core::cmp::Eq for FPO_DATA {}
impl ::core::default::Default for FPO_DATA {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct GET_CONTEXT_EX {
    pub Status: u32,
    pub ContextSize: u32,
    pub pContext: *mut ::core::ffi::c_void,
}
impl ::core::marker::Copy for GET_CONTEXT_EX {}
impl ::core::clone::Clone for GET_CONTEXT_EX {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for GET_CONTEXT_EX {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("GET_CONTEXT_EX").field("Status", &self.Status).field("ContextSize", &self.ContextSize).field("pContext", &self.pContext).finish()
    }
}
unsafe impl ::windows::core::Abi for GET_CONTEXT_EX {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for GET_CONTEXT_EX {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<GET_CONTEXT_EX>()) == 0 }
    }
}
impl ::core::cmp::Eq for GET_CONTEXT_EX {}
impl ::core::default::Default for GET_CONTEXT_EX {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct GET_CURRENT_PROCESS_ADDRESS {
    pub Processor: u32,
    pub CurrentThread: u64,
    pub Address: u64,
}
impl ::core::marker::Copy for GET_CURRENT_PROCESS_ADDRESS {}
impl ::core::clone::Clone for GET_CURRENT_PROCESS_ADDRESS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for GET_CURRENT_PROCESS_ADDRESS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("GET_CURRENT_PROCESS_ADDRESS").field("Processor", &self.Processor).field("CurrentThread", &self.CurrentThread).field("Address", &self.Address).finish()
    }
}
unsafe impl ::windows::core::Abi for GET_CURRENT_PROCESS_ADDRESS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for GET_CURRENT_PROCESS_ADDRESS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<GET_CURRENT_PROCESS_ADDRESS>()) == 0 }
    }
}
impl ::core::cmp::Eq for GET_CURRENT_PROCESS_ADDRESS {}
impl ::core::default::Default for GET_CURRENT_PROCESS_ADDRESS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct GET_CURRENT_THREAD_ADDRESS {
    pub Processor: u32,
    pub Address: u64,
}
impl ::core::marker::Copy for GET_CURRENT_THREAD_ADDRESS {}
impl ::core::clone::Clone for GET_CURRENT_THREAD_ADDRESS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for GET_CURRENT_THREAD_ADDRESS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("GET_CURRENT_THREAD_ADDRESS").field("Processor", &self.Processor).field("Address", &self.Address).finish()
    }
}
unsafe impl ::windows::core::Abi for GET_CURRENT_THREAD_ADDRESS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for GET_CURRENT_THREAD_ADDRESS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<GET_CURRENT_THREAD_ADDRESS>()) == 0 }
    }
}
impl ::core::cmp::Eq for GET_CURRENT_THREAD_ADDRESS {}
impl ::core::default::Default for GET_CURRENT_THREAD_ADDRESS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct GET_EXPRESSION_EX {
    pub Expression: ::windows::core::PCSTR,
    pub Remainder: ::windows::core::PCSTR,
    pub Value: u64,
}
impl ::core::marker::Copy for GET_EXPRESSION_EX {}
impl ::core::clone::Clone for GET_EXPRESSION_EX {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for GET_EXPRESSION_EX {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("GET_EXPRESSION_EX").field("Expression", &self.Expression).field("Remainder", &self.Remainder).field("Value", &self.Value).finish()
    }
}
unsafe impl ::windows::core::Abi for GET_EXPRESSION_EX {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for GET_EXPRESSION_EX {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<GET_EXPRESSION_EX>()) == 0 }
    }
}
impl ::core::cmp::Eq for GET_EXPRESSION_EX {}
impl ::core::default::Default for GET_EXPRESSION_EX {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct GET_INPUT_LINE {
    pub Prompt: ::windows::core::PCSTR,
    pub Buffer: ::windows::core::PSTR,
    pub BufferSize: u32,
    pub InputSize: u32,
}
impl ::core::marker::Copy for GET_INPUT_LINE {}
impl ::core::clone::Clone for GET_INPUT_LINE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for GET_INPUT_LINE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("GET_INPUT_LINE").field("Prompt", &self.Prompt).field("Buffer", &self.Buffer).field("BufferSize", &self.BufferSize).field("InputSize", &self.InputSize).finish()
    }
}
unsafe impl ::windows::core::Abi for GET_INPUT_LINE {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for GET_INPUT_LINE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<GET_INPUT_LINE>()) == 0 }
    }
}
impl ::core::cmp::Eq for GET_INPUT_LINE {}
impl ::core::default::Default for GET_INPUT_LINE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct GET_PEB_ADDRESS {
    pub CurrentThread: u64,
    pub Address: u64,
}
impl ::core::marker::Copy for GET_PEB_ADDRESS {}
impl ::core::clone::Clone for GET_PEB_ADDRESS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for GET_PEB_ADDRESS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("GET_PEB_ADDRESS").field("CurrentThread", &self.CurrentThread).field("Address", &self.Address).finish()
    }
}
unsafe impl ::windows::core::Abi for GET_PEB_ADDRESS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for GET_PEB_ADDRESS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<GET_PEB_ADDRESS>()) == 0 }
    }
}
impl ::core::cmp::Eq for GET_PEB_ADDRESS {}
impl ::core::default::Default for GET_PEB_ADDRESS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct GET_SET_SYMPATH {
    pub Args: ::windows::core::PCSTR,
    pub Result: ::windows::core::PSTR,
    pub Length: i32,
}
impl ::core::marker::Copy for GET_SET_SYMPATH {}
impl ::core::clone::Clone for GET_SET_SYMPATH {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for GET_SET_SYMPATH {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("GET_SET_SYMPATH").field("Args", &self.Args).field("Result", &self.Result).field("Length", &self.Length).finish()
    }
}
unsafe impl ::windows::core::Abi for GET_SET_SYMPATH {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for GET_SET_SYMPATH {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<GET_SET_SYMPATH>()) == 0 }
    }
}
impl ::core::cmp::Eq for GET_SET_SYMPATH {}
impl ::core::default::Default for GET_SET_SYMPATH {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct GET_TEB_ADDRESS {
    pub Address: u64,
}
impl ::core::marker::Copy for GET_TEB_ADDRESS {}
impl ::core::clone::Clone for GET_TEB_ADDRESS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for GET_TEB_ADDRESS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("GET_TEB_ADDRESS").field("Address", &self.Address).finish()
    }
}
unsafe impl ::windows::core::Abi for GET_TEB_ADDRESS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for GET_TEB_ADDRESS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<GET_TEB_ADDRESS>()) == 0 }
    }
}
impl ::core::cmp::Eq for GET_TEB_ADDRESS {}
impl ::core::default::Default for GET_TEB_ADDRESS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGEHLP_CBA_EVENT {
    pub severity: IMAGEHLP_CBA_EVENT_SEVERITY,
    pub code: u32,
    pub desc: ::windows::core::PSTR,
    pub object: *mut ::core::ffi::c_void,
}
impl ::core::marker::Copy for IMAGEHLP_CBA_EVENT {}
impl ::core::clone::Clone for IMAGEHLP_CBA_EVENT {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IMAGEHLP_CBA_EVENT {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_CBA_EVENT").field("severity", &self.severity).field("code", &self.code).field("desc", &self.desc).field("object", &self.object).finish()
    }
}
unsafe impl ::windows::core::Abi for IMAGEHLP_CBA_EVENT {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGEHLP_CBA_EVENT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_CBA_EVENT>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGEHLP_CBA_EVENT {}
impl ::core::default::Default for IMAGEHLP_CBA_EVENT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGEHLP_CBA_EVENTW {
    pub severity: IMAGEHLP_CBA_EVENT_SEVERITY,
    pub code: u32,
    pub desc: ::windows::core::PCWSTR,
    pub object: *mut ::core::ffi::c_void,
}
impl ::core::marker::Copy for IMAGEHLP_CBA_EVENTW {}
impl ::core::clone::Clone for IMAGEHLP_CBA_EVENTW {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IMAGEHLP_CBA_EVENTW {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_CBA_EVENTW").field("severity", &self.severity).field("code", &self.code).field("desc", &self.desc).field("object", &self.object).finish()
    }
}
unsafe impl ::windows::core::Abi for IMAGEHLP_CBA_EVENTW {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGEHLP_CBA_EVENTW {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_CBA_EVENTW>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGEHLP_CBA_EVENTW {}
impl ::core::default::Default for IMAGEHLP_CBA_EVENTW {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGEHLP_CBA_READ_MEMORY {
    pub addr: u64,
    pub buf: *mut ::core::ffi::c_void,
    pub bytes: u32,
    pub bytesread: *mut u32,
}
impl ::core::marker::Copy for IMAGEHLP_CBA_READ_MEMORY {}
impl ::core::clone::Clone for IMAGEHLP_CBA_READ_MEMORY {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IMAGEHLP_CBA_READ_MEMORY {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_CBA_READ_MEMORY").field("addr", &self.addr).field("buf", &self.buf).field("bytes", &self.bytes).field("bytesread", &self.bytesread).finish()
    }
}
unsafe impl ::windows::core::Abi for IMAGEHLP_CBA_READ_MEMORY {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGEHLP_CBA_READ_MEMORY {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_CBA_READ_MEMORY>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGEHLP_CBA_READ_MEMORY {}
impl ::core::default::Default for IMAGEHLP_CBA_READ_MEMORY {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
pub struct IMAGEHLP_DEFERRED_SYMBOL_LOAD {
    pub SizeOfStruct: u32,
    pub BaseOfImage: u32,
    pub CheckSum: u32,
    pub TimeDateStamp: u32,
    pub FileName: [super::super::super::Foundation::CHAR; 260],
    pub Reparse: super::super::super::Foundation::BOOLEAN,
    pub hFile: super::super::super::Foundation::HANDLE,
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for IMAGEHLP_DEFERRED_SYMBOL_LOAD {}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for IMAGEHLP_DEFERRED_SYMBOL_LOAD {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for IMAGEHLP_DEFERRED_SYMBOL_LOAD {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_DEFERRED_SYMBOL_LOAD").field("SizeOfStruct", &self.SizeOfStruct).field("BaseOfImage", &self.BaseOfImage).field("CheckSum", &self.CheckSum).field("TimeDateStamp", &self.TimeDateStamp).field("FileName", &self.FileName).field("Reparse", &self.Reparse).field("hFile", &self.hFile).finish()
    }
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for IMAGEHLP_DEFERRED_SYMBOL_LOAD {
    type Abi = Self;
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for IMAGEHLP_DEFERRED_SYMBOL_LOAD {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_DEFERRED_SYMBOL_LOAD>()) == 0 }
    }
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for IMAGEHLP_DEFERRED_SYMBOL_LOAD {}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for IMAGEHLP_DEFERRED_SYMBOL_LOAD {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct IMAGEHLP_DEFERRED_SYMBOL_LOAD64 {
    pub SizeOfStruct: u32,
    pub BaseOfImage: u64,
    pub CheckSum: u32,
    pub TimeDateStamp: u32,
    pub FileName: [super::super::super::Foundation::CHAR; 260],
    pub Reparse: super::super::super::Foundation::BOOLEAN,
    pub hFile: super::super::super::Foundation::HANDLE,
    pub Flags: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for IMAGEHLP_DEFERRED_SYMBOL_LOAD64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for IMAGEHLP_DEFERRED_SYMBOL_LOAD64 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for IMAGEHLP_DEFERRED_SYMBOL_LOAD64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_DEFERRED_SYMBOL_LOAD64").field("SizeOfStruct", &self.SizeOfStruct).field("BaseOfImage", &self.BaseOfImage).field("CheckSum", &self.CheckSum).field("TimeDateStamp", &self.TimeDateStamp).field("FileName", &self.FileName).field("Reparse", &self.Reparse).field("hFile", &self.hFile).field("Flags", &self.Flags).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for IMAGEHLP_DEFERRED_SYMBOL_LOAD64 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for IMAGEHLP_DEFERRED_SYMBOL_LOAD64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_DEFERRED_SYMBOL_LOAD64>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for IMAGEHLP_DEFERRED_SYMBOL_LOAD64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for IMAGEHLP_DEFERRED_SYMBOL_LOAD64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct IMAGEHLP_DEFERRED_SYMBOL_LOADW64 {
    pub SizeOfStruct: u32,
    pub BaseOfImage: u64,
    pub CheckSum: u32,
    pub TimeDateStamp: u32,
    pub FileName: [u16; 261],
    pub Reparse: super::super::super::Foundation::BOOLEAN,
    pub hFile: super::super::super::Foundation::HANDLE,
    pub Flags: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for IMAGEHLP_DEFERRED_SYMBOL_LOADW64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for IMAGEHLP_DEFERRED_SYMBOL_LOADW64 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for IMAGEHLP_DEFERRED_SYMBOL_LOADW64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_DEFERRED_SYMBOL_LOADW64").field("SizeOfStruct", &self.SizeOfStruct).field("BaseOfImage", &self.BaseOfImage).field("CheckSum", &self.CheckSum).field("TimeDateStamp", &self.TimeDateStamp).field("FileName", &self.FileName).field("Reparse", &self.Reparse).field("hFile", &self.hFile).field("Flags", &self.Flags).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for IMAGEHLP_DEFERRED_SYMBOL_LOADW64 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for IMAGEHLP_DEFERRED_SYMBOL_LOADW64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_DEFERRED_SYMBOL_LOADW64>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for IMAGEHLP_DEFERRED_SYMBOL_LOADW64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for IMAGEHLP_DEFERRED_SYMBOL_LOADW64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
pub struct IMAGEHLP_DUPLICATE_SYMBOL {
    pub SizeOfStruct: u32,
    pub NumberOfDups: u32,
    pub Symbol: *mut IMAGEHLP_SYMBOL,
    pub SelectedSymbol: u32,
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for IMAGEHLP_DUPLICATE_SYMBOL {}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for IMAGEHLP_DUPLICATE_SYMBOL {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for IMAGEHLP_DUPLICATE_SYMBOL {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_DUPLICATE_SYMBOL").field("SizeOfStruct", &self.SizeOfStruct).field("NumberOfDups", &self.NumberOfDups).field("Symbol", &self.Symbol).field("SelectedSymbol", &self.SelectedSymbol).finish()
    }
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for IMAGEHLP_DUPLICATE_SYMBOL {
    type Abi = Self;
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for IMAGEHLP_DUPLICATE_SYMBOL {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_DUPLICATE_SYMBOL>()) == 0 }
    }
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for IMAGEHLP_DUPLICATE_SYMBOL {}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for IMAGEHLP_DUPLICATE_SYMBOL {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct IMAGEHLP_DUPLICATE_SYMBOL64 {
    pub SizeOfStruct: u32,
    pub NumberOfDups: u32,
    pub Symbol: *mut IMAGEHLP_SYMBOL64,
    pub SelectedSymbol: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for IMAGEHLP_DUPLICATE_SYMBOL64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for IMAGEHLP_DUPLICATE_SYMBOL64 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for IMAGEHLP_DUPLICATE_SYMBOL64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_DUPLICATE_SYMBOL64").field("SizeOfStruct", &self.SizeOfStruct).field("NumberOfDups", &self.NumberOfDups).field("Symbol", &self.Symbol).field("SelectedSymbol", &self.SelectedSymbol).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for IMAGEHLP_DUPLICATE_SYMBOL64 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for IMAGEHLP_DUPLICATE_SYMBOL64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_DUPLICATE_SYMBOL64>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for IMAGEHLP_DUPLICATE_SYMBOL64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for IMAGEHLP_DUPLICATE_SYMBOL64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGEHLP_GET_TYPE_INFO_PARAMS {
    pub SizeOfStruct: u32,
    pub Flags: IMAGEHLP_GET_TYPE_INFO_FLAGS,
    pub NumIds: u32,
    pub TypeIds: *mut u32,
    pub TagFilter: u64,
    pub NumReqs: u32,
    pub ReqKinds: *mut IMAGEHLP_SYMBOL_TYPE_INFO,
    pub ReqOffsets: *mut usize,
    pub ReqSizes: *mut u32,
    pub ReqStride: usize,
    pub BufferSize: usize,
    pub Buffer: *mut ::core::ffi::c_void,
    pub EntriesMatched: u32,
    pub EntriesFilled: u32,
    pub TagsFound: u64,
    pub AllReqsValid: u64,
    pub NumReqsValid: u32,
    pub ReqsValid: *mut u64,
}
impl ::core::marker::Copy for IMAGEHLP_GET_TYPE_INFO_PARAMS {}
impl ::core::clone::Clone for IMAGEHLP_GET_TYPE_INFO_PARAMS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IMAGEHLP_GET_TYPE_INFO_PARAMS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_GET_TYPE_INFO_PARAMS")
            .field("SizeOfStruct", &self.SizeOfStruct)
            .field("Flags", &self.Flags)
            .field("NumIds", &self.NumIds)
            .field("TypeIds", &self.TypeIds)
            .field("TagFilter", &self.TagFilter)
            .field("NumReqs", &self.NumReqs)
            .field("ReqKinds", &self.ReqKinds)
            .field("ReqOffsets", &self.ReqOffsets)
            .field("ReqSizes", &self.ReqSizes)
            .field("ReqStride", &self.ReqStride)
            .field("BufferSize", &self.BufferSize)
            .field("Buffer", &self.Buffer)
            .field("EntriesMatched", &self.EntriesMatched)
            .field("EntriesFilled", &self.EntriesFilled)
            .field("TagsFound", &self.TagsFound)
            .field("AllReqsValid", &self.AllReqsValid)
            .field("NumReqsValid", &self.NumReqsValid)
            .field("ReqsValid", &self.ReqsValid)
            .finish()
    }
}
unsafe impl ::windows::core::Abi for IMAGEHLP_GET_TYPE_INFO_PARAMS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGEHLP_GET_TYPE_INFO_PARAMS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_GET_TYPE_INFO_PARAMS>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGEHLP_GET_TYPE_INFO_PARAMS {}
impl ::core::default::Default for IMAGEHLP_GET_TYPE_INFO_PARAMS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGEHLP_JIT_SYMBOLMAP {
    pub SizeOfStruct: u32,
    pub Address: u64,
    pub BaseOfImage: u64,
}
impl ::core::marker::Copy for IMAGEHLP_JIT_SYMBOLMAP {}
impl ::core::clone::Clone for IMAGEHLP_JIT_SYMBOLMAP {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IMAGEHLP_JIT_SYMBOLMAP {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_JIT_SYMBOLMAP").field("SizeOfStruct", &self.SizeOfStruct).field("Address", &self.Address).field("BaseOfImage", &self.BaseOfImage).finish()
    }
}
unsafe impl ::windows::core::Abi for IMAGEHLP_JIT_SYMBOLMAP {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGEHLP_JIT_SYMBOLMAP {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_JIT_SYMBOLMAP>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGEHLP_JIT_SYMBOLMAP {}
impl ::core::default::Default for IMAGEHLP_JIT_SYMBOLMAP {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "x86")]
pub struct IMAGEHLP_LINE {
    pub SizeOfStruct: u32,
    pub Key: *mut ::core::ffi::c_void,
    pub LineNumber: u32,
    pub FileName: ::windows::core::PSTR,
    pub Address: u32,
}
#[cfg(target_arch = "x86")]
impl ::core::marker::Copy for IMAGEHLP_LINE {}
#[cfg(target_arch = "x86")]
impl ::core::clone::Clone for IMAGEHLP_LINE {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86")]
impl ::core::fmt::Debug for IMAGEHLP_LINE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_LINE").field("SizeOfStruct", &self.SizeOfStruct).field("Key", &self.Key).field("LineNumber", &self.LineNumber).field("FileName", &self.FileName).field("Address", &self.Address).finish()
    }
}
#[cfg(target_arch = "x86")]
unsafe impl ::windows::core::Abi for IMAGEHLP_LINE {
    type Abi = Self;
}
#[cfg(target_arch = "x86")]
impl ::core::cmp::PartialEq for IMAGEHLP_LINE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_LINE>()) == 0 }
    }
}
#[cfg(target_arch = "x86")]
impl ::core::cmp::Eq for IMAGEHLP_LINE {}
#[cfg(target_arch = "x86")]
impl ::core::default::Default for IMAGEHLP_LINE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGEHLP_LINE64 {
    pub SizeOfStruct: u32,
    pub Key: *mut ::core::ffi::c_void,
    pub LineNumber: u32,
    pub FileName: ::windows::core::PSTR,
    pub Address: u64,
}
impl ::core::marker::Copy for IMAGEHLP_LINE64 {}
impl ::core::clone::Clone for IMAGEHLP_LINE64 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IMAGEHLP_LINE64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_LINE64").field("SizeOfStruct", &self.SizeOfStruct).field("Key", &self.Key).field("LineNumber", &self.LineNumber).field("FileName", &self.FileName).field("Address", &self.Address).finish()
    }
}
unsafe impl ::windows::core::Abi for IMAGEHLP_LINE64 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGEHLP_LINE64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_LINE64>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGEHLP_LINE64 {}
impl ::core::default::Default for IMAGEHLP_LINE64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "x86")]
pub struct IMAGEHLP_LINEW {
    pub SizeOfStruct: u32,
    pub Key: *mut ::core::ffi::c_void,
    pub LineNumber: u32,
    pub FileName: ::windows::core::PSTR,
    pub Address: u64,
}
#[cfg(target_arch = "x86")]
impl ::core::marker::Copy for IMAGEHLP_LINEW {}
#[cfg(target_arch = "x86")]
impl ::core::clone::Clone for IMAGEHLP_LINEW {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86")]
impl ::core::fmt::Debug for IMAGEHLP_LINEW {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_LINEW").field("SizeOfStruct", &self.SizeOfStruct).field("Key", &self.Key).field("LineNumber", &self.LineNumber).field("FileName", &self.FileName).field("Address", &self.Address).finish()
    }
}
#[cfg(target_arch = "x86")]
unsafe impl ::windows::core::Abi for IMAGEHLP_LINEW {
    type Abi = Self;
}
#[cfg(target_arch = "x86")]
impl ::core::cmp::PartialEq for IMAGEHLP_LINEW {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_LINEW>()) == 0 }
    }
}
#[cfg(target_arch = "x86")]
impl ::core::cmp::Eq for IMAGEHLP_LINEW {}
#[cfg(target_arch = "x86")]
impl ::core::default::Default for IMAGEHLP_LINEW {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGEHLP_LINEW64 {
    pub SizeOfStruct: u32,
    pub Key: *mut ::core::ffi::c_void,
    pub LineNumber: u32,
    pub FileName: ::windows::core::PWSTR,
    pub Address: u64,
}
impl ::core::marker::Copy for IMAGEHLP_LINEW64 {}
impl ::core::clone::Clone for IMAGEHLP_LINEW64 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IMAGEHLP_LINEW64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_LINEW64").field("SizeOfStruct", &self.SizeOfStruct).field("Key", &self.Key).field("LineNumber", &self.LineNumber).field("FileName", &self.FileName).field("Address", &self.Address).finish()
    }
}
unsafe impl ::windows::core::Abi for IMAGEHLP_LINEW64 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGEHLP_LINEW64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_LINEW64>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGEHLP_LINEW64 {}
impl ::core::default::Default for IMAGEHLP_LINEW64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
pub struct IMAGEHLP_MODULE {
    pub SizeOfStruct: u32,
    pub BaseOfImage: u32,
    pub ImageSize: u32,
    pub TimeDateStamp: u32,
    pub CheckSum: u32,
    pub NumSyms: u32,
    pub SymType: SYM_TYPE,
    pub ModuleName: [super::super::super::Foundation::CHAR; 32],
    pub ImageName: [super::super::super::Foundation::CHAR; 256],
    pub LoadedImageName: [super::super::super::Foundation::CHAR; 256],
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for IMAGEHLP_MODULE {}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for IMAGEHLP_MODULE {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for IMAGEHLP_MODULE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_MODULE").field("SizeOfStruct", &self.SizeOfStruct).field("BaseOfImage", &self.BaseOfImage).field("ImageSize", &self.ImageSize).field("TimeDateStamp", &self.TimeDateStamp).field("CheckSum", &self.CheckSum).field("NumSyms", &self.NumSyms).field("SymType", &self.SymType).field("ModuleName", &self.ModuleName).field("ImageName", &self.ImageName).field("LoadedImageName", &self.LoadedImageName).finish()
    }
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for IMAGEHLP_MODULE {
    type Abi = Self;
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for IMAGEHLP_MODULE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_MODULE>()) == 0 }
    }
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for IMAGEHLP_MODULE {}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for IMAGEHLP_MODULE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct IMAGEHLP_MODULE64 {
    pub SizeOfStruct: u32,
    pub BaseOfImage: u64,
    pub ImageSize: u32,
    pub TimeDateStamp: u32,
    pub CheckSum: u32,
    pub NumSyms: u32,
    pub SymType: SYM_TYPE,
    pub ModuleName: [super::super::super::Foundation::CHAR; 32],
    pub ImageName: [super::super::super::Foundation::CHAR; 256],
    pub LoadedImageName: [super::super::super::Foundation::CHAR; 256],
    pub LoadedPdbName: [super::super::super::Foundation::CHAR; 256],
    pub CVSig: u32,
    pub CVData: [super::super::super::Foundation::CHAR; 780],
    pub PdbSig: u32,
    pub PdbSig70: ::windows::core::GUID,
    pub PdbAge: u32,
    pub PdbUnmatched: super::super::super::Foundation::BOOL,
    pub DbgUnmatched: super::super::super::Foundation::BOOL,
    pub LineNumbers: super::super::super::Foundation::BOOL,
    pub GlobalSymbols: super::super::super::Foundation::BOOL,
    pub TypeInfo: super::super::super::Foundation::BOOL,
    pub SourceIndexed: super::super::super::Foundation::BOOL,
    pub Publics: super::super::super::Foundation::BOOL,
    pub MachineType: u32,
    pub Reserved: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for IMAGEHLP_MODULE64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for IMAGEHLP_MODULE64 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for IMAGEHLP_MODULE64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_MODULE64")
            .field("SizeOfStruct", &self.SizeOfStruct)
            .field("BaseOfImage", &self.BaseOfImage)
            .field("ImageSize", &self.ImageSize)
            .field("TimeDateStamp", &self.TimeDateStamp)
            .field("CheckSum", &self.CheckSum)
            .field("NumSyms", &self.NumSyms)
            .field("SymType", &self.SymType)
            .field("ModuleName", &self.ModuleName)
            .field("ImageName", &self.ImageName)
            .field("LoadedImageName", &self.LoadedImageName)
            .field("LoadedPdbName", &self.LoadedPdbName)
            .field("CVSig", &self.CVSig)
            .field("CVData", &self.CVData)
            .field("PdbSig", &self.PdbSig)
            .field("PdbSig70", &self.PdbSig70)
            .field("PdbAge", &self.PdbAge)
            .field("PdbUnmatched", &self.PdbUnmatched)
            .field("DbgUnmatched", &self.DbgUnmatched)
            .field("LineNumbers", &self.LineNumbers)
            .field("GlobalSymbols", &self.GlobalSymbols)
            .field("TypeInfo", &self.TypeInfo)
            .field("SourceIndexed", &self.SourceIndexed)
            .field("Publics", &self.Publics)
            .field("MachineType", &self.MachineType)
            .field("Reserved", &self.Reserved)
            .finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for IMAGEHLP_MODULE64 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for IMAGEHLP_MODULE64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_MODULE64>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for IMAGEHLP_MODULE64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for IMAGEHLP_MODULE64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct IMAGEHLP_MODULE64_EX {
    pub Module: IMAGEHLP_MODULE64,
    pub RegionFlags: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for IMAGEHLP_MODULE64_EX {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for IMAGEHLP_MODULE64_EX {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for IMAGEHLP_MODULE64_EX {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_MODULE64_EX").field("Module", &self.Module).field("RegionFlags", &self.RegionFlags).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for IMAGEHLP_MODULE64_EX {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for IMAGEHLP_MODULE64_EX {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_MODULE64_EX>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for IMAGEHLP_MODULE64_EX {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for IMAGEHLP_MODULE64_EX {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "x86")]
pub struct IMAGEHLP_MODULEW {
    pub SizeOfStruct: u32,
    pub BaseOfImage: u32,
    pub ImageSize: u32,
    pub TimeDateStamp: u32,
    pub CheckSum: u32,
    pub NumSyms: u32,
    pub SymType: SYM_TYPE,
    pub ModuleName: [u16; 32],
    pub ImageName: [u16; 256],
    pub LoadedImageName: [u16; 256],
}
#[cfg(target_arch = "x86")]
impl ::core::marker::Copy for IMAGEHLP_MODULEW {}
#[cfg(target_arch = "x86")]
impl ::core::clone::Clone for IMAGEHLP_MODULEW {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86")]
impl ::core::fmt::Debug for IMAGEHLP_MODULEW {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_MODULEW").field("SizeOfStruct", &self.SizeOfStruct).field("BaseOfImage", &self.BaseOfImage).field("ImageSize", &self.ImageSize).field("TimeDateStamp", &self.TimeDateStamp).field("CheckSum", &self.CheckSum).field("NumSyms", &self.NumSyms).field("SymType", &self.SymType).field("ModuleName", &self.ModuleName).field("ImageName", &self.ImageName).field("LoadedImageName", &self.LoadedImageName).finish()
    }
}
#[cfg(target_arch = "x86")]
unsafe impl ::windows::core::Abi for IMAGEHLP_MODULEW {
    type Abi = Self;
}
#[cfg(target_arch = "x86")]
impl ::core::cmp::PartialEq for IMAGEHLP_MODULEW {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_MODULEW>()) == 0 }
    }
}
#[cfg(target_arch = "x86")]
impl ::core::cmp::Eq for IMAGEHLP_MODULEW {}
#[cfg(target_arch = "x86")]
impl ::core::default::Default for IMAGEHLP_MODULEW {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct IMAGEHLP_MODULEW64 {
    pub SizeOfStruct: u32,
    pub BaseOfImage: u64,
    pub ImageSize: u32,
    pub TimeDateStamp: u32,
    pub CheckSum: u32,
    pub NumSyms: u32,
    pub SymType: SYM_TYPE,
    pub ModuleName: [u16; 32],
    pub ImageName: [u16; 256],
    pub LoadedImageName: [u16; 256],
    pub LoadedPdbName: [u16; 256],
    pub CVSig: u32,
    pub CVData: [u16; 780],
    pub PdbSig: u32,
    pub PdbSig70: ::windows::core::GUID,
    pub PdbAge: u32,
    pub PdbUnmatched: super::super::super::Foundation::BOOL,
    pub DbgUnmatched: super::super::super::Foundation::BOOL,
    pub LineNumbers: super::super::super::Foundation::BOOL,
    pub GlobalSymbols: super::super::super::Foundation::BOOL,
    pub TypeInfo: super::super::super::Foundation::BOOL,
    pub SourceIndexed: super::super::super::Foundation::BOOL,
    pub Publics: super::super::super::Foundation::BOOL,
    pub MachineType: u32,
    pub Reserved: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for IMAGEHLP_MODULEW64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for IMAGEHLP_MODULEW64 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for IMAGEHLP_MODULEW64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_MODULEW64")
            .field("SizeOfStruct", &self.SizeOfStruct)
            .field("BaseOfImage", &self.BaseOfImage)
            .field("ImageSize", &self.ImageSize)
            .field("TimeDateStamp", &self.TimeDateStamp)
            .field("CheckSum", &self.CheckSum)
            .field("NumSyms", &self.NumSyms)
            .field("SymType", &self.SymType)
            .field("ModuleName", &self.ModuleName)
            .field("ImageName", &self.ImageName)
            .field("LoadedImageName", &self.LoadedImageName)
            .field("LoadedPdbName", &self.LoadedPdbName)
            .field("CVSig", &self.CVSig)
            .field("CVData", &self.CVData)
            .field("PdbSig", &self.PdbSig)
            .field("PdbSig70", &self.PdbSig70)
            .field("PdbAge", &self.PdbAge)
            .field("PdbUnmatched", &self.PdbUnmatched)
            .field("DbgUnmatched", &self.DbgUnmatched)
            .field("LineNumbers", &self.LineNumbers)
            .field("GlobalSymbols", &self.GlobalSymbols)
            .field("TypeInfo", &self.TypeInfo)
            .field("SourceIndexed", &self.SourceIndexed)
            .field("Publics", &self.Publics)
            .field("MachineType", &self.MachineType)
            .field("Reserved", &self.Reserved)
            .finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for IMAGEHLP_MODULEW64 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for IMAGEHLP_MODULEW64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_MODULEW64>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for IMAGEHLP_MODULEW64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for IMAGEHLP_MODULEW64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct IMAGEHLP_MODULEW64_EX {
    pub Module: IMAGEHLP_MODULEW64,
    pub RegionFlags: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for IMAGEHLP_MODULEW64_EX {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for IMAGEHLP_MODULEW64_EX {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for IMAGEHLP_MODULEW64_EX {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_MODULEW64_EX").field("Module", &self.Module).field("RegionFlags", &self.RegionFlags).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for IMAGEHLP_MODULEW64_EX {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for IMAGEHLP_MODULEW64_EX {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_MODULEW64_EX>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for IMAGEHLP_MODULEW64_EX {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for IMAGEHLP_MODULEW64_EX {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct IMAGEHLP_STACK_FRAME {
    pub InstructionOffset: u64,
    pub ReturnOffset: u64,
    pub FrameOffset: u64,
    pub StackOffset: u64,
    pub BackingStoreOffset: u64,
    pub FuncTableEntry: u64,
    pub Params: [u64; 4],
    pub Reserved: [u64; 5],
    pub Virtual: super::super::super::Foundation::BOOL,
    pub Reserved2: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for IMAGEHLP_STACK_FRAME {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for IMAGEHLP_STACK_FRAME {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for IMAGEHLP_STACK_FRAME {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_STACK_FRAME").field("InstructionOffset", &self.InstructionOffset).field("ReturnOffset", &self.ReturnOffset).field("FrameOffset", &self.FrameOffset).field("StackOffset", &self.StackOffset).field("BackingStoreOffset", &self.BackingStoreOffset).field("FuncTableEntry", &self.FuncTableEntry).field("Params", &self.Params).field("Reserved", &self.Reserved).field("Virtual", &self.Virtual).field("Reserved2", &self.Reserved2).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for IMAGEHLP_STACK_FRAME {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for IMAGEHLP_STACK_FRAME {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_STACK_FRAME>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for IMAGEHLP_STACK_FRAME {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for IMAGEHLP_STACK_FRAME {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
pub struct IMAGEHLP_SYMBOL {
    pub SizeOfStruct: u32,
    pub Address: u32,
    pub Size: u32,
    pub Flags: u32,
    pub MaxNameLength: u32,
    pub Name: [super::super::super::Foundation::CHAR; 1],
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for IMAGEHLP_SYMBOL {}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for IMAGEHLP_SYMBOL {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for IMAGEHLP_SYMBOL {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_SYMBOL").field("SizeOfStruct", &self.SizeOfStruct).field("Address", &self.Address).field("Size", &self.Size).field("Flags", &self.Flags).field("MaxNameLength", &self.MaxNameLength).field("Name", &self.Name).finish()
    }
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for IMAGEHLP_SYMBOL {
    type Abi = Self;
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for IMAGEHLP_SYMBOL {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_SYMBOL>()) == 0 }
    }
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for IMAGEHLP_SYMBOL {}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for IMAGEHLP_SYMBOL {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct IMAGEHLP_SYMBOL64 {
    pub SizeOfStruct: u32,
    pub Address: u64,
    pub Size: u32,
    pub Flags: u32,
    pub MaxNameLength: u32,
    pub Name: [super::super::super::Foundation::CHAR; 1],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for IMAGEHLP_SYMBOL64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for IMAGEHLP_SYMBOL64 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for IMAGEHLP_SYMBOL64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_SYMBOL64").field("SizeOfStruct", &self.SizeOfStruct).field("Address", &self.Address).field("Size", &self.Size).field("Flags", &self.Flags).field("MaxNameLength", &self.MaxNameLength).field("Name", &self.Name).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for IMAGEHLP_SYMBOL64 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for IMAGEHLP_SYMBOL64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_SYMBOL64>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for IMAGEHLP_SYMBOL64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for IMAGEHLP_SYMBOL64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct IMAGEHLP_SYMBOL64_PACKAGE {
    pub sym: IMAGEHLP_SYMBOL64,
    pub name: [super::super::super::Foundation::CHAR; 2001],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for IMAGEHLP_SYMBOL64_PACKAGE {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for IMAGEHLP_SYMBOL64_PACKAGE {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for IMAGEHLP_SYMBOL64_PACKAGE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_SYMBOL64_PACKAGE").field("sym", &self.sym).field("name", &self.name).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for IMAGEHLP_SYMBOL64_PACKAGE {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for IMAGEHLP_SYMBOL64_PACKAGE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_SYMBOL64_PACKAGE>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for IMAGEHLP_SYMBOL64_PACKAGE {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for IMAGEHLP_SYMBOL64_PACKAGE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "x86")]
pub struct IMAGEHLP_SYMBOLW {
    pub SizeOfStruct: u32,
    pub Address: u32,
    pub Size: u32,
    pub Flags: u32,
    pub MaxNameLength: u32,
    pub Name: [u16; 1],
}
#[cfg(target_arch = "x86")]
impl ::core::marker::Copy for IMAGEHLP_SYMBOLW {}
#[cfg(target_arch = "x86")]
impl ::core::clone::Clone for IMAGEHLP_SYMBOLW {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86")]
impl ::core::fmt::Debug for IMAGEHLP_SYMBOLW {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_SYMBOLW").field("SizeOfStruct", &self.SizeOfStruct).field("Address", &self.Address).field("Size", &self.Size).field("Flags", &self.Flags).field("MaxNameLength", &self.MaxNameLength).field("Name", &self.Name).finish()
    }
}
#[cfg(target_arch = "x86")]
unsafe impl ::windows::core::Abi for IMAGEHLP_SYMBOLW {
    type Abi = Self;
}
#[cfg(target_arch = "x86")]
impl ::core::cmp::PartialEq for IMAGEHLP_SYMBOLW {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_SYMBOLW>()) == 0 }
    }
}
#[cfg(target_arch = "x86")]
impl ::core::cmp::Eq for IMAGEHLP_SYMBOLW {}
#[cfg(target_arch = "x86")]
impl ::core::default::Default for IMAGEHLP_SYMBOLW {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGEHLP_SYMBOLW64 {
    pub SizeOfStruct: u32,
    pub Address: u64,
    pub Size: u32,
    pub Flags: u32,
    pub MaxNameLength: u32,
    pub Name: [u16; 1],
}
impl ::core::marker::Copy for IMAGEHLP_SYMBOLW64 {}
impl ::core::clone::Clone for IMAGEHLP_SYMBOLW64 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IMAGEHLP_SYMBOLW64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_SYMBOLW64").field("SizeOfStruct", &self.SizeOfStruct).field("Address", &self.Address).field("Size", &self.Size).field("Flags", &self.Flags).field("MaxNameLength", &self.MaxNameLength).field("Name", &self.Name).finish()
    }
}
unsafe impl ::windows::core::Abi for IMAGEHLP_SYMBOLW64 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGEHLP_SYMBOLW64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_SYMBOLW64>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGEHLP_SYMBOLW64 {}
impl ::core::default::Default for IMAGEHLP_SYMBOLW64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGEHLP_SYMBOLW64_PACKAGE {
    pub sym: IMAGEHLP_SYMBOLW64,
    pub name: [u16; 2001],
}
impl ::core::marker::Copy for IMAGEHLP_SYMBOLW64_PACKAGE {}
impl ::core::clone::Clone for IMAGEHLP_SYMBOLW64_PACKAGE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IMAGEHLP_SYMBOLW64_PACKAGE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_SYMBOLW64_PACKAGE").field("sym", &self.sym).field("name", &self.name).finish()
    }
}
unsafe impl ::windows::core::Abi for IMAGEHLP_SYMBOLW64_PACKAGE {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGEHLP_SYMBOLW64_PACKAGE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_SYMBOLW64_PACKAGE>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGEHLP_SYMBOLW64_PACKAGE {}
impl ::core::default::Default for IMAGEHLP_SYMBOLW64_PACKAGE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "x86")]
pub struct IMAGEHLP_SYMBOLW_PACKAGE {
    pub sym: IMAGEHLP_SYMBOLW,
    pub name: [u16; 2001],
}
#[cfg(target_arch = "x86")]
impl ::core::marker::Copy for IMAGEHLP_SYMBOLW_PACKAGE {}
#[cfg(target_arch = "x86")]
impl ::core::clone::Clone for IMAGEHLP_SYMBOLW_PACKAGE {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86")]
impl ::core::fmt::Debug for IMAGEHLP_SYMBOLW_PACKAGE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_SYMBOLW_PACKAGE").field("sym", &self.sym).field("name", &self.name).finish()
    }
}
#[cfg(target_arch = "x86")]
unsafe impl ::windows::core::Abi for IMAGEHLP_SYMBOLW_PACKAGE {
    type Abi = Self;
}
#[cfg(target_arch = "x86")]
impl ::core::cmp::PartialEq for IMAGEHLP_SYMBOLW_PACKAGE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_SYMBOLW_PACKAGE>()) == 0 }
    }
}
#[cfg(target_arch = "x86")]
impl ::core::cmp::Eq for IMAGEHLP_SYMBOLW_PACKAGE {}
#[cfg(target_arch = "x86")]
impl ::core::default::Default for IMAGEHLP_SYMBOLW_PACKAGE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
pub struct IMAGEHLP_SYMBOL_PACKAGE {
    pub sym: IMAGEHLP_SYMBOL,
    pub name: [super::super::super::Foundation::CHAR; 2001],
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for IMAGEHLP_SYMBOL_PACKAGE {}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for IMAGEHLP_SYMBOL_PACKAGE {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for IMAGEHLP_SYMBOL_PACKAGE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_SYMBOL_PACKAGE").field("sym", &self.sym).field("name", &self.name).finish()
    }
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for IMAGEHLP_SYMBOL_PACKAGE {
    type Abi = Self;
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for IMAGEHLP_SYMBOL_PACKAGE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_SYMBOL_PACKAGE>()) == 0 }
    }
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for IMAGEHLP_SYMBOL_PACKAGE {}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for IMAGEHLP_SYMBOL_PACKAGE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct IMAGEHLP_SYMBOL_SRC {
    pub sizeofstruct: u32,
    pub r#type: u32,
    pub file: [super::super::super::Foundation::CHAR; 260],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for IMAGEHLP_SYMBOL_SRC {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for IMAGEHLP_SYMBOL_SRC {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for IMAGEHLP_SYMBOL_SRC {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGEHLP_SYMBOL_SRC").field("sizeofstruct", &self.sizeofstruct).field("type", &self.r#type).field("file", &self.file).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for IMAGEHLP_SYMBOL_SRC {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for IMAGEHLP_SYMBOL_SRC {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGEHLP_SYMBOL_SRC>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for IMAGEHLP_SYMBOL_SRC {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for IMAGEHLP_SYMBOL_SRC {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY {
    pub BeginAddress: u32,
    pub Anonymous: IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0,
}
impl ::core::marker::Copy for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY {}
impl ::core::clone::Clone for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY {}
impl ::core::default::Default for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0 {
    pub UnwindData: u32,
    pub Anonymous: IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0_0,
}
impl ::core::marker::Copy for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0 {}
impl ::core::clone::Clone for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0 {}
impl ::core::default::Default for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0_0 {
    pub _bitfield: u32,
}
impl ::core::marker::Copy for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0_0 {}
impl ::core::clone::Clone for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0_0 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0_0 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0_0").field("_bitfield", &self._bitfield).finish()
    }
}
unsafe impl ::windows::core::Abi for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0_0 {}
impl ::core::default::Default for IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGE_COFF_SYMBOLS_HEADER {
    pub NumberOfSymbols: u32,
    pub LvaToFirstSymbol: u32,
    pub NumberOfLinenumbers: u32,
    pub LvaToFirstLinenumber: u32,
    pub RvaToFirstByteOfCode: u32,
    pub RvaToLastByteOfCode: u32,
    pub RvaToFirstByteOfData: u32,
    pub RvaToLastByteOfData: u32,
}
impl ::core::marker::Copy for IMAGE_COFF_SYMBOLS_HEADER {}
impl ::core::clone::Clone for IMAGE_COFF_SYMBOLS_HEADER {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IMAGE_COFF_SYMBOLS_HEADER {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGE_COFF_SYMBOLS_HEADER")
            .field("NumberOfSymbols", &self.NumberOfSymbols)
            .field("LvaToFirstSymbol", &self.LvaToFirstSymbol)
            .field("NumberOfLinenumbers", &self.NumberOfLinenumbers)
            .field("LvaToFirstLinenumber", &self.LvaToFirstLinenumber)
            .field("RvaToFirstByteOfCode", &self.RvaToFirstByteOfCode)
            .field("RvaToLastByteOfCode", &self.RvaToLastByteOfCode)
            .field("RvaToFirstByteOfData", &self.RvaToFirstByteOfData)
            .field("RvaToLastByteOfData", &self.RvaToLastByteOfData)
            .finish()
    }
}
unsafe impl ::windows::core::Abi for IMAGE_COFF_SYMBOLS_HEADER {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_COFF_SYMBOLS_HEADER {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_COFF_SYMBOLS_HEADER>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_COFF_SYMBOLS_HEADER {}
impl ::core::default::Default for IMAGE_COFF_SYMBOLS_HEADER {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGE_COR20_HEADER {
    pub cb: u32,
    pub MajorRuntimeVersion: u16,
    pub MinorRuntimeVersion: u16,
    pub MetaData: IMAGE_DATA_DIRECTORY,
    pub Flags: u32,
    pub Anonymous: IMAGE_COR20_HEADER_0,
    pub Resources: IMAGE_DATA_DIRECTORY,
    pub StrongNameSignature: IMAGE_DATA_DIRECTORY,
    pub CodeManagerTable: IMAGE_DATA_DIRECTORY,
    pub VTableFixups: IMAGE_DATA_DIRECTORY,
    pub ExportAddressTableJumps: IMAGE_DATA_DIRECTORY,
    pub ManagedNativeHeader: IMAGE_DATA_DIRECTORY,
}
impl ::core::marker::Copy for IMAGE_COR20_HEADER {}
impl ::core::clone::Clone for IMAGE_COR20_HEADER {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for IMAGE_COR20_HEADER {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_COR20_HEADER {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_COR20_HEADER>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_COR20_HEADER {}
impl ::core::default::Default for IMAGE_COR20_HEADER {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union IMAGE_COR20_HEADER_0 {
    pub EntryPointToken: u32,
    pub EntryPointRVA: u32,
}
impl ::core::marker::Copy for IMAGE_COR20_HEADER_0 {}
impl ::core::clone::Clone for IMAGE_COR20_HEADER_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for IMAGE_COR20_HEADER_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_COR20_HEADER_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_COR20_HEADER_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_COR20_HEADER_0 {}
impl ::core::default::Default for IMAGE_COR20_HEADER_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGE_DATA_DIRECTORY {
    pub VirtualAddress: u32,
    pub Size: u32,
}
impl ::core::marker::Copy for IMAGE_DATA_DIRECTORY {}
impl ::core::clone::Clone for IMAGE_DATA_DIRECTORY {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IMAGE_DATA_DIRECTORY {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGE_DATA_DIRECTORY").field("VirtualAddress", &self.VirtualAddress).field("Size", &self.Size).finish()
    }
}
unsafe impl ::windows::core::Abi for IMAGE_DATA_DIRECTORY {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_DATA_DIRECTORY {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_DATA_DIRECTORY>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_DATA_DIRECTORY {}
impl ::core::default::Default for IMAGE_DATA_DIRECTORY {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGE_DEBUG_DIRECTORY {
    pub Characteristics: u32,
    pub TimeDateStamp: u32,
    pub MajorVersion: u16,
    pub MinorVersion: u16,
    pub Type: IMAGE_DEBUG_TYPE,
    pub SizeOfData: u32,
    pub AddressOfRawData: u32,
    pub PointerToRawData: u32,
}
impl ::core::marker::Copy for IMAGE_DEBUG_DIRECTORY {}
impl ::core::clone::Clone for IMAGE_DEBUG_DIRECTORY {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IMAGE_DEBUG_DIRECTORY {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGE_DEBUG_DIRECTORY").field("Characteristics", &self.Characteristics).field("TimeDateStamp", &self.TimeDateStamp).field("MajorVersion", &self.MajorVersion).field("MinorVersion", &self.MinorVersion).field("Type", &self.Type).field("SizeOfData", &self.SizeOfData).field("AddressOfRawData", &self.AddressOfRawData).field("PointerToRawData", &self.PointerToRawData).finish()
    }
}
unsafe impl ::windows::core::Abi for IMAGE_DEBUG_DIRECTORY {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_DEBUG_DIRECTORY {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_DEBUG_DIRECTORY>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_DEBUG_DIRECTORY {}
impl ::core::default::Default for IMAGE_DEBUG_DIRECTORY {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
pub struct IMAGE_DEBUG_INFORMATION {
    pub List: super::super::Kernel::LIST_ENTRY,
    pub ReservedSize: u32,
    pub ReservedMappedBase: *mut ::core::ffi::c_void,
    pub ReservedMachine: u16,
    pub ReservedCharacteristics: u16,
    pub ReservedCheckSum: u32,
    pub ImageBase: u32,
    pub SizeOfImage: u32,
    pub ReservedNumberOfSections: u32,
    pub ReservedSections: *mut IMAGE_SECTION_HEADER,
    pub ReservedExportedNamesSize: u32,
    pub ReservedExportedNames: ::windows::core::PSTR,
    pub ReservedNumberOfFunctionTableEntries: u32,
    pub ReservedFunctionTableEntries: *mut IMAGE_FUNCTION_ENTRY,
    pub ReservedLowestFunctionStartingAddress: u32,
    pub ReservedHighestFunctionEndingAddress: u32,
    pub ReservedNumberOfFpoTableEntries: u32,
    pub ReservedFpoTableEntries: *mut FPO_DATA,
    pub SizeOfCoffSymbols: u32,
    pub CoffSymbols: *mut IMAGE_COFF_SYMBOLS_HEADER,
    pub ReservedSizeOfCodeViewSymbols: u32,
    pub ReservedCodeViewSymbols: *mut ::core::ffi::c_void,
    pub ImageFilePath: ::windows::core::PSTR,
    pub ImageFileName: ::windows::core::PSTR,
    pub ReservedDebugFilePath: ::windows::core::PSTR,
    pub ReservedTimeDateStamp: u32,
    pub ReservedRomImage: super::super::super::Foundation::BOOL,
    pub ReservedDebugDirectory: *mut IMAGE_DEBUG_DIRECTORY,
    pub ReservedNumberOfDebugDirectories: u32,
    pub ReservedOriginalFunctionTableBaseAddress: u32,
    pub Reserved: [u32; 2],
}
#[cfg(target_arch = "x86")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::marker::Copy for IMAGE_DEBUG_INFORMATION {}
#[cfg(target_arch = "x86")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::clone::Clone for IMAGE_DEBUG_INFORMATION {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::fmt::Debug for IMAGE_DEBUG_INFORMATION {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGE_DEBUG_INFORMATION")
            .field("List", &self.List)
            .field("ReservedSize", &self.ReservedSize)
            .field("ReservedMappedBase", &self.ReservedMappedBase)
            .field("ReservedMachine", &self.ReservedMachine)
            .field("ReservedCharacteristics", &self.ReservedCharacteristics)
            .field("ReservedCheckSum", &self.ReservedCheckSum)
            .field("ImageBase", &self.ImageBase)
            .field("SizeOfImage", &self.SizeOfImage)
            .field("ReservedNumberOfSections", &self.ReservedNumberOfSections)
            .field("ReservedSections", &self.ReservedSections)
            .field("ReservedExportedNamesSize", &self.ReservedExportedNamesSize)
            .field("ReservedExportedNames", &self.ReservedExportedNames)
            .field("ReservedNumberOfFunctionTableEntries", &self.ReservedNumberOfFunctionTableEntries)
            .field("ReservedFunctionTableEntries", &self.ReservedFunctionTableEntries)
            .field("ReservedLowestFunctionStartingAddress", &self.ReservedLowestFunctionStartingAddress)
            .field("ReservedHighestFunctionEndingAddress", &self.ReservedHighestFunctionEndingAddress)
            .field("ReservedNumberOfFpoTableEntries", &self.ReservedNumberOfFpoTableEntries)
            .field("ReservedFpoTableEntries", &self.ReservedFpoTableEntries)
            .field("SizeOfCoffSymbols", &self.SizeOfCoffSymbols)
            .field("CoffSymbols", &self.CoffSymbols)
            .field("ReservedSizeOfCodeViewSymbols", &self.ReservedSizeOfCodeViewSymbols)
            .field("ReservedCodeViewSymbols", &self.ReservedCodeViewSymbols)
            .field("ImageFilePath", &self.ImageFilePath)
            .field("ImageFileName", &self.ImageFileName)
            .field("ReservedDebugFilePath", &self.ReservedDebugFilePath)
            .field("ReservedTimeDateStamp", &self.ReservedTimeDateStamp)
            .field("ReservedRomImage", &self.ReservedRomImage)
            .field("ReservedDebugDirectory", &self.ReservedDebugDirectory)
            .field("ReservedNumberOfDebugDirectories", &self.ReservedNumberOfDebugDirectories)
            .field("ReservedOriginalFunctionTableBaseAddress", &self.ReservedOriginalFunctionTableBaseAddress)
            .field("Reserved", &self.Reserved)
            .finish()
    }
}
#[cfg(target_arch = "x86")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
unsafe impl ::windows::core::Abi for IMAGE_DEBUG_INFORMATION {
    type Abi = Self;
}
#[cfg(target_arch = "x86")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::cmp::PartialEq for IMAGE_DEBUG_INFORMATION {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_DEBUG_INFORMATION>()) == 0 }
    }
}
#[cfg(target_arch = "x86")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::cmp::Eq for IMAGE_DEBUG_INFORMATION {}
#[cfg(target_arch = "x86")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::default::Default for IMAGE_DEBUG_INFORMATION {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(feature = "Win32_System_SystemInformation")]
pub struct IMAGE_FILE_HEADER {
    pub Machine: super::super::SystemInformation::IMAGE_FILE_MACHINE,
    pub NumberOfSections: u16,
    pub TimeDateStamp: u32,
    pub PointerToSymbolTable: u32,
    pub NumberOfSymbols: u32,
    pub SizeOfOptionalHeader: u16,
    pub Characteristics: IMAGE_FILE_CHARACTERISTICS,
}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::marker::Copy for IMAGE_FILE_HEADER {}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::clone::Clone for IMAGE_FILE_HEADER {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::fmt::Debug for IMAGE_FILE_HEADER {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGE_FILE_HEADER").field("Machine", &self.Machine).field("NumberOfSections", &self.NumberOfSections).field("TimeDateStamp", &self.TimeDateStamp).field("PointerToSymbolTable", &self.PointerToSymbolTable).field("NumberOfSymbols", &self.NumberOfSymbols).field("SizeOfOptionalHeader", &self.SizeOfOptionalHeader).field("Characteristics", &self.Characteristics).finish()
    }
}
#[cfg(feature = "Win32_System_SystemInformation")]
unsafe impl ::windows::core::Abi for IMAGE_FILE_HEADER {
    type Abi = Self;
}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::cmp::PartialEq for IMAGE_FILE_HEADER {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_FILE_HEADER>()) == 0 }
    }
}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::cmp::Eq for IMAGE_FILE_HEADER {}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::default::Default for IMAGE_FILE_HEADER {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGE_FUNCTION_ENTRY {
    pub StartingAddress: u32,
    pub EndingAddress: u32,
    pub EndOfPrologue: u32,
}
impl ::core::marker::Copy for IMAGE_FUNCTION_ENTRY {}
impl ::core::clone::Clone for IMAGE_FUNCTION_ENTRY {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IMAGE_FUNCTION_ENTRY {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGE_FUNCTION_ENTRY").field("StartingAddress", &self.StartingAddress).field("EndingAddress", &self.EndingAddress).field("EndOfPrologue", &self.EndOfPrologue).finish()
    }
}
unsafe impl ::windows::core::Abi for IMAGE_FUNCTION_ENTRY {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_FUNCTION_ENTRY {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_FUNCTION_ENTRY>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_FUNCTION_ENTRY {}
impl ::core::default::Default for IMAGE_FUNCTION_ENTRY {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGE_FUNCTION_ENTRY64 {
    pub StartingAddress: u64,
    pub EndingAddress: u64,
    pub Anonymous: IMAGE_FUNCTION_ENTRY64_0,
}
impl ::core::marker::Copy for IMAGE_FUNCTION_ENTRY64 {}
impl ::core::clone::Clone for IMAGE_FUNCTION_ENTRY64 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for IMAGE_FUNCTION_ENTRY64 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_FUNCTION_ENTRY64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_FUNCTION_ENTRY64>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_FUNCTION_ENTRY64 {}
impl ::core::default::Default for IMAGE_FUNCTION_ENTRY64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union IMAGE_FUNCTION_ENTRY64_0 {
    pub EndOfPrologue: u64,
    pub UnwindInfoAddress: u64,
}
impl ::core::marker::Copy for IMAGE_FUNCTION_ENTRY64_0 {}
impl ::core::clone::Clone for IMAGE_FUNCTION_ENTRY64_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for IMAGE_FUNCTION_ENTRY64_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_FUNCTION_ENTRY64_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_FUNCTION_ENTRY64_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_FUNCTION_ENTRY64_0 {}
impl ::core::default::Default for IMAGE_FUNCTION_ENTRY64_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGE_LOAD_CONFIG_CODE_INTEGRITY {
    pub Flags: u16,
    pub Catalog: u16,
    pub CatalogOffset: u32,
    pub Reserved: u32,
}
impl ::core::marker::Copy for IMAGE_LOAD_CONFIG_CODE_INTEGRITY {}
impl ::core::clone::Clone for IMAGE_LOAD_CONFIG_CODE_INTEGRITY {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IMAGE_LOAD_CONFIG_CODE_INTEGRITY {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGE_LOAD_CONFIG_CODE_INTEGRITY").field("Flags", &self.Flags).field("Catalog", &self.Catalog).field("CatalogOffset", &self.CatalogOffset).field("Reserved", &self.Reserved).finish()
    }
}
unsafe impl ::windows::core::Abi for IMAGE_LOAD_CONFIG_CODE_INTEGRITY {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_LOAD_CONFIG_CODE_INTEGRITY {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_LOAD_CONFIG_CODE_INTEGRITY>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_LOAD_CONFIG_CODE_INTEGRITY {}
impl ::core::default::Default for IMAGE_LOAD_CONFIG_CODE_INTEGRITY {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGE_LOAD_CONFIG_DIRECTORY32 {
    pub Size: u32,
    pub TimeDateStamp: u32,
    pub MajorVersion: u16,
    pub MinorVersion: u16,
    pub GlobalFlagsClear: u32,
    pub GlobalFlagsSet: u32,
    pub CriticalSectionDefaultTimeout: u32,
    pub DeCommitFreeBlockThreshold: u32,
    pub DeCommitTotalFreeThreshold: u32,
    pub LockPrefixTable: u32,
    pub MaximumAllocationSize: u32,
    pub VirtualMemoryThreshold: u32,
    pub ProcessHeapFlags: u32,
    pub ProcessAffinityMask: u32,
    pub CSDVersion: u16,
    pub DependentLoadFlags: u16,
    pub EditList: u32,
    pub SecurityCookie: u32,
    pub SEHandlerTable: u32,
    pub SEHandlerCount: u32,
    pub GuardCFCheckFunctionPointer: u32,
    pub GuardCFDispatchFunctionPointer: u32,
    pub GuardCFFunctionTable: u32,
    pub GuardCFFunctionCount: u32,
    pub GuardFlags: u32,
    pub CodeIntegrity: IMAGE_LOAD_CONFIG_CODE_INTEGRITY,
    pub GuardAddressTakenIatEntryTable: u32,
    pub GuardAddressTakenIatEntryCount: u32,
    pub GuardLongJumpTargetTable: u32,
    pub GuardLongJumpTargetCount: u32,
    pub DynamicValueRelocTable: u32,
    pub CHPEMetadataPointer: u32,
    pub GuardRFFailureRoutine: u32,
    pub GuardRFFailureRoutineFunctionPointer: u32,
    pub DynamicValueRelocTableOffset: u32,
    pub DynamicValueRelocTableSection: u16,
    pub Reserved2: u16,
    pub GuardRFVerifyStackPointerFunctionPointer: u32,
    pub HotPatchTableOffset: u32,
    pub Reserved3: u32,
    pub EnclaveConfigurationPointer: u32,
    pub VolatileMetadataPointer: u32,
    pub GuardEHContinuationTable: u32,
    pub GuardEHContinuationCount: u32,
    pub GuardXFGCheckFunctionPointer: u32,
    pub GuardXFGDispatchFunctionPointer: u32,
    pub GuardXFGTableDispatchFunctionPointer: u32,
    pub CastGuardOsDeterminedFailureMode: u32,
}
impl ::core::marker::Copy for IMAGE_LOAD_CONFIG_DIRECTORY32 {}
impl ::core::clone::Clone for IMAGE_LOAD_CONFIG_DIRECTORY32 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IMAGE_LOAD_CONFIG_DIRECTORY32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGE_LOAD_CONFIG_DIRECTORY32")
            .field("Size", &self.Size)
            .field("TimeDateStamp", &self.TimeDateStamp)
            .field("MajorVersion", &self.MajorVersion)
            .field("MinorVersion", &self.MinorVersion)
            .field("GlobalFlagsClear", &self.GlobalFlagsClear)
            .field("GlobalFlagsSet", &self.GlobalFlagsSet)
            .field("CriticalSectionDefaultTimeout", &self.CriticalSectionDefaultTimeout)
            .field("DeCommitFreeBlockThreshold", &self.DeCommitFreeBlockThreshold)
            .field("DeCommitTotalFreeThreshold", &self.DeCommitTotalFreeThreshold)
            .field("LockPrefixTable", &self.LockPrefixTable)
            .field("MaximumAllocationSize", &self.MaximumAllocationSize)
            .field("VirtualMemoryThreshold", &self.VirtualMemoryThreshold)
            .field("ProcessHeapFlags", &self.ProcessHeapFlags)
            .field("ProcessAffinityMask", &self.ProcessAffinityMask)
            .field("CSDVersion", &self.CSDVersion)
            .field("DependentLoadFlags", &self.DependentLoadFlags)
            .field("EditList", &self.EditList)
            .field("SecurityCookie", &self.SecurityCookie)
            .field("SEHandlerTable", &self.SEHandlerTable)
            .field("SEHandlerCount", &self.SEHandlerCount)
            .field("GuardCFCheckFunctionPointer", &self.GuardCFCheckFunctionPointer)
            .field("GuardCFDispatchFunctionPointer", &self.GuardCFDispatchFunctionPointer)
            .field("GuardCFFunctionTable", &self.GuardCFFunctionTable)
            .field("GuardCFFunctionCount", &self.GuardCFFunctionCount)
            .field("GuardFlags", &self.GuardFlags)
            .field("CodeIntegrity", &self.CodeIntegrity)
            .field("GuardAddressTakenIatEntryTable", &self.GuardAddressTakenIatEntryTable)
            .field("GuardAddressTakenIatEntryCount", &self.GuardAddressTakenIatEntryCount)
            .field("GuardLongJumpTargetTable", &self.GuardLongJumpTargetTable)
            .field("GuardLongJumpTargetCount", &self.GuardLongJumpTargetCount)
            .field("DynamicValueRelocTable", &self.DynamicValueRelocTable)
            .field("CHPEMetadataPointer", &self.CHPEMetadataPointer)
            .field("GuardRFFailureRoutine", &self.GuardRFFailureRoutine)
            .field("GuardRFFailureRoutineFunctionPointer", &self.GuardRFFailureRoutineFunctionPointer)
            .field("DynamicValueRelocTableOffset", &self.DynamicValueRelocTableOffset)
            .field("DynamicValueRelocTableSection", &self.DynamicValueRelocTableSection)
            .field("Reserved2", &self.Reserved2)
            .field("GuardRFVerifyStackPointerFunctionPointer", &self.GuardRFVerifyStackPointerFunctionPointer)
            .field("HotPatchTableOffset", &self.HotPatchTableOffset)
            .field("Reserved3", &self.Reserved3)
            .field("EnclaveConfigurationPointer", &self.EnclaveConfigurationPointer)
            .field("VolatileMetadataPointer", &self.VolatileMetadataPointer)
            .field("GuardEHContinuationTable", &self.GuardEHContinuationTable)
            .field("GuardEHContinuationCount", &self.GuardEHContinuationCount)
            .field("GuardXFGCheckFunctionPointer", &self.GuardXFGCheckFunctionPointer)
            .field("GuardXFGDispatchFunctionPointer", &self.GuardXFGDispatchFunctionPointer)
            .field("GuardXFGTableDispatchFunctionPointer", &self.GuardXFGTableDispatchFunctionPointer)
            .field("CastGuardOsDeterminedFailureMode", &self.CastGuardOsDeterminedFailureMode)
            .finish()
    }
}
unsafe impl ::windows::core::Abi for IMAGE_LOAD_CONFIG_DIRECTORY32 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_LOAD_CONFIG_DIRECTORY32 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_LOAD_CONFIG_DIRECTORY32>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_LOAD_CONFIG_DIRECTORY32 {}
impl ::core::default::Default for IMAGE_LOAD_CONFIG_DIRECTORY32 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGE_LOAD_CONFIG_DIRECTORY64 {
    pub Size: u32,
    pub TimeDateStamp: u32,
    pub MajorVersion: u16,
    pub MinorVersion: u16,
    pub GlobalFlagsClear: u32,
    pub GlobalFlagsSet: u32,
    pub CriticalSectionDefaultTimeout: u32,
    pub DeCommitFreeBlockThreshold: u64,
    pub DeCommitTotalFreeThreshold: u64,
    pub LockPrefixTable: u64,
    pub MaximumAllocationSize: u64,
    pub VirtualMemoryThreshold: u64,
    pub ProcessAffinityMask: u64,
    pub ProcessHeapFlags: u32,
    pub CSDVersion: u16,
    pub DependentLoadFlags: u16,
    pub EditList: u64,
    pub SecurityCookie: u64,
    pub SEHandlerTable: u64,
    pub SEHandlerCount: u64,
    pub GuardCFCheckFunctionPointer: u64,
    pub GuardCFDispatchFunctionPointer: u64,
    pub GuardCFFunctionTable: u64,
    pub GuardCFFunctionCount: u64,
    pub GuardFlags: u32,
    pub CodeIntegrity: IMAGE_LOAD_CONFIG_CODE_INTEGRITY,
    pub GuardAddressTakenIatEntryTable: u64,
    pub GuardAddressTakenIatEntryCount: u64,
    pub GuardLongJumpTargetTable: u64,
    pub GuardLongJumpTargetCount: u64,
    pub DynamicValueRelocTable: u64,
    pub CHPEMetadataPointer: u64,
    pub GuardRFFailureRoutine: u64,
    pub GuardRFFailureRoutineFunctionPointer: u64,
    pub DynamicValueRelocTableOffset: u32,
    pub DynamicValueRelocTableSection: u16,
    pub Reserved2: u16,
    pub GuardRFVerifyStackPointerFunctionPointer: u64,
    pub HotPatchTableOffset: u32,
    pub Reserved3: u32,
    pub EnclaveConfigurationPointer: u64,
    pub VolatileMetadataPointer: u64,
    pub GuardEHContinuationTable: u64,
    pub GuardEHContinuationCount: u64,
    pub GuardXFGCheckFunctionPointer: u64,
    pub GuardXFGDispatchFunctionPointer: u64,
    pub GuardXFGTableDispatchFunctionPointer: u64,
    pub CastGuardOsDeterminedFailureMode: u64,
}
impl ::core::marker::Copy for IMAGE_LOAD_CONFIG_DIRECTORY64 {}
impl ::core::clone::Clone for IMAGE_LOAD_CONFIG_DIRECTORY64 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for IMAGE_LOAD_CONFIG_DIRECTORY64 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_LOAD_CONFIG_DIRECTORY64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_LOAD_CONFIG_DIRECTORY64>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_LOAD_CONFIG_DIRECTORY64 {}
impl ::core::default::Default for IMAGE_LOAD_CONFIG_DIRECTORY64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(feature = "Win32_System_SystemInformation")]
pub struct IMAGE_NT_HEADERS32 {
    pub Signature: u32,
    pub FileHeader: IMAGE_FILE_HEADER,
    pub OptionalHeader: IMAGE_OPTIONAL_HEADER32,
}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::marker::Copy for IMAGE_NT_HEADERS32 {}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::clone::Clone for IMAGE_NT_HEADERS32 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::fmt::Debug for IMAGE_NT_HEADERS32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGE_NT_HEADERS32").field("Signature", &self.Signature).field("FileHeader", &self.FileHeader).field("OptionalHeader", &self.OptionalHeader).finish()
    }
}
#[cfg(feature = "Win32_System_SystemInformation")]
unsafe impl ::windows::core::Abi for IMAGE_NT_HEADERS32 {
    type Abi = Self;
}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::cmp::PartialEq for IMAGE_NT_HEADERS32 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_NT_HEADERS32>()) == 0 }
    }
}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::cmp::Eq for IMAGE_NT_HEADERS32 {}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::default::Default for IMAGE_NT_HEADERS32 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(feature = "Win32_System_SystemInformation")]
pub struct IMAGE_NT_HEADERS64 {
    pub Signature: u32,
    pub FileHeader: IMAGE_FILE_HEADER,
    pub OptionalHeader: IMAGE_OPTIONAL_HEADER64,
}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::marker::Copy for IMAGE_NT_HEADERS64 {}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::clone::Clone for IMAGE_NT_HEADERS64 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_System_SystemInformation")]
unsafe impl ::windows::core::Abi for IMAGE_NT_HEADERS64 {
    type Abi = Self;
}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::cmp::PartialEq for IMAGE_NT_HEADERS64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_NT_HEADERS64>()) == 0 }
    }
}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::cmp::Eq for IMAGE_NT_HEADERS64 {}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::default::Default for IMAGE_NT_HEADERS64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGE_OPTIONAL_HEADER32 {
    pub Magic: IMAGE_OPTIONAL_HEADER_MAGIC,
    pub MajorLinkerVersion: u8,
    pub MinorLinkerVersion: u8,
    pub SizeOfCode: u32,
    pub SizeOfInitializedData: u32,
    pub SizeOfUninitializedData: u32,
    pub AddressOfEntryPoint: u32,
    pub BaseOfCode: u32,
    pub BaseOfData: u32,
    pub ImageBase: u32,
    pub SectionAlignment: u32,
    pub FileAlignment: u32,
    pub MajorOperatingSystemVersion: u16,
    pub MinorOperatingSystemVersion: u16,
    pub MajorImageVersion: u16,
    pub MinorImageVersion: u16,
    pub MajorSubsystemVersion: u16,
    pub MinorSubsystemVersion: u16,
    pub Win32VersionValue: u32,
    pub SizeOfImage: u32,
    pub SizeOfHeaders: u32,
    pub CheckSum: u32,
    pub Subsystem: IMAGE_SUBSYSTEM,
    pub DllCharacteristics: IMAGE_DLL_CHARACTERISTICS,
    pub SizeOfStackReserve: u32,
    pub SizeOfStackCommit: u32,
    pub SizeOfHeapReserve: u32,
    pub SizeOfHeapCommit: u32,
    pub LoaderFlags: u32,
    pub NumberOfRvaAndSizes: u32,
    pub DataDirectory: [IMAGE_DATA_DIRECTORY; 16],
}
impl ::core::marker::Copy for IMAGE_OPTIONAL_HEADER32 {}
impl ::core::clone::Clone for IMAGE_OPTIONAL_HEADER32 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IMAGE_OPTIONAL_HEADER32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGE_OPTIONAL_HEADER32")
            .field("Magic", &self.Magic)
            .field("MajorLinkerVersion", &self.MajorLinkerVersion)
            .field("MinorLinkerVersion", &self.MinorLinkerVersion)
            .field("SizeOfCode", &self.SizeOfCode)
            .field("SizeOfInitializedData", &self.SizeOfInitializedData)
            .field("SizeOfUninitializedData", &self.SizeOfUninitializedData)
            .field("AddressOfEntryPoint", &self.AddressOfEntryPoint)
            .field("BaseOfCode", &self.BaseOfCode)
            .field("BaseOfData", &self.BaseOfData)
            .field("ImageBase", &self.ImageBase)
            .field("SectionAlignment", &self.SectionAlignment)
            .field("FileAlignment", &self.FileAlignment)
            .field("MajorOperatingSystemVersion", &self.MajorOperatingSystemVersion)
            .field("MinorOperatingSystemVersion", &self.MinorOperatingSystemVersion)
            .field("MajorImageVersion", &self.MajorImageVersion)
            .field("MinorImageVersion", &self.MinorImageVersion)
            .field("MajorSubsystemVersion", &self.MajorSubsystemVersion)
            .field("MinorSubsystemVersion", &self.MinorSubsystemVersion)
            .field("Win32VersionValue", &self.Win32VersionValue)
            .field("SizeOfImage", &self.SizeOfImage)
            .field("SizeOfHeaders", &self.SizeOfHeaders)
            .field("CheckSum", &self.CheckSum)
            .field("Subsystem", &self.Subsystem)
            .field("DllCharacteristics", &self.DllCharacteristics)
            .field("SizeOfStackReserve", &self.SizeOfStackReserve)
            .field("SizeOfStackCommit", &self.SizeOfStackCommit)
            .field("SizeOfHeapReserve", &self.SizeOfHeapReserve)
            .field("SizeOfHeapCommit", &self.SizeOfHeapCommit)
            .field("LoaderFlags", &self.LoaderFlags)
            .field("NumberOfRvaAndSizes", &self.NumberOfRvaAndSizes)
            .field("DataDirectory", &self.DataDirectory)
            .finish()
    }
}
unsafe impl ::windows::core::Abi for IMAGE_OPTIONAL_HEADER32 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_OPTIONAL_HEADER32 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_OPTIONAL_HEADER32>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_OPTIONAL_HEADER32 {}
impl ::core::default::Default for IMAGE_OPTIONAL_HEADER32 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGE_OPTIONAL_HEADER64 {
    pub Magic: IMAGE_OPTIONAL_HEADER_MAGIC,
    pub MajorLinkerVersion: u8,
    pub MinorLinkerVersion: u8,
    pub SizeOfCode: u32,
    pub SizeOfInitializedData: u32,
    pub SizeOfUninitializedData: u32,
    pub AddressOfEntryPoint: u32,
    pub BaseOfCode: u32,
    pub ImageBase: u64,
    pub SectionAlignment: u32,
    pub FileAlignment: u32,
    pub MajorOperatingSystemVersion: u16,
    pub MinorOperatingSystemVersion: u16,
    pub MajorImageVersion: u16,
    pub MinorImageVersion: u16,
    pub MajorSubsystemVersion: u16,
    pub MinorSubsystemVersion: u16,
    pub Win32VersionValue: u32,
    pub SizeOfImage: u32,
    pub SizeOfHeaders: u32,
    pub CheckSum: u32,
    pub Subsystem: IMAGE_SUBSYSTEM,
    pub DllCharacteristics: IMAGE_DLL_CHARACTERISTICS,
    pub SizeOfStackReserve: u64,
    pub SizeOfStackCommit: u64,
    pub SizeOfHeapReserve: u64,
    pub SizeOfHeapCommit: u64,
    pub LoaderFlags: u32,
    pub NumberOfRvaAndSizes: u32,
    pub DataDirectory: [IMAGE_DATA_DIRECTORY; 16],
}
impl ::core::marker::Copy for IMAGE_OPTIONAL_HEADER64 {}
impl ::core::clone::Clone for IMAGE_OPTIONAL_HEADER64 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for IMAGE_OPTIONAL_HEADER64 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_OPTIONAL_HEADER64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_OPTIONAL_HEADER64>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_OPTIONAL_HEADER64 {}
impl ::core::default::Default for IMAGE_OPTIONAL_HEADER64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(feature = "Win32_System_SystemInformation")]
pub struct IMAGE_ROM_HEADERS {
    pub FileHeader: IMAGE_FILE_HEADER,
    pub OptionalHeader: IMAGE_ROM_OPTIONAL_HEADER,
}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::marker::Copy for IMAGE_ROM_HEADERS {}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::clone::Clone for IMAGE_ROM_HEADERS {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::fmt::Debug for IMAGE_ROM_HEADERS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGE_ROM_HEADERS").field("FileHeader", &self.FileHeader).field("OptionalHeader", &self.OptionalHeader).finish()
    }
}
#[cfg(feature = "Win32_System_SystemInformation")]
unsafe impl ::windows::core::Abi for IMAGE_ROM_HEADERS {
    type Abi = Self;
}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::cmp::PartialEq for IMAGE_ROM_HEADERS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_ROM_HEADERS>()) == 0 }
    }
}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::cmp::Eq for IMAGE_ROM_HEADERS {}
#[cfg(feature = "Win32_System_SystemInformation")]
impl ::core::default::Default for IMAGE_ROM_HEADERS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGE_ROM_OPTIONAL_HEADER {
    pub Magic: u16,
    pub MajorLinkerVersion: u8,
    pub MinorLinkerVersion: u8,
    pub SizeOfCode: u32,
    pub SizeOfInitializedData: u32,
    pub SizeOfUninitializedData: u32,
    pub AddressOfEntryPoint: u32,
    pub BaseOfCode: u32,
    pub BaseOfData: u32,
    pub BaseOfBss: u32,
    pub GprMask: u32,
    pub CprMask: [u32; 4],
    pub GpValue: u32,
}
impl ::core::marker::Copy for IMAGE_ROM_OPTIONAL_HEADER {}
impl ::core::clone::Clone for IMAGE_ROM_OPTIONAL_HEADER {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IMAGE_ROM_OPTIONAL_HEADER {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IMAGE_ROM_OPTIONAL_HEADER")
            .field("Magic", &self.Magic)
            .field("MajorLinkerVersion", &self.MajorLinkerVersion)
            .field("MinorLinkerVersion", &self.MinorLinkerVersion)
            .field("SizeOfCode", &self.SizeOfCode)
            .field("SizeOfInitializedData", &self.SizeOfInitializedData)
            .field("SizeOfUninitializedData", &self.SizeOfUninitializedData)
            .field("AddressOfEntryPoint", &self.AddressOfEntryPoint)
            .field("BaseOfCode", &self.BaseOfCode)
            .field("BaseOfData", &self.BaseOfData)
            .field("BaseOfBss", &self.BaseOfBss)
            .field("GprMask", &self.GprMask)
            .field("CprMask", &self.CprMask)
            .field("GpValue", &self.GpValue)
            .finish()
    }
}
unsafe impl ::windows::core::Abi for IMAGE_ROM_OPTIONAL_HEADER {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_ROM_OPTIONAL_HEADER {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_ROM_OPTIONAL_HEADER>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_ROM_OPTIONAL_HEADER {}
impl ::core::default::Default for IMAGE_ROM_OPTIONAL_HEADER {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGE_RUNTIME_FUNCTION_ENTRY {
    pub BeginAddress: u32,
    pub EndAddress: u32,
    pub Anonymous: IMAGE_RUNTIME_FUNCTION_ENTRY_0,
}
impl ::core::marker::Copy for IMAGE_RUNTIME_FUNCTION_ENTRY {}
impl ::core::clone::Clone for IMAGE_RUNTIME_FUNCTION_ENTRY {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for IMAGE_RUNTIME_FUNCTION_ENTRY {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_RUNTIME_FUNCTION_ENTRY {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_RUNTIME_FUNCTION_ENTRY>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_RUNTIME_FUNCTION_ENTRY {}
impl ::core::default::Default for IMAGE_RUNTIME_FUNCTION_ENTRY {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union IMAGE_RUNTIME_FUNCTION_ENTRY_0 {
    pub UnwindInfoAddress: u32,
    pub UnwindData: u32,
}
impl ::core::marker::Copy for IMAGE_RUNTIME_FUNCTION_ENTRY_0 {}
impl ::core::clone::Clone for IMAGE_RUNTIME_FUNCTION_ENTRY_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for IMAGE_RUNTIME_FUNCTION_ENTRY_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_RUNTIME_FUNCTION_ENTRY_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_RUNTIME_FUNCTION_ENTRY_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_RUNTIME_FUNCTION_ENTRY_0 {}
impl ::core::default::Default for IMAGE_RUNTIME_FUNCTION_ENTRY_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IMAGE_SECTION_HEADER {
    pub Name: [u8; 8],
    pub Misc: IMAGE_SECTION_HEADER_0,
    pub VirtualAddress: u32,
    pub SizeOfRawData: u32,
    pub PointerToRawData: u32,
    pub PointerToRelocations: u32,
    pub PointerToLinenumbers: u32,
    pub NumberOfRelocations: u16,
    pub NumberOfLinenumbers: u16,
    pub Characteristics: IMAGE_SECTION_CHARACTERISTICS,
}
impl ::core::marker::Copy for IMAGE_SECTION_HEADER {}
impl ::core::clone::Clone for IMAGE_SECTION_HEADER {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for IMAGE_SECTION_HEADER {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_SECTION_HEADER {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_SECTION_HEADER>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_SECTION_HEADER {}
impl ::core::default::Default for IMAGE_SECTION_HEADER {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union IMAGE_SECTION_HEADER_0 {
    pub PhysicalAddress: u32,
    pub VirtualSize: u32,
}
impl ::core::marker::Copy for IMAGE_SECTION_HEADER_0 {}
impl ::core::clone::Clone for IMAGE_SECTION_HEADER_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for IMAGE_SECTION_HEADER_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IMAGE_SECTION_HEADER_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IMAGE_SECTION_HEADER_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for IMAGE_SECTION_HEADER_0 {}
impl ::core::default::Default for IMAGE_SECTION_HEADER_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union INLINE_FRAME_CONTEXT {
    pub ContextValue: u32,
    pub Anonymous: INLINE_FRAME_CONTEXT_0,
}
impl ::core::marker::Copy for INLINE_FRAME_CONTEXT {}
impl ::core::clone::Clone for INLINE_FRAME_CONTEXT {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for INLINE_FRAME_CONTEXT {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for INLINE_FRAME_CONTEXT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<INLINE_FRAME_CONTEXT>()) == 0 }
    }
}
impl ::core::cmp::Eq for INLINE_FRAME_CONTEXT {}
impl ::core::default::Default for INLINE_FRAME_CONTEXT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct INLINE_FRAME_CONTEXT_0 {
    pub FrameId: u8,
    pub FrameType: u8,
    pub FrameSignature: u16,
}
impl ::core::marker::Copy for INLINE_FRAME_CONTEXT_0 {}
impl ::core::clone::Clone for INLINE_FRAME_CONTEXT_0 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for INLINE_FRAME_CONTEXT_0 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("INLINE_FRAME_CONTEXT_0").field("FrameId", &self.FrameId).field("FrameType", &self.FrameType).field("FrameSignature", &self.FrameSignature).finish()
    }
}
unsafe impl ::windows::core::Abi for INLINE_FRAME_CONTEXT_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for INLINE_FRAME_CONTEXT_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<INLINE_FRAME_CONTEXT_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for INLINE_FRAME_CONTEXT_0 {}
impl ::core::default::Default for INLINE_FRAME_CONTEXT_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IOSPACE {
    pub Address: u32,
    pub Length: u32,
    pub Data: u32,
}
impl ::core::marker::Copy for IOSPACE {}
impl ::core::clone::Clone for IOSPACE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IOSPACE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IOSPACE").field("Address", &self.Address).field("Length", &self.Length).field("Data", &self.Data).finish()
    }
}
unsafe impl ::windows::core::Abi for IOSPACE {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IOSPACE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IOSPACE>()) == 0 }
    }
}
impl ::core::cmp::Eq for IOSPACE {}
impl ::core::default::Default for IOSPACE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IOSPACE32 {
    pub Address: u32,
    pub Length: u32,
    pub Data: u32,
}
impl ::core::marker::Copy for IOSPACE32 {}
impl ::core::clone::Clone for IOSPACE32 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IOSPACE32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IOSPACE32").field("Address", &self.Address).field("Length", &self.Length).field("Data", &self.Data).finish()
    }
}
unsafe impl ::windows::core::Abi for IOSPACE32 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IOSPACE32 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IOSPACE32>()) == 0 }
    }
}
impl ::core::cmp::Eq for IOSPACE32 {}
impl ::core::default::Default for IOSPACE32 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IOSPACE64 {
    pub Address: u64,
    pub Length: u32,
    pub Data: u32,
}
impl ::core::marker::Copy for IOSPACE64 {}
impl ::core::clone::Clone for IOSPACE64 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IOSPACE64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IOSPACE64").field("Address", &self.Address).field("Length", &self.Length).field("Data", &self.Data).finish()
    }
}
unsafe impl ::windows::core::Abi for IOSPACE64 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IOSPACE64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IOSPACE64>()) == 0 }
    }
}
impl ::core::cmp::Eq for IOSPACE64 {}
impl ::core::default::Default for IOSPACE64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IOSPACE_EX {
    pub Address: u32,
    pub Length: u32,
    pub Data: u32,
    pub InterfaceType: u32,
    pub BusNumber: u32,
    pub AddressSpace: u32,
}
impl ::core::marker::Copy for IOSPACE_EX {}
impl ::core::clone::Clone for IOSPACE_EX {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IOSPACE_EX {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IOSPACE_EX").field("Address", &self.Address).field("Length", &self.Length).field("Data", &self.Data).field("InterfaceType", &self.InterfaceType).field("BusNumber", &self.BusNumber).field("AddressSpace", &self.AddressSpace).finish()
    }
}
unsafe impl ::windows::core::Abi for IOSPACE_EX {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IOSPACE_EX {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IOSPACE_EX>()) == 0 }
    }
}
impl ::core::cmp::Eq for IOSPACE_EX {}
impl ::core::default::Default for IOSPACE_EX {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IOSPACE_EX32 {
    pub Address: u32,
    pub Length: u32,
    pub Data: u32,
    pub InterfaceType: u32,
    pub BusNumber: u32,
    pub AddressSpace: u32,
}
impl ::core::marker::Copy for IOSPACE_EX32 {}
impl ::core::clone::Clone for IOSPACE_EX32 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IOSPACE_EX32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IOSPACE_EX32").field("Address", &self.Address).field("Length", &self.Length).field("Data", &self.Data).field("InterfaceType", &self.InterfaceType).field("BusNumber", &self.BusNumber).field("AddressSpace", &self.AddressSpace).finish()
    }
}
unsafe impl ::windows::core::Abi for IOSPACE_EX32 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IOSPACE_EX32 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IOSPACE_EX32>()) == 0 }
    }
}
impl ::core::cmp::Eq for IOSPACE_EX32 {}
impl ::core::default::Default for IOSPACE_EX32 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IOSPACE_EX64 {
    pub Address: u64,
    pub Length: u32,
    pub Data: u32,
    pub InterfaceType: u32,
    pub BusNumber: u32,
    pub AddressSpace: u32,
}
impl ::core::marker::Copy for IOSPACE_EX64 {}
impl ::core::clone::Clone for IOSPACE_EX64 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for IOSPACE_EX64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("IOSPACE_EX64").field("Address", &self.Address).field("Length", &self.Length).field("Data", &self.Data).field("InterfaceType", &self.InterfaceType).field("BusNumber", &self.BusNumber).field("AddressSpace", &self.AddressSpace).finish()
    }
}
unsafe impl ::windows::core::Abi for IOSPACE_EX64 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IOSPACE_EX64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IOSPACE_EX64>()) == 0 }
    }
}
impl ::core::cmp::Eq for IOSPACE_EX64 {}
impl ::core::default::Default for IOSPACE_EX64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct IPMI_OS_SEL_RECORD {
    pub Signature: u32,
    pub Version: u32,
    pub Length: u32,
    pub RecordType: IPMI_OS_SEL_RECORD_TYPE,
    pub DataLength: u32,
    pub Data: [u8; 1],
}
impl ::core::marker::Copy for IPMI_OS_SEL_RECORD {}
impl ::core::clone::Clone for IPMI_OS_SEL_RECORD {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for IPMI_OS_SEL_RECORD {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for IPMI_OS_SEL_RECORD {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<IPMI_OS_SEL_RECORD>()) == 0 }
    }
}
impl ::core::cmp::Eq for IPMI_OS_SEL_RECORD {}
impl ::core::default::Default for IPMI_OS_SEL_RECORD {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct JS_NATIVE_FRAME {
    pub InstructionOffset: u64,
    pub ReturnOffset: u64,
    pub FrameOffset: u64,
    pub StackOffset: u64,
}
impl ::core::marker::Copy for JS_NATIVE_FRAME {}
impl ::core::clone::Clone for JS_NATIVE_FRAME {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for JS_NATIVE_FRAME {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("JS_NATIVE_FRAME").field("InstructionOffset", &self.InstructionOffset).field("ReturnOffset", &self.ReturnOffset).field("FrameOffset", &self.FrameOffset).field("StackOffset", &self.StackOffset).finish()
    }
}
unsafe impl ::windows::core::Abi for JS_NATIVE_FRAME {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for JS_NATIVE_FRAME {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<JS_NATIVE_FRAME>()) == 0 }
    }
}
impl ::core::cmp::Eq for JS_NATIVE_FRAME {}
impl ::core::default::Default for JS_NATIVE_FRAME {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct JsDebugPropertyInfo {
    pub name: ::windows::core::BSTR,
    pub r#type: ::windows::core::BSTR,
    pub value: ::windows::core::BSTR,
    pub fullName: ::windows::core::BSTR,
    pub attr: JS_PROPERTY_ATTRIBUTES,
}
impl ::core::clone::Clone for JsDebugPropertyInfo {
    fn clone(&self) -> Self {
        Self { name: self.name.clone(), r#type: self.r#type.clone(), value: self.value.clone(), fullName: self.fullName.clone(), attr: self.attr }
    }
}
impl ::core::fmt::Debug for JsDebugPropertyInfo {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("JsDebugPropertyInfo").field("name", &self.name).field("type", &self.r#type).field("value", &self.value).field("fullName", &self.fullName).field("attr", &self.attr).finish()
    }
}
unsafe impl ::windows::core::Abi for JsDebugPropertyInfo {
    type Abi = ::core::mem::ManuallyDrop<Self>;
}
impl ::core::cmp::PartialEq for JsDebugPropertyInfo {
    fn eq(&self, other: &Self) -> bool {
        self.name == other.name && self.r#type == other.r#type && self.value == other.value && self.fullName == other.fullName && self.attr == other.attr
    }
}
impl ::core::cmp::Eq for JsDebugPropertyInfo {}
impl ::core::default::Default for JsDebugPropertyInfo {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(feature = "Win32_System_Kernel")]
pub struct KDDEBUGGER_DATA32 {
    pub Header: DBGKD_DEBUG_DATA_HEADER32,
    pub KernBase: u32,
    pub BreakpointWithStatus: u32,
    pub SavedContext: u32,
    pub ThCallbackStack: u16,
    pub NextCallback: u16,
    pub FramePointer: u16,
    pub _bitfield: u16,
    pub KiCallUserMode: u32,
    pub KeUserCallbackDispatcher: u32,
    pub PsLoadedModuleList: u32,
    pub PsActiveProcessHead: u32,
    pub PspCidTable: u32,
    pub ExpSystemResourcesList: u32,
    pub ExpPagedPoolDescriptor: u32,
    pub ExpNumberOfPagedPools: u32,
    pub KeTimeIncrement: u32,
    pub KeBugCheckCallbackListHead: u32,
    pub KiBugcheckData: u32,
    pub IopErrorLogListHead: u32,
    pub ObpRootDirectoryObject: u32,
    pub ObpTypeObjectType: u32,
    pub MmSystemCacheStart: u32,
    pub MmSystemCacheEnd: u32,
    pub MmSystemCacheWs: u32,
    pub MmPfnDatabase: u32,
    pub MmSystemPtesStart: u32,
    pub MmSystemPtesEnd: u32,
    pub MmSubsectionBase: u32,
    pub MmNumberOfPagingFiles: u32,
    pub MmLowestPhysicalPage: u32,
    pub MmHighestPhysicalPage: u32,
    pub MmNumberOfPhysicalPages: u32,
    pub MmMaximumNonPagedPoolInBytes: u32,
    pub MmNonPagedSystemStart: u32,
    pub MmNonPagedPoolStart: u32,
    pub MmNonPagedPoolEnd: u32,
    pub MmPagedPoolStart: u32,
    pub MmPagedPoolEnd: u32,
    pub MmPagedPoolInformation: u32,
    pub MmPageSize: u32,
    pub MmSizeOfPagedPoolInBytes: u32,
    pub MmTotalCommitLimit: u32,
    pub MmTotalCommittedPages: u32,
    pub MmSharedCommit: u32,
    pub MmDriverCommit: u32,
    pub MmProcessCommit: u32,
    pub MmPagedPoolCommit: u32,
    pub MmExtendedCommit: u32,
    pub MmZeroedPageListHead: u32,
    pub MmFreePageListHead: u32,
    pub MmStandbyPageListHead: u32,
    pub MmModifiedPageListHead: u32,
    pub MmModifiedNoWritePageListHead: u32,
    pub MmAvailablePages: u32,
    pub MmResidentAvailablePages: u32,
    pub PoolTrackTable: u32,
    pub NonPagedPoolDescriptor: u32,
    pub MmHighestUserAddress: u32,
    pub MmSystemRangeStart: u32,
    pub MmUserProbeAddress: u32,
    pub KdPrintCircularBuffer: u32,
    pub KdPrintCircularBufferEnd: u32,
    pub KdPrintWritePointer: u32,
    pub KdPrintRolloverCount: u32,
    pub MmLoadedUserImageList: u32,
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for KDDEBUGGER_DATA32 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for KDDEBUGGER_DATA32 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::fmt::Debug for KDDEBUGGER_DATA32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("KDDEBUGGER_DATA32")
            .field("Header", &self.Header)
            .field("KernBase", &self.KernBase)
            .field("BreakpointWithStatus", &self.BreakpointWithStatus)
            .field("SavedContext", &self.SavedContext)
            .field("ThCallbackStack", &self.ThCallbackStack)
            .field("NextCallback", &self.NextCallback)
            .field("FramePointer", &self.FramePointer)
            .field("_bitfield", &self._bitfield)
            .field("KiCallUserMode", &self.KiCallUserMode)
            .field("KeUserCallbackDispatcher", &self.KeUserCallbackDispatcher)
            .field("PsLoadedModuleList", &self.PsLoadedModuleList)
            .field("PsActiveProcessHead", &self.PsActiveProcessHead)
            .field("PspCidTable", &self.PspCidTable)
            .field("ExpSystemResourcesList", &self.ExpSystemResourcesList)
            .field("ExpPagedPoolDescriptor", &self.ExpPagedPoolDescriptor)
            .field("ExpNumberOfPagedPools", &self.ExpNumberOfPagedPools)
            .field("KeTimeIncrement", &self.KeTimeIncrement)
            .field("KeBugCheckCallbackListHead", &self.KeBugCheckCallbackListHead)
            .field("KiBugcheckData", &self.KiBugcheckData)
            .field("IopErrorLogListHead", &self.IopErrorLogListHead)
            .field("ObpRootDirectoryObject", &self.ObpRootDirectoryObject)
            .field("ObpTypeObjectType", &self.ObpTypeObjectType)
            .field("MmSystemCacheStart", &self.MmSystemCacheStart)
            .field("MmSystemCacheEnd", &self.MmSystemCacheEnd)
            .field("MmSystemCacheWs", &self.MmSystemCacheWs)
            .field("MmPfnDatabase", &self.MmPfnDatabase)
            .field("MmSystemPtesStart", &self.MmSystemPtesStart)
            .field("MmSystemPtesEnd", &self.MmSystemPtesEnd)
            .field("MmSubsectionBase", &self.MmSubsectionBase)
            .field("MmNumberOfPagingFiles", &self.MmNumberOfPagingFiles)
            .field("MmLowestPhysicalPage", &self.MmLowestPhysicalPage)
            .field("MmHighestPhysicalPage", &self.MmHighestPhysicalPage)
            .field("MmNumberOfPhysicalPages", &self.MmNumberOfPhysicalPages)
            .field("MmMaximumNonPagedPoolInBytes", &self.MmMaximumNonPagedPoolInBytes)
            .field("MmNonPagedSystemStart", &self.MmNonPagedSystemStart)
            .field("MmNonPagedPoolStart", &self.MmNonPagedPoolStart)
            .field("MmNonPagedPoolEnd", &self.MmNonPagedPoolEnd)
            .field("MmPagedPoolStart", &self.MmPagedPoolStart)
            .field("MmPagedPoolEnd", &self.MmPagedPoolEnd)
            .field("MmPagedPoolInformation", &self.MmPagedPoolInformation)
            .field("MmPageSize", &self.MmPageSize)
            .field("MmSizeOfPagedPoolInBytes", &self.MmSizeOfPagedPoolInBytes)
            .field("MmTotalCommitLimit", &self.MmTotalCommitLimit)
            .field("MmTotalCommittedPages", &self.MmTotalCommittedPages)
            .field("MmSharedCommit", &self.MmSharedCommit)
            .field("MmDriverCommit", &self.MmDriverCommit)
            .field("MmProcessCommit", &self.MmProcessCommit)
            .field("MmPagedPoolCommit", &self.MmPagedPoolCommit)
            .field("MmExtendedCommit", &self.MmExtendedCommit)
            .field("MmZeroedPageListHead", &self.MmZeroedPageListHead)
            .field("MmFreePageListHead", &self.MmFreePageListHead)
            .field("MmStandbyPageListHead", &self.MmStandbyPageListHead)
            .field("MmModifiedPageListHead", &self.MmModifiedPageListHead)
            .field("MmModifiedNoWritePageListHead", &self.MmModifiedNoWritePageListHead)
            .field("MmAvailablePages", &self.MmAvailablePages)
            .field("MmResidentAvailablePages", &self.MmResidentAvailablePages)
            .field("PoolTrackTable", &self.PoolTrackTable)
            .field("NonPagedPoolDescriptor", &self.NonPagedPoolDescriptor)
            .field("MmHighestUserAddress", &self.MmHighestUserAddress)
            .field("MmSystemRangeStart", &self.MmSystemRangeStart)
            .field("MmUserProbeAddress", &self.MmUserProbeAddress)
            .field("KdPrintCircularBuffer", &self.KdPrintCircularBuffer)
            .field("KdPrintCircularBufferEnd", &self.KdPrintCircularBufferEnd)
            .field("KdPrintWritePointer", &self.KdPrintWritePointer)
            .field("KdPrintRolloverCount", &self.KdPrintRolloverCount)
            .field("MmLoadedUserImageList", &self.MmLoadedUserImageList)
            .finish()
    }
}
#[cfg(feature = "Win32_System_Kernel")]
unsafe impl ::windows::core::Abi for KDDEBUGGER_DATA32 {
    type Abi = Self;
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::PartialEq for KDDEBUGGER_DATA32 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<KDDEBUGGER_DATA32>()) == 0 }
    }
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::Eq for KDDEBUGGER_DATA32 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for KDDEBUGGER_DATA32 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(feature = "Win32_System_Kernel")]
pub struct KDDEBUGGER_DATA64 {
    pub Header: DBGKD_DEBUG_DATA_HEADER64,
    pub KernBase: u64,
    pub BreakpointWithStatus: u64,
    pub SavedContext: u64,
    pub ThCallbackStack: u16,
    pub NextCallback: u16,
    pub FramePointer: u16,
    pub _bitfield: u16,
    pub KiCallUserMode: u64,
    pub KeUserCallbackDispatcher: u64,
    pub PsLoadedModuleList: u64,
    pub PsActiveProcessHead: u64,
    pub PspCidTable: u64,
    pub ExpSystemResourcesList: u64,
    pub ExpPagedPoolDescriptor: u64,
    pub ExpNumberOfPagedPools: u64,
    pub KeTimeIncrement: u64,
    pub KeBugCheckCallbackListHead: u64,
    pub KiBugcheckData: u64,
    pub IopErrorLogListHead: u64,
    pub ObpRootDirectoryObject: u64,
    pub ObpTypeObjectType: u64,
    pub MmSystemCacheStart: u64,
    pub MmSystemCacheEnd: u64,
    pub MmSystemCacheWs: u64,
    pub MmPfnDatabase: u64,
    pub MmSystemPtesStart: u64,
    pub MmSystemPtesEnd: u64,
    pub MmSubsectionBase: u64,
    pub MmNumberOfPagingFiles: u64,
    pub MmLowestPhysicalPage: u64,
    pub MmHighestPhysicalPage: u64,
    pub MmNumberOfPhysicalPages: u64,
    pub MmMaximumNonPagedPoolInBytes: u64,
    pub MmNonPagedSystemStart: u64,
    pub MmNonPagedPoolStart: u64,
    pub MmNonPagedPoolEnd: u64,
    pub MmPagedPoolStart: u64,
    pub MmPagedPoolEnd: u64,
    pub MmPagedPoolInformation: u64,
    pub MmPageSize: u64,
    pub MmSizeOfPagedPoolInBytes: u64,
    pub MmTotalCommitLimit: u64,
    pub MmTotalCommittedPages: u64,
    pub MmSharedCommit: u64,
    pub MmDriverCommit: u64,
    pub MmProcessCommit: u64,
    pub MmPagedPoolCommit: u64,
    pub MmExtendedCommit: u64,
    pub MmZeroedPageListHead: u64,
    pub MmFreePageListHead: u64,
    pub MmStandbyPageListHead: u64,
    pub MmModifiedPageListHead: u64,
    pub MmModifiedNoWritePageListHead: u64,
    pub MmAvailablePages: u64,
    pub MmResidentAvailablePages: u64,
    pub PoolTrackTable: u64,
    pub NonPagedPoolDescriptor: u64,
    pub MmHighestUserAddress: u64,
    pub MmSystemRangeStart: u64,
    pub MmUserProbeAddress: u64,
    pub KdPrintCircularBuffer: u64,
    pub KdPrintCircularBufferEnd: u64,
    pub KdPrintWritePointer: u64,
    pub KdPrintRolloverCount: u64,
    pub MmLoadedUserImageList: u64,
    pub NtBuildLab: u64,
    pub KiNormalSystemCall: u64,
    pub KiProcessorBlock: u64,
    pub MmUnloadedDrivers: u64,
    pub MmLastUnloadedDriver: u64,
    pub MmTriageActionTaken: u64,
    pub MmSpecialPoolTag: u64,
    pub KernelVerifier: u64,
    pub MmVerifierData: u64,
    pub MmAllocatedNonPagedPool: u64,
    pub MmPeakCommitment: u64,
    pub MmTotalCommitLimitMaximum: u64,
    pub CmNtCSDVersion: u64,
    pub MmPhysicalMemoryBlock: u64,
    pub MmSessionBase: u64,
    pub MmSessionSize: u64,
    pub MmSystemParentTablePage: u64,
    pub MmVirtualTranslationBase: u64,
    pub OffsetKThreadNextProcessor: u16,
    pub OffsetKThreadTeb: u16,
    pub OffsetKThreadKernelStack: u16,
    pub OffsetKThreadInitialStack: u16,
    pub OffsetKThreadApcProcess: u16,
    pub OffsetKThreadState: u16,
    pub OffsetKThreadBStore: u16,
    pub OffsetKThreadBStoreLimit: u16,
    pub SizeEProcess: u16,
    pub OffsetEprocessPeb: u16,
    pub OffsetEprocessParentCID: u16,
    pub OffsetEprocessDirectoryTableBase: u16,
    pub SizePrcb: u16,
    pub OffsetPrcbDpcRoutine: u16,
    pub OffsetPrcbCurrentThread: u16,
    pub OffsetPrcbMhz: u16,
    pub OffsetPrcbCpuType: u16,
    pub OffsetPrcbVendorString: u16,
    pub OffsetPrcbProcStateContext: u16,
    pub OffsetPrcbNumber: u16,
    pub SizeEThread: u16,
    pub L1tfHighPhysicalBitIndex: u8,
    pub L1tfSwizzleBitIndex: u8,
    pub Padding0: u32,
    pub KdPrintCircularBufferPtr: u64,
    pub KdPrintBufferSize: u64,
    pub KeLoaderBlock: u64,
    pub SizePcr: u16,
    pub OffsetPcrSelfPcr: u16,
    pub OffsetPcrCurrentPrcb: u16,
    pub OffsetPcrContainedPrcb: u16,
    pub OffsetPcrInitialBStore: u16,
    pub OffsetPcrBStoreLimit: u16,
    pub OffsetPcrInitialStack: u16,
    pub OffsetPcrStackLimit: u16,
    pub OffsetPrcbPcrPage: u16,
    pub OffsetPrcbProcStateSpecialReg: u16,
    pub GdtR0Code: u16,
    pub GdtR0Data: u16,
    pub GdtR0Pcr: u16,
    pub GdtR3Code: u16,
    pub GdtR3Data: u16,
    pub GdtR3Teb: u16,
    pub GdtLdt: u16,
    pub GdtTss: u16,
    pub Gdt64R3CmCode: u16,
    pub Gdt64R3CmTeb: u16,
    pub IopNumTriageDumpDataBlocks: u64,
    pub IopTriageDumpDataBlocks: u64,
    pub VfCrashDataBlock: u64,
    pub MmBadPagesDetected: u64,
    pub MmZeroedPageSingleBitErrorsDetected: u64,
    pub EtwpDebuggerData: u64,
    pub OffsetPrcbContext: u16,
    pub OffsetPrcbMaxBreakpoints: u16,
    pub OffsetPrcbMaxWatchpoints: u16,
    pub OffsetKThreadStackLimit: u32,
    pub OffsetKThreadStackBase: u32,
    pub OffsetKThreadQueueListEntry: u32,
    pub OffsetEThreadIrpList: u32,
    pub OffsetPrcbIdleThread: u16,
    pub OffsetPrcbNormalDpcState: u16,
    pub OffsetPrcbDpcStack: u16,
    pub OffsetPrcbIsrStack: u16,
    pub SizeKDPC_STACK_FRAME: u16,
    pub OffsetKPriQueueThreadListHead: u16,
    pub OffsetKThreadWaitReason: u16,
    pub Padding1: u16,
    pub PteBase: u64,
    pub RetpolineStubFunctionTable: u64,
    pub RetpolineStubFunctionTableSize: u32,
    pub RetpolineStubOffset: u32,
    pub RetpolineStubSize: u32,
    pub OffsetEProcessMmHotPatchContext: u16,
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for KDDEBUGGER_DATA64 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for KDDEBUGGER_DATA64 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::fmt::Debug for KDDEBUGGER_DATA64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("KDDEBUGGER_DATA64")
            .field("Header", &self.Header)
            .field("KernBase", &self.KernBase)
            .field("BreakpointWithStatus", &self.BreakpointWithStatus)
            .field("SavedContext", &self.SavedContext)
            .field("ThCallbackStack", &self.ThCallbackStack)
            .field("NextCallback", &self.NextCallback)
            .field("FramePointer", &self.FramePointer)
            .field("_bitfield", &self._bitfield)
            .field("KiCallUserMode", &self.KiCallUserMode)
            .field("KeUserCallbackDispatcher", &self.KeUserCallbackDispatcher)
            .field("PsLoadedModuleList", &self.PsLoadedModuleList)
            .field("PsActiveProcessHead", &self.PsActiveProcessHead)
            .field("PspCidTable", &self.PspCidTable)
            .field("ExpSystemResourcesList", &self.ExpSystemResourcesList)
            .field("ExpPagedPoolDescriptor", &self.ExpPagedPoolDescriptor)
            .field("ExpNumberOfPagedPools", &self.ExpNumberOfPagedPools)
            .field("KeTimeIncrement", &self.KeTimeIncrement)
            .field("KeBugCheckCallbackListHead", &self.KeBugCheckCallbackListHead)
            .field("KiBugcheckData", &self.KiBugcheckData)
            .field("IopErrorLogListHead", &self.IopErrorLogListHead)
            .field("ObpRootDirectoryObject", &self.ObpRootDirectoryObject)
            .field("ObpTypeObjectType", &self.ObpTypeObjectType)
            .field("MmSystemCacheStart", &self.MmSystemCacheStart)
            .field("MmSystemCacheEnd", &self.MmSystemCacheEnd)
            .field("MmSystemCacheWs", &self.MmSystemCacheWs)
            .field("MmPfnDatabase", &self.MmPfnDatabase)
            .field("MmSystemPtesStart", &self.MmSystemPtesStart)
            .field("MmSystemPtesEnd", &self.MmSystemPtesEnd)
            .field("MmSubsectionBase", &self.MmSubsectionBase)
            .field("MmNumberOfPagingFiles", &self.MmNumberOfPagingFiles)
            .field("MmLowestPhysicalPage", &self.MmLowestPhysicalPage)
            .field("MmHighestPhysicalPage", &self.MmHighestPhysicalPage)
            .field("MmNumberOfPhysicalPages", &self.MmNumberOfPhysicalPages)
            .field("MmMaximumNonPagedPoolInBytes", &self.MmMaximumNonPagedPoolInBytes)
            .field("MmNonPagedSystemStart", &self.MmNonPagedSystemStart)
            .field("MmNonPagedPoolStart", &self.MmNonPagedPoolStart)
            .field("MmNonPagedPoolEnd", &self.MmNonPagedPoolEnd)
            .field("MmPagedPoolStart", &self.MmPagedPoolStart)
            .field("MmPagedPoolEnd", &self.MmPagedPoolEnd)
            .field("MmPagedPoolInformation", &self.MmPagedPoolInformation)
            .field("MmPageSize", &self.MmPageSize)
            .field("MmSizeOfPagedPoolInBytes", &self.MmSizeOfPagedPoolInBytes)
            .field("MmTotalCommitLimit", &self.MmTotalCommitLimit)
            .field("MmTotalCommittedPages", &self.MmTotalCommittedPages)
            .field("MmSharedCommit", &self.MmSharedCommit)
            .field("MmDriverCommit", &self.MmDriverCommit)
            .field("MmProcessCommit", &self.MmProcessCommit)
            .field("MmPagedPoolCommit", &self.MmPagedPoolCommit)
            .field("MmExtendedCommit", &self.MmExtendedCommit)
            .field("MmZeroedPageListHead", &self.MmZeroedPageListHead)
            .field("MmFreePageListHead", &self.MmFreePageListHead)
            .field("MmStandbyPageListHead", &self.MmStandbyPageListHead)
            .field("MmModifiedPageListHead", &self.MmModifiedPageListHead)
            .field("MmModifiedNoWritePageListHead", &self.MmModifiedNoWritePageListHead)
            .field("MmAvailablePages", &self.MmAvailablePages)
            .field("MmResidentAvailablePages", &self.MmResidentAvailablePages)
            .field("PoolTrackTable", &self.PoolTrackTable)
            .field("NonPagedPoolDescriptor", &self.NonPagedPoolDescriptor)
            .field("MmHighestUserAddress", &self.MmHighestUserAddress)
            .field("MmSystemRangeStart", &self.MmSystemRangeStart)
            .field("MmUserProbeAddress", &self.MmUserProbeAddress)
            .field("KdPrintCircularBuffer", &self.KdPrintCircularBuffer)
            .field("KdPrintCircularBufferEnd", &self.KdPrintCircularBufferEnd)
            .field("KdPrintWritePointer", &self.KdPrintWritePointer)
            .field("KdPrintRolloverCount", &self.KdPrintRolloverCount)
            .field("MmLoadedUserImageList", &self.MmLoadedUserImageList)
            .field("NtBuildLab", &self.NtBuildLab)
            .field("KiNormalSystemCall", &self.KiNormalSystemCall)
            .field("KiProcessorBlock", &self.KiProcessorBlock)
            .field("MmUnloadedDrivers", &self.MmUnloadedDrivers)
            .field("MmLastUnloadedDriver", &self.MmLastUnloadedDriver)
            .field("MmTriageActionTaken", &self.MmTriageActionTaken)
            .field("MmSpecialPoolTag", &self.MmSpecialPoolTag)
            .field("KernelVerifier", &self.KernelVerifier)
            .field("MmVerifierData", &self.MmVerifierData)
            .field("MmAllocatedNonPagedPool", &self.MmAllocatedNonPagedPool)
            .field("MmPeakCommitment", &self.MmPeakCommitment)
            .field("MmTotalCommitLimitMaximum", &self.MmTotalCommitLimitMaximum)
            .field("CmNtCSDVersion", &self.CmNtCSDVersion)
            .field("MmPhysicalMemoryBlock", &self.MmPhysicalMemoryBlock)
            .field("MmSessionBase", &self.MmSessionBase)
            .field("MmSessionSize", &self.MmSessionSize)
            .field("MmSystemParentTablePage", &self.MmSystemParentTablePage)
            .field("MmVirtualTranslationBase", &self.MmVirtualTranslationBase)
            .field("OffsetKThreadNextProcessor", &self.OffsetKThreadNextProcessor)
            .field("OffsetKThreadTeb", &self.OffsetKThreadTeb)
            .field("OffsetKThreadKernelStack", &self.OffsetKThreadKernelStack)
            .field("OffsetKThreadInitialStack", &self.OffsetKThreadInitialStack)
            .field("OffsetKThreadApcProcess", &self.OffsetKThreadApcProcess)
            .field("OffsetKThreadState", &self.OffsetKThreadState)
            .field("OffsetKThreadBStore", &self.OffsetKThreadBStore)
            .field("OffsetKThreadBStoreLimit", &self.OffsetKThreadBStoreLimit)
            .field("SizeEProcess", &self.SizeEProcess)
            .field("OffsetEprocessPeb", &self.OffsetEprocessPeb)
            .field("OffsetEprocessParentCID", &self.OffsetEprocessParentCID)
            .field("OffsetEprocessDirectoryTableBase", &self.OffsetEprocessDirectoryTableBase)
            .field("SizePrcb", &self.SizePrcb)
            .field("OffsetPrcbDpcRoutine", &self.OffsetPrcbDpcRoutine)
            .field("OffsetPrcbCurrentThread", &self.OffsetPrcbCurrentThread)
            .field("OffsetPrcbMhz", &self.OffsetPrcbMhz)
            .field("OffsetPrcbCpuType", &self.OffsetPrcbCpuType)
            .field("OffsetPrcbVendorString", &self.OffsetPrcbVendorString)
            .field("OffsetPrcbProcStateContext", &self.OffsetPrcbProcStateContext)
            .field("OffsetPrcbNumber", &self.OffsetPrcbNumber)
            .field("SizeEThread", &self.SizeEThread)
            .field("L1tfHighPhysicalBitIndex", &self.L1tfHighPhysicalBitIndex)
            .field("L1tfSwizzleBitIndex", &self.L1tfSwizzleBitIndex)
            .field("Padding0", &self.Padding0)
            .field("KdPrintCircularBufferPtr", &self.KdPrintCircularBufferPtr)
            .field("KdPrintBufferSize", &self.KdPrintBufferSize)
            .field("KeLoaderBlock", &self.KeLoaderBlock)
            .field("SizePcr", &self.SizePcr)
            .field("OffsetPcrSelfPcr", &self.OffsetPcrSelfPcr)
            .field("OffsetPcrCurrentPrcb", &self.OffsetPcrCurrentPrcb)
            .field("OffsetPcrContainedPrcb", &self.OffsetPcrContainedPrcb)
            .field("OffsetPcrInitialBStore", &self.OffsetPcrInitialBStore)
            .field("OffsetPcrBStoreLimit", &self.OffsetPcrBStoreLimit)
            .field("OffsetPcrInitialStack", &self.OffsetPcrInitialStack)
            .field("OffsetPcrStackLimit", &self.OffsetPcrStackLimit)
            .field("OffsetPrcbPcrPage", &self.OffsetPrcbPcrPage)
            .field("OffsetPrcbProcStateSpecialReg", &self.OffsetPrcbProcStateSpecialReg)
            .field("GdtR0Code", &self.GdtR0Code)
            .field("GdtR0Data", &self.GdtR0Data)
            .field("GdtR0Pcr", &self.GdtR0Pcr)
            .field("GdtR3Code", &self.GdtR3Code)
            .field("GdtR3Data", &self.GdtR3Data)
            .field("GdtR3Teb", &self.GdtR3Teb)
            .field("GdtLdt", &self.GdtLdt)
            .field("GdtTss", &self.GdtTss)
            .field("Gdt64R3CmCode", &self.Gdt64R3CmCode)
            .field("Gdt64R3CmTeb", &self.Gdt64R3CmTeb)
            .field("IopNumTriageDumpDataBlocks", &self.IopNumTriageDumpDataBlocks)
            .field("IopTriageDumpDataBlocks", &self.IopTriageDumpDataBlocks)
            .field("VfCrashDataBlock", &self.VfCrashDataBlock)
            .field("MmBadPagesDetected", &self.MmBadPagesDetected)
            .field("MmZeroedPageSingleBitErrorsDetected", &self.MmZeroedPageSingleBitErrorsDetected)
            .field("EtwpDebuggerData", &self.EtwpDebuggerData)
            .field("OffsetPrcbContext", &self.OffsetPrcbContext)
            .field("OffsetPrcbMaxBreakpoints", &self.OffsetPrcbMaxBreakpoints)
            .field("OffsetPrcbMaxWatchpoints", &self.OffsetPrcbMaxWatchpoints)
            .field("OffsetKThreadStackLimit", &self.OffsetKThreadStackLimit)
            .field("OffsetKThreadStackBase", &self.OffsetKThreadStackBase)
            .field("OffsetKThreadQueueListEntry", &self.OffsetKThreadQueueListEntry)
            .field("OffsetEThreadIrpList", &self.OffsetEThreadIrpList)
            .field("OffsetPrcbIdleThread", &self.OffsetPrcbIdleThread)
            .field("OffsetPrcbNormalDpcState", &self.OffsetPrcbNormalDpcState)
            .field("OffsetPrcbDpcStack", &self.OffsetPrcbDpcStack)
            .field("OffsetPrcbIsrStack", &self.OffsetPrcbIsrStack)
            .field("SizeKDPC_STACK_FRAME", &self.SizeKDPC_STACK_FRAME)
            .field("OffsetKPriQueueThreadListHead", &self.OffsetKPriQueueThreadListHead)
            .field("OffsetKThreadWaitReason", &self.OffsetKThreadWaitReason)
            .field("Padding1", &self.Padding1)
            .field("PteBase", &self.PteBase)
            .field("RetpolineStubFunctionTable", &self.RetpolineStubFunctionTable)
            .field("RetpolineStubFunctionTableSize", &self.RetpolineStubFunctionTableSize)
            .field("RetpolineStubOffset", &self.RetpolineStubOffset)
            .field("RetpolineStubSize", &self.RetpolineStubSize)
            .field("OffsetEProcessMmHotPatchContext", &self.OffsetEProcessMmHotPatchContext)
            .finish()
    }
}
#[cfg(feature = "Win32_System_Kernel")]
unsafe impl ::windows::core::Abi for KDDEBUGGER_DATA64 {
    type Abi = Self;
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::PartialEq for KDDEBUGGER_DATA64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<KDDEBUGGER_DATA64>()) == 0 }
    }
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::Eq for KDDEBUGGER_DATA64 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for KDDEBUGGER_DATA64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "x86")]
pub struct KDHELP {
    pub Thread: u32,
    pub ThCallbackStack: u32,
    pub NextCallback: u32,
    pub FramePointer: u32,
    pub KiCallUserMode: u32,
    pub KeUserCallbackDispatcher: u32,
    pub SystemRangeStart: u32,
    pub ThCallbackBStore: u32,
    pub KiUserExceptionDispatcher: u32,
    pub StackBase: u32,
    pub StackLimit: u32,
    pub Reserved: [u32; 5],
}
#[cfg(target_arch = "x86")]
impl ::core::marker::Copy for KDHELP {}
#[cfg(target_arch = "x86")]
impl ::core::clone::Clone for KDHELP {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86")]
impl ::core::fmt::Debug for KDHELP {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("KDHELP")
            .field("Thread", &self.Thread)
            .field("ThCallbackStack", &self.ThCallbackStack)
            .field("NextCallback", &self.NextCallback)
            .field("FramePointer", &self.FramePointer)
            .field("KiCallUserMode", &self.KiCallUserMode)
            .field("KeUserCallbackDispatcher", &self.KeUserCallbackDispatcher)
            .field("SystemRangeStart", &self.SystemRangeStart)
            .field("ThCallbackBStore", &self.ThCallbackBStore)
            .field("KiUserExceptionDispatcher", &self.KiUserExceptionDispatcher)
            .field("StackBase", &self.StackBase)
            .field("StackLimit", &self.StackLimit)
            .field("Reserved", &self.Reserved)
            .finish()
    }
}
#[cfg(target_arch = "x86")]
unsafe impl ::windows::core::Abi for KDHELP {
    type Abi = Self;
}
#[cfg(target_arch = "x86")]
impl ::core::cmp::PartialEq for KDHELP {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<KDHELP>()) == 0 }
    }
}
#[cfg(target_arch = "x86")]
impl ::core::cmp::Eq for KDHELP {}
#[cfg(target_arch = "x86")]
impl ::core::default::Default for KDHELP {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct KDHELP64 {
    pub Thread: u64,
    pub ThCallbackStack: u32,
    pub ThCallbackBStore: u32,
    pub NextCallback: u32,
    pub FramePointer: u32,
    pub KiCallUserMode: u64,
    pub KeUserCallbackDispatcher: u64,
    pub SystemRangeStart: u64,
    pub KiUserExceptionDispatcher: u64,
    pub StackBase: u64,
    pub StackLimit: u64,
    pub BuildVersion: u32,
    pub RetpolineStubFunctionTableSize: u32,
    pub RetpolineStubFunctionTable: u64,
    pub RetpolineStubOffset: u32,
    pub RetpolineStubSize: u32,
    pub Reserved0: [u64; 2],
}
impl ::core::marker::Copy for KDHELP64 {}
impl ::core::clone::Clone for KDHELP64 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for KDHELP64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("KDHELP64")
            .field("Thread", &self.Thread)
            .field("ThCallbackStack", &self.ThCallbackStack)
            .field("ThCallbackBStore", &self.ThCallbackBStore)
            .field("NextCallback", &self.NextCallback)
            .field("FramePointer", &self.FramePointer)
            .field("KiCallUserMode", &self.KiCallUserMode)
            .field("KeUserCallbackDispatcher", &self.KeUserCallbackDispatcher)
            .field("SystemRangeStart", &self.SystemRangeStart)
            .field("KiUserExceptionDispatcher", &self.KiUserExceptionDispatcher)
            .field("StackBase", &self.StackBase)
            .field("StackLimit", &self.StackLimit)
            .field("BuildVersion", &self.BuildVersion)
            .field("RetpolineStubFunctionTableSize", &self.RetpolineStubFunctionTableSize)
            .field("RetpolineStubFunctionTable", &self.RetpolineStubFunctionTable)
            .field("RetpolineStubOffset", &self.RetpolineStubOffset)
            .field("RetpolineStubSize", &self.RetpolineStubSize)
            .field("Reserved0", &self.Reserved0)
            .finish()
    }
}
unsafe impl ::windows::core::Abi for KDHELP64 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for KDHELP64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<KDHELP64>()) == 0 }
    }
}
impl ::core::cmp::Eq for KDHELP64 {}
impl ::core::default::Default for KDHELP64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "x86_64")]
pub struct KNONVOLATILE_CONTEXT_POINTERS {
    pub Anonymous1: KNONVOLATILE_CONTEXT_POINTERS_0,
    pub Anonymous2: KNONVOLATILE_CONTEXT_POINTERS_1,
}
#[cfg(target_arch = "x86_64")]
impl ::core::marker::Copy for KNONVOLATILE_CONTEXT_POINTERS {}
#[cfg(target_arch = "x86_64")]
impl ::core::clone::Clone for KNONVOLATILE_CONTEXT_POINTERS {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86_64")]
unsafe impl ::windows::core::Abi for KNONVOLATILE_CONTEXT_POINTERS {
    type Abi = Self;
}
#[cfg(target_arch = "x86_64")]
impl ::core::cmp::PartialEq for KNONVOLATILE_CONTEXT_POINTERS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<KNONVOLATILE_CONTEXT_POINTERS>()) == 0 }
    }
}
#[cfg(target_arch = "x86_64")]
impl ::core::cmp::Eq for KNONVOLATILE_CONTEXT_POINTERS {}
#[cfg(target_arch = "x86_64")]
impl ::core::default::Default for KNONVOLATILE_CONTEXT_POINTERS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "x86_64")]
pub union KNONVOLATILE_CONTEXT_POINTERS_0 {
    pub FloatingContext: [*mut M128A; 16],
    pub Anonymous: KNONVOLATILE_CONTEXT_POINTERS_0_0,
}
#[cfg(target_arch = "x86_64")]
impl ::core::marker::Copy for KNONVOLATILE_CONTEXT_POINTERS_0 {}
#[cfg(target_arch = "x86_64")]
impl ::core::clone::Clone for KNONVOLATILE_CONTEXT_POINTERS_0 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86_64")]
unsafe impl ::windows::core::Abi for KNONVOLATILE_CONTEXT_POINTERS_0 {
    type Abi = Self;
}
#[cfg(target_arch = "x86_64")]
impl ::core::cmp::PartialEq for KNONVOLATILE_CONTEXT_POINTERS_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<KNONVOLATILE_CONTEXT_POINTERS_0>()) == 0 }
    }
}
#[cfg(target_arch = "x86_64")]
impl ::core::cmp::Eq for KNONVOLATILE_CONTEXT_POINTERS_0 {}
#[cfg(target_arch = "x86_64")]
impl ::core::default::Default for KNONVOLATILE_CONTEXT_POINTERS_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "x86_64")]
pub struct KNONVOLATILE_CONTEXT_POINTERS_0_0 {
    pub Xmm0: *mut M128A,
    pub Xmm1: *mut M128A,
    pub Xmm2: *mut M128A,
    pub Xmm3: *mut M128A,
    pub Xmm4: *mut M128A,
    pub Xmm5: *mut M128A,
    pub Xmm6: *mut M128A,
    pub Xmm7: *mut M128A,
    pub Xmm8: *mut M128A,
    pub Xmm9: *mut M128A,
    pub Xmm10: *mut M128A,
    pub Xmm11: *mut M128A,
    pub Xmm12: *mut M128A,
    pub Xmm13: *mut M128A,
    pub Xmm14: *mut M128A,
    pub Xmm15: *mut M128A,
}
#[cfg(target_arch = "x86_64")]
impl ::core::marker::Copy for KNONVOLATILE_CONTEXT_POINTERS_0_0 {}
#[cfg(target_arch = "x86_64")]
impl ::core::clone::Clone for KNONVOLATILE_CONTEXT_POINTERS_0_0 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86_64")]
impl ::core::fmt::Debug for KNONVOLATILE_CONTEXT_POINTERS_0_0 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("KNONVOLATILE_CONTEXT_POINTERS_0_0")
            .field("Xmm0", &self.Xmm0)
            .field("Xmm1", &self.Xmm1)
            .field("Xmm2", &self.Xmm2)
            .field("Xmm3", &self.Xmm3)
            .field("Xmm4", &self.Xmm4)
            .field("Xmm5", &self.Xmm5)
            .field("Xmm6", &self.Xmm6)
            .field("Xmm7", &self.Xmm7)
            .field("Xmm8", &self.Xmm8)
            .field("Xmm9", &self.Xmm9)
            .field("Xmm10", &self.Xmm10)
            .field("Xmm11", &self.Xmm11)
            .field("Xmm12", &self.Xmm12)
            .field("Xmm13", &self.Xmm13)
            .field("Xmm14", &self.Xmm14)
            .field("Xmm15", &self.Xmm15)
            .finish()
    }
}
#[cfg(target_arch = "x86_64")]
unsafe impl ::windows::core::Abi for KNONVOLATILE_CONTEXT_POINTERS_0_0 {
    type Abi = Self;
}
#[cfg(target_arch = "x86_64")]
impl ::core::cmp::PartialEq for KNONVOLATILE_CONTEXT_POINTERS_0_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<KNONVOLATILE_CONTEXT_POINTERS_0_0>()) == 0 }
    }
}
#[cfg(target_arch = "x86_64")]
impl ::core::cmp::Eq for KNONVOLATILE_CONTEXT_POINTERS_0_0 {}
#[cfg(target_arch = "x86_64")]
impl ::core::default::Default for KNONVOLATILE_CONTEXT_POINTERS_0_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "x86_64")]
pub union KNONVOLATILE_CONTEXT_POINTERS_1 {
    pub IntegerContext: [*mut u64; 16],
    pub Anonymous: KNONVOLATILE_CONTEXT_POINTERS_1_0,
}
#[cfg(target_arch = "x86_64")]
impl ::core::marker::Copy for KNONVOLATILE_CONTEXT_POINTERS_1 {}
#[cfg(target_arch = "x86_64")]
impl ::core::clone::Clone for KNONVOLATILE_CONTEXT_POINTERS_1 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86_64")]
unsafe impl ::windows::core::Abi for KNONVOLATILE_CONTEXT_POINTERS_1 {
    type Abi = Self;
}
#[cfg(target_arch = "x86_64")]
impl ::core::cmp::PartialEq for KNONVOLATILE_CONTEXT_POINTERS_1 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<KNONVOLATILE_CONTEXT_POINTERS_1>()) == 0 }
    }
}
#[cfg(target_arch = "x86_64")]
impl ::core::cmp::Eq for KNONVOLATILE_CONTEXT_POINTERS_1 {}
#[cfg(target_arch = "x86_64")]
impl ::core::default::Default for KNONVOLATILE_CONTEXT_POINTERS_1 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "x86_64")]
pub struct KNONVOLATILE_CONTEXT_POINTERS_1_0 {
    pub Rax: *mut u64,
    pub Rcx: *mut u64,
    pub Rdx: *mut u64,
    pub Rbx: *mut u64,
    pub Rsp: *mut u64,
    pub Rbp: *mut u64,
    pub Rsi: *mut u64,
    pub Rdi: *mut u64,
    pub R8: *mut u64,
    pub R9: *mut u64,
    pub R10: *mut u64,
    pub R11: *mut u64,
    pub R12: *mut u64,
    pub R13: *mut u64,
    pub R14: *mut u64,
    pub R15: *mut u64,
}
#[cfg(target_arch = "x86_64")]
impl ::core::marker::Copy for KNONVOLATILE_CONTEXT_POINTERS_1_0 {}
#[cfg(target_arch = "x86_64")]
impl ::core::clone::Clone for KNONVOLATILE_CONTEXT_POINTERS_1_0 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86_64")]
impl ::core::fmt::Debug for KNONVOLATILE_CONTEXT_POINTERS_1_0 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("KNONVOLATILE_CONTEXT_POINTERS_1_0").field("Rax", &self.Rax).field("Rcx", &self.Rcx).field("Rdx", &self.Rdx).field("Rbx", &self.Rbx).field("Rsp", &self.Rsp).field("Rbp", &self.Rbp).field("Rsi", &self.Rsi).field("Rdi", &self.Rdi).field("R8", &self.R8).field("R9", &self.R9).field("R10", &self.R10).field("R11", &self.R11).field("R12", &self.R12).field("R13", &self.R13).field("R14", &self.R14).field("R15", &self.R15).finish()
    }
}
#[cfg(target_arch = "x86_64")]
unsafe impl ::windows::core::Abi for KNONVOLATILE_CONTEXT_POINTERS_1_0 {
    type Abi = Self;
}
#[cfg(target_arch = "x86_64")]
impl ::core::cmp::PartialEq for KNONVOLATILE_CONTEXT_POINTERS_1_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<KNONVOLATILE_CONTEXT_POINTERS_1_0>()) == 0 }
    }
}
#[cfg(target_arch = "x86_64")]
impl ::core::cmp::Eq for KNONVOLATILE_CONTEXT_POINTERS_1_0 {}
#[cfg(target_arch = "x86_64")]
impl ::core::default::Default for KNONVOLATILE_CONTEXT_POINTERS_1_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "x86")]
pub struct KNONVOLATILE_CONTEXT_POINTERS {
    pub Dummy: u32,
}
#[cfg(target_arch = "x86")]
impl ::core::marker::Copy for KNONVOLATILE_CONTEXT_POINTERS {}
#[cfg(target_arch = "x86")]
impl ::core::clone::Clone for KNONVOLATILE_CONTEXT_POINTERS {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86")]
unsafe impl ::windows::core::Abi for KNONVOLATILE_CONTEXT_POINTERS {
    type Abi = Self;
}
#[cfg(target_arch = "x86")]
impl ::core::cmp::PartialEq for KNONVOLATILE_CONTEXT_POINTERS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<KNONVOLATILE_CONTEXT_POINTERS>()) == 0 }
    }
}
#[cfg(target_arch = "x86")]
impl ::core::cmp::Eq for KNONVOLATILE_CONTEXT_POINTERS {}
#[cfg(target_arch = "x86")]
impl ::core::default::Default for KNONVOLATILE_CONTEXT_POINTERS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "aarch64")]
pub struct KNONVOLATILE_CONTEXT_POINTERS_ARM64 {
    pub X19: *mut u64,
    pub X20: *mut u64,
    pub X21: *mut u64,
    pub X22: *mut u64,
    pub X23: *mut u64,
    pub X24: *mut u64,
    pub X25: *mut u64,
    pub X26: *mut u64,
    pub X27: *mut u64,
    pub X28: *mut u64,
    pub Fp: *mut u64,
    pub Lr: *mut u64,
    pub D8: *mut u64,
    pub D9: *mut u64,
    pub D10: *mut u64,
    pub D11: *mut u64,
    pub D12: *mut u64,
    pub D13: *mut u64,
    pub D14: *mut u64,
    pub D15: *mut u64,
}
#[cfg(target_arch = "aarch64")]
impl ::core::marker::Copy for KNONVOLATILE_CONTEXT_POINTERS_ARM64 {}
#[cfg(target_arch = "aarch64")]
impl ::core::clone::Clone for KNONVOLATILE_CONTEXT_POINTERS_ARM64 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "aarch64")]
impl ::core::fmt::Debug for KNONVOLATILE_CONTEXT_POINTERS_ARM64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("KNONVOLATILE_CONTEXT_POINTERS_ARM64")
            .field("X19", &self.X19)
            .field("X20", &self.X20)
            .field("X21", &self.X21)
            .field("X22", &self.X22)
            .field("X23", &self.X23)
            .field("X24", &self.X24)
            .field("X25", &self.X25)
            .field("X26", &self.X26)
            .field("X27", &self.X27)
            .field("X28", &self.X28)
            .field("Fp", &self.Fp)
            .field("Lr", &self.Lr)
            .field("D8", &self.D8)
            .field("D9", &self.D9)
            .field("D10", &self.D10)
            .field("D11", &self.D11)
            .field("D12", &self.D12)
            .field("D13", &self.D13)
            .field("D14", &self.D14)
            .field("D15", &self.D15)
            .finish()
    }
}
#[cfg(target_arch = "aarch64")]
unsafe impl ::windows::core::Abi for KNONVOLATILE_CONTEXT_POINTERS_ARM64 {
    type Abi = Self;
}
#[cfg(target_arch = "aarch64")]
impl ::core::cmp::PartialEq for KNONVOLATILE_CONTEXT_POINTERS_ARM64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<KNONVOLATILE_CONTEXT_POINTERS_ARM64>()) == 0 }
    }
}
#[cfg(target_arch = "aarch64")]
impl ::core::cmp::Eq for KNONVOLATILE_CONTEXT_POINTERS_ARM64 {}
#[cfg(target_arch = "aarch64")]
impl ::core::default::Default for KNONVOLATILE_CONTEXT_POINTERS_ARM64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct LDT_ENTRY {
    pub LimitLow: u16,
    pub BaseLow: u16,
    pub HighWord: LDT_ENTRY_0,
}
impl ::core::marker::Copy for LDT_ENTRY {}
impl ::core::clone::Clone for LDT_ENTRY {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for LDT_ENTRY {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for LDT_ENTRY {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<LDT_ENTRY>()) == 0 }
    }
}
impl ::core::cmp::Eq for LDT_ENTRY {}
impl ::core::default::Default for LDT_ENTRY {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union LDT_ENTRY_0 {
    pub Bytes: LDT_ENTRY_0_1,
    pub Bits: LDT_ENTRY_0_0,
}
impl ::core::marker::Copy for LDT_ENTRY_0 {}
impl ::core::clone::Clone for LDT_ENTRY_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for LDT_ENTRY_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for LDT_ENTRY_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<LDT_ENTRY_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for LDT_ENTRY_0 {}
impl ::core::default::Default for LDT_ENTRY_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct LDT_ENTRY_0_0 {
    pub _bitfield: u32,
}
impl ::core::marker::Copy for LDT_ENTRY_0_0 {}
impl ::core::clone::Clone for LDT_ENTRY_0_0 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for LDT_ENTRY_0_0 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("LDT_ENTRY_0_0").field("_bitfield", &self._bitfield).finish()
    }
}
unsafe impl ::windows::core::Abi for LDT_ENTRY_0_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for LDT_ENTRY_0_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<LDT_ENTRY_0_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for LDT_ENTRY_0_0 {}
impl ::core::default::Default for LDT_ENTRY_0_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct LDT_ENTRY_0_1 {
    pub BaseMid: u8,
    pub Flags1: u8,
    pub Flags2: u8,
    pub BaseHi: u8,
}
impl ::core::marker::Copy for LDT_ENTRY_0_1 {}
impl ::core::clone::Clone for LDT_ENTRY_0_1 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for LDT_ENTRY_0_1 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("LDT_ENTRY_0_1").field("BaseMid", &self.BaseMid).field("Flags1", &self.Flags1).field("Flags2", &self.Flags2).field("BaseHi", &self.BaseHi).finish()
    }
}
unsafe impl ::windows::core::Abi for LDT_ENTRY_0_1 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for LDT_ENTRY_0_1 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<LDT_ENTRY_0_1>()) == 0 }
    }
}
impl ::core::cmp::Eq for LDT_ENTRY_0_1 {}
impl ::core::default::Default for LDT_ENTRY_0_1 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
pub struct LOADED_IMAGE {
    pub ModuleName: ::windows::core::PSTR,
    pub hFile: super::super::super::Foundation::HANDLE,
    pub MappedAddress: *mut u8,
    pub FileHeader: *mut IMAGE_NT_HEADERS64,
    pub LastRvaSection: *mut IMAGE_SECTION_HEADER,
    pub NumberOfSections: u32,
    pub Sections: *mut IMAGE_SECTION_HEADER,
    pub Characteristics: IMAGE_FILE_CHARACTERISTICS2,
    pub fSystemImage: super::super::super::Foundation::BOOLEAN,
    pub fDOSImage: super::super::super::Foundation::BOOLEAN,
    pub fReadOnly: super::super::super::Foundation::BOOLEAN,
    pub Version: u8,
    pub Links: super::super::Kernel::LIST_ENTRY,
    pub SizeOfImage: u32,
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
impl ::core::marker::Copy for LOADED_IMAGE {}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
impl ::core::clone::Clone for LOADED_IMAGE {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
impl ::core::fmt::Debug for LOADED_IMAGE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("LOADED_IMAGE")
            .field("ModuleName", &self.ModuleName)
            .field("hFile", &self.hFile)
            .field("MappedAddress", &self.MappedAddress)
            .field("FileHeader", &self.FileHeader)
            .field("LastRvaSection", &self.LastRvaSection)
            .field("NumberOfSections", &self.NumberOfSections)
            .field("Sections", &self.Sections)
            .field("Characteristics", &self.Characteristics)
            .field("fSystemImage", &self.fSystemImage)
            .field("fDOSImage", &self.fDOSImage)
            .field("fReadOnly", &self.fReadOnly)
            .field("Version", &self.Version)
            .field("Links", &self.Links)
            .field("SizeOfImage", &self.SizeOfImage)
            .finish()
    }
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
unsafe impl ::windows::core::Abi for LOADED_IMAGE {
    type Abi = Self;
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
impl ::core::cmp::PartialEq for LOADED_IMAGE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<LOADED_IMAGE>()) == 0 }
    }
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
impl ::core::cmp::Eq for LOADED_IMAGE {}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
impl ::core::default::Default for LOADED_IMAGE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
pub struct LOADED_IMAGE {
    pub ModuleName: ::windows::core::PSTR,
    pub hFile: super::super::super::Foundation::HANDLE,
    pub MappedAddress: *mut u8,
    pub FileHeader: *mut IMAGE_NT_HEADERS32,
    pub LastRvaSection: *mut IMAGE_SECTION_HEADER,
    pub NumberOfSections: u32,
    pub Sections: *mut IMAGE_SECTION_HEADER,
    pub Characteristics: IMAGE_FILE_CHARACTERISTICS2,
    pub fSystemImage: super::super::super::Foundation::BOOLEAN,
    pub fDOSImage: super::super::super::Foundation::BOOLEAN,
    pub fReadOnly: super::super::super::Foundation::BOOLEAN,
    pub Version: u8,
    pub Links: super::super::Kernel::LIST_ENTRY,
    pub SizeOfImage: u32,
}
#[cfg(target_arch = "x86")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
impl ::core::marker::Copy for LOADED_IMAGE {}
#[cfg(target_arch = "x86")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
impl ::core::clone::Clone for LOADED_IMAGE {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
impl ::core::fmt::Debug for LOADED_IMAGE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("LOADED_IMAGE")
            .field("ModuleName", &self.ModuleName)
            .field("hFile", &self.hFile)
            .field("MappedAddress", &self.MappedAddress)
            .field("FileHeader", &self.FileHeader)
            .field("LastRvaSection", &self.LastRvaSection)
            .field("NumberOfSections", &self.NumberOfSections)
            .field("Sections", &self.Sections)
            .field("Characteristics", &self.Characteristics)
            .field("fSystemImage", &self.fSystemImage)
            .field("fDOSImage", &self.fDOSImage)
            .field("fReadOnly", &self.fReadOnly)
            .field("Version", &self.Version)
            .field("Links", &self.Links)
            .field("SizeOfImage", &self.SizeOfImage)
            .finish()
    }
}
#[cfg(target_arch = "x86")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
unsafe impl ::windows::core::Abi for LOADED_IMAGE {
    type Abi = Self;
}
#[cfg(target_arch = "x86")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
impl ::core::cmp::PartialEq for LOADED_IMAGE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<LOADED_IMAGE>()) == 0 }
    }
}
#[cfg(target_arch = "x86")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
impl ::core::cmp::Eq for LOADED_IMAGE {}
#[cfg(target_arch = "x86")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))]
impl ::core::default::Default for LOADED_IMAGE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct LOAD_DLL_DEBUG_INFO {
    pub hFile: super::super::super::Foundation::HANDLE,
    pub lpBaseOfDll: *mut ::core::ffi::c_void,
    pub dwDebugInfoFileOffset: u32,
    pub nDebugInfoSize: u32,
    pub lpImageName: *mut ::core::ffi::c_void,
    pub fUnicode: u16,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for LOAD_DLL_DEBUG_INFO {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for LOAD_DLL_DEBUG_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for LOAD_DLL_DEBUG_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("LOAD_DLL_DEBUG_INFO").field("hFile", &self.hFile).field("lpBaseOfDll", &self.lpBaseOfDll).field("dwDebugInfoFileOffset", &self.dwDebugInfoFileOffset).field("nDebugInfoSize", &self.nDebugInfoSize).field("lpImageName", &self.lpImageName).field("fUnicode", &self.fUnicode).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for LOAD_DLL_DEBUG_INFO {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for LOAD_DLL_DEBUG_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<LOAD_DLL_DEBUG_INFO>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for LOAD_DLL_DEBUG_INFO {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for LOAD_DLL_DEBUG_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct Location {
    pub HostDefined: u64,
    pub Offset: u64,
}
impl ::core::marker::Copy for Location {}
impl ::core::clone::Clone for Location {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for Location {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("Location").field("HostDefined", &self.HostDefined).field("Offset", &self.Offset).finish()
    }
}
unsafe impl ::windows::core::Abi for Location {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for Location {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<Location>()) == 0 }
    }
}
impl ::core::cmp::Eq for Location {}
impl ::core::default::Default for Location {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct M128A {
    pub Low: u64,
    pub High: i64,
}
impl ::core::marker::Copy for M128A {}
impl ::core::clone::Clone for M128A {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for M128A {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("M128A").field("Low", &self.Low).field("High", &self.High).finish()
    }
}
unsafe impl ::windows::core::Abi for M128A {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for M128A {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<M128A>()) == 0 }
    }
}
impl ::core::cmp::Eq for M128A {}
impl ::core::default::Default for M128A {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Memory\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel", feature = "Win32_System_Memory"))]
pub struct MINIDUMP_CALLBACK_INFORMATION {
    pub CallbackRoutine: MINIDUMP_CALLBACK_ROUTINE,
    pub CallbackParam: *mut ::core::ffi::c_void,
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel", feature = "Win32_System_Memory"))]
impl ::core::marker::Copy for MINIDUMP_CALLBACK_INFORMATION {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel", feature = "Win32_System_Memory"))]
impl ::core::clone::Clone for MINIDUMP_CALLBACK_INFORMATION {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel", feature = "Win32_System_Memory"))]
unsafe impl ::windows::core::Abi for MINIDUMP_CALLBACK_INFORMATION {
    type Abi = Self;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel", feature = "Win32_System_Memory"))]
impl ::core::cmp::PartialEq for MINIDUMP_CALLBACK_INFORMATION {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_CALLBACK_INFORMATION>()) == 0 }
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel", feature = "Win32_System_Memory"))]
impl ::core::cmp::Eq for MINIDUMP_CALLBACK_INFORMATION {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel", feature = "Win32_System_Memory"))]
impl ::core::default::Default for MINIDUMP_CALLBACK_INFORMATION {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel"))]
pub struct MINIDUMP_CALLBACK_INPUT {
    pub ProcessId: u32,
    pub ProcessHandle: super::super::super::Foundation::HANDLE,
    pub CallbackType: u32,
    pub Anonymous: MINIDUMP_CALLBACK_INPUT_0,
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel"))]
impl ::core::marker::Copy for MINIDUMP_CALLBACK_INPUT {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel"))]
impl ::core::clone::Clone for MINIDUMP_CALLBACK_INPUT {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel"))]
unsafe impl ::windows::core::Abi for MINIDUMP_CALLBACK_INPUT {
    type Abi = Self;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel"))]
impl ::core::cmp::PartialEq for MINIDUMP_CALLBACK_INPUT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_CALLBACK_INPUT>()) == 0 }
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel"))]
impl ::core::cmp::Eq for MINIDUMP_CALLBACK_INPUT {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel"))]
impl ::core::default::Default for MINIDUMP_CALLBACK_INPUT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel"))]
pub union MINIDUMP_CALLBACK_INPUT_0 {
    pub Status: ::windows::core::HRESULT,
    pub Thread: MINIDUMP_THREAD_CALLBACK,
    pub ThreadEx: MINIDUMP_THREAD_EX_CALLBACK,
    pub Module: MINIDUMP_MODULE_CALLBACK,
    pub IncludeThread: MINIDUMP_INCLUDE_THREAD_CALLBACK,
    pub IncludeModule: MINIDUMP_INCLUDE_MODULE_CALLBACK,
    pub Io: MINIDUMP_IO_CALLBACK,
    pub ReadMemoryFailure: MINIDUMP_READ_MEMORY_FAILURE_CALLBACK,
    pub SecondaryFlags: u32,
    pub VmQuery: MINIDUMP_VM_QUERY_CALLBACK,
    pub VmPreRead: MINIDUMP_VM_PRE_READ_CALLBACK,
    pub VmPostRead: MINIDUMP_VM_POST_READ_CALLBACK,
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel"))]
impl ::core::marker::Copy for MINIDUMP_CALLBACK_INPUT_0 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel"))]
impl ::core::clone::Clone for MINIDUMP_CALLBACK_INPUT_0 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel"))]
unsafe impl ::windows::core::Abi for MINIDUMP_CALLBACK_INPUT_0 {
    type Abi = Self;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel"))]
impl ::core::cmp::PartialEq for MINIDUMP_CALLBACK_INPUT_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_CALLBACK_INPUT_0>()) == 0 }
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel"))]
impl ::core::cmp::Eq for MINIDUMP_CALLBACK_INPUT_0 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel"))]
impl ::core::default::Default for MINIDUMP_CALLBACK_INPUT_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Memory\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
pub struct MINIDUMP_CALLBACK_OUTPUT {
    pub Anonymous: MINIDUMP_CALLBACK_OUTPUT_0,
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::marker::Copy for MINIDUMP_CALLBACK_OUTPUT {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::clone::Clone for MINIDUMP_CALLBACK_OUTPUT {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
unsafe impl ::windows::core::Abi for MINIDUMP_CALLBACK_OUTPUT {
    type Abi = Self;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::cmp::PartialEq for MINIDUMP_CALLBACK_OUTPUT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_CALLBACK_OUTPUT>()) == 0 }
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::cmp::Eq for MINIDUMP_CALLBACK_OUTPUT {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::default::Default for MINIDUMP_CALLBACK_OUTPUT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Memory\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
pub union MINIDUMP_CALLBACK_OUTPUT_0 {
    pub ModuleWriteFlags: u32,
    pub ThreadWriteFlags: u32,
    pub SecondaryFlags: u32,
    pub Anonymous1: MINIDUMP_CALLBACK_OUTPUT_0_0,
    pub Anonymous2: MINIDUMP_CALLBACK_OUTPUT_0_1,
    pub Handle: super::super::super::Foundation::HANDLE,
    pub Anonymous3: MINIDUMP_CALLBACK_OUTPUT_0_2,
    pub Anonymous4: MINIDUMP_CALLBACK_OUTPUT_0_3,
    pub Anonymous5: MINIDUMP_CALLBACK_OUTPUT_0_4,
    pub Status: ::windows::core::HRESULT,
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::marker::Copy for MINIDUMP_CALLBACK_OUTPUT_0 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::clone::Clone for MINIDUMP_CALLBACK_OUTPUT_0 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
unsafe impl ::windows::core::Abi for MINIDUMP_CALLBACK_OUTPUT_0 {
    type Abi = Self;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::cmp::PartialEq for MINIDUMP_CALLBACK_OUTPUT_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_CALLBACK_OUTPUT_0>()) == 0 }
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::cmp::Eq for MINIDUMP_CALLBACK_OUTPUT_0 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::default::Default for MINIDUMP_CALLBACK_OUTPUT_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Memory\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
pub struct MINIDUMP_CALLBACK_OUTPUT_0_0 {
    pub MemoryBase: u64,
    pub MemorySize: u32,
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::marker::Copy for MINIDUMP_CALLBACK_OUTPUT_0_0 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::clone::Clone for MINIDUMP_CALLBACK_OUTPUT_0_0 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
unsafe impl ::windows::core::Abi for MINIDUMP_CALLBACK_OUTPUT_0_0 {
    type Abi = Self;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::cmp::PartialEq for MINIDUMP_CALLBACK_OUTPUT_0_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_CALLBACK_OUTPUT_0_0>()) == 0 }
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::cmp::Eq for MINIDUMP_CALLBACK_OUTPUT_0_0 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::default::Default for MINIDUMP_CALLBACK_OUTPUT_0_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Memory\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
pub struct MINIDUMP_CALLBACK_OUTPUT_0_1 {
    pub CheckCancel: super::super::super::Foundation::BOOL,
    pub Cancel: super::super::super::Foundation::BOOL,
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::marker::Copy for MINIDUMP_CALLBACK_OUTPUT_0_1 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::clone::Clone for MINIDUMP_CALLBACK_OUTPUT_0_1 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::fmt::Debug for MINIDUMP_CALLBACK_OUTPUT_0_1 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("MINIDUMP_CALLBACK_OUTPUT_0_1").field("CheckCancel", &self.CheckCancel).field("Cancel", &self.Cancel).finish()
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
unsafe impl ::windows::core::Abi for MINIDUMP_CALLBACK_OUTPUT_0_1 {
    type Abi = Self;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::cmp::PartialEq for MINIDUMP_CALLBACK_OUTPUT_0_1 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_CALLBACK_OUTPUT_0_1>()) == 0 }
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::cmp::Eq for MINIDUMP_CALLBACK_OUTPUT_0_1 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::default::Default for MINIDUMP_CALLBACK_OUTPUT_0_1 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Memory\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
pub struct MINIDUMP_CALLBACK_OUTPUT_0_2 {
    pub VmRegion: MINIDUMP_MEMORY_INFO,
    pub Continue: super::super::super::Foundation::BOOL,
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::marker::Copy for MINIDUMP_CALLBACK_OUTPUT_0_2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::clone::Clone for MINIDUMP_CALLBACK_OUTPUT_0_2 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
unsafe impl ::windows::core::Abi for MINIDUMP_CALLBACK_OUTPUT_0_2 {
    type Abi = Self;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::cmp::PartialEq for MINIDUMP_CALLBACK_OUTPUT_0_2 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_CALLBACK_OUTPUT_0_2>()) == 0 }
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::cmp::Eq for MINIDUMP_CALLBACK_OUTPUT_0_2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::default::Default for MINIDUMP_CALLBACK_OUTPUT_0_2 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Memory\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
pub struct MINIDUMP_CALLBACK_OUTPUT_0_3 {
    pub VmQueryStatus: ::windows::core::HRESULT,
    pub VmQueryResult: MINIDUMP_MEMORY_INFO,
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::marker::Copy for MINIDUMP_CALLBACK_OUTPUT_0_3 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::clone::Clone for MINIDUMP_CALLBACK_OUTPUT_0_3 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
unsafe impl ::windows::core::Abi for MINIDUMP_CALLBACK_OUTPUT_0_3 {
    type Abi = Self;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::cmp::PartialEq for MINIDUMP_CALLBACK_OUTPUT_0_3 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_CALLBACK_OUTPUT_0_3>()) == 0 }
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::cmp::Eq for MINIDUMP_CALLBACK_OUTPUT_0_3 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::default::Default for MINIDUMP_CALLBACK_OUTPUT_0_3 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Memory\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
pub struct MINIDUMP_CALLBACK_OUTPUT_0_4 {
    pub VmReadStatus: ::windows::core::HRESULT,
    pub VmReadBytesCompleted: u32,
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::marker::Copy for MINIDUMP_CALLBACK_OUTPUT_0_4 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::clone::Clone for MINIDUMP_CALLBACK_OUTPUT_0_4 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::fmt::Debug for MINIDUMP_CALLBACK_OUTPUT_0_4 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("MINIDUMP_CALLBACK_OUTPUT_0_4").field("VmReadStatus", &self.VmReadStatus).field("VmReadBytesCompleted", &self.VmReadBytesCompleted).finish()
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
unsafe impl ::windows::core::Abi for MINIDUMP_CALLBACK_OUTPUT_0_4 {
    type Abi = Self;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::cmp::PartialEq for MINIDUMP_CALLBACK_OUTPUT_0_4 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_CALLBACK_OUTPUT_0_4>()) == 0 }
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::cmp::Eq for MINIDUMP_CALLBACK_OUTPUT_0_4 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Memory"))]
impl ::core::default::Default for MINIDUMP_CALLBACK_OUTPUT_0_4 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_DIRECTORY {
    pub StreamType: u32,
    pub Location: MINIDUMP_LOCATION_DESCRIPTOR,
}
impl ::core::marker::Copy for MINIDUMP_DIRECTORY {}
impl ::core::clone::Clone for MINIDUMP_DIRECTORY {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_DIRECTORY {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_DIRECTORY {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_DIRECTORY>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_DIRECTORY {}
impl ::core::default::Default for MINIDUMP_DIRECTORY {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_EXCEPTION {
    pub ExceptionCode: u32,
    pub ExceptionFlags: u32,
    pub ExceptionRecord: u64,
    pub ExceptionAddress: u64,
    pub NumberParameters: u32,
    pub __unusedAlignment: u32,
    pub ExceptionInformation: [u64; 15],
}
impl ::core::marker::Copy for MINIDUMP_EXCEPTION {}
impl ::core::clone::Clone for MINIDUMP_EXCEPTION {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_EXCEPTION {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_EXCEPTION {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_EXCEPTION>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_EXCEPTION {}
impl ::core::default::Default for MINIDUMP_EXCEPTION {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
pub struct MINIDUMP_EXCEPTION_INFORMATION {
    pub ThreadId: u32,
    pub ExceptionPointers: *mut EXCEPTION_POINTERS,
    pub ClientPointers: super::super::super::Foundation::BOOL,
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::marker::Copy for MINIDUMP_EXCEPTION_INFORMATION {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::clone::Clone for MINIDUMP_EXCEPTION_INFORMATION {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
unsafe impl ::windows::core::Abi for MINIDUMP_EXCEPTION_INFORMATION {
    type Abi = Self;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::cmp::PartialEq for MINIDUMP_EXCEPTION_INFORMATION {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_EXCEPTION_INFORMATION>()) == 0 }
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::cmp::Eq for MINIDUMP_EXCEPTION_INFORMATION {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::default::Default for MINIDUMP_EXCEPTION_INFORMATION {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct MINIDUMP_EXCEPTION_INFORMATION64 {
    pub ThreadId: u32,
    pub ExceptionRecord: u64,
    pub ContextRecord: u64,
    pub ClientPointers: super::super::super::Foundation::BOOL,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for MINIDUMP_EXCEPTION_INFORMATION64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for MINIDUMP_EXCEPTION_INFORMATION64 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for MINIDUMP_EXCEPTION_INFORMATION64 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for MINIDUMP_EXCEPTION_INFORMATION64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_EXCEPTION_INFORMATION64>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for MINIDUMP_EXCEPTION_INFORMATION64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for MINIDUMP_EXCEPTION_INFORMATION64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_EXCEPTION_STREAM {
    pub ThreadId: u32,
    pub __alignment: u32,
    pub ExceptionRecord: MINIDUMP_EXCEPTION,
    pub ThreadContext: MINIDUMP_LOCATION_DESCRIPTOR,
}
impl ::core::marker::Copy for MINIDUMP_EXCEPTION_STREAM {}
impl ::core::clone::Clone for MINIDUMP_EXCEPTION_STREAM {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_EXCEPTION_STREAM {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_EXCEPTION_STREAM {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_EXCEPTION_STREAM>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_EXCEPTION_STREAM {}
impl ::core::default::Default for MINIDUMP_EXCEPTION_STREAM {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_FUNCTION_TABLE_DESCRIPTOR {
    pub MinimumAddress: u64,
    pub MaximumAddress: u64,
    pub BaseAddress: u64,
    pub EntryCount: u32,
    pub SizeOfAlignPad: u32,
}
impl ::core::marker::Copy for MINIDUMP_FUNCTION_TABLE_DESCRIPTOR {}
impl ::core::clone::Clone for MINIDUMP_FUNCTION_TABLE_DESCRIPTOR {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_FUNCTION_TABLE_DESCRIPTOR {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_FUNCTION_TABLE_DESCRIPTOR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_FUNCTION_TABLE_DESCRIPTOR>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_FUNCTION_TABLE_DESCRIPTOR {}
impl ::core::default::Default for MINIDUMP_FUNCTION_TABLE_DESCRIPTOR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_FUNCTION_TABLE_STREAM {
    pub SizeOfHeader: u32,
    pub SizeOfDescriptor: u32,
    pub SizeOfNativeDescriptor: u32,
    pub SizeOfFunctionEntry: u32,
    pub NumberOfDescriptors: u32,
    pub SizeOfAlignPad: u32,
}
impl ::core::marker::Copy for MINIDUMP_FUNCTION_TABLE_STREAM {}
impl ::core::clone::Clone for MINIDUMP_FUNCTION_TABLE_STREAM {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_FUNCTION_TABLE_STREAM {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_FUNCTION_TABLE_STREAM {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_FUNCTION_TABLE_STREAM>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_FUNCTION_TABLE_STREAM {}
impl ::core::default::Default for MINIDUMP_FUNCTION_TABLE_STREAM {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_HANDLE_DATA_STREAM {
    pub SizeOfHeader: u32,
    pub SizeOfDescriptor: u32,
    pub NumberOfDescriptors: u32,
    pub Reserved: u32,
}
impl ::core::marker::Copy for MINIDUMP_HANDLE_DATA_STREAM {}
impl ::core::clone::Clone for MINIDUMP_HANDLE_DATA_STREAM {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_HANDLE_DATA_STREAM {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_HANDLE_DATA_STREAM {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_HANDLE_DATA_STREAM>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_HANDLE_DATA_STREAM {}
impl ::core::default::Default for MINIDUMP_HANDLE_DATA_STREAM {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_HANDLE_DESCRIPTOR {
    pub Handle: u64,
    pub TypeNameRva: u32,
    pub ObjectNameRva: u32,
    pub Attributes: u32,
    pub GrantedAccess: u32,
    pub HandleCount: u32,
    pub PointerCount: u32,
}
impl ::core::marker::Copy for MINIDUMP_HANDLE_DESCRIPTOR {}
impl ::core::clone::Clone for MINIDUMP_HANDLE_DESCRIPTOR {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_HANDLE_DESCRIPTOR {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_HANDLE_DESCRIPTOR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_HANDLE_DESCRIPTOR>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_HANDLE_DESCRIPTOR {}
impl ::core::default::Default for MINIDUMP_HANDLE_DESCRIPTOR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_HANDLE_DESCRIPTOR_2 {
    pub Handle: u64,
    pub TypeNameRva: u32,
    pub ObjectNameRva: u32,
    pub Attributes: u32,
    pub GrantedAccess: u32,
    pub HandleCount: u32,
    pub PointerCount: u32,
    pub ObjectInfoRva: u32,
    pub Reserved0: u32,
}
impl ::core::marker::Copy for MINIDUMP_HANDLE_DESCRIPTOR_2 {}
impl ::core::clone::Clone for MINIDUMP_HANDLE_DESCRIPTOR_2 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_HANDLE_DESCRIPTOR_2 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_HANDLE_DESCRIPTOR_2 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_HANDLE_DESCRIPTOR_2>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_HANDLE_DESCRIPTOR_2 {}
impl ::core::default::Default for MINIDUMP_HANDLE_DESCRIPTOR_2 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_HANDLE_OBJECT_INFORMATION {
    pub NextInfoRva: u32,
    pub InfoType: u32,
    pub SizeOfInfo: u32,
}
impl ::core::marker::Copy for MINIDUMP_HANDLE_OBJECT_INFORMATION {}
impl ::core::clone::Clone for MINIDUMP_HANDLE_OBJECT_INFORMATION {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_HANDLE_OBJECT_INFORMATION {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_HANDLE_OBJECT_INFORMATION {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_HANDLE_OBJECT_INFORMATION>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_HANDLE_OBJECT_INFORMATION {}
impl ::core::default::Default for MINIDUMP_HANDLE_OBJECT_INFORMATION {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_HANDLE_OPERATION_LIST {
    pub SizeOfHeader: u32,
    pub SizeOfEntry: u32,
    pub NumberOfEntries: u32,
    pub Reserved: u32,
}
impl ::core::marker::Copy for MINIDUMP_HANDLE_OPERATION_LIST {}
impl ::core::clone::Clone for MINIDUMP_HANDLE_OPERATION_LIST {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_HANDLE_OPERATION_LIST {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_HANDLE_OPERATION_LIST {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_HANDLE_OPERATION_LIST>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_HANDLE_OPERATION_LIST {}
impl ::core::default::Default for MINIDUMP_HANDLE_OPERATION_LIST {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_HEADER {
    pub Signature: u32,
    pub Version: u32,
    pub NumberOfStreams: u32,
    pub StreamDirectoryRva: u32,
    pub CheckSum: u32,
    pub Anonymous: MINIDUMP_HEADER_0,
    pub Flags: u64,
}
impl ::core::marker::Copy for MINIDUMP_HEADER {}
impl ::core::clone::Clone for MINIDUMP_HEADER {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_HEADER {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_HEADER {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_HEADER>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_HEADER {}
impl ::core::default::Default for MINIDUMP_HEADER {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union MINIDUMP_HEADER_0 {
    pub Reserved: u32,
    pub TimeDateStamp: u32,
}
impl ::core::marker::Copy for MINIDUMP_HEADER_0 {}
impl ::core::clone::Clone for MINIDUMP_HEADER_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_HEADER_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_HEADER_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_HEADER_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_HEADER_0 {}
impl ::core::default::Default for MINIDUMP_HEADER_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_INCLUDE_MODULE_CALLBACK {
    pub BaseOfImage: u64,
}
impl ::core::marker::Copy for MINIDUMP_INCLUDE_MODULE_CALLBACK {}
impl ::core::clone::Clone for MINIDUMP_INCLUDE_MODULE_CALLBACK {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_INCLUDE_MODULE_CALLBACK {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_INCLUDE_MODULE_CALLBACK {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_INCLUDE_MODULE_CALLBACK>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_INCLUDE_MODULE_CALLBACK {}
impl ::core::default::Default for MINIDUMP_INCLUDE_MODULE_CALLBACK {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_INCLUDE_THREAD_CALLBACK {
    pub ThreadId: u32,
}
impl ::core::marker::Copy for MINIDUMP_INCLUDE_THREAD_CALLBACK {}
impl ::core::clone::Clone for MINIDUMP_INCLUDE_THREAD_CALLBACK {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_INCLUDE_THREAD_CALLBACK {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_INCLUDE_THREAD_CALLBACK {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_INCLUDE_THREAD_CALLBACK>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_INCLUDE_THREAD_CALLBACK {}
impl ::core::default::Default for MINIDUMP_INCLUDE_THREAD_CALLBACK {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct MINIDUMP_IO_CALLBACK {
    pub Handle: super::super::super::Foundation::HANDLE,
    pub Offset: u64,
    pub Buffer: *mut ::core::ffi::c_void,
    pub BufferBytes: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for MINIDUMP_IO_CALLBACK {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for MINIDUMP_IO_CALLBACK {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for MINIDUMP_IO_CALLBACK {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for MINIDUMP_IO_CALLBACK {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_IO_CALLBACK>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for MINIDUMP_IO_CALLBACK {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for MINIDUMP_IO_CALLBACK {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_LOCATION_DESCRIPTOR {
    pub DataSize: u32,
    pub Rva: u32,
}
impl ::core::marker::Copy for MINIDUMP_LOCATION_DESCRIPTOR {}
impl ::core::clone::Clone for MINIDUMP_LOCATION_DESCRIPTOR {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_LOCATION_DESCRIPTOR {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_LOCATION_DESCRIPTOR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_LOCATION_DESCRIPTOR>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_LOCATION_DESCRIPTOR {}
impl ::core::default::Default for MINIDUMP_LOCATION_DESCRIPTOR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_LOCATION_DESCRIPTOR64 {
    pub DataSize: u64,
    pub Rva: u64,
}
impl ::core::marker::Copy for MINIDUMP_LOCATION_DESCRIPTOR64 {}
impl ::core::clone::Clone for MINIDUMP_LOCATION_DESCRIPTOR64 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_LOCATION_DESCRIPTOR64 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_LOCATION_DESCRIPTOR64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_LOCATION_DESCRIPTOR64>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_LOCATION_DESCRIPTOR64 {}
impl ::core::default::Default for MINIDUMP_LOCATION_DESCRIPTOR64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_MEMORY64_LIST {
    pub NumberOfMemoryRanges: u64,
    pub BaseRva: u64,
    pub MemoryRanges: [MINIDUMP_MEMORY_DESCRIPTOR64; 1],
}
impl ::core::marker::Copy for MINIDUMP_MEMORY64_LIST {}
impl ::core::clone::Clone for MINIDUMP_MEMORY64_LIST {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_MEMORY64_LIST {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_MEMORY64_LIST {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_MEMORY64_LIST>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_MEMORY64_LIST {}
impl ::core::default::Default for MINIDUMP_MEMORY64_LIST {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_MEMORY_DESCRIPTOR {
    pub StartOfMemoryRange: u64,
    pub Memory: MINIDUMP_LOCATION_DESCRIPTOR,
}
impl ::core::marker::Copy for MINIDUMP_MEMORY_DESCRIPTOR {}
impl ::core::clone::Clone for MINIDUMP_MEMORY_DESCRIPTOR {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_MEMORY_DESCRIPTOR {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_MEMORY_DESCRIPTOR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_MEMORY_DESCRIPTOR>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_MEMORY_DESCRIPTOR {}
impl ::core::default::Default for MINIDUMP_MEMORY_DESCRIPTOR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_MEMORY_DESCRIPTOR64 {
    pub StartOfMemoryRange: u64,
    pub DataSize: u64,
}
impl ::core::marker::Copy for MINIDUMP_MEMORY_DESCRIPTOR64 {}
impl ::core::clone::Clone for MINIDUMP_MEMORY_DESCRIPTOR64 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_MEMORY_DESCRIPTOR64 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_MEMORY_DESCRIPTOR64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_MEMORY_DESCRIPTOR64>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_MEMORY_DESCRIPTOR64 {}
impl ::core::default::Default for MINIDUMP_MEMORY_DESCRIPTOR64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Memory\"`*"]
#[cfg(feature = "Win32_System_Memory")]
pub struct MINIDUMP_MEMORY_INFO {
    pub BaseAddress: u64,
    pub AllocationBase: u64,
    pub AllocationProtect: u32,
    pub __alignment1: u32,
    pub RegionSize: u64,
    pub State: super::super::Memory::VIRTUAL_ALLOCATION_TYPE,
    pub Protect: u32,
    pub Type: u32,
    pub __alignment2: u32,
}
#[cfg(feature = "Win32_System_Memory")]
impl ::core::marker::Copy for MINIDUMP_MEMORY_INFO {}
#[cfg(feature = "Win32_System_Memory")]
impl ::core::clone::Clone for MINIDUMP_MEMORY_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_System_Memory")]
unsafe impl ::windows::core::Abi for MINIDUMP_MEMORY_INFO {
    type Abi = Self;
}
#[cfg(feature = "Win32_System_Memory")]
impl ::core::cmp::PartialEq for MINIDUMP_MEMORY_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_MEMORY_INFO>()) == 0 }
    }
}
#[cfg(feature = "Win32_System_Memory")]
impl ::core::cmp::Eq for MINIDUMP_MEMORY_INFO {}
#[cfg(feature = "Win32_System_Memory")]
impl ::core::default::Default for MINIDUMP_MEMORY_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_MEMORY_INFO_LIST {
    pub SizeOfHeader: u32,
    pub SizeOfEntry: u32,
    pub NumberOfEntries: u64,
}
impl ::core::marker::Copy for MINIDUMP_MEMORY_INFO_LIST {}
impl ::core::clone::Clone for MINIDUMP_MEMORY_INFO_LIST {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_MEMORY_INFO_LIST {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_MEMORY_INFO_LIST {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_MEMORY_INFO_LIST>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_MEMORY_INFO_LIST {}
impl ::core::default::Default for MINIDUMP_MEMORY_INFO_LIST {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_MEMORY_LIST {
    pub NumberOfMemoryRanges: u32,
    pub MemoryRanges: [MINIDUMP_MEMORY_DESCRIPTOR; 1],
}
impl ::core::marker::Copy for MINIDUMP_MEMORY_LIST {}
impl ::core::clone::Clone for MINIDUMP_MEMORY_LIST {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_MEMORY_LIST {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_MEMORY_LIST {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_MEMORY_LIST>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_MEMORY_LIST {}
impl ::core::default::Default for MINIDUMP_MEMORY_LIST {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_MISC_INFO {
    pub SizeOfInfo: u32,
    pub Flags1: MINIDUMP_MISC_INFO_FLAGS,
    pub ProcessId: u32,
    pub ProcessCreateTime: u32,
    pub ProcessUserTime: u32,
    pub ProcessKernelTime: u32,
}
impl ::core::marker::Copy for MINIDUMP_MISC_INFO {}
impl ::core::clone::Clone for MINIDUMP_MISC_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_MISC_INFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_MISC_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_MISC_INFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_MISC_INFO {}
impl ::core::default::Default for MINIDUMP_MISC_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_MISC_INFO_2 {
    pub SizeOfInfo: u32,
    pub Flags1: u32,
    pub ProcessId: u32,
    pub ProcessCreateTime: u32,
    pub ProcessUserTime: u32,
    pub ProcessKernelTime: u32,
    pub ProcessorMaxMhz: u32,
    pub ProcessorCurrentMhz: u32,
    pub ProcessorMhzLimit: u32,
    pub ProcessorMaxIdleState: u32,
    pub ProcessorCurrentIdleState: u32,
}
impl ::core::marker::Copy for MINIDUMP_MISC_INFO_2 {}
impl ::core::clone::Clone for MINIDUMP_MISC_INFO_2 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_MISC_INFO_2 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_MISC_INFO_2 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_MISC_INFO_2>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_MISC_INFO_2 {}
impl ::core::default::Default for MINIDUMP_MISC_INFO_2 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Time\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
pub struct MINIDUMP_MISC_INFO_3 {
    pub SizeOfInfo: u32,
    pub Flags1: u32,
    pub ProcessId: u32,
    pub ProcessCreateTime: u32,
    pub ProcessUserTime: u32,
    pub ProcessKernelTime: u32,
    pub ProcessorMaxMhz: u32,
    pub ProcessorCurrentMhz: u32,
    pub ProcessorMhzLimit: u32,
    pub ProcessorMaxIdleState: u32,
    pub ProcessorCurrentIdleState: u32,
    pub ProcessIntegrityLevel: u32,
    pub ProcessExecuteFlags: u32,
    pub ProtectedProcess: u32,
    pub TimeZoneId: u32,
    pub TimeZone: super::super::Time::TIME_ZONE_INFORMATION,
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
impl ::core::marker::Copy for MINIDUMP_MISC_INFO_3 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
impl ::core::clone::Clone for MINIDUMP_MISC_INFO_3 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
unsafe impl ::windows::core::Abi for MINIDUMP_MISC_INFO_3 {
    type Abi = Self;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
impl ::core::cmp::PartialEq for MINIDUMP_MISC_INFO_3 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_MISC_INFO_3>()) == 0 }
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
impl ::core::cmp::Eq for MINIDUMP_MISC_INFO_3 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
impl ::core::default::Default for MINIDUMP_MISC_INFO_3 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Time\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
pub struct MINIDUMP_MISC_INFO_4 {
    pub SizeOfInfo: u32,
    pub Flags1: u32,
    pub ProcessId: u32,
    pub ProcessCreateTime: u32,
    pub ProcessUserTime: u32,
    pub ProcessKernelTime: u32,
    pub ProcessorMaxMhz: u32,
    pub ProcessorCurrentMhz: u32,
    pub ProcessorMhzLimit: u32,
    pub ProcessorMaxIdleState: u32,
    pub ProcessorCurrentIdleState: u32,
    pub ProcessIntegrityLevel: u32,
    pub ProcessExecuteFlags: u32,
    pub ProtectedProcess: u32,
    pub TimeZoneId: u32,
    pub TimeZone: super::super::Time::TIME_ZONE_INFORMATION,
    pub BuildString: [u16; 260],
    pub DbgBldStr: [u16; 40],
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
impl ::core::marker::Copy for MINIDUMP_MISC_INFO_4 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
impl ::core::clone::Clone for MINIDUMP_MISC_INFO_4 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
unsafe impl ::windows::core::Abi for MINIDUMP_MISC_INFO_4 {
    type Abi = Self;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
impl ::core::cmp::PartialEq for MINIDUMP_MISC_INFO_4 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_MISC_INFO_4>()) == 0 }
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
impl ::core::cmp::Eq for MINIDUMP_MISC_INFO_4 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
impl ::core::default::Default for MINIDUMP_MISC_INFO_4 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Time\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
pub struct MINIDUMP_MISC_INFO_5 {
    pub SizeOfInfo: u32,
    pub Flags1: u32,
    pub ProcessId: u32,
    pub ProcessCreateTime: u32,
    pub ProcessUserTime: u32,
    pub ProcessKernelTime: u32,
    pub ProcessorMaxMhz: u32,
    pub ProcessorCurrentMhz: u32,
    pub ProcessorMhzLimit: u32,
    pub ProcessorMaxIdleState: u32,
    pub ProcessorCurrentIdleState: u32,
    pub ProcessIntegrityLevel: u32,
    pub ProcessExecuteFlags: u32,
    pub ProtectedProcess: u32,
    pub TimeZoneId: u32,
    pub TimeZone: super::super::Time::TIME_ZONE_INFORMATION,
    pub BuildString: [u16; 260],
    pub DbgBldStr: [u16; 40],
    pub XStateData: XSTATE_CONFIG_FEATURE_MSC_INFO,
    pub ProcessCookie: u32,
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
impl ::core::marker::Copy for MINIDUMP_MISC_INFO_5 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
impl ::core::clone::Clone for MINIDUMP_MISC_INFO_5 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
unsafe impl ::windows::core::Abi for MINIDUMP_MISC_INFO_5 {
    type Abi = Self;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
impl ::core::cmp::PartialEq for MINIDUMP_MISC_INFO_5 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_MISC_INFO_5>()) == 0 }
    }
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
impl ::core::cmp::Eq for MINIDUMP_MISC_INFO_5 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Time"))]
impl ::core::default::Default for MINIDUMP_MISC_INFO_5 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Storage_FileSystem\"`*"]
#[cfg(feature = "Win32_Storage_FileSystem")]
pub struct MINIDUMP_MODULE {
    pub BaseOfImage: u64,
    pub SizeOfImage: u32,
    pub CheckSum: u32,
    pub TimeDateStamp: u32,
    pub ModuleNameRva: u32,
    pub VersionInfo: super::super::super::Storage::FileSystem::VS_FIXEDFILEINFO,
    pub CvRecord: MINIDUMP_LOCATION_DESCRIPTOR,
    pub MiscRecord: MINIDUMP_LOCATION_DESCRIPTOR,
    pub Reserved0: u64,
    pub Reserved1: u64,
}
#[cfg(feature = "Win32_Storage_FileSystem")]
impl ::core::marker::Copy for MINIDUMP_MODULE {}
#[cfg(feature = "Win32_Storage_FileSystem")]
impl ::core::clone::Clone for MINIDUMP_MODULE {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Storage_FileSystem")]
unsafe impl ::windows::core::Abi for MINIDUMP_MODULE {
    type Abi = Self;
}
#[cfg(feature = "Win32_Storage_FileSystem")]
impl ::core::cmp::PartialEq for MINIDUMP_MODULE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_MODULE>()) == 0 }
    }
}
#[cfg(feature = "Win32_Storage_FileSystem")]
impl ::core::cmp::Eq for MINIDUMP_MODULE {}
#[cfg(feature = "Win32_Storage_FileSystem")]
impl ::core::default::Default for MINIDUMP_MODULE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Storage_FileSystem\"`*"]
#[cfg(feature = "Win32_Storage_FileSystem")]
pub struct MINIDUMP_MODULE_CALLBACK {
    pub FullPath: ::windows::core::PWSTR,
    pub BaseOfImage: u64,
    pub SizeOfImage: u32,
    pub CheckSum: u32,
    pub TimeDateStamp: u32,
    pub VersionInfo: super::super::super::Storage::FileSystem::VS_FIXEDFILEINFO,
    pub CvRecord: *mut ::core::ffi::c_void,
    pub SizeOfCvRecord: u32,
    pub MiscRecord: *mut ::core::ffi::c_void,
    pub SizeOfMiscRecord: u32,
}
#[cfg(feature = "Win32_Storage_FileSystem")]
impl ::core::marker::Copy for MINIDUMP_MODULE_CALLBACK {}
#[cfg(feature = "Win32_Storage_FileSystem")]
impl ::core::clone::Clone for MINIDUMP_MODULE_CALLBACK {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Storage_FileSystem")]
unsafe impl ::windows::core::Abi for MINIDUMP_MODULE_CALLBACK {
    type Abi = Self;
}
#[cfg(feature = "Win32_Storage_FileSystem")]
impl ::core::cmp::PartialEq for MINIDUMP_MODULE_CALLBACK {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_MODULE_CALLBACK>()) == 0 }
    }
}
#[cfg(feature = "Win32_Storage_FileSystem")]
impl ::core::cmp::Eq for MINIDUMP_MODULE_CALLBACK {}
#[cfg(feature = "Win32_Storage_FileSystem")]
impl ::core::default::Default for MINIDUMP_MODULE_CALLBACK {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Storage_FileSystem\"`*"]
#[cfg(feature = "Win32_Storage_FileSystem")]
pub struct MINIDUMP_MODULE_LIST {
    pub NumberOfModules: u32,
    pub Modules: [MINIDUMP_MODULE; 1],
}
#[cfg(feature = "Win32_Storage_FileSystem")]
impl ::core::marker::Copy for MINIDUMP_MODULE_LIST {}
#[cfg(feature = "Win32_Storage_FileSystem")]
impl ::core::clone::Clone for MINIDUMP_MODULE_LIST {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Storage_FileSystem")]
unsafe impl ::windows::core::Abi for MINIDUMP_MODULE_LIST {
    type Abi = Self;
}
#[cfg(feature = "Win32_Storage_FileSystem")]
impl ::core::cmp::PartialEq for MINIDUMP_MODULE_LIST {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_MODULE_LIST>()) == 0 }
    }
}
#[cfg(feature = "Win32_Storage_FileSystem")]
impl ::core::cmp::Eq for MINIDUMP_MODULE_LIST {}
#[cfg(feature = "Win32_Storage_FileSystem")]
impl ::core::default::Default for MINIDUMP_MODULE_LIST {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_PROCESS_VM_COUNTERS_1 {
    pub Revision: u16,
    pub PageFaultCount: u32,
    pub PeakWorkingSetSize: u64,
    pub WorkingSetSize: u64,
    pub QuotaPeakPagedPoolUsage: u64,
    pub QuotaPagedPoolUsage: u64,
    pub QuotaPeakNonPagedPoolUsage: u64,
    pub QuotaNonPagedPoolUsage: u64,
    pub PagefileUsage: u64,
    pub PeakPagefileUsage: u64,
    pub PrivateUsage: u64,
}
impl ::core::marker::Copy for MINIDUMP_PROCESS_VM_COUNTERS_1 {}
impl ::core::clone::Clone for MINIDUMP_PROCESS_VM_COUNTERS_1 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_PROCESS_VM_COUNTERS_1 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_PROCESS_VM_COUNTERS_1 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_PROCESS_VM_COUNTERS_1>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_PROCESS_VM_COUNTERS_1 {}
impl ::core::default::Default for MINIDUMP_PROCESS_VM_COUNTERS_1 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_PROCESS_VM_COUNTERS_2 {
    pub Revision: u16,
    pub Flags: u16,
    pub PageFaultCount: u32,
    pub PeakWorkingSetSize: u64,
    pub WorkingSetSize: u64,
    pub QuotaPeakPagedPoolUsage: u64,
    pub QuotaPagedPoolUsage: u64,
    pub QuotaPeakNonPagedPoolUsage: u64,
    pub QuotaNonPagedPoolUsage: u64,
    pub PagefileUsage: u64,
    pub PeakPagefileUsage: u64,
    pub PeakVirtualSize: u64,
    pub VirtualSize: u64,
    pub PrivateUsage: u64,
    pub PrivateWorkingSetSize: u64,
    pub SharedCommitUsage: u64,
    pub JobSharedCommitUsage: u64,
    pub JobPrivateCommitUsage: u64,
    pub JobPeakPrivateCommitUsage: u64,
    pub JobPrivateCommitLimit: u64,
    pub JobTotalCommitLimit: u64,
}
impl ::core::marker::Copy for MINIDUMP_PROCESS_VM_COUNTERS_2 {}
impl ::core::clone::Clone for MINIDUMP_PROCESS_VM_COUNTERS_2 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_PROCESS_VM_COUNTERS_2 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_PROCESS_VM_COUNTERS_2 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_PROCESS_VM_COUNTERS_2>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_PROCESS_VM_COUNTERS_2 {}
impl ::core::default::Default for MINIDUMP_PROCESS_VM_COUNTERS_2 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_READ_MEMORY_FAILURE_CALLBACK {
    pub Offset: u64,
    pub Bytes: u32,
    pub FailureStatus: ::windows::core::HRESULT,
}
impl ::core::marker::Copy for MINIDUMP_READ_MEMORY_FAILURE_CALLBACK {}
impl ::core::clone::Clone for MINIDUMP_READ_MEMORY_FAILURE_CALLBACK {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_READ_MEMORY_FAILURE_CALLBACK {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_READ_MEMORY_FAILURE_CALLBACK {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_READ_MEMORY_FAILURE_CALLBACK>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_READ_MEMORY_FAILURE_CALLBACK {}
impl ::core::default::Default for MINIDUMP_READ_MEMORY_FAILURE_CALLBACK {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_STRING {
    pub Length: u32,
    pub Buffer: [u16; 1],
}
impl ::core::marker::Copy for MINIDUMP_STRING {}
impl ::core::clone::Clone for MINIDUMP_STRING {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_STRING {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_STRING {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_STRING>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_STRING {}
impl ::core::default::Default for MINIDUMP_STRING {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_SYSTEM_BASIC_INFORMATION {
    pub TimerResolution: u32,
    pub PageSize: u32,
    pub NumberOfPhysicalPages: u32,
    pub LowestPhysicalPageNumber: u32,
    pub HighestPhysicalPageNumber: u32,
    pub AllocationGranularity: u32,
    pub MinimumUserModeAddress: u64,
    pub MaximumUserModeAddress: u64,
    pub ActiveProcessorsAffinityMask: u64,
    pub NumberOfProcessors: u32,
}
impl ::core::marker::Copy for MINIDUMP_SYSTEM_BASIC_INFORMATION {}
impl ::core::clone::Clone for MINIDUMP_SYSTEM_BASIC_INFORMATION {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_SYSTEM_BASIC_INFORMATION {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_SYSTEM_BASIC_INFORMATION {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_SYSTEM_BASIC_INFORMATION>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_SYSTEM_BASIC_INFORMATION {}
impl ::core::default::Default for MINIDUMP_SYSTEM_BASIC_INFORMATION {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION {
    pub AvailablePages: u64,
    pub CommittedPages: u64,
    pub CommitLimit: u64,
    pub PeakCommitment: u64,
}
impl ::core::marker::Copy for MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION {}
impl ::core::clone::Clone for MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION {}
impl ::core::default::Default for MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_SYSTEM_FILECACHE_INFORMATION {
    pub CurrentSize: u64,
    pub PeakSize: u64,
    pub PageFaultCount: u32,
    pub MinimumWorkingSet: u64,
    pub MaximumWorkingSet: u64,
    pub CurrentSizeIncludingTransitionInPages: u64,
    pub PeakSizeIncludingTransitionInPages: u64,
    pub TransitionRePurposeCount: u32,
    pub Flags: u32,
}
impl ::core::marker::Copy for MINIDUMP_SYSTEM_FILECACHE_INFORMATION {}
impl ::core::clone::Clone for MINIDUMP_SYSTEM_FILECACHE_INFORMATION {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_SYSTEM_FILECACHE_INFORMATION {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_SYSTEM_FILECACHE_INFORMATION {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_SYSTEM_FILECACHE_INFORMATION>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_SYSTEM_FILECACHE_INFORMATION {}
impl ::core::default::Default for MINIDUMP_SYSTEM_FILECACHE_INFORMATION {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_SYSTEM_INFO {
    pub ProcessorArchitecture: PROCESSOR_ARCHITECTURE,
    pub ProcessorLevel: u16,
    pub ProcessorRevision: u16,
    pub Anonymous1: MINIDUMP_SYSTEM_INFO_0,
    pub MajorVersion: u32,
    pub MinorVersion: u32,
    pub BuildNumber: u32,
    pub PlatformId: VER_PLATFORM,
    pub CSDVersionRva: u32,
    pub Anonymous2: MINIDUMP_SYSTEM_INFO_1,
    pub Cpu: CPU_INFORMATION,
}
impl ::core::marker::Copy for MINIDUMP_SYSTEM_INFO {}
impl ::core::clone::Clone for MINIDUMP_SYSTEM_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_SYSTEM_INFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_SYSTEM_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_SYSTEM_INFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_SYSTEM_INFO {}
impl ::core::default::Default for MINIDUMP_SYSTEM_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union MINIDUMP_SYSTEM_INFO_0 {
    pub Reserved0: u16,
    pub Anonymous: MINIDUMP_SYSTEM_INFO_0_0,
}
impl ::core::marker::Copy for MINIDUMP_SYSTEM_INFO_0 {}
impl ::core::clone::Clone for MINIDUMP_SYSTEM_INFO_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_SYSTEM_INFO_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_SYSTEM_INFO_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_SYSTEM_INFO_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_SYSTEM_INFO_0 {}
impl ::core::default::Default for MINIDUMP_SYSTEM_INFO_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_SYSTEM_INFO_0_0 {
    pub NumberOfProcessors: u8,
    pub ProductType: u8,
}
impl ::core::marker::Copy for MINIDUMP_SYSTEM_INFO_0_0 {}
impl ::core::clone::Clone for MINIDUMP_SYSTEM_INFO_0_0 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for MINIDUMP_SYSTEM_INFO_0_0 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("MINIDUMP_SYSTEM_INFO_0_0").field("NumberOfProcessors", &self.NumberOfProcessors).field("ProductType", &self.ProductType).finish()
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_SYSTEM_INFO_0_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_SYSTEM_INFO_0_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_SYSTEM_INFO_0_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_SYSTEM_INFO_0_0 {}
impl ::core::default::Default for MINIDUMP_SYSTEM_INFO_0_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union MINIDUMP_SYSTEM_INFO_1 {
    pub Reserved1: u32,
    pub Anonymous: MINIDUMP_SYSTEM_INFO_1_0,
}
impl ::core::marker::Copy for MINIDUMP_SYSTEM_INFO_1 {}
impl ::core::clone::Clone for MINIDUMP_SYSTEM_INFO_1 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_SYSTEM_INFO_1 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_SYSTEM_INFO_1 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_SYSTEM_INFO_1>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_SYSTEM_INFO_1 {}
impl ::core::default::Default for MINIDUMP_SYSTEM_INFO_1 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_SYSTEM_INFO_1_0 {
    pub SuiteMask: u16,
    pub Reserved2: u16,
}
impl ::core::marker::Copy for MINIDUMP_SYSTEM_INFO_1_0 {}
impl ::core::clone::Clone for MINIDUMP_SYSTEM_INFO_1_0 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for MINIDUMP_SYSTEM_INFO_1_0 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("MINIDUMP_SYSTEM_INFO_1_0").field("SuiteMask", &self.SuiteMask).field("Reserved2", &self.Reserved2).finish()
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_SYSTEM_INFO_1_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_SYSTEM_INFO_1_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_SYSTEM_INFO_1_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_SYSTEM_INFO_1_0 {}
impl ::core::default::Default for MINIDUMP_SYSTEM_INFO_1_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_SYSTEM_MEMORY_INFO_1 {
    pub Revision: u16,
    pub Flags: u16,
    pub BasicInfo: MINIDUMP_SYSTEM_BASIC_INFORMATION,
    pub FileCacheInfo: MINIDUMP_SYSTEM_FILECACHE_INFORMATION,
    pub BasicPerfInfo: MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION,
    pub PerfInfo: MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION,
}
impl ::core::marker::Copy for MINIDUMP_SYSTEM_MEMORY_INFO_1 {}
impl ::core::clone::Clone for MINIDUMP_SYSTEM_MEMORY_INFO_1 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_SYSTEM_MEMORY_INFO_1 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_SYSTEM_MEMORY_INFO_1 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_SYSTEM_MEMORY_INFO_1>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_SYSTEM_MEMORY_INFO_1 {}
impl ::core::default::Default for MINIDUMP_SYSTEM_MEMORY_INFO_1 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION {
    pub IdleProcessTime: u64,
    pub IoReadTransferCount: u64,
    pub IoWriteTransferCount: u64,
    pub IoOtherTransferCount: u64,
    pub IoReadOperationCount: u32,
    pub IoWriteOperationCount: u32,
    pub IoOtherOperationCount: u32,
    pub AvailablePages: u32,
    pub CommittedPages: u32,
    pub CommitLimit: u32,
    pub PeakCommitment: u32,
    pub PageFaultCount: u32,
    pub CopyOnWriteCount: u32,
    pub TransitionCount: u32,
    pub CacheTransitionCount: u32,
    pub DemandZeroCount: u32,
    pub PageReadCount: u32,
    pub PageReadIoCount: u32,
    pub CacheReadCount: u32,
    pub CacheIoCount: u32,
    pub DirtyPagesWriteCount: u32,
    pub DirtyWriteIoCount: u32,
    pub MappedPagesWriteCount: u32,
    pub MappedWriteIoCount: u32,
    pub PagedPoolPages: u32,
    pub NonPagedPoolPages: u32,
    pub PagedPoolAllocs: u32,
    pub PagedPoolFrees: u32,
    pub NonPagedPoolAllocs: u32,
    pub NonPagedPoolFrees: u32,
    pub FreeSystemPtes: u32,
    pub ResidentSystemCodePage: u32,
    pub TotalSystemDriverPages: u32,
    pub TotalSystemCodePages: u32,
    pub NonPagedPoolLookasideHits: u32,
    pub PagedPoolLookasideHits: u32,
    pub AvailablePagedPoolPages: u32,
    pub ResidentSystemCachePage: u32,
    pub ResidentPagedPoolPage: u32,
    pub ResidentSystemDriverPage: u32,
    pub CcFastReadNoWait: u32,
    pub CcFastReadWait: u32,
    pub CcFastReadResourceMiss: u32,
    pub CcFastReadNotPossible: u32,
    pub CcFastMdlReadNoWait: u32,
    pub CcFastMdlReadWait: u32,
    pub CcFastMdlReadResourceMiss: u32,
    pub CcFastMdlReadNotPossible: u32,
    pub CcMapDataNoWait: u32,
    pub CcMapDataWait: u32,
    pub CcMapDataNoWaitMiss: u32,
    pub CcMapDataWaitMiss: u32,
    pub CcPinMappedDataCount: u32,
    pub CcPinReadNoWait: u32,
    pub CcPinReadWait: u32,
    pub CcPinReadNoWaitMiss: u32,
    pub CcPinReadWaitMiss: u32,
    pub CcCopyReadNoWait: u32,
    pub CcCopyReadWait: u32,
    pub CcCopyReadNoWaitMiss: u32,
    pub CcCopyReadWaitMiss: u32,
    pub CcMdlReadNoWait: u32,
    pub CcMdlReadWait: u32,
    pub CcMdlReadNoWaitMiss: u32,
    pub CcMdlReadWaitMiss: u32,
    pub CcReadAheadIos: u32,
    pub CcLazyWriteIos: u32,
    pub CcLazyWritePages: u32,
    pub CcDataFlushes: u32,
    pub CcDataPages: u32,
    pub ContextSwitches: u32,
    pub FirstLevelTbFills: u32,
    pub SecondLevelTbFills: u32,
    pub SystemCalls: u32,
    pub CcTotalDirtyPages: u64,
    pub CcDirtyPageThreshold: u64,
    pub ResidentAvailablePages: i64,
    pub SharedCommittedPages: u64,
}
impl ::core::marker::Copy for MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION {}
impl ::core::clone::Clone for MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION {}
impl ::core::default::Default for MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_THREAD {
    pub ThreadId: u32,
    pub SuspendCount: u32,
    pub PriorityClass: u32,
    pub Priority: u32,
    pub Teb: u64,
    pub Stack: MINIDUMP_MEMORY_DESCRIPTOR,
    pub ThreadContext: MINIDUMP_LOCATION_DESCRIPTOR,
}
impl ::core::marker::Copy for MINIDUMP_THREAD {}
impl ::core::clone::Clone for MINIDUMP_THREAD {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_THREAD {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_THREAD {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_THREAD>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_THREAD {}
impl ::core::default::Default for MINIDUMP_THREAD {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
pub struct MINIDUMP_THREAD_CALLBACK {
    pub ThreadId: u32,
    pub ThreadHandle: super::super::super::Foundation::HANDLE,
    pub Pad: u32,
    pub Context: CONTEXT,
    pub SizeOfContext: u32,
    pub StackBase: u64,
    pub StackEnd: u64,
}
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::marker::Copy for MINIDUMP_THREAD_CALLBACK {}
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::clone::Clone for MINIDUMP_THREAD_CALLBACK {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
unsafe impl ::windows::core::Abi for MINIDUMP_THREAD_CALLBACK {
    type Abi = Self;
}
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::cmp::PartialEq for MINIDUMP_THREAD_CALLBACK {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_THREAD_CALLBACK>()) == 0 }
    }
}
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::cmp::Eq for MINIDUMP_THREAD_CALLBACK {}
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::default::Default for MINIDUMP_THREAD_CALLBACK {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
pub struct MINIDUMP_THREAD_CALLBACK {
    pub ThreadId: u32,
    pub ThreadHandle: super::super::super::Foundation::HANDLE,
    pub Context: CONTEXT,
    pub SizeOfContext: u32,
    pub StackBase: u64,
    pub StackEnd: u64,
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::marker::Copy for MINIDUMP_THREAD_CALLBACK {}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::clone::Clone for MINIDUMP_THREAD_CALLBACK {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
unsafe impl ::windows::core::Abi for MINIDUMP_THREAD_CALLBACK {
    type Abi = Self;
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::cmp::PartialEq for MINIDUMP_THREAD_CALLBACK {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_THREAD_CALLBACK>()) == 0 }
    }
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::cmp::Eq for MINIDUMP_THREAD_CALLBACK {}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::default::Default for MINIDUMP_THREAD_CALLBACK {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_THREAD_EX {
    pub ThreadId: u32,
    pub SuspendCount: u32,
    pub PriorityClass: u32,
    pub Priority: u32,
    pub Teb: u64,
    pub Stack: MINIDUMP_MEMORY_DESCRIPTOR,
    pub ThreadContext: MINIDUMP_LOCATION_DESCRIPTOR,
    pub BackingStore: MINIDUMP_MEMORY_DESCRIPTOR,
}
impl ::core::marker::Copy for MINIDUMP_THREAD_EX {}
impl ::core::clone::Clone for MINIDUMP_THREAD_EX {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_THREAD_EX {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_THREAD_EX {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_THREAD_EX>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_THREAD_EX {}
impl ::core::default::Default for MINIDUMP_THREAD_EX {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
pub struct MINIDUMP_THREAD_EX_CALLBACK {
    pub ThreadId: u32,
    pub ThreadHandle: super::super::super::Foundation::HANDLE,
    pub Pad: u32,
    pub Context: CONTEXT,
    pub SizeOfContext: u32,
    pub StackBase: u64,
    pub StackEnd: u64,
    pub BackingStoreBase: u64,
    pub BackingStoreEnd: u64,
}
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::marker::Copy for MINIDUMP_THREAD_EX_CALLBACK {}
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::clone::Clone for MINIDUMP_THREAD_EX_CALLBACK {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
unsafe impl ::windows::core::Abi for MINIDUMP_THREAD_EX_CALLBACK {
    type Abi = Self;
}
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::cmp::PartialEq for MINIDUMP_THREAD_EX_CALLBACK {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_THREAD_EX_CALLBACK>()) == 0 }
    }
}
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::cmp::Eq for MINIDUMP_THREAD_EX_CALLBACK {}
#[cfg(target_arch = "aarch64")]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::default::Default for MINIDUMP_THREAD_EX_CALLBACK {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
pub struct MINIDUMP_THREAD_EX_CALLBACK {
    pub ThreadId: u32,
    pub ThreadHandle: super::super::super::Foundation::HANDLE,
    pub Context: CONTEXT,
    pub SizeOfContext: u32,
    pub StackBase: u64,
    pub StackEnd: u64,
    pub BackingStoreBase: u64,
    pub BackingStoreEnd: u64,
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::marker::Copy for MINIDUMP_THREAD_EX_CALLBACK {}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::clone::Clone for MINIDUMP_THREAD_EX_CALLBACK {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
unsafe impl ::windows::core::Abi for MINIDUMP_THREAD_EX_CALLBACK {
    type Abi = Self;
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::cmp::PartialEq for MINIDUMP_THREAD_EX_CALLBACK {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_THREAD_EX_CALLBACK>()) == 0 }
    }
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::cmp::Eq for MINIDUMP_THREAD_EX_CALLBACK {}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
impl ::core::default::Default for MINIDUMP_THREAD_EX_CALLBACK {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_THREAD_EX_LIST {
    pub NumberOfThreads: u32,
    pub Threads: [MINIDUMP_THREAD_EX; 1],
}
impl ::core::marker::Copy for MINIDUMP_THREAD_EX_LIST {}
impl ::core::clone::Clone for MINIDUMP_THREAD_EX_LIST {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_THREAD_EX_LIST {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_THREAD_EX_LIST {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_THREAD_EX_LIST>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_THREAD_EX_LIST {}
impl ::core::default::Default for MINIDUMP_THREAD_EX_LIST {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_THREAD_INFO {
    pub ThreadId: u32,
    pub DumpFlags: MINIDUMP_THREAD_INFO_DUMP_FLAGS,
    pub DumpError: u32,
    pub ExitStatus: u32,
    pub CreateTime: u64,
    pub ExitTime: u64,
    pub KernelTime: u64,
    pub UserTime: u64,
    pub StartAddress: u64,
    pub Affinity: u64,
}
impl ::core::marker::Copy for MINIDUMP_THREAD_INFO {}
impl ::core::clone::Clone for MINIDUMP_THREAD_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_THREAD_INFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_THREAD_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_THREAD_INFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_THREAD_INFO {}
impl ::core::default::Default for MINIDUMP_THREAD_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_THREAD_INFO_LIST {
    pub SizeOfHeader: u32,
    pub SizeOfEntry: u32,
    pub NumberOfEntries: u32,
}
impl ::core::marker::Copy for MINIDUMP_THREAD_INFO_LIST {}
impl ::core::clone::Clone for MINIDUMP_THREAD_INFO_LIST {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_THREAD_INFO_LIST {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_THREAD_INFO_LIST {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_THREAD_INFO_LIST>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_THREAD_INFO_LIST {}
impl ::core::default::Default for MINIDUMP_THREAD_INFO_LIST {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_THREAD_LIST {
    pub NumberOfThreads: u32,
    pub Threads: [MINIDUMP_THREAD; 1],
}
impl ::core::marker::Copy for MINIDUMP_THREAD_LIST {}
impl ::core::clone::Clone for MINIDUMP_THREAD_LIST {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_THREAD_LIST {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_THREAD_LIST {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_THREAD_LIST>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_THREAD_LIST {}
impl ::core::default::Default for MINIDUMP_THREAD_LIST {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_THREAD_NAME {
    pub ThreadId: u32,
    pub RvaOfThreadName: u64,
}
impl ::core::marker::Copy for MINIDUMP_THREAD_NAME {}
impl ::core::clone::Clone for MINIDUMP_THREAD_NAME {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_THREAD_NAME {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_THREAD_NAME {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_THREAD_NAME>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_THREAD_NAME {}
impl ::core::default::Default for MINIDUMP_THREAD_NAME {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_THREAD_NAME_LIST {
    pub NumberOfThreadNames: u32,
    pub ThreadNames: [MINIDUMP_THREAD_NAME; 1],
}
impl ::core::marker::Copy for MINIDUMP_THREAD_NAME_LIST {}
impl ::core::clone::Clone for MINIDUMP_THREAD_NAME_LIST {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_THREAD_NAME_LIST {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_THREAD_NAME_LIST {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_THREAD_NAME_LIST>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_THREAD_NAME_LIST {}
impl ::core::default::Default for MINIDUMP_THREAD_NAME_LIST {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_TOKEN_INFO_HEADER {
    pub TokenSize: u32,
    pub TokenId: u32,
    pub TokenHandle: u64,
}
impl ::core::marker::Copy for MINIDUMP_TOKEN_INFO_HEADER {}
impl ::core::clone::Clone for MINIDUMP_TOKEN_INFO_HEADER {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_TOKEN_INFO_HEADER {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_TOKEN_INFO_HEADER {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_TOKEN_INFO_HEADER>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_TOKEN_INFO_HEADER {}
impl ::core::default::Default for MINIDUMP_TOKEN_INFO_HEADER {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_TOKEN_INFO_LIST {
    pub TokenListSize: u32,
    pub TokenListEntries: u32,
    pub ListHeaderSize: u32,
    pub ElementHeaderSize: u32,
}
impl ::core::marker::Copy for MINIDUMP_TOKEN_INFO_LIST {}
impl ::core::clone::Clone for MINIDUMP_TOKEN_INFO_LIST {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_TOKEN_INFO_LIST {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_TOKEN_INFO_LIST {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_TOKEN_INFO_LIST>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_TOKEN_INFO_LIST {}
impl ::core::default::Default for MINIDUMP_TOKEN_INFO_LIST {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_UNLOADED_MODULE {
    pub BaseOfImage: u64,
    pub SizeOfImage: u32,
    pub CheckSum: u32,
    pub TimeDateStamp: u32,
    pub ModuleNameRva: u32,
}
impl ::core::marker::Copy for MINIDUMP_UNLOADED_MODULE {}
impl ::core::clone::Clone for MINIDUMP_UNLOADED_MODULE {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_UNLOADED_MODULE {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_UNLOADED_MODULE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_UNLOADED_MODULE>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_UNLOADED_MODULE {}
impl ::core::default::Default for MINIDUMP_UNLOADED_MODULE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_UNLOADED_MODULE_LIST {
    pub SizeOfHeader: u32,
    pub SizeOfEntry: u32,
    pub NumberOfEntries: u32,
}
impl ::core::marker::Copy for MINIDUMP_UNLOADED_MODULE_LIST {}
impl ::core::clone::Clone for MINIDUMP_UNLOADED_MODULE_LIST {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_UNLOADED_MODULE_LIST {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_UNLOADED_MODULE_LIST {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_UNLOADED_MODULE_LIST>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_UNLOADED_MODULE_LIST {}
impl ::core::default::Default for MINIDUMP_UNLOADED_MODULE_LIST {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_USER_RECORD {
    pub Type: u32,
    pub Memory: MINIDUMP_LOCATION_DESCRIPTOR,
}
impl ::core::marker::Copy for MINIDUMP_USER_RECORD {}
impl ::core::clone::Clone for MINIDUMP_USER_RECORD {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_USER_RECORD {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_USER_RECORD {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_USER_RECORD>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_USER_RECORD {}
impl ::core::default::Default for MINIDUMP_USER_RECORD {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_USER_STREAM {
    pub Type: u32,
    pub BufferSize: u32,
    pub Buffer: *mut ::core::ffi::c_void,
}
impl ::core::marker::Copy for MINIDUMP_USER_STREAM {}
impl ::core::clone::Clone for MINIDUMP_USER_STREAM {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_USER_STREAM {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_USER_STREAM {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_USER_STREAM>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_USER_STREAM {}
impl ::core::default::Default for MINIDUMP_USER_STREAM {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_USER_STREAM_INFORMATION {
    pub UserStreamCount: u32,
    pub UserStreamArray: *mut MINIDUMP_USER_STREAM,
}
impl ::core::marker::Copy for MINIDUMP_USER_STREAM_INFORMATION {}
impl ::core::clone::Clone for MINIDUMP_USER_STREAM_INFORMATION {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_USER_STREAM_INFORMATION {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_USER_STREAM_INFORMATION {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_USER_STREAM_INFORMATION>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_USER_STREAM_INFORMATION {}
impl ::core::default::Default for MINIDUMP_USER_STREAM_INFORMATION {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_VM_POST_READ_CALLBACK {
    pub Offset: u64,
    pub Buffer: *mut ::core::ffi::c_void,
    pub Size: u32,
    pub Completed: u32,
    pub Status: ::windows::core::HRESULT,
}
impl ::core::marker::Copy for MINIDUMP_VM_POST_READ_CALLBACK {}
impl ::core::clone::Clone for MINIDUMP_VM_POST_READ_CALLBACK {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_VM_POST_READ_CALLBACK {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_VM_POST_READ_CALLBACK {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_VM_POST_READ_CALLBACK>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_VM_POST_READ_CALLBACK {}
impl ::core::default::Default for MINIDUMP_VM_POST_READ_CALLBACK {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_VM_PRE_READ_CALLBACK {
    pub Offset: u64,
    pub Buffer: *mut ::core::ffi::c_void,
    pub Size: u32,
}
impl ::core::marker::Copy for MINIDUMP_VM_PRE_READ_CALLBACK {}
impl ::core::clone::Clone for MINIDUMP_VM_PRE_READ_CALLBACK {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_VM_PRE_READ_CALLBACK {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_VM_PRE_READ_CALLBACK {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_VM_PRE_READ_CALLBACK>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_VM_PRE_READ_CALLBACK {}
impl ::core::default::Default for MINIDUMP_VM_PRE_READ_CALLBACK {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MINIDUMP_VM_QUERY_CALLBACK {
    pub Offset: u64,
}
impl ::core::marker::Copy for MINIDUMP_VM_QUERY_CALLBACK {}
impl ::core::clone::Clone for MINIDUMP_VM_QUERY_CALLBACK {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for MINIDUMP_VM_QUERY_CALLBACK {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MINIDUMP_VM_QUERY_CALLBACK {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MINIDUMP_VM_QUERY_CALLBACK>()) == 0 }
    }
}
impl ::core::cmp::Eq for MINIDUMP_VM_QUERY_CALLBACK {}
impl ::core::default::Default for MINIDUMP_VM_QUERY_CALLBACK {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MODLOAD_CVMISC {
    pub oCV: u32,
    pub cCV: usize,
    pub oMisc: u32,
    pub cMisc: usize,
    pub dtImage: u32,
    pub cImage: u32,
}
impl ::core::marker::Copy for MODLOAD_CVMISC {}
impl ::core::clone::Clone for MODLOAD_CVMISC {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for MODLOAD_CVMISC {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("MODLOAD_CVMISC").field("oCV", &self.oCV).field("cCV", &self.cCV).field("oMisc", &self.oMisc).field("cMisc", &self.cMisc).field("dtImage", &self.dtImage).field("cImage", &self.cImage).finish()
    }
}
unsafe impl ::windows::core::Abi for MODLOAD_CVMISC {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MODLOAD_CVMISC {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MODLOAD_CVMISC>()) == 0 }
    }
}
impl ::core::cmp::Eq for MODLOAD_CVMISC {}
impl ::core::default::Default for MODLOAD_CVMISC {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MODLOAD_DATA {
    pub ssize: u32,
    pub ssig: MODLOAD_DATA_TYPE,
    pub data: *mut ::core::ffi::c_void,
    pub size: u32,
    pub flags: u32,
}
impl ::core::marker::Copy for MODLOAD_DATA {}
impl ::core::clone::Clone for MODLOAD_DATA {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for MODLOAD_DATA {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("MODLOAD_DATA").field("ssize", &self.ssize).field("ssig", &self.ssig).field("data", &self.data).field("size", &self.size).field("flags", &self.flags).finish()
    }
}
unsafe impl ::windows::core::Abi for MODLOAD_DATA {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MODLOAD_DATA {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MODLOAD_DATA>()) == 0 }
    }
}
impl ::core::cmp::Eq for MODLOAD_DATA {}
impl ::core::default::Default for MODLOAD_DATA {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MODLOAD_PDBGUID_PDBAGE {
    pub PdbGuid: ::windows::core::GUID,
    pub PdbAge: u32,
}
impl ::core::marker::Copy for MODLOAD_PDBGUID_PDBAGE {}
impl ::core::clone::Clone for MODLOAD_PDBGUID_PDBAGE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for MODLOAD_PDBGUID_PDBAGE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("MODLOAD_PDBGUID_PDBAGE").field("PdbGuid", &self.PdbGuid).field("PdbAge", &self.PdbAge).finish()
    }
}
unsafe impl ::windows::core::Abi for MODLOAD_PDBGUID_PDBAGE {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MODLOAD_PDBGUID_PDBAGE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MODLOAD_PDBGUID_PDBAGE>()) == 0 }
    }
}
impl ::core::cmp::Eq for MODLOAD_PDBGUID_PDBAGE {}
impl ::core::default::Default for MODLOAD_PDBGUID_PDBAGE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct MODULE_TYPE_INFO {
    pub dataLength: u16,
    pub leaf: u16,
    pub data: [u8; 1],
}
impl ::core::marker::Copy for MODULE_TYPE_INFO {}
impl ::core::clone::Clone for MODULE_TYPE_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for MODULE_TYPE_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("MODULE_TYPE_INFO").field("dataLength", &self.dataLength).field("leaf", &self.leaf).field("data", &self.data).finish()
    }
}
unsafe impl ::windows::core::Abi for MODULE_TYPE_INFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for MODULE_TYPE_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<MODULE_TYPE_INFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for MODULE_TYPE_INFO {}
impl ::core::default::Default for MODULE_TYPE_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct OMAP {
    pub rva: u32,
    pub rvaTo: u32,
}
impl ::core::marker::Copy for OMAP {}
impl ::core::clone::Clone for OMAP {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for OMAP {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("OMAP").field("rva", &self.rva).field("rvaTo", &self.rvaTo).finish()
    }
}
unsafe impl ::windows::core::Abi for OMAP {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for OMAP {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<OMAP>()) == 0 }
    }
}
impl ::core::cmp::Eq for OMAP {}
impl ::core::default::Default for OMAP {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct OUTPUT_DEBUG_STRING_INFO {
    pub lpDebugStringData: ::windows::core::PSTR,
    pub fUnicode: u16,
    pub nDebugStringLength: u16,
}
impl ::core::marker::Copy for OUTPUT_DEBUG_STRING_INFO {}
impl ::core::clone::Clone for OUTPUT_DEBUG_STRING_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for OUTPUT_DEBUG_STRING_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("OUTPUT_DEBUG_STRING_INFO").field("lpDebugStringData", &self.lpDebugStringData).field("fUnicode", &self.fUnicode).field("nDebugStringLength", &self.nDebugStringLength).finish()
    }
}
unsafe impl ::windows::core::Abi for OUTPUT_DEBUG_STRING_INFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for OUTPUT_DEBUG_STRING_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<OUTPUT_DEBUG_STRING_INFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for OUTPUT_DEBUG_STRING_INFO {}
impl ::core::default::Default for OUTPUT_DEBUG_STRING_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct PHYSICAL {
    pub Address: u64,
    pub BufLen: u32,
    pub Buf: [u8; 1],
}
impl ::core::marker::Copy for PHYSICAL {}
impl ::core::clone::Clone for PHYSICAL {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for PHYSICAL {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("PHYSICAL").field("Address", &self.Address).field("BufLen", &self.BufLen).field("Buf", &self.Buf).finish()
    }
}
unsafe impl ::windows::core::Abi for PHYSICAL {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for PHYSICAL {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<PHYSICAL>()) == 0 }
    }
}
impl ::core::cmp::Eq for PHYSICAL {}
impl ::core::default::Default for PHYSICAL {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct PHYSICAL_MEMORY_DESCRIPTOR32 {
    pub NumberOfRuns: u32,
    pub NumberOfPages: u32,
    pub Run: [PHYSICAL_MEMORY_RUN32; 1],
}
impl ::core::marker::Copy for PHYSICAL_MEMORY_DESCRIPTOR32 {}
impl ::core::clone::Clone for PHYSICAL_MEMORY_DESCRIPTOR32 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for PHYSICAL_MEMORY_DESCRIPTOR32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("PHYSICAL_MEMORY_DESCRIPTOR32").field("NumberOfRuns", &self.NumberOfRuns).field("NumberOfPages", &self.NumberOfPages).field("Run", &self.Run).finish()
    }
}
unsafe impl ::windows::core::Abi for PHYSICAL_MEMORY_DESCRIPTOR32 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for PHYSICAL_MEMORY_DESCRIPTOR32 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<PHYSICAL_MEMORY_DESCRIPTOR32>()) == 0 }
    }
}
impl ::core::cmp::Eq for PHYSICAL_MEMORY_DESCRIPTOR32 {}
impl ::core::default::Default for PHYSICAL_MEMORY_DESCRIPTOR32 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct PHYSICAL_MEMORY_DESCRIPTOR64 {
    pub NumberOfRuns: u32,
    pub NumberOfPages: u64,
    pub Run: [PHYSICAL_MEMORY_RUN64; 1],
}
impl ::core::marker::Copy for PHYSICAL_MEMORY_DESCRIPTOR64 {}
impl ::core::clone::Clone for PHYSICAL_MEMORY_DESCRIPTOR64 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for PHYSICAL_MEMORY_DESCRIPTOR64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("PHYSICAL_MEMORY_DESCRIPTOR64").field("NumberOfRuns", &self.NumberOfRuns).field("NumberOfPages", &self.NumberOfPages).field("Run", &self.Run).finish()
    }
}
unsafe impl ::windows::core::Abi for PHYSICAL_MEMORY_DESCRIPTOR64 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for PHYSICAL_MEMORY_DESCRIPTOR64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<PHYSICAL_MEMORY_DESCRIPTOR64>()) == 0 }
    }
}
impl ::core::cmp::Eq for PHYSICAL_MEMORY_DESCRIPTOR64 {}
impl ::core::default::Default for PHYSICAL_MEMORY_DESCRIPTOR64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct PHYSICAL_MEMORY_RUN32 {
    pub BasePage: u32,
    pub PageCount: u32,
}
impl ::core::marker::Copy for PHYSICAL_MEMORY_RUN32 {}
impl ::core::clone::Clone for PHYSICAL_MEMORY_RUN32 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for PHYSICAL_MEMORY_RUN32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("PHYSICAL_MEMORY_RUN32").field("BasePage", &self.BasePage).field("PageCount", &self.PageCount).finish()
    }
}
unsafe impl ::windows::core::Abi for PHYSICAL_MEMORY_RUN32 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for PHYSICAL_MEMORY_RUN32 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<PHYSICAL_MEMORY_RUN32>()) == 0 }
    }
}
impl ::core::cmp::Eq for PHYSICAL_MEMORY_RUN32 {}
impl ::core::default::Default for PHYSICAL_MEMORY_RUN32 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct PHYSICAL_MEMORY_RUN64 {
    pub BasePage: u64,
    pub PageCount: u64,
}
impl ::core::marker::Copy for PHYSICAL_MEMORY_RUN64 {}
impl ::core::clone::Clone for PHYSICAL_MEMORY_RUN64 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for PHYSICAL_MEMORY_RUN64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("PHYSICAL_MEMORY_RUN64").field("BasePage", &self.BasePage).field("PageCount", &self.PageCount).finish()
    }
}
unsafe impl ::windows::core::Abi for PHYSICAL_MEMORY_RUN64 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for PHYSICAL_MEMORY_RUN64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<PHYSICAL_MEMORY_RUN64>()) == 0 }
    }
}
impl ::core::cmp::Eq for PHYSICAL_MEMORY_RUN64 {}
impl ::core::default::Default for PHYSICAL_MEMORY_RUN64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct PHYSICAL_TO_VIRTUAL {
    pub Status: u32,
    pub Size: u32,
    pub PdeAddress: u64,
}
impl ::core::marker::Copy for PHYSICAL_TO_VIRTUAL {}
impl ::core::clone::Clone for PHYSICAL_TO_VIRTUAL {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for PHYSICAL_TO_VIRTUAL {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("PHYSICAL_TO_VIRTUAL").field("Status", &self.Status).field("Size", &self.Size).field("PdeAddress", &self.PdeAddress).finish()
    }
}
unsafe impl ::windows::core::Abi for PHYSICAL_TO_VIRTUAL {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for PHYSICAL_TO_VIRTUAL {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<PHYSICAL_TO_VIRTUAL>()) == 0 }
    }
}
impl ::core::cmp::Eq for PHYSICAL_TO_VIRTUAL {}
impl ::core::default::Default for PHYSICAL_TO_VIRTUAL {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct PHYSICAL_WITH_FLAGS {
    pub Address: u64,
    pub BufLen: u32,
    pub Flags: u32,
    pub Buf: [u8; 1],
}
impl ::core::marker::Copy for PHYSICAL_WITH_FLAGS {}
impl ::core::clone::Clone for PHYSICAL_WITH_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for PHYSICAL_WITH_FLAGS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("PHYSICAL_WITH_FLAGS").field("Address", &self.Address).field("BufLen", &self.BufLen).field("Flags", &self.Flags).field("Buf", &self.Buf).finish()
    }
}
unsafe impl ::windows::core::Abi for PHYSICAL_WITH_FLAGS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for PHYSICAL_WITH_FLAGS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<PHYSICAL_WITH_FLAGS>()) == 0 }
    }
}
impl ::core::cmp::Eq for PHYSICAL_WITH_FLAGS {}
impl ::core::default::Default for PHYSICAL_WITH_FLAGS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct POINTER_SEARCH_PHYSICAL {
    pub Offset: u64,
    pub Length: u64,
    pub PointerMin: u64,
    pub PointerMax: u64,
    pub Flags: u32,
    pub MatchOffsets: *mut u64,
    pub MatchOffsetsSize: u32,
    pub MatchOffsetsCount: u32,
}
impl ::core::marker::Copy for POINTER_SEARCH_PHYSICAL {}
impl ::core::clone::Clone for POINTER_SEARCH_PHYSICAL {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for POINTER_SEARCH_PHYSICAL {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("POINTER_SEARCH_PHYSICAL").field("Offset", &self.Offset).field("Length", &self.Length).field("PointerMin", &self.PointerMin).field("PointerMax", &self.PointerMax).field("Flags", &self.Flags).field("MatchOffsets", &self.MatchOffsets).field("MatchOffsetsSize", &self.MatchOffsetsSize).field("MatchOffsetsCount", &self.MatchOffsetsCount).finish()
    }
}
unsafe impl ::windows::core::Abi for POINTER_SEARCH_PHYSICAL {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for POINTER_SEARCH_PHYSICAL {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<POINTER_SEARCH_PHYSICAL>()) == 0 }
    }
}
impl ::core::cmp::Eq for POINTER_SEARCH_PHYSICAL {}
impl ::core::default::Default for POINTER_SEARCH_PHYSICAL {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct PROCESSORINFO {
    pub Processor: u16,
    pub NumberProcessors: u16,
}
impl ::core::marker::Copy for PROCESSORINFO {}
impl ::core::clone::Clone for PROCESSORINFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for PROCESSORINFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("PROCESSORINFO").field("Processor", &self.Processor).field("NumberProcessors", &self.NumberProcessors).finish()
    }
}
unsafe impl ::windows::core::Abi for PROCESSORINFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for PROCESSORINFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<PROCESSORINFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for PROCESSORINFO {}
impl ::core::default::Default for PROCESSORINFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct PROCESS_NAME_ENTRY {
    pub ProcessId: u32,
    pub NameOffset: u32,
    pub NameSize: u32,
    pub NextEntry: u32,
}
impl ::core::marker::Copy for PROCESS_NAME_ENTRY {}
impl ::core::clone::Clone for PROCESS_NAME_ENTRY {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for PROCESS_NAME_ENTRY {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("PROCESS_NAME_ENTRY").field("ProcessId", &self.ProcessId).field("NameOffset", &self.NameOffset).field("NameSize", &self.NameSize).field("NextEntry", &self.NextEntry).finish()
    }
}
unsafe impl ::windows::core::Abi for PROCESS_NAME_ENTRY {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for PROCESS_NAME_ENTRY {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<PROCESS_NAME_ENTRY>()) == 0 }
    }
}
impl ::core::cmp::Eq for PROCESS_NAME_ENTRY {}
impl ::core::default::Default for PROCESS_NAME_ENTRY {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct PROFILER_HEAP_OBJECT {
    pub size: u32,
    pub Anonymous: PROFILER_HEAP_OBJECT_0,
    pub typeNameId: u32,
    pub flags: u32,
    pub unused: u16,
    pub optionalInfoCount: u16,
}
impl ::core::marker::Copy for PROFILER_HEAP_OBJECT {}
impl ::core::clone::Clone for PROFILER_HEAP_OBJECT {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for PROFILER_HEAP_OBJECT {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for PROFILER_HEAP_OBJECT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<PROFILER_HEAP_OBJECT>()) == 0 }
    }
}
impl ::core::cmp::Eq for PROFILER_HEAP_OBJECT {}
impl ::core::default::Default for PROFILER_HEAP_OBJECT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union PROFILER_HEAP_OBJECT_0 {
    pub objectId: usize,
    pub externalObjectAddress: *mut ::core::ffi::c_void,
}
impl ::core::marker::Copy for PROFILER_HEAP_OBJECT_0 {}
impl ::core::clone::Clone for PROFILER_HEAP_OBJECT_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for PROFILER_HEAP_OBJECT_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for PROFILER_HEAP_OBJECT_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<PROFILER_HEAP_OBJECT_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for PROFILER_HEAP_OBJECT_0 {}
impl ::core::default::Default for PROFILER_HEAP_OBJECT_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct PROFILER_HEAP_OBJECT_OPTIONAL_INFO {
    pub infoType: PROFILER_HEAP_OBJECT_OPTIONAL_INFO_TYPE,
    pub Anonymous: PROFILER_HEAP_OBJECT_OPTIONAL_INFO_0,
}
impl ::core::marker::Copy for PROFILER_HEAP_OBJECT_OPTIONAL_INFO {}
impl ::core::clone::Clone for PROFILER_HEAP_OBJECT_OPTIONAL_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for PROFILER_HEAP_OBJECT_OPTIONAL_INFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for PROFILER_HEAP_OBJECT_OPTIONAL_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<PROFILER_HEAP_OBJECT_OPTIONAL_INFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for PROFILER_HEAP_OBJECT_OPTIONAL_INFO {}
impl ::core::default::Default for PROFILER_HEAP_OBJECT_OPTIONAL_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union PROFILER_HEAP_OBJECT_OPTIONAL_INFO_0 {
    pub prototype: usize,
    pub functionName: ::windows::core::PCWSTR,
    pub elementAttributesSize: u32,
    pub elementTextChildrenSize: u32,
    pub scopeList: *mut PROFILER_HEAP_OBJECT_SCOPE_LIST,
    pub internalProperty: *mut PROFILER_HEAP_OBJECT_RELATIONSHIP,
    pub namePropertyList: *mut PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST,
    pub indexPropertyList: *mut PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST,
    pub relationshipList: *mut PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST,
    pub eventList: *mut PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST,
    pub weakMapCollectionList: *mut PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST,
    pub mapCollectionList: *mut PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST,
    pub setCollectionList: *mut PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST,
}
impl ::core::marker::Copy for PROFILER_HEAP_OBJECT_OPTIONAL_INFO_0 {}
impl ::core::clone::Clone for PROFILER_HEAP_OBJECT_OPTIONAL_INFO_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for PROFILER_HEAP_OBJECT_OPTIONAL_INFO_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for PROFILER_HEAP_OBJECT_OPTIONAL_INFO_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<PROFILER_HEAP_OBJECT_OPTIONAL_INFO_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for PROFILER_HEAP_OBJECT_OPTIONAL_INFO_0 {}
impl ::core::default::Default for PROFILER_HEAP_OBJECT_OPTIONAL_INFO_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct PROFILER_HEAP_OBJECT_RELATIONSHIP {
    pub relationshipId: u32,
    pub relationshipInfo: PROFILER_RELATIONSHIP_INFO,
    pub Anonymous: PROFILER_HEAP_OBJECT_RELATIONSHIP_0,
}
impl ::core::clone::Clone for PROFILER_HEAP_OBJECT_RELATIONSHIP {
    fn clone(&self) -> Self {
        Self { relationshipId: self.relationshipId, relationshipInfo: self.relationshipInfo, Anonymous: self.Anonymous.clone() }
    }
}
unsafe impl ::windows::core::Abi for PROFILER_HEAP_OBJECT_RELATIONSHIP {
    type Abi = ::core::mem::ManuallyDrop<Self>;
}
impl ::core::cmp::PartialEq for PROFILER_HEAP_OBJECT_RELATIONSHIP {
    fn eq(&self, other: &Self) -> bool {
        self.relationshipId == other.relationshipId && self.relationshipInfo == other.relationshipInfo && self.Anonymous == other.Anonymous
    }
}
impl ::core::cmp::Eq for PROFILER_HEAP_OBJECT_RELATIONSHIP {}
impl ::core::default::Default for PROFILER_HEAP_OBJECT_RELATIONSHIP {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union PROFILER_HEAP_OBJECT_RELATIONSHIP_0 {
    pub numberValue: f64,
    pub stringValue: ::windows::core::PCWSTR,
    pub bstrValue: ::core::mem::ManuallyDrop<::windows::core::BSTR>,
    pub objectId: usize,
    pub externalObjectAddress: *mut ::core::ffi::c_void,
    pub subString: *mut PROFILER_PROPERTY_TYPE_SUBSTRING_INFO,
}
impl ::core::clone::Clone for PROFILER_HEAP_OBJECT_RELATIONSHIP_0 {
    fn clone(&self) -> Self {
        unsafe { ::core::mem::transmute_copy(self) }
    }
}
unsafe impl ::windows::core::Abi for PROFILER_HEAP_OBJECT_RELATIONSHIP_0 {
    type Abi = ::core::mem::ManuallyDrop<Self>;
}
impl ::core::cmp::PartialEq for PROFILER_HEAP_OBJECT_RELATIONSHIP_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<PROFILER_HEAP_OBJECT_RELATIONSHIP_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for PROFILER_HEAP_OBJECT_RELATIONSHIP_0 {}
impl ::core::default::Default for PROFILER_HEAP_OBJECT_RELATIONSHIP_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST {
    pub count: u32,
    pub elements: [PROFILER_HEAP_OBJECT_RELATIONSHIP; 1],
}
impl ::core::clone::Clone for PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST {
    fn clone(&self) -> Self {
        Self { count: self.count, elements: self.elements.clone() }
    }
}
unsafe impl ::windows::core::Abi for PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST {
    type Abi = ::core::mem::ManuallyDrop<Self>;
}
impl ::core::cmp::PartialEq for PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST {
    fn eq(&self, other: &Self) -> bool {
        self.count == other.count && self.elements == other.elements
    }
}
impl ::core::cmp::Eq for PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST {}
impl ::core::default::Default for PROFILER_HEAP_OBJECT_RELATIONSHIP_LIST {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct PROFILER_HEAP_OBJECT_SCOPE_LIST {
    pub count: u32,
    pub scopes: [usize; 1],
}
impl ::core::marker::Copy for PROFILER_HEAP_OBJECT_SCOPE_LIST {}
impl ::core::clone::Clone for PROFILER_HEAP_OBJECT_SCOPE_LIST {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for PROFILER_HEAP_OBJECT_SCOPE_LIST {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("PROFILER_HEAP_OBJECT_SCOPE_LIST").field("count", &self.count).field("scopes", &self.scopes).finish()
    }
}
unsafe impl ::windows::core::Abi for PROFILER_HEAP_OBJECT_SCOPE_LIST {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for PROFILER_HEAP_OBJECT_SCOPE_LIST {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<PROFILER_HEAP_OBJECT_SCOPE_LIST>()) == 0 }
    }
}
impl ::core::cmp::Eq for PROFILER_HEAP_OBJECT_SCOPE_LIST {}
impl ::core::default::Default for PROFILER_HEAP_OBJECT_SCOPE_LIST {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct PROFILER_HEAP_SUMMARY {
    pub version: PROFILER_HEAP_SUMMARY_VERSION,
    pub totalHeapSize: u32,
}
impl ::core::marker::Copy for PROFILER_HEAP_SUMMARY {}
impl ::core::clone::Clone for PROFILER_HEAP_SUMMARY {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for PROFILER_HEAP_SUMMARY {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("PROFILER_HEAP_SUMMARY").field("version", &self.version).field("totalHeapSize", &self.totalHeapSize).finish()
    }
}
unsafe impl ::windows::core::Abi for PROFILER_HEAP_SUMMARY {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for PROFILER_HEAP_SUMMARY {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<PROFILER_HEAP_SUMMARY>()) == 0 }
    }
}
impl ::core::cmp::Eq for PROFILER_HEAP_SUMMARY {}
impl ::core::default::Default for PROFILER_HEAP_SUMMARY {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct PROFILER_PROPERTY_TYPE_SUBSTRING_INFO {
    pub length: u32,
    pub value: ::windows::core::PCWSTR,
}
impl ::core::marker::Copy for PROFILER_PROPERTY_TYPE_SUBSTRING_INFO {}
impl ::core::clone::Clone for PROFILER_PROPERTY_TYPE_SUBSTRING_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for PROFILER_PROPERTY_TYPE_SUBSTRING_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("PROFILER_PROPERTY_TYPE_SUBSTRING_INFO").field("length", &self.length).field("value", &self.value).finish()
    }
}
unsafe impl ::windows::core::Abi for PROFILER_PROPERTY_TYPE_SUBSTRING_INFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for PROFILER_PROPERTY_TYPE_SUBSTRING_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<PROFILER_PROPERTY_TYPE_SUBSTRING_INFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for PROFILER_PROPERTY_TYPE_SUBSTRING_INFO {}
impl ::core::default::Default for PROFILER_PROPERTY_TYPE_SUBSTRING_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct READCONTROLSPACE {
    pub Processor: u16,
    pub Address: u32,
    pub BufLen: u32,
    pub Buf: [u8; 1],
}
impl ::core::marker::Copy for READCONTROLSPACE {}
impl ::core::clone::Clone for READCONTROLSPACE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for READCONTROLSPACE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("READCONTROLSPACE").field("Processor", &self.Processor).field("Address", &self.Address).field("BufLen", &self.BufLen).field("Buf", &self.Buf).finish()
    }
}
unsafe impl ::windows::core::Abi for READCONTROLSPACE {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for READCONTROLSPACE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<READCONTROLSPACE>()) == 0 }
    }
}
impl ::core::cmp::Eq for READCONTROLSPACE {}
impl ::core::default::Default for READCONTROLSPACE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct READCONTROLSPACE32 {
    pub Processor: u16,
    pub Address: u32,
    pub BufLen: u32,
    pub Buf: [u8; 1],
}
impl ::core::marker::Copy for READCONTROLSPACE32 {}
impl ::core::clone::Clone for READCONTROLSPACE32 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for READCONTROLSPACE32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("READCONTROLSPACE32").field("Processor", &self.Processor).field("Address", &self.Address).field("BufLen", &self.BufLen).field("Buf", &self.Buf).finish()
    }
}
unsafe impl ::windows::core::Abi for READCONTROLSPACE32 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for READCONTROLSPACE32 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<READCONTROLSPACE32>()) == 0 }
    }
}
impl ::core::cmp::Eq for READCONTROLSPACE32 {}
impl ::core::default::Default for READCONTROLSPACE32 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct READCONTROLSPACE64 {
    pub Processor: u16,
    pub Address: u64,
    pub BufLen: u32,
    pub Buf: [u8; 1],
}
impl ::core::marker::Copy for READCONTROLSPACE64 {}
impl ::core::clone::Clone for READCONTROLSPACE64 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for READCONTROLSPACE64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("READCONTROLSPACE64").field("Processor", &self.Processor).field("Address", &self.Address).field("BufLen", &self.BufLen).field("Buf", &self.Buf).finish()
    }
}
unsafe impl ::windows::core::Abi for READCONTROLSPACE64 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for READCONTROLSPACE64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<READCONTROLSPACE64>()) == 0 }
    }
}
impl ::core::cmp::Eq for READCONTROLSPACE64 {}
impl ::core::default::Default for READCONTROLSPACE64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct READ_WRITE_MSR {
    pub Msr: u32,
    pub Value: i64,
}
impl ::core::marker::Copy for READ_WRITE_MSR {}
impl ::core::clone::Clone for READ_WRITE_MSR {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for READ_WRITE_MSR {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("READ_WRITE_MSR").field("Msr", &self.Msr).field("Value", &self.Value).finish()
    }
}
unsafe impl ::windows::core::Abi for READ_WRITE_MSR {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for READ_WRITE_MSR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<READ_WRITE_MSR>()) == 0 }
    }
}
impl ::core::cmp::Eq for READ_WRITE_MSR {}
impl ::core::default::Default for READ_WRITE_MSR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct RIP_INFO {
    pub dwError: u32,
    pub dwType: RIP_INFO_TYPE,
}
impl ::core::marker::Copy for RIP_INFO {}
impl ::core::clone::Clone for RIP_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for RIP_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("RIP_INFO").field("dwError", &self.dwError).field("dwType", &self.dwType).finish()
    }
}
unsafe impl ::windows::core::Abi for RIP_INFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for RIP_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<RIP_INFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for RIP_INFO {}
impl ::core::default::Default for RIP_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct SEARCHMEMORY {
    pub SearchAddress: u64,
    pub SearchLength: u64,
    pub FoundAddress: u64,
    pub PatternLength: u32,
    pub Pattern: *mut ::core::ffi::c_void,
}
impl ::core::marker::Copy for SEARCHMEMORY {}
impl ::core::clone::Clone for SEARCHMEMORY {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for SEARCHMEMORY {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SEARCHMEMORY").field("SearchAddress", &self.SearchAddress).field("SearchLength", &self.SearchLength).field("FoundAddress", &self.FoundAddress).field("PatternLength", &self.PatternLength).field("Pattern", &self.Pattern).finish()
    }
}
unsafe impl ::windows::core::Abi for SEARCHMEMORY {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SEARCHMEMORY {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SEARCHMEMORY>()) == 0 }
    }
}
impl ::core::cmp::Eq for SEARCHMEMORY {}
impl ::core::default::Default for SEARCHMEMORY {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct SOURCEFILE {
    pub ModBase: u64,
    pub FileName: ::windows::core::PSTR,
}
impl ::core::marker::Copy for SOURCEFILE {}
impl ::core::clone::Clone for SOURCEFILE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for SOURCEFILE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SOURCEFILE").field("ModBase", &self.ModBase).field("FileName", &self.FileName).finish()
    }
}
unsafe impl ::windows::core::Abi for SOURCEFILE {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SOURCEFILE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SOURCEFILE>()) == 0 }
    }
}
impl ::core::cmp::Eq for SOURCEFILE {}
impl ::core::default::Default for SOURCEFILE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct SOURCEFILEW {
    pub ModBase: u64,
    pub FileName: ::windows::core::PWSTR,
}
impl ::core::marker::Copy for SOURCEFILEW {}
impl ::core::clone::Clone for SOURCEFILEW {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for SOURCEFILEW {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SOURCEFILEW").field("ModBase", &self.ModBase).field("FileName", &self.FileName).finish()
    }
}
unsafe impl ::windows::core::Abi for SOURCEFILEW {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SOURCEFILEW {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SOURCEFILEW>()) == 0 }
    }
}
impl ::core::cmp::Eq for SOURCEFILEW {}
impl ::core::default::Default for SOURCEFILEW {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct SRCCODEINFO {
    pub SizeOfStruct: u32,
    pub Key: *mut ::core::ffi::c_void,
    pub ModBase: u64,
    pub Obj: [super::super::super::Foundation::CHAR; 261],
    pub FileName: [super::super::super::Foundation::CHAR; 261],
    pub LineNumber: u32,
    pub Address: u64,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for SRCCODEINFO {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for SRCCODEINFO {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for SRCCODEINFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SRCCODEINFO").field("SizeOfStruct", &self.SizeOfStruct).field("Key", &self.Key).field("ModBase", &self.ModBase).field("Obj", &self.Obj).field("FileName", &self.FileName).field("LineNumber", &self.LineNumber).field("Address", &self.Address).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for SRCCODEINFO {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for SRCCODEINFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SRCCODEINFO>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for SRCCODEINFO {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for SRCCODEINFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct SRCCODEINFOW {
    pub SizeOfStruct: u32,
    pub Key: *mut ::core::ffi::c_void,
    pub ModBase: u64,
    pub Obj: [u16; 261],
    pub FileName: [u16; 261],
    pub LineNumber: u32,
    pub Address: u64,
}
impl ::core::marker::Copy for SRCCODEINFOW {}
impl ::core::clone::Clone for SRCCODEINFOW {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for SRCCODEINFOW {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SRCCODEINFOW").field("SizeOfStruct", &self.SizeOfStruct).field("Key", &self.Key).field("ModBase", &self.ModBase).field("Obj", &self.Obj).field("FileName", &self.FileName).field("LineNumber", &self.LineNumber).field("Address", &self.Address).finish()
    }
}
unsafe impl ::windows::core::Abi for SRCCODEINFOW {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SRCCODEINFOW {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SRCCODEINFOW>()) == 0 }
    }
}
impl ::core::cmp::Eq for SRCCODEINFOW {}
impl ::core::default::Default for SRCCODEINFOW {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
pub struct STACKFRAME {
    pub AddrPC: ADDRESS,
    pub AddrReturn: ADDRESS,
    pub AddrFrame: ADDRESS,
    pub AddrStack: ADDRESS,
    pub FuncTableEntry: *mut ::core::ffi::c_void,
    pub Params: [u32; 4],
    pub Far: super::super::super::Foundation::BOOL,
    pub Virtual: super::super::super::Foundation::BOOL,
    pub Reserved: [u32; 3],
    pub KdHelp: KDHELP,
    pub AddrBStore: ADDRESS,
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for STACKFRAME {}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for STACKFRAME {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for STACKFRAME {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("STACKFRAME").field("AddrPC", &self.AddrPC).field("AddrReturn", &self.AddrReturn).field("AddrFrame", &self.AddrFrame).field("AddrStack", &self.AddrStack).field("FuncTableEntry", &self.FuncTableEntry).field("Params", &self.Params).field("Far", &self.Far).field("Virtual", &self.Virtual).field("Reserved", &self.Reserved).field("KdHelp", &self.KdHelp).field("AddrBStore", &self.AddrBStore).finish()
    }
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for STACKFRAME {
    type Abi = Self;
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for STACKFRAME {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<STACKFRAME>()) == 0 }
    }
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for STACKFRAME {}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for STACKFRAME {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct STACKFRAME64 {
    pub AddrPC: ADDRESS64,
    pub AddrReturn: ADDRESS64,
    pub AddrFrame: ADDRESS64,
    pub AddrStack: ADDRESS64,
    pub AddrBStore: ADDRESS64,
    pub FuncTableEntry: *mut ::core::ffi::c_void,
    pub Params: [u64; 4],
    pub Far: super::super::super::Foundation::BOOL,
    pub Virtual: super::super::super::Foundation::BOOL,
    pub Reserved: [u64; 3],
    pub KdHelp: KDHELP64,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for STACKFRAME64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for STACKFRAME64 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for STACKFRAME64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("STACKFRAME64").field("AddrPC", &self.AddrPC).field("AddrReturn", &self.AddrReturn).field("AddrFrame", &self.AddrFrame).field("AddrStack", &self.AddrStack).field("AddrBStore", &self.AddrBStore).field("FuncTableEntry", &self.FuncTableEntry).field("Params", &self.Params).field("Far", &self.Far).field("Virtual", &self.Virtual).field("Reserved", &self.Reserved).field("KdHelp", &self.KdHelp).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for STACKFRAME64 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for STACKFRAME64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<STACKFRAME64>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for STACKFRAME64 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for STACKFRAME64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct STACKFRAME_EX {
    pub AddrPC: ADDRESS64,
    pub AddrReturn: ADDRESS64,
    pub AddrFrame: ADDRESS64,
    pub AddrStack: ADDRESS64,
    pub AddrBStore: ADDRESS64,
    pub FuncTableEntry: *mut ::core::ffi::c_void,
    pub Params: [u64; 4],
    pub Far: super::super::super::Foundation::BOOL,
    pub Virtual: super::super::super::Foundation::BOOL,
    pub Reserved: [u64; 3],
    pub KdHelp: KDHELP64,
    pub StackFrameSize: u32,
    pub InlineFrameContext: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for STACKFRAME_EX {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for STACKFRAME_EX {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for STACKFRAME_EX {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("STACKFRAME_EX")
            .field("AddrPC", &self.AddrPC)
            .field("AddrReturn", &self.AddrReturn)
            .field("AddrFrame", &self.AddrFrame)
            .field("AddrStack", &self.AddrStack)
            .field("AddrBStore", &self.AddrBStore)
            .field("FuncTableEntry", &self.FuncTableEntry)
            .field("Params", &self.Params)
            .field("Far", &self.Far)
            .field("Virtual", &self.Virtual)
            .field("Reserved", &self.Reserved)
            .field("KdHelp", &self.KdHelp)
            .field("StackFrameSize", &self.StackFrameSize)
            .field("InlineFrameContext", &self.InlineFrameContext)
            .finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for STACKFRAME_EX {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for STACKFRAME_EX {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<STACKFRAME_EX>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for STACKFRAME_EX {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for STACKFRAME_EX {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct STACK_SRC_INFO {
    pub ImagePath: ::windows::core::PCWSTR,
    pub ModuleName: ::windows::core::PCWSTR,
    pub Function: ::windows::core::PCWSTR,
    pub Displacement: u32,
    pub Row: u32,
    pub Column: u32,
}
impl ::core::marker::Copy for STACK_SRC_INFO {}
impl ::core::clone::Clone for STACK_SRC_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for STACK_SRC_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("STACK_SRC_INFO").field("ImagePath", &self.ImagePath).field("ModuleName", &self.ModuleName).field("Function", &self.Function).field("Displacement", &self.Displacement).field("Row", &self.Row).field("Column", &self.Column).finish()
    }
}
unsafe impl ::windows::core::Abi for STACK_SRC_INFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for STACK_SRC_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<STACK_SRC_INFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for STACK_SRC_INFO {}
impl ::core::default::Default for STACK_SRC_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct STACK_SYM_FRAME_INFO {
    pub StackFrameEx: DEBUG_STACK_FRAME_EX,
    pub SrcInfo: STACK_SRC_INFO,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for STACK_SYM_FRAME_INFO {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for STACK_SYM_FRAME_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for STACK_SYM_FRAME_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("STACK_SYM_FRAME_INFO").field("StackFrameEx", &self.StackFrameEx).field("SrcInfo", &self.SrcInfo).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for STACK_SYM_FRAME_INFO {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for STACK_SYM_FRAME_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<STACK_SYM_FRAME_INFO>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for STACK_SYM_FRAME_INFO {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for STACK_SYM_FRAME_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct SYMBOL_INFO {
    pub SizeOfStruct: u32,
    pub TypeIndex: u32,
    pub Reserved: [u64; 2],
    pub Index: u32,
    pub Size: u32,
    pub ModBase: u64,
    pub Flags: SYMBOL_INFO_FLAGS,
    pub Value: u64,
    pub Address: u64,
    pub Register: u32,
    pub Scope: u32,
    pub Tag: u32,
    pub NameLen: u32,
    pub MaxNameLen: u32,
    pub Name: [super::super::super::Foundation::CHAR; 1],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for SYMBOL_INFO {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for SYMBOL_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for SYMBOL_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SYMBOL_INFO")
            .field("SizeOfStruct", &self.SizeOfStruct)
            .field("TypeIndex", &self.TypeIndex)
            .field("Reserved", &self.Reserved)
            .field("Index", &self.Index)
            .field("Size", &self.Size)
            .field("ModBase", &self.ModBase)
            .field("Flags", &self.Flags)
            .field("Value", &self.Value)
            .field("Address", &self.Address)
            .field("Register", &self.Register)
            .field("Scope", &self.Scope)
            .field("Tag", &self.Tag)
            .field("NameLen", &self.NameLen)
            .field("MaxNameLen", &self.MaxNameLen)
            .field("Name", &self.Name)
            .finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for SYMBOL_INFO {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for SYMBOL_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SYMBOL_INFO>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for SYMBOL_INFO {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for SYMBOL_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct SYMBOL_INFOW {
    pub SizeOfStruct: u32,
    pub TypeIndex: u32,
    pub Reserved: [u64; 2],
    pub Index: u32,
    pub Size: u32,
    pub ModBase: u64,
    pub Flags: SYMBOL_INFO_FLAGS,
    pub Value: u64,
    pub Address: u64,
    pub Register: u32,
    pub Scope: u32,
    pub Tag: u32,
    pub NameLen: u32,
    pub MaxNameLen: u32,
    pub Name: [u16; 1],
}
impl ::core::marker::Copy for SYMBOL_INFOW {}
impl ::core::clone::Clone for SYMBOL_INFOW {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for SYMBOL_INFOW {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SYMBOL_INFOW")
            .field("SizeOfStruct", &self.SizeOfStruct)
            .field("TypeIndex", &self.TypeIndex)
            .field("Reserved", &self.Reserved)
            .field("Index", &self.Index)
            .field("Size", &self.Size)
            .field("ModBase", &self.ModBase)
            .field("Flags", &self.Flags)
            .field("Value", &self.Value)
            .field("Address", &self.Address)
            .field("Register", &self.Register)
            .field("Scope", &self.Scope)
            .field("Tag", &self.Tag)
            .field("NameLen", &self.NameLen)
            .field("MaxNameLen", &self.MaxNameLen)
            .field("Name", &self.Name)
            .finish()
    }
}
unsafe impl ::windows::core::Abi for SYMBOL_INFOW {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SYMBOL_INFOW {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SYMBOL_INFOW>()) == 0 }
    }
}
impl ::core::cmp::Eq for SYMBOL_INFOW {}
impl ::core::default::Default for SYMBOL_INFOW {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct SYMBOL_INFO_EX {
    pub SizeOfStruct: u32,
    pub TypeOfInfo: u32,
    pub Offset: u64,
    pub Line: u32,
    pub Displacement: u32,
    pub Reserved: [u32; 4],
}
impl ::core::marker::Copy for SYMBOL_INFO_EX {}
impl ::core::clone::Clone for SYMBOL_INFO_EX {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for SYMBOL_INFO_EX {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SYMBOL_INFO_EX").field("SizeOfStruct", &self.SizeOfStruct).field("TypeOfInfo", &self.TypeOfInfo).field("Offset", &self.Offset).field("Line", &self.Line).field("Displacement", &self.Displacement).field("Reserved", &self.Reserved).finish()
    }
}
unsafe impl ::windows::core::Abi for SYMBOL_INFO_EX {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SYMBOL_INFO_EX {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SYMBOL_INFO_EX>()) == 0 }
    }
}
impl ::core::cmp::Eq for SYMBOL_INFO_EX {}
impl ::core::default::Default for SYMBOL_INFO_EX {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct SYMBOL_INFO_PACKAGE {
    pub si: SYMBOL_INFO,
    pub name: [super::super::super::Foundation::CHAR; 2001],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for SYMBOL_INFO_PACKAGE {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for SYMBOL_INFO_PACKAGE {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for SYMBOL_INFO_PACKAGE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SYMBOL_INFO_PACKAGE").field("si", &self.si).field("name", &self.name).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for SYMBOL_INFO_PACKAGE {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for SYMBOL_INFO_PACKAGE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SYMBOL_INFO_PACKAGE>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for SYMBOL_INFO_PACKAGE {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for SYMBOL_INFO_PACKAGE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct SYMBOL_INFO_PACKAGEW {
    pub si: SYMBOL_INFOW,
    pub name: [u16; 2001],
}
impl ::core::marker::Copy for SYMBOL_INFO_PACKAGEW {}
impl ::core::clone::Clone for SYMBOL_INFO_PACKAGEW {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for SYMBOL_INFO_PACKAGEW {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SYMBOL_INFO_PACKAGEW").field("si", &self.si).field("name", &self.name).finish()
    }
}
unsafe impl ::windows::core::Abi for SYMBOL_INFO_PACKAGEW {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SYMBOL_INFO_PACKAGEW {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SYMBOL_INFO_PACKAGEW>()) == 0 }
    }
}
impl ::core::cmp::Eq for SYMBOL_INFO_PACKAGEW {}
impl ::core::default::Default for SYMBOL_INFO_PACKAGEW {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct SYMSRV_EXTENDED_OUTPUT_DATA {
    pub sizeOfStruct: u32,
    pub version: u32,
    pub filePtrMsg: [u16; 261],
}
impl ::core::marker::Copy for SYMSRV_EXTENDED_OUTPUT_DATA {}
impl ::core::clone::Clone for SYMSRV_EXTENDED_OUTPUT_DATA {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for SYMSRV_EXTENDED_OUTPUT_DATA {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SYMSRV_EXTENDED_OUTPUT_DATA").field("sizeOfStruct", &self.sizeOfStruct).field("version", &self.version).field("filePtrMsg", &self.filePtrMsg).finish()
    }
}
unsafe impl ::windows::core::Abi for SYMSRV_EXTENDED_OUTPUT_DATA {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SYMSRV_EXTENDED_OUTPUT_DATA {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SYMSRV_EXTENDED_OUTPUT_DATA>()) == 0 }
    }
}
impl ::core::cmp::Eq for SYMSRV_EXTENDED_OUTPUT_DATA {}
impl ::core::default::Default for SYMSRV_EXTENDED_OUTPUT_DATA {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct SYMSRV_INDEX_INFO {
    pub sizeofstruct: u32,
    pub file: [super::super::super::Foundation::CHAR; 261],
    pub stripped: super::super::super::Foundation::BOOL,
    pub timestamp: u32,
    pub size: u32,
    pub dbgfile: [super::super::super::Foundation::CHAR; 261],
    pub pdbfile: [super::super::super::Foundation::CHAR; 261],
    pub guid: ::windows::core::GUID,
    pub sig: u32,
    pub age: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for SYMSRV_INDEX_INFO {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for SYMSRV_INDEX_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for SYMSRV_INDEX_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SYMSRV_INDEX_INFO").field("sizeofstruct", &self.sizeofstruct).field("file", &self.file).field("stripped", &self.stripped).field("timestamp", &self.timestamp).field("size", &self.size).field("dbgfile", &self.dbgfile).field("pdbfile", &self.pdbfile).field("guid", &self.guid).field("sig", &self.sig).field("age", &self.age).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for SYMSRV_INDEX_INFO {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for SYMSRV_INDEX_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SYMSRV_INDEX_INFO>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for SYMSRV_INDEX_INFO {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for SYMSRV_INDEX_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct SYMSRV_INDEX_INFOW {
    pub sizeofstruct: u32,
    pub file: [u16; 261],
    pub stripped: super::super::super::Foundation::BOOL,
    pub timestamp: u32,
    pub size: u32,
    pub dbgfile: [u16; 261],
    pub pdbfile: [u16; 261],
    pub guid: ::windows::core::GUID,
    pub sig: u32,
    pub age: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for SYMSRV_INDEX_INFOW {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for SYMSRV_INDEX_INFOW {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for SYMSRV_INDEX_INFOW {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("SYMSRV_INDEX_INFOW").field("sizeofstruct", &self.sizeofstruct).field("file", &self.file).field("stripped", &self.stripped).field("timestamp", &self.timestamp).field("size", &self.size).field("dbgfile", &self.dbgfile).field("pdbfile", &self.pdbfile).field("guid", &self.guid).field("sig", &self.sig).field("age", &self.age).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for SYMSRV_INDEX_INFOW {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for SYMSRV_INDEX_INFOW {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SYMSRV_INDEX_INFOW>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for SYMSRV_INDEX_INFOW {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for SYMSRV_INDEX_INFOW {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct SYM_DUMP_PARAM {
    pub size: u32,
    pub sName: *mut u8,
    pub Options: u32,
    pub addr: u64,
    pub listLink: *mut FIELD_INFO,
    pub Anonymous: SYM_DUMP_PARAM_0,
    pub CallbackRoutine: PSYM_DUMP_FIELD_CALLBACK,
    pub nFields: u32,
    pub Fields: *mut FIELD_INFO,
    pub ModBase: u64,
    pub TypeId: u32,
    pub TypeSize: u32,
    pub BufferSize: u32,
    pub _bitfield: u32,
}
impl ::core::marker::Copy for SYM_DUMP_PARAM {}
impl ::core::clone::Clone for SYM_DUMP_PARAM {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for SYM_DUMP_PARAM {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SYM_DUMP_PARAM {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SYM_DUMP_PARAM>()) == 0 }
    }
}
impl ::core::cmp::Eq for SYM_DUMP_PARAM {}
impl ::core::default::Default for SYM_DUMP_PARAM {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union SYM_DUMP_PARAM_0 {
    pub Context: *mut ::core::ffi::c_void,
    pub pBuffer: *mut ::core::ffi::c_void,
}
impl ::core::marker::Copy for SYM_DUMP_PARAM_0 {}
impl ::core::clone::Clone for SYM_DUMP_PARAM_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for SYM_DUMP_PARAM_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for SYM_DUMP_PARAM_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<SYM_DUMP_PARAM_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for SYM_DUMP_PARAM_0 {}
impl ::core::default::Default for SYM_DUMP_PARAM_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct ScriptDebugEventInformation {
    pub DebugEvent: ScriptDebugEvent,
    pub EventPosition: ScriptDebugPosition,
    pub EventSpanEnd: ScriptDebugPosition,
    pub u: ScriptDebugEventInformation_0,
}
impl ::core::marker::Copy for ScriptDebugEventInformation {}
impl ::core::clone::Clone for ScriptDebugEventInformation {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for ScriptDebugEventInformation {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for ScriptDebugEventInformation {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<ScriptDebugEventInformation>()) == 0 }
    }
}
impl ::core::cmp::Eq for ScriptDebugEventInformation {}
impl ::core::default::Default for ScriptDebugEventInformation {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union ScriptDebugEventInformation_0 {
    pub ExceptionInformation: ScriptDebugEventInformation_0_1,
    pub BreakpointInformation: ScriptDebugEventInformation_0_0,
}
impl ::core::marker::Copy for ScriptDebugEventInformation_0 {}
impl ::core::clone::Clone for ScriptDebugEventInformation_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for ScriptDebugEventInformation_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for ScriptDebugEventInformation_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<ScriptDebugEventInformation_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for ScriptDebugEventInformation_0 {}
impl ::core::default::Default for ScriptDebugEventInformation_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct ScriptDebugEventInformation_0_0 {
    pub BreakpointId: u64,
}
impl ::core::marker::Copy for ScriptDebugEventInformation_0_0 {}
impl ::core::clone::Clone for ScriptDebugEventInformation_0_0 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for ScriptDebugEventInformation_0_0 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("ScriptDebugEventInformation_0_0").field("BreakpointId", &self.BreakpointId).finish()
    }
}
unsafe impl ::windows::core::Abi for ScriptDebugEventInformation_0_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for ScriptDebugEventInformation_0_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<ScriptDebugEventInformation_0_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for ScriptDebugEventInformation_0_0 {}
impl ::core::default::Default for ScriptDebugEventInformation_0_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct ScriptDebugEventInformation_0_1 {
    pub IsUncaught: u8,
}
impl ::core::marker::Copy for ScriptDebugEventInformation_0_1 {}
impl ::core::clone::Clone for ScriptDebugEventInformation_0_1 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for ScriptDebugEventInformation_0_1 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("ScriptDebugEventInformation_0_1").field("IsUncaught", &self.IsUncaught).finish()
    }
}
unsafe impl ::windows::core::Abi for ScriptDebugEventInformation_0_1 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for ScriptDebugEventInformation_0_1 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<ScriptDebugEventInformation_0_1>()) == 0 }
    }
}
impl ::core::cmp::Eq for ScriptDebugEventInformation_0_1 {}
impl ::core::default::Default for ScriptDebugEventInformation_0_1 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct ScriptDebugPosition {
    pub Line: u32,
    pub Column: u32,
}
impl ::core::marker::Copy for ScriptDebugPosition {}
impl ::core::clone::Clone for ScriptDebugPosition {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for ScriptDebugPosition {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("ScriptDebugPosition").field("Line", &self.Line).field("Column", &self.Column).finish()
    }
}
unsafe impl ::windows::core::Abi for ScriptDebugPosition {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for ScriptDebugPosition {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<ScriptDebugPosition>()) == 0 }
    }
}
impl ::core::cmp::Eq for ScriptDebugPosition {}
impl ::core::default::Default for ScriptDebugPosition {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct TEXT_DOCUMENT_ARRAY {
    pub dwCount: u32,
    pub Members: *mut ::core::option::Option<IDebugDocumentText>,
}
impl ::core::marker::Copy for TEXT_DOCUMENT_ARRAY {}
impl ::core::clone::Clone for TEXT_DOCUMENT_ARRAY {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for TEXT_DOCUMENT_ARRAY {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("TEXT_DOCUMENT_ARRAY").field("dwCount", &self.dwCount).field("Members", &self.Members).finish()
    }
}
unsafe impl ::windows::core::Abi for TEXT_DOCUMENT_ARRAY {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for TEXT_DOCUMENT_ARRAY {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<TEXT_DOCUMENT_ARRAY>()) == 0 }
    }
}
impl ::core::cmp::Eq for TEXT_DOCUMENT_ARRAY {}
impl ::core::default::Default for TEXT_DOCUMENT_ARRAY {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct TI_FINDCHILDREN_PARAMS {
    pub Count: u32,
    pub Start: u32,
    pub ChildId: [u32; 1],
}
impl ::core::marker::Copy for TI_FINDCHILDREN_PARAMS {}
impl ::core::clone::Clone for TI_FINDCHILDREN_PARAMS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for TI_FINDCHILDREN_PARAMS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("TI_FINDCHILDREN_PARAMS").field("Count", &self.Count).field("Start", &self.Start).field("ChildId", &self.ChildId).finish()
    }
}
unsafe impl ::windows::core::Abi for TI_FINDCHILDREN_PARAMS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for TI_FINDCHILDREN_PARAMS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<TI_FINDCHILDREN_PARAMS>()) == 0 }
    }
}
impl ::core::cmp::Eq for TI_FINDCHILDREN_PARAMS {}
impl ::core::default::Default for TI_FINDCHILDREN_PARAMS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct TRANSLATE_VIRTUAL_TO_PHYSICAL {
    pub Virtual: u64,
    pub Physical: u64,
}
impl ::core::marker::Copy for TRANSLATE_VIRTUAL_TO_PHYSICAL {}
impl ::core::clone::Clone for TRANSLATE_VIRTUAL_TO_PHYSICAL {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for TRANSLATE_VIRTUAL_TO_PHYSICAL {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("TRANSLATE_VIRTUAL_TO_PHYSICAL").field("Virtual", &self.Virtual).field("Physical", &self.Physical).finish()
    }
}
unsafe impl ::windows::core::Abi for TRANSLATE_VIRTUAL_TO_PHYSICAL {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for TRANSLATE_VIRTUAL_TO_PHYSICAL {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<TRANSLATE_VIRTUAL_TO_PHYSICAL>()) == 0 }
    }
}
impl ::core::cmp::Eq for TRANSLATE_VIRTUAL_TO_PHYSICAL {}
impl ::core::default::Default for TRANSLATE_VIRTUAL_TO_PHYSICAL {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct UNLOAD_DLL_DEBUG_INFO {
    pub lpBaseOfDll: *mut ::core::ffi::c_void,
}
impl ::core::marker::Copy for UNLOAD_DLL_DEBUG_INFO {}
impl ::core::clone::Clone for UNLOAD_DLL_DEBUG_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for UNLOAD_DLL_DEBUG_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("UNLOAD_DLL_DEBUG_INFO").field("lpBaseOfDll", &self.lpBaseOfDll).finish()
    }
}
unsafe impl ::windows::core::Abi for UNLOAD_DLL_DEBUG_INFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for UNLOAD_DLL_DEBUG_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<UNLOAD_DLL_DEBUG_INFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for UNLOAD_DLL_DEBUG_INFO {}
impl ::core::default::Default for UNLOAD_DLL_DEBUG_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
pub struct UNWIND_HISTORY_TABLE {
    pub Count: u32,
    pub LocalHint: u8,
    pub GlobalHint: u8,
    pub Search: u8,
    pub Once: u8,
    pub LowAddress: usize,
    pub HighAddress: usize,
    pub Entry: [UNWIND_HISTORY_TABLE_ENTRY; 12],
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
impl ::core::marker::Copy for UNWIND_HISTORY_TABLE {}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
impl ::core::clone::Clone for UNWIND_HISTORY_TABLE {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
impl ::core::fmt::Debug for UNWIND_HISTORY_TABLE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("UNWIND_HISTORY_TABLE").field("Count", &self.Count).field("LocalHint", &self.LocalHint).field("GlobalHint", &self.GlobalHint).field("Search", &self.Search).field("Once", &self.Once).field("LowAddress", &self.LowAddress).field("HighAddress", &self.HighAddress).field("Entry", &self.Entry).finish()
    }
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
unsafe impl ::windows::core::Abi for UNWIND_HISTORY_TABLE {
    type Abi = Self;
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
impl ::core::cmp::PartialEq for UNWIND_HISTORY_TABLE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<UNWIND_HISTORY_TABLE>()) == 0 }
    }
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
impl ::core::cmp::Eq for UNWIND_HISTORY_TABLE {}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
impl ::core::default::Default for UNWIND_HISTORY_TABLE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "aarch64")]
pub struct UNWIND_HISTORY_TABLE_ENTRY {
    pub ImageBase: usize,
    pub FunctionEntry: *mut IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY,
}
#[cfg(target_arch = "aarch64")]
impl ::core::marker::Copy for UNWIND_HISTORY_TABLE_ENTRY {}
#[cfg(target_arch = "aarch64")]
impl ::core::clone::Clone for UNWIND_HISTORY_TABLE_ENTRY {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "aarch64")]
impl ::core::fmt::Debug for UNWIND_HISTORY_TABLE_ENTRY {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("UNWIND_HISTORY_TABLE_ENTRY").field("ImageBase", &self.ImageBase).field("FunctionEntry", &self.FunctionEntry).finish()
    }
}
#[cfg(target_arch = "aarch64")]
unsafe impl ::windows::core::Abi for UNWIND_HISTORY_TABLE_ENTRY {
    type Abi = Self;
}
#[cfg(target_arch = "aarch64")]
impl ::core::cmp::PartialEq for UNWIND_HISTORY_TABLE_ENTRY {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<UNWIND_HISTORY_TABLE_ENTRY>()) == 0 }
    }
}
#[cfg(target_arch = "aarch64")]
impl ::core::cmp::Eq for UNWIND_HISTORY_TABLE_ENTRY {}
#[cfg(target_arch = "aarch64")]
impl ::core::default::Default for UNWIND_HISTORY_TABLE_ENTRY {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "x86_64")]
pub struct UNWIND_HISTORY_TABLE_ENTRY {
    pub ImageBase: usize,
    pub FunctionEntry: *mut IMAGE_RUNTIME_FUNCTION_ENTRY,
}
#[cfg(target_arch = "x86_64")]
impl ::core::marker::Copy for UNWIND_HISTORY_TABLE_ENTRY {}
#[cfg(target_arch = "x86_64")]
impl ::core::clone::Clone for UNWIND_HISTORY_TABLE_ENTRY {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86_64")]
impl ::core::fmt::Debug for UNWIND_HISTORY_TABLE_ENTRY {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("UNWIND_HISTORY_TABLE_ENTRY").field("ImageBase", &self.ImageBase).field("FunctionEntry", &self.FunctionEntry).finish()
    }
}
#[cfg(target_arch = "x86_64")]
unsafe impl ::windows::core::Abi for UNWIND_HISTORY_TABLE_ENTRY {
    type Abi = Self;
}
#[cfg(target_arch = "x86_64")]
impl ::core::cmp::PartialEq for UNWIND_HISTORY_TABLE_ENTRY {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<UNWIND_HISTORY_TABLE_ENTRY>()) == 0 }
    }
}
#[cfg(target_arch = "x86_64")]
impl ::core::cmp::Eq for UNWIND_HISTORY_TABLE_ENTRY {}
#[cfg(target_arch = "x86_64")]
impl ::core::default::Default for UNWIND_HISTORY_TABLE_ENTRY {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct VIRTUAL_TO_PHYSICAL {
    pub Status: u32,
    pub Size: u32,
    pub PdeAddress: u64,
    pub Virtual: u64,
    pub Physical: u64,
}
impl ::core::marker::Copy for VIRTUAL_TO_PHYSICAL {}
impl ::core::clone::Clone for VIRTUAL_TO_PHYSICAL {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for VIRTUAL_TO_PHYSICAL {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("VIRTUAL_TO_PHYSICAL").field("Status", &self.Status).field("Size", &self.Size).field("PdeAddress", &self.PdeAddress).field("Virtual", &self.Virtual).field("Physical", &self.Physical).finish()
    }
}
unsafe impl ::windows::core::Abi for VIRTUAL_TO_PHYSICAL {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for VIRTUAL_TO_PHYSICAL {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<VIRTUAL_TO_PHYSICAL>()) == 0 }
    }
}
impl ::core::cmp::Eq for VIRTUAL_TO_PHYSICAL {}
impl ::core::default::Default for VIRTUAL_TO_PHYSICAL {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct WAITCHAIN_NODE_INFO {
    pub ObjectType: WCT_OBJECT_TYPE,
    pub ObjectStatus: WCT_OBJECT_STATUS,
    pub Anonymous: WAITCHAIN_NODE_INFO_0,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for WAITCHAIN_NODE_INFO {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for WAITCHAIN_NODE_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for WAITCHAIN_NODE_INFO {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for WAITCHAIN_NODE_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WAITCHAIN_NODE_INFO>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for WAITCHAIN_NODE_INFO {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for WAITCHAIN_NODE_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub union WAITCHAIN_NODE_INFO_0 {
    pub LockObject: WAITCHAIN_NODE_INFO_0_0,
    pub ThreadObject: WAITCHAIN_NODE_INFO_0_1,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for WAITCHAIN_NODE_INFO_0 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for WAITCHAIN_NODE_INFO_0 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for WAITCHAIN_NODE_INFO_0 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for WAITCHAIN_NODE_INFO_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WAITCHAIN_NODE_INFO_0>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for WAITCHAIN_NODE_INFO_0 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for WAITCHAIN_NODE_INFO_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct WAITCHAIN_NODE_INFO_0_0 {
    pub ObjectName: [u16; 128],
    pub Timeout: i64,
    pub Alertable: super::super::super::Foundation::BOOL,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for WAITCHAIN_NODE_INFO_0_0 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for WAITCHAIN_NODE_INFO_0_0 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for WAITCHAIN_NODE_INFO_0_0 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("WAITCHAIN_NODE_INFO_0_0").field("ObjectName", &self.ObjectName).field("Timeout", &self.Timeout).field("Alertable", &self.Alertable).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for WAITCHAIN_NODE_INFO_0_0 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for WAITCHAIN_NODE_INFO_0_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WAITCHAIN_NODE_INFO_0_0>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for WAITCHAIN_NODE_INFO_0_0 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for WAITCHAIN_NODE_INFO_0_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct WAITCHAIN_NODE_INFO_0_1 {
    pub ProcessId: u32,
    pub ThreadId: u32,
    pub WaitTime: u32,
    pub ContextSwitches: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for WAITCHAIN_NODE_INFO_0_1 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for WAITCHAIN_NODE_INFO_0_1 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for WAITCHAIN_NODE_INFO_0_1 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("WAITCHAIN_NODE_INFO_0_1").field("ProcessId", &self.ProcessId).field("ThreadId", &self.ThreadId).field("WaitTime", &self.WaitTime).field("ContextSwitches", &self.ContextSwitches).finish()
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for WAITCHAIN_NODE_INFO_0_1 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for WAITCHAIN_NODE_INFO_0_1 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WAITCHAIN_NODE_INFO_0_1>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for WAITCHAIN_NODE_INFO_0_1 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for WAITCHAIN_NODE_INFO_0_1 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WDBGEXTS_CLR_DATA_INTERFACE {
    pub Iid: *const ::windows::core::GUID,
    pub Iface: *mut ::core::ffi::c_void,
}
impl ::core::marker::Copy for WDBGEXTS_CLR_DATA_INTERFACE {}
impl ::core::clone::Clone for WDBGEXTS_CLR_DATA_INTERFACE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for WDBGEXTS_CLR_DATA_INTERFACE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("WDBGEXTS_CLR_DATA_INTERFACE").field("Iid", &self.Iid).field("Iface", &self.Iface).finish()
    }
}
unsafe impl ::windows::core::Abi for WDBGEXTS_CLR_DATA_INTERFACE {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WDBGEXTS_CLR_DATA_INTERFACE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WDBGEXTS_CLR_DATA_INTERFACE>()) == 0 }
    }
}
impl ::core::cmp::Eq for WDBGEXTS_CLR_DATA_INTERFACE {}
impl ::core::default::Default for WDBGEXTS_CLR_DATA_INTERFACE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WDBGEXTS_DISASSEMBLE_BUFFER {
    pub InOffset: u64,
    pub OutOffset: u64,
    pub AddrFlags: u32,
    pub FormatFlags: u32,
    pub DataBufferBytes: u32,
    pub DisasmBufferChars: u32,
    pub DataBuffer: *mut ::core::ffi::c_void,
    pub DisasmBuffer: ::windows::core::PWSTR,
    pub Reserved0: [u64; 3],
}
impl ::core::marker::Copy for WDBGEXTS_DISASSEMBLE_BUFFER {}
impl ::core::clone::Clone for WDBGEXTS_DISASSEMBLE_BUFFER {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for WDBGEXTS_DISASSEMBLE_BUFFER {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("WDBGEXTS_DISASSEMBLE_BUFFER").field("InOffset", &self.InOffset).field("OutOffset", &self.OutOffset).field("AddrFlags", &self.AddrFlags).field("FormatFlags", &self.FormatFlags).field("DataBufferBytes", &self.DataBufferBytes).field("DisasmBufferChars", &self.DisasmBufferChars).field("DataBuffer", &self.DataBuffer).field("DisasmBuffer", &self.DisasmBuffer).field("Reserved0", &self.Reserved0).finish()
    }
}
unsafe impl ::windows::core::Abi for WDBGEXTS_DISASSEMBLE_BUFFER {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WDBGEXTS_DISASSEMBLE_BUFFER {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WDBGEXTS_DISASSEMBLE_BUFFER>()) == 0 }
    }
}
impl ::core::cmp::Eq for WDBGEXTS_DISASSEMBLE_BUFFER {}
impl ::core::default::Default for WDBGEXTS_DISASSEMBLE_BUFFER {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WDBGEXTS_MODULE_IN_RANGE {
    pub Start: u64,
    pub End: u64,
    pub FoundModBase: u64,
    pub FoundModSize: u32,
}
impl ::core::marker::Copy for WDBGEXTS_MODULE_IN_RANGE {}
impl ::core::clone::Clone for WDBGEXTS_MODULE_IN_RANGE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for WDBGEXTS_MODULE_IN_RANGE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("WDBGEXTS_MODULE_IN_RANGE").field("Start", &self.Start).field("End", &self.End).field("FoundModBase", &self.FoundModBase).field("FoundModSize", &self.FoundModSize).finish()
    }
}
unsafe impl ::windows::core::Abi for WDBGEXTS_MODULE_IN_RANGE {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WDBGEXTS_MODULE_IN_RANGE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WDBGEXTS_MODULE_IN_RANGE>()) == 0 }
    }
}
impl ::core::cmp::Eq for WDBGEXTS_MODULE_IN_RANGE {}
impl ::core::default::Default for WDBGEXTS_MODULE_IN_RANGE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WDBGEXTS_QUERY_INTERFACE {
    pub Iid: *const ::windows::core::GUID,
    pub Iface: *mut ::core::ffi::c_void,
}
impl ::core::marker::Copy for WDBGEXTS_QUERY_INTERFACE {}
impl ::core::clone::Clone for WDBGEXTS_QUERY_INTERFACE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for WDBGEXTS_QUERY_INTERFACE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("WDBGEXTS_QUERY_INTERFACE").field("Iid", &self.Iid).field("Iface", &self.Iface).finish()
    }
}
unsafe impl ::windows::core::Abi for WDBGEXTS_QUERY_INTERFACE {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WDBGEXTS_QUERY_INTERFACE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WDBGEXTS_QUERY_INTERFACE>()) == 0 }
    }
}
impl ::core::cmp::Eq for WDBGEXTS_QUERY_INTERFACE {}
impl ::core::default::Default for WDBGEXTS_QUERY_INTERFACE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WDBGEXTS_THREAD_OS_INFO {
    pub ThreadId: u32,
    pub ExitStatus: u32,
    pub PriorityClass: u32,
    pub Priority: u32,
    pub CreateTime: u64,
    pub ExitTime: u64,
    pub KernelTime: u64,
    pub UserTime: u64,
    pub StartOffset: u64,
    pub Affinity: u64,
}
impl ::core::marker::Copy for WDBGEXTS_THREAD_OS_INFO {}
impl ::core::clone::Clone for WDBGEXTS_THREAD_OS_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for WDBGEXTS_THREAD_OS_INFO {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("WDBGEXTS_THREAD_OS_INFO").field("ThreadId", &self.ThreadId).field("ExitStatus", &self.ExitStatus).field("PriorityClass", &self.PriorityClass).field("Priority", &self.Priority).field("CreateTime", &self.CreateTime).field("ExitTime", &self.ExitTime).field("KernelTime", &self.KernelTime).field("UserTime", &self.UserTime).field("StartOffset", &self.StartOffset).field("Affinity", &self.Affinity).finish()
    }
}
unsafe impl ::windows::core::Abi for WDBGEXTS_THREAD_OS_INFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WDBGEXTS_THREAD_OS_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WDBGEXTS_THREAD_OS_INFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for WDBGEXTS_THREAD_OS_INFO {}
impl ::core::default::Default for WDBGEXTS_THREAD_OS_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct WHEA_AER_BRIDGE_DESCRIPTOR {
    pub Type: u16,
    pub Enabled: super::super::super::Foundation::BOOLEAN,
    pub Reserved: u8,
    pub BusNumber: u32,
    pub Slot: WHEA_PCI_SLOT_NUMBER,
    pub DeviceControl: u16,
    pub Flags: AER_BRIDGE_DESCRIPTOR_FLAGS,
    pub UncorrectableErrorMask: u32,
    pub UncorrectableErrorSeverity: u32,
    pub CorrectableErrorMask: u32,
    pub AdvancedCapsAndControl: u32,
    pub SecondaryUncorrectableErrorMask: u32,
    pub SecondaryUncorrectableErrorSev: u32,
    pub SecondaryCapsAndControl: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for WHEA_AER_BRIDGE_DESCRIPTOR {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for WHEA_AER_BRIDGE_DESCRIPTOR {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for WHEA_AER_BRIDGE_DESCRIPTOR {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for WHEA_AER_BRIDGE_DESCRIPTOR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_AER_BRIDGE_DESCRIPTOR>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for WHEA_AER_BRIDGE_DESCRIPTOR {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for WHEA_AER_BRIDGE_DESCRIPTOR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct WHEA_AER_ENDPOINT_DESCRIPTOR {
    pub Type: u16,
    pub Enabled: super::super::super::Foundation::BOOLEAN,
    pub Reserved: u8,
    pub BusNumber: u32,
    pub Slot: WHEA_PCI_SLOT_NUMBER,
    pub DeviceControl: u16,
    pub Flags: AER_ENDPOINT_DESCRIPTOR_FLAGS,
    pub UncorrectableErrorMask: u32,
    pub UncorrectableErrorSeverity: u32,
    pub CorrectableErrorMask: u32,
    pub AdvancedCapsAndControl: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for WHEA_AER_ENDPOINT_DESCRIPTOR {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for WHEA_AER_ENDPOINT_DESCRIPTOR {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for WHEA_AER_ENDPOINT_DESCRIPTOR {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for WHEA_AER_ENDPOINT_DESCRIPTOR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_AER_ENDPOINT_DESCRIPTOR>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for WHEA_AER_ENDPOINT_DESCRIPTOR {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for WHEA_AER_ENDPOINT_DESCRIPTOR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct WHEA_AER_ROOTPORT_DESCRIPTOR {
    pub Type: u16,
    pub Enabled: super::super::super::Foundation::BOOLEAN,
    pub Reserved: u8,
    pub BusNumber: u32,
    pub Slot: WHEA_PCI_SLOT_NUMBER,
    pub DeviceControl: u16,
    pub Flags: AER_ROOTPORT_DESCRIPTOR_FLAGS,
    pub UncorrectableErrorMask: u32,
    pub UncorrectableErrorSeverity: u32,
    pub CorrectableErrorMask: u32,
    pub AdvancedCapsAndControl: u32,
    pub RootErrorCommand: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for WHEA_AER_ROOTPORT_DESCRIPTOR {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for WHEA_AER_ROOTPORT_DESCRIPTOR {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for WHEA_AER_ROOTPORT_DESCRIPTOR {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for WHEA_AER_ROOTPORT_DESCRIPTOR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_AER_ROOTPORT_DESCRIPTOR>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for WHEA_AER_ROOTPORT_DESCRIPTOR {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for WHEA_AER_ROOTPORT_DESCRIPTOR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct WHEA_DEVICE_DRIVER_DESCRIPTOR {
    pub Type: u16,
    pub Enabled: super::super::super::Foundation::BOOLEAN,
    pub Reserved: u8,
    pub SourceGuid: ::windows::core::GUID,
    pub LogTag: u16,
    pub Reserved2: u16,
    pub PacketLength: u32,
    pub PacketCount: u32,
    pub PacketBuffer: *mut u8,
    pub Config: WHEA_ERROR_SOURCE_CONFIGURATION_DD,
    pub CreatorId: ::windows::core::GUID,
    pub PartitionId: ::windows::core::GUID,
    pub MaxSectionDataLength: u32,
    pub MaxSectionsPerRecord: u32,
    pub PacketStateBuffer: *mut u8,
    pub OpenHandles: i32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for WHEA_DEVICE_DRIVER_DESCRIPTOR {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for WHEA_DEVICE_DRIVER_DESCRIPTOR {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for WHEA_DEVICE_DRIVER_DESCRIPTOR {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for WHEA_DEVICE_DRIVER_DESCRIPTOR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_DEVICE_DRIVER_DESCRIPTOR>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for WHEA_DEVICE_DRIVER_DESCRIPTOR {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for WHEA_DEVICE_DRIVER_DESCRIPTOR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WHEA_DRIVER_BUFFER_SET {
    pub Version: u32,
    pub Data: *mut u8,
    pub DataSize: u32,
    pub SectionTypeGuid: *mut ::windows::core::GUID,
    pub SectionFriendlyName: *mut u8,
    pub Flags: *mut u8,
}
impl ::core::marker::Copy for WHEA_DRIVER_BUFFER_SET {}
impl ::core::clone::Clone for WHEA_DRIVER_BUFFER_SET {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_DRIVER_BUFFER_SET {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_DRIVER_BUFFER_SET {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_DRIVER_BUFFER_SET>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_DRIVER_BUFFER_SET {}
impl ::core::default::Default for WHEA_DRIVER_BUFFER_SET {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct WHEA_ERROR_SOURCE_CONFIGURATION_DD {
    pub Initialize: WHEA_ERROR_SOURCE_INITIALIZE_DEVICE_DRIVER,
    pub Uninitialize: WHEA_ERROR_SOURCE_UNINITIALIZE_DEVICE_DRIVER,
    pub Correct: WHEA_ERROR_SOURCE_CORRECT_DEVICE_DRIVER,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for WHEA_ERROR_SOURCE_CONFIGURATION_DD {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for WHEA_ERROR_SOURCE_CONFIGURATION_DD {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for WHEA_ERROR_SOURCE_CONFIGURATION_DD {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for WHEA_ERROR_SOURCE_CONFIGURATION_DD {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_ERROR_SOURCE_CONFIGURATION_DD>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for WHEA_ERROR_SOURCE_CONFIGURATION_DD {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for WHEA_ERROR_SOURCE_CONFIGURATION_DD {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER {
    pub Version: u32,
    pub SourceGuid: ::windows::core::GUID,
    pub LogTag: u16,
    pub Reserved: [u8; 6],
    pub Initialize: WHEA_ERROR_SOURCE_INITIALIZE_DEVICE_DRIVER,
    pub Uninitialize: WHEA_ERROR_SOURCE_UNINITIALIZE_DEVICE_DRIVER,
    pub MaxSectionDataLength: u32,
    pub MaxSectionsPerReport: u32,
    pub CreatorId: ::windows::core::GUID,
    pub PartitionId: ::windows::core::GUID,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER_V1 {
    pub Version: u32,
    pub SourceGuid: ::windows::core::GUID,
    pub LogTag: u16,
    pub Reserved: [u8; 6],
    pub Initialize: WHEA_ERROR_SOURCE_INITIALIZE_DEVICE_DRIVER,
    pub Uninitialize: WHEA_ERROR_SOURCE_UNINITIALIZE_DEVICE_DRIVER,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER_V1 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER_V1 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER_V1 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER_V1 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER_V1>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER_V1 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER_V1 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct WHEA_ERROR_SOURCE_DESCRIPTOR {
    pub Length: u32,
    pub Version: u32,
    pub Type: WHEA_ERROR_SOURCE_TYPE,
    pub State: WHEA_ERROR_SOURCE_STATE,
    pub MaxRawDataLength: u32,
    pub NumRecordsToPreallocate: u32,
    pub MaxSectionsPerRecord: u32,
    pub ErrorSourceId: u32,
    pub PlatformErrorSourceId: u32,
    pub Flags: u32,
    pub Info: WHEA_ERROR_SOURCE_DESCRIPTOR_0,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for WHEA_ERROR_SOURCE_DESCRIPTOR {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for WHEA_ERROR_SOURCE_DESCRIPTOR {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for WHEA_ERROR_SOURCE_DESCRIPTOR {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for WHEA_ERROR_SOURCE_DESCRIPTOR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_ERROR_SOURCE_DESCRIPTOR>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for WHEA_ERROR_SOURCE_DESCRIPTOR {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for WHEA_ERROR_SOURCE_DESCRIPTOR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub union WHEA_ERROR_SOURCE_DESCRIPTOR_0 {
    pub XpfMceDescriptor: WHEA_XPF_MCE_DESCRIPTOR,
    pub XpfCmcDescriptor: WHEA_XPF_CMC_DESCRIPTOR,
    pub XpfNmiDescriptor: WHEA_XPF_NMI_DESCRIPTOR,
    pub IpfMcaDescriptor: WHEA_IPF_MCA_DESCRIPTOR,
    pub IpfCmcDescriptor: WHEA_IPF_CMC_DESCRIPTOR,
    pub IpfCpeDescriptor: WHEA_IPF_CPE_DESCRIPTOR,
    pub AerRootportDescriptor: WHEA_AER_ROOTPORT_DESCRIPTOR,
    pub AerEndpointDescriptor: WHEA_AER_ENDPOINT_DESCRIPTOR,
    pub AerBridgeDescriptor: WHEA_AER_BRIDGE_DESCRIPTOR,
    pub GenErrDescriptor: WHEA_GENERIC_ERROR_DESCRIPTOR,
    pub GenErrDescriptorV2: WHEA_GENERIC_ERROR_DESCRIPTOR_V2,
    pub DeviceDriverDescriptor: WHEA_DEVICE_DRIVER_DESCRIPTOR,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for WHEA_ERROR_SOURCE_DESCRIPTOR_0 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for WHEA_ERROR_SOURCE_DESCRIPTOR_0 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for WHEA_ERROR_SOURCE_DESCRIPTOR_0 {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for WHEA_ERROR_SOURCE_DESCRIPTOR_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_ERROR_SOURCE_DESCRIPTOR_0>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for WHEA_ERROR_SOURCE_DESCRIPTOR_0 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for WHEA_ERROR_SOURCE_DESCRIPTOR_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WHEA_GENERIC_ERROR_DESCRIPTOR {
    pub Type: u16,
    pub Reserved: u8,
    pub Enabled: u8,
    pub ErrStatusBlockLength: u32,
    pub RelatedErrorSourceId: u32,
    pub ErrStatusAddressSpaceID: u8,
    pub ErrStatusAddressBitWidth: u8,
    pub ErrStatusAddressBitOffset: u8,
    pub ErrStatusAddressAccessSize: u8,
    pub ErrStatusAddress: i64,
    pub Notify: WHEA_NOTIFICATION_DESCRIPTOR,
}
impl ::core::marker::Copy for WHEA_GENERIC_ERROR_DESCRIPTOR {}
impl ::core::clone::Clone for WHEA_GENERIC_ERROR_DESCRIPTOR {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_GENERIC_ERROR_DESCRIPTOR {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_GENERIC_ERROR_DESCRIPTOR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_GENERIC_ERROR_DESCRIPTOR>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_GENERIC_ERROR_DESCRIPTOR {}
impl ::core::default::Default for WHEA_GENERIC_ERROR_DESCRIPTOR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WHEA_GENERIC_ERROR_DESCRIPTOR_V2 {
    pub Type: u16,
    pub Reserved: u8,
    pub Enabled: u8,
    pub ErrStatusBlockLength: u32,
    pub RelatedErrorSourceId: u32,
    pub ErrStatusAddressSpaceID: u8,
    pub ErrStatusAddressBitWidth: u8,
    pub ErrStatusAddressBitOffset: u8,
    pub ErrStatusAddressAccessSize: u8,
    pub ErrStatusAddress: i64,
    pub Notify: WHEA_NOTIFICATION_DESCRIPTOR,
    pub ReadAckAddressSpaceID: u8,
    pub ReadAckAddressBitWidth: u8,
    pub ReadAckAddressBitOffset: u8,
    pub ReadAckAddressAccessSize: u8,
    pub ReadAckAddress: i64,
    pub ReadAckPreserveMask: u64,
    pub ReadAckWriteMask: u64,
}
impl ::core::marker::Copy for WHEA_GENERIC_ERROR_DESCRIPTOR_V2 {}
impl ::core::clone::Clone for WHEA_GENERIC_ERROR_DESCRIPTOR_V2 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_GENERIC_ERROR_DESCRIPTOR_V2 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_GENERIC_ERROR_DESCRIPTOR_V2 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_GENERIC_ERROR_DESCRIPTOR_V2>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_GENERIC_ERROR_DESCRIPTOR_V2 {}
impl ::core::default::Default for WHEA_GENERIC_ERROR_DESCRIPTOR_V2 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WHEA_IPF_CMC_DESCRIPTOR {
    pub Type: u16,
    pub Enabled: u8,
    pub Reserved: u8,
}
impl ::core::marker::Copy for WHEA_IPF_CMC_DESCRIPTOR {}
impl ::core::clone::Clone for WHEA_IPF_CMC_DESCRIPTOR {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_IPF_CMC_DESCRIPTOR {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_IPF_CMC_DESCRIPTOR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_IPF_CMC_DESCRIPTOR>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_IPF_CMC_DESCRIPTOR {}
impl ::core::default::Default for WHEA_IPF_CMC_DESCRIPTOR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WHEA_IPF_CPE_DESCRIPTOR {
    pub Type: u16,
    pub Enabled: u8,
    pub Reserved: u8,
}
impl ::core::marker::Copy for WHEA_IPF_CPE_DESCRIPTOR {}
impl ::core::clone::Clone for WHEA_IPF_CPE_DESCRIPTOR {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_IPF_CPE_DESCRIPTOR {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_IPF_CPE_DESCRIPTOR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_IPF_CPE_DESCRIPTOR>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_IPF_CPE_DESCRIPTOR {}
impl ::core::default::Default for WHEA_IPF_CPE_DESCRIPTOR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WHEA_IPF_MCA_DESCRIPTOR {
    pub Type: u16,
    pub Enabled: u8,
    pub Reserved: u8,
}
impl ::core::marker::Copy for WHEA_IPF_MCA_DESCRIPTOR {}
impl ::core::clone::Clone for WHEA_IPF_MCA_DESCRIPTOR {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_IPF_MCA_DESCRIPTOR {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_IPF_MCA_DESCRIPTOR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_IPF_MCA_DESCRIPTOR>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_IPF_MCA_DESCRIPTOR {}
impl ::core::default::Default for WHEA_IPF_MCA_DESCRIPTOR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WHEA_NOTIFICATION_DESCRIPTOR {
    pub Type: u8,
    pub Length: u8,
    pub Flags: WHEA_NOTIFICATION_FLAGS,
    pub u: WHEA_NOTIFICATION_DESCRIPTOR_0,
}
impl ::core::marker::Copy for WHEA_NOTIFICATION_DESCRIPTOR {}
impl ::core::clone::Clone for WHEA_NOTIFICATION_DESCRIPTOR {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_NOTIFICATION_DESCRIPTOR {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_NOTIFICATION_DESCRIPTOR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_NOTIFICATION_DESCRIPTOR>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_NOTIFICATION_DESCRIPTOR {}
impl ::core::default::Default for WHEA_NOTIFICATION_DESCRIPTOR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union WHEA_NOTIFICATION_DESCRIPTOR_0 {
    pub Polled: WHEA_NOTIFICATION_DESCRIPTOR_0_4,
    pub Interrupt: WHEA_NOTIFICATION_DESCRIPTOR_0_1,
    pub LocalInterrupt: WHEA_NOTIFICATION_DESCRIPTOR_0_2,
    pub Sci: WHEA_NOTIFICATION_DESCRIPTOR_0_5,
    pub Nmi: WHEA_NOTIFICATION_DESCRIPTOR_0_3,
    pub Sea: WHEA_NOTIFICATION_DESCRIPTOR_0_6,
    pub Sei: WHEA_NOTIFICATION_DESCRIPTOR_0_7,
    pub Gsiv: WHEA_NOTIFICATION_DESCRIPTOR_0_0,
}
impl ::core::marker::Copy for WHEA_NOTIFICATION_DESCRIPTOR_0 {}
impl ::core::clone::Clone for WHEA_NOTIFICATION_DESCRIPTOR_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_NOTIFICATION_DESCRIPTOR_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_NOTIFICATION_DESCRIPTOR_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_NOTIFICATION_DESCRIPTOR_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_NOTIFICATION_DESCRIPTOR_0 {}
impl ::core::default::Default for WHEA_NOTIFICATION_DESCRIPTOR_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WHEA_NOTIFICATION_DESCRIPTOR_0_0 {
    pub PollInterval: u32,
    pub Vector: u32,
    pub SwitchToPollingThreshold: u32,
    pub SwitchToPollingWindow: u32,
    pub ErrorThreshold: u32,
    pub ErrorThresholdWindow: u32,
}
impl ::core::marker::Copy for WHEA_NOTIFICATION_DESCRIPTOR_0_0 {}
impl ::core::clone::Clone for WHEA_NOTIFICATION_DESCRIPTOR_0_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_NOTIFICATION_DESCRIPTOR_0_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_NOTIFICATION_DESCRIPTOR_0_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_NOTIFICATION_DESCRIPTOR_0_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_NOTIFICATION_DESCRIPTOR_0_0 {}
impl ::core::default::Default for WHEA_NOTIFICATION_DESCRIPTOR_0_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WHEA_NOTIFICATION_DESCRIPTOR_0_1 {
    pub PollInterval: u32,
    pub Vector: u32,
    pub SwitchToPollingThreshold: u32,
    pub SwitchToPollingWindow: u32,
    pub ErrorThreshold: u32,
    pub ErrorThresholdWindow: u32,
}
impl ::core::marker::Copy for WHEA_NOTIFICATION_DESCRIPTOR_0_1 {}
impl ::core::clone::Clone for WHEA_NOTIFICATION_DESCRIPTOR_0_1 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_NOTIFICATION_DESCRIPTOR_0_1 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_NOTIFICATION_DESCRIPTOR_0_1 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_NOTIFICATION_DESCRIPTOR_0_1>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_NOTIFICATION_DESCRIPTOR_0_1 {}
impl ::core::default::Default for WHEA_NOTIFICATION_DESCRIPTOR_0_1 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WHEA_NOTIFICATION_DESCRIPTOR_0_2 {
    pub PollInterval: u32,
    pub Vector: u32,
    pub SwitchToPollingThreshold: u32,
    pub SwitchToPollingWindow: u32,
    pub ErrorThreshold: u32,
    pub ErrorThresholdWindow: u32,
}
impl ::core::marker::Copy for WHEA_NOTIFICATION_DESCRIPTOR_0_2 {}
impl ::core::clone::Clone for WHEA_NOTIFICATION_DESCRIPTOR_0_2 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_NOTIFICATION_DESCRIPTOR_0_2 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_NOTIFICATION_DESCRIPTOR_0_2 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_NOTIFICATION_DESCRIPTOR_0_2>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_NOTIFICATION_DESCRIPTOR_0_2 {}
impl ::core::default::Default for WHEA_NOTIFICATION_DESCRIPTOR_0_2 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WHEA_NOTIFICATION_DESCRIPTOR_0_3 {
    pub PollInterval: u32,
    pub Vector: u32,
    pub SwitchToPollingThreshold: u32,
    pub SwitchToPollingWindow: u32,
    pub ErrorThreshold: u32,
    pub ErrorThresholdWindow: u32,
}
impl ::core::marker::Copy for WHEA_NOTIFICATION_DESCRIPTOR_0_3 {}
impl ::core::clone::Clone for WHEA_NOTIFICATION_DESCRIPTOR_0_3 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_NOTIFICATION_DESCRIPTOR_0_3 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_NOTIFICATION_DESCRIPTOR_0_3 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_NOTIFICATION_DESCRIPTOR_0_3>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_NOTIFICATION_DESCRIPTOR_0_3 {}
impl ::core::default::Default for WHEA_NOTIFICATION_DESCRIPTOR_0_3 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WHEA_NOTIFICATION_DESCRIPTOR_0_4 {
    pub PollInterval: u32,
}
impl ::core::marker::Copy for WHEA_NOTIFICATION_DESCRIPTOR_0_4 {}
impl ::core::clone::Clone for WHEA_NOTIFICATION_DESCRIPTOR_0_4 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_NOTIFICATION_DESCRIPTOR_0_4 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_NOTIFICATION_DESCRIPTOR_0_4 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_NOTIFICATION_DESCRIPTOR_0_4>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_NOTIFICATION_DESCRIPTOR_0_4 {}
impl ::core::default::Default for WHEA_NOTIFICATION_DESCRIPTOR_0_4 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WHEA_NOTIFICATION_DESCRIPTOR_0_5 {
    pub PollInterval: u32,
    pub Vector: u32,
    pub SwitchToPollingThreshold: u32,
    pub SwitchToPollingWindow: u32,
    pub ErrorThreshold: u32,
    pub ErrorThresholdWindow: u32,
}
impl ::core::marker::Copy for WHEA_NOTIFICATION_DESCRIPTOR_0_5 {}
impl ::core::clone::Clone for WHEA_NOTIFICATION_DESCRIPTOR_0_5 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_NOTIFICATION_DESCRIPTOR_0_5 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_NOTIFICATION_DESCRIPTOR_0_5 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_NOTIFICATION_DESCRIPTOR_0_5>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_NOTIFICATION_DESCRIPTOR_0_5 {}
impl ::core::default::Default for WHEA_NOTIFICATION_DESCRIPTOR_0_5 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WHEA_NOTIFICATION_DESCRIPTOR_0_6 {
    pub PollInterval: u32,
    pub Vector: u32,
    pub SwitchToPollingThreshold: u32,
    pub SwitchToPollingWindow: u32,
    pub ErrorThreshold: u32,
    pub ErrorThresholdWindow: u32,
}
impl ::core::marker::Copy for WHEA_NOTIFICATION_DESCRIPTOR_0_6 {}
impl ::core::clone::Clone for WHEA_NOTIFICATION_DESCRIPTOR_0_6 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_NOTIFICATION_DESCRIPTOR_0_6 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_NOTIFICATION_DESCRIPTOR_0_6 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_NOTIFICATION_DESCRIPTOR_0_6>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_NOTIFICATION_DESCRIPTOR_0_6 {}
impl ::core::default::Default for WHEA_NOTIFICATION_DESCRIPTOR_0_6 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WHEA_NOTIFICATION_DESCRIPTOR_0_7 {
    pub PollInterval: u32,
    pub Vector: u32,
    pub SwitchToPollingThreshold: u32,
    pub SwitchToPollingWindow: u32,
    pub ErrorThreshold: u32,
    pub ErrorThresholdWindow: u32,
}
impl ::core::marker::Copy for WHEA_NOTIFICATION_DESCRIPTOR_0_7 {}
impl ::core::clone::Clone for WHEA_NOTIFICATION_DESCRIPTOR_0_7 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_NOTIFICATION_DESCRIPTOR_0_7 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_NOTIFICATION_DESCRIPTOR_0_7 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_NOTIFICATION_DESCRIPTOR_0_7>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_NOTIFICATION_DESCRIPTOR_0_7 {}
impl ::core::default::Default for WHEA_NOTIFICATION_DESCRIPTOR_0_7 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union WHEA_NOTIFICATION_FLAGS {
    pub Anonymous: WHEA_NOTIFICATION_FLAGS_0,
    pub AsUSHORT: u16,
}
impl ::core::marker::Copy for WHEA_NOTIFICATION_FLAGS {}
impl ::core::clone::Clone for WHEA_NOTIFICATION_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_NOTIFICATION_FLAGS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_NOTIFICATION_FLAGS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_NOTIFICATION_FLAGS>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_NOTIFICATION_FLAGS {}
impl ::core::default::Default for WHEA_NOTIFICATION_FLAGS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WHEA_NOTIFICATION_FLAGS_0 {
    pub _bitfield: u16,
}
impl ::core::marker::Copy for WHEA_NOTIFICATION_FLAGS_0 {}
impl ::core::clone::Clone for WHEA_NOTIFICATION_FLAGS_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_NOTIFICATION_FLAGS_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_NOTIFICATION_FLAGS_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_NOTIFICATION_FLAGS_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_NOTIFICATION_FLAGS_0 {}
impl ::core::default::Default for WHEA_NOTIFICATION_FLAGS_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WHEA_PCI_SLOT_NUMBER {
    pub u: WHEA_PCI_SLOT_NUMBER_0,
}
impl ::core::marker::Copy for WHEA_PCI_SLOT_NUMBER {}
impl ::core::clone::Clone for WHEA_PCI_SLOT_NUMBER {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_PCI_SLOT_NUMBER {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_PCI_SLOT_NUMBER {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_PCI_SLOT_NUMBER>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_PCI_SLOT_NUMBER {}
impl ::core::default::Default for WHEA_PCI_SLOT_NUMBER {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union WHEA_PCI_SLOT_NUMBER_0 {
    pub bits: WHEA_PCI_SLOT_NUMBER_0_0,
    pub AsULONG: u32,
}
impl ::core::marker::Copy for WHEA_PCI_SLOT_NUMBER_0 {}
impl ::core::clone::Clone for WHEA_PCI_SLOT_NUMBER_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_PCI_SLOT_NUMBER_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_PCI_SLOT_NUMBER_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_PCI_SLOT_NUMBER_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_PCI_SLOT_NUMBER_0 {}
impl ::core::default::Default for WHEA_PCI_SLOT_NUMBER_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WHEA_PCI_SLOT_NUMBER_0_0 {
    pub _bitfield: u32,
}
impl ::core::marker::Copy for WHEA_PCI_SLOT_NUMBER_0_0 {}
impl ::core::clone::Clone for WHEA_PCI_SLOT_NUMBER_0_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WHEA_PCI_SLOT_NUMBER_0_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WHEA_PCI_SLOT_NUMBER_0_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_PCI_SLOT_NUMBER_0_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for WHEA_PCI_SLOT_NUMBER_0_0 {}
impl ::core::default::Default for WHEA_PCI_SLOT_NUMBER_0_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct WHEA_XPF_CMC_DESCRIPTOR {
    pub Type: u16,
    pub Enabled: super::super::super::Foundation::BOOLEAN,
    pub NumberOfBanks: u8,
    pub Reserved: u32,
    pub Notify: WHEA_NOTIFICATION_DESCRIPTOR,
    pub Banks: [WHEA_XPF_MC_BANK_DESCRIPTOR; 32],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for WHEA_XPF_CMC_DESCRIPTOR {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for WHEA_XPF_CMC_DESCRIPTOR {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for WHEA_XPF_CMC_DESCRIPTOR {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for WHEA_XPF_CMC_DESCRIPTOR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_XPF_CMC_DESCRIPTOR>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for WHEA_XPF_CMC_DESCRIPTOR {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for WHEA_XPF_CMC_DESCRIPTOR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct WHEA_XPF_MCE_DESCRIPTOR {
    pub Type: u16,
    pub Enabled: u8,
    pub NumberOfBanks: u8,
    pub Flags: XPF_MCE_FLAGS,
    pub MCG_Capability: u64,
    pub MCG_GlobalControl: u64,
    pub Banks: [WHEA_XPF_MC_BANK_DESCRIPTOR; 32],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for WHEA_XPF_MCE_DESCRIPTOR {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for WHEA_XPF_MCE_DESCRIPTOR {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for WHEA_XPF_MCE_DESCRIPTOR {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for WHEA_XPF_MCE_DESCRIPTOR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_XPF_MCE_DESCRIPTOR>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for WHEA_XPF_MCE_DESCRIPTOR {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for WHEA_XPF_MCE_DESCRIPTOR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct WHEA_XPF_MC_BANK_DESCRIPTOR {
    pub BankNumber: u8,
    pub ClearOnInitialization: super::super::super::Foundation::BOOLEAN,
    pub StatusDataFormat: u8,
    pub Flags: XPF_MC_BANK_FLAGS,
    pub ControlMsr: u32,
    pub StatusMsr: u32,
    pub AddressMsr: u32,
    pub MiscMsr: u32,
    pub ControlData: u64,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for WHEA_XPF_MC_BANK_DESCRIPTOR {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for WHEA_XPF_MC_BANK_DESCRIPTOR {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for WHEA_XPF_MC_BANK_DESCRIPTOR {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for WHEA_XPF_MC_BANK_DESCRIPTOR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_XPF_MC_BANK_DESCRIPTOR>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for WHEA_XPF_MC_BANK_DESCRIPTOR {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for WHEA_XPF_MC_BANK_DESCRIPTOR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct WHEA_XPF_NMI_DESCRIPTOR {
    pub Type: u16,
    pub Enabled: super::super::super::Foundation::BOOLEAN,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for WHEA_XPF_NMI_DESCRIPTOR {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for WHEA_XPF_NMI_DESCRIPTOR {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_Foundation")]
unsafe impl ::windows::core::Abi for WHEA_XPF_NMI_DESCRIPTOR {
    type Abi = Self;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for WHEA_XPF_NMI_DESCRIPTOR {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WHEA_XPF_NMI_DESCRIPTOR>()) == 0 }
    }
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for WHEA_XPF_NMI_DESCRIPTOR {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for WHEA_XPF_NMI_DESCRIPTOR {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(feature = "Win32_System_Kernel")]
pub struct WINDBG_EXTENSION_APIS {
    pub nSize: u32,
    pub lpOutputRoutine: PWINDBG_OUTPUT_ROUTINE,
    pub lpGetExpressionRoutine: PWINDBG_GET_EXPRESSION,
    pub lpGetSymbolRoutine: PWINDBG_GET_SYMBOL,
    pub lpDisasmRoutine: PWINDBG_DISASM,
    pub lpCheckControlCRoutine: PWINDBG_CHECK_CONTROL_C,
    pub lpReadProcessMemoryRoutine: PWINDBG_READ_PROCESS_MEMORY_ROUTINE,
    pub lpWriteProcessMemoryRoutine: PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE,
    pub lpGetThreadContextRoutine: PWINDBG_GET_THREAD_CONTEXT_ROUTINE,
    pub lpSetThreadContextRoutine: PWINDBG_SET_THREAD_CONTEXT_ROUTINE,
    pub lpIoctlRoutine: PWINDBG_IOCTL_ROUTINE,
    pub lpStackTraceRoutine: PWINDBG_STACKTRACE_ROUTINE,
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for WINDBG_EXTENSION_APIS {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for WINDBG_EXTENSION_APIS {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::fmt::Debug for WINDBG_EXTENSION_APIS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("WINDBG_EXTENSION_APIS")
            .field("nSize", &self.nSize)
            .field("lpOutputRoutine", &self.lpOutputRoutine.map(|f| f as usize))
            .field("lpGetExpressionRoutine", &self.lpGetExpressionRoutine.map(|f| f as usize))
            .field("lpGetSymbolRoutine", &self.lpGetSymbolRoutine.map(|f| f as usize))
            .field("lpDisasmRoutine", &self.lpDisasmRoutine.map(|f| f as usize))
            .field("lpCheckControlCRoutine", &self.lpCheckControlCRoutine.map(|f| f as usize))
            .field("lpReadProcessMemoryRoutine", &self.lpReadProcessMemoryRoutine.map(|f| f as usize))
            .field("lpWriteProcessMemoryRoutine", &self.lpWriteProcessMemoryRoutine.map(|f| f as usize))
            .field("lpGetThreadContextRoutine", &self.lpGetThreadContextRoutine.map(|f| f as usize))
            .field("lpSetThreadContextRoutine", &self.lpSetThreadContextRoutine.map(|f| f as usize))
            .field("lpIoctlRoutine", &self.lpIoctlRoutine.map(|f| f as usize))
            .field("lpStackTraceRoutine", &self.lpStackTraceRoutine.map(|f| f as usize))
            .finish()
    }
}
#[cfg(feature = "Win32_System_Kernel")]
unsafe impl ::windows::core::Abi for WINDBG_EXTENSION_APIS {
    type Abi = Self;
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::PartialEq for WINDBG_EXTENSION_APIS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WINDBG_EXTENSION_APIS>()) == 0 }
    }
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::Eq for WINDBG_EXTENSION_APIS {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for WINDBG_EXTENSION_APIS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(feature = "Win32_System_Kernel")]
pub struct WINDBG_EXTENSION_APIS32 {
    pub nSize: u32,
    pub lpOutputRoutine: PWINDBG_OUTPUT_ROUTINE,
    pub lpGetExpressionRoutine: PWINDBG_GET_EXPRESSION32,
    pub lpGetSymbolRoutine: PWINDBG_GET_SYMBOL32,
    pub lpDisasmRoutine: PWINDBG_DISASM32,
    pub lpCheckControlCRoutine: PWINDBG_CHECK_CONTROL_C,
    pub lpReadProcessMemoryRoutine: PWINDBG_READ_PROCESS_MEMORY_ROUTINE32,
    pub lpWriteProcessMemoryRoutine: PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE32,
    pub lpGetThreadContextRoutine: PWINDBG_GET_THREAD_CONTEXT_ROUTINE,
    pub lpSetThreadContextRoutine: PWINDBG_SET_THREAD_CONTEXT_ROUTINE,
    pub lpIoctlRoutine: PWINDBG_IOCTL_ROUTINE,
    pub lpStackTraceRoutine: PWINDBG_STACKTRACE_ROUTINE32,
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for WINDBG_EXTENSION_APIS32 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for WINDBG_EXTENSION_APIS32 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::fmt::Debug for WINDBG_EXTENSION_APIS32 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("WINDBG_EXTENSION_APIS32")
            .field("nSize", &self.nSize)
            .field("lpOutputRoutine", &self.lpOutputRoutine.map(|f| f as usize))
            .field("lpGetExpressionRoutine", &self.lpGetExpressionRoutine.map(|f| f as usize))
            .field("lpGetSymbolRoutine", &self.lpGetSymbolRoutine.map(|f| f as usize))
            .field("lpDisasmRoutine", &self.lpDisasmRoutine.map(|f| f as usize))
            .field("lpCheckControlCRoutine", &self.lpCheckControlCRoutine.map(|f| f as usize))
            .field("lpReadProcessMemoryRoutine", &self.lpReadProcessMemoryRoutine.map(|f| f as usize))
            .field("lpWriteProcessMemoryRoutine", &self.lpWriteProcessMemoryRoutine.map(|f| f as usize))
            .field("lpGetThreadContextRoutine", &self.lpGetThreadContextRoutine.map(|f| f as usize))
            .field("lpSetThreadContextRoutine", &self.lpSetThreadContextRoutine.map(|f| f as usize))
            .field("lpIoctlRoutine", &self.lpIoctlRoutine.map(|f| f as usize))
            .field("lpStackTraceRoutine", &self.lpStackTraceRoutine.map(|f| f as usize))
            .finish()
    }
}
#[cfg(feature = "Win32_System_Kernel")]
unsafe impl ::windows::core::Abi for WINDBG_EXTENSION_APIS32 {
    type Abi = Self;
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::PartialEq for WINDBG_EXTENSION_APIS32 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WINDBG_EXTENSION_APIS32>()) == 0 }
    }
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::Eq for WINDBG_EXTENSION_APIS32 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for WINDBG_EXTENSION_APIS32 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(feature = "Win32_System_Kernel")]
pub struct WINDBG_EXTENSION_APIS64 {
    pub nSize: u32,
    pub lpOutputRoutine: PWINDBG_OUTPUT_ROUTINE,
    pub lpGetExpressionRoutine: PWINDBG_GET_EXPRESSION64,
    pub lpGetSymbolRoutine: PWINDBG_GET_SYMBOL64,
    pub lpDisasmRoutine: PWINDBG_DISASM64,
    pub lpCheckControlCRoutine: PWINDBG_CHECK_CONTROL_C,
    pub lpReadProcessMemoryRoutine: PWINDBG_READ_PROCESS_MEMORY_ROUTINE64,
    pub lpWriteProcessMemoryRoutine: PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE64,
    pub lpGetThreadContextRoutine: PWINDBG_GET_THREAD_CONTEXT_ROUTINE,
    pub lpSetThreadContextRoutine: PWINDBG_SET_THREAD_CONTEXT_ROUTINE,
    pub lpIoctlRoutine: PWINDBG_IOCTL_ROUTINE,
    pub lpStackTraceRoutine: PWINDBG_STACKTRACE_ROUTINE64,
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for WINDBG_EXTENSION_APIS64 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for WINDBG_EXTENSION_APIS64 {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::fmt::Debug for WINDBG_EXTENSION_APIS64 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("WINDBG_EXTENSION_APIS64")
            .field("nSize", &self.nSize)
            .field("lpOutputRoutine", &self.lpOutputRoutine.map(|f| f as usize))
            .field("lpGetExpressionRoutine", &self.lpGetExpressionRoutine.map(|f| f as usize))
            .field("lpGetSymbolRoutine", &self.lpGetSymbolRoutine.map(|f| f as usize))
            .field("lpDisasmRoutine", &self.lpDisasmRoutine.map(|f| f as usize))
            .field("lpCheckControlCRoutine", &self.lpCheckControlCRoutine.map(|f| f as usize))
            .field("lpReadProcessMemoryRoutine", &self.lpReadProcessMemoryRoutine.map(|f| f as usize))
            .field("lpWriteProcessMemoryRoutine", &self.lpWriteProcessMemoryRoutine.map(|f| f as usize))
            .field("lpGetThreadContextRoutine", &self.lpGetThreadContextRoutine.map(|f| f as usize))
            .field("lpSetThreadContextRoutine", &self.lpSetThreadContextRoutine.map(|f| f as usize))
            .field("lpIoctlRoutine", &self.lpIoctlRoutine.map(|f| f as usize))
            .field("lpStackTraceRoutine", &self.lpStackTraceRoutine.map(|f| f as usize))
            .finish()
    }
}
#[cfg(feature = "Win32_System_Kernel")]
unsafe impl ::windows::core::Abi for WINDBG_EXTENSION_APIS64 {
    type Abi = Self;
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::PartialEq for WINDBG_EXTENSION_APIS64 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WINDBG_EXTENSION_APIS64>()) == 0 }
    }
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::Eq for WINDBG_EXTENSION_APIS64 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for WINDBG_EXTENSION_APIS64 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WINDBG_OLDKD_EXTENSION_APIS {
    pub nSize: u32,
    pub lpOutputRoutine: PWINDBG_OUTPUT_ROUTINE,
    pub lpGetExpressionRoutine: PWINDBG_GET_EXPRESSION32,
    pub lpGetSymbolRoutine: PWINDBG_GET_SYMBOL32,
    pub lpDisasmRoutine: PWINDBG_DISASM32,
    pub lpCheckControlCRoutine: PWINDBG_CHECK_CONTROL_C,
    pub lpReadVirtualMemRoutine: PWINDBG_READ_PROCESS_MEMORY_ROUTINE32,
    pub lpWriteVirtualMemRoutine: PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE32,
    pub lpReadPhysicalMemRoutine: PWINDBG_OLDKD_READ_PHYSICAL_MEMORY,
    pub lpWritePhysicalMemRoutine: PWINDBG_OLDKD_WRITE_PHYSICAL_MEMORY,
}
impl ::core::marker::Copy for WINDBG_OLDKD_EXTENSION_APIS {}
impl ::core::clone::Clone for WINDBG_OLDKD_EXTENSION_APIS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for WINDBG_OLDKD_EXTENSION_APIS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("WINDBG_OLDKD_EXTENSION_APIS")
            .field("nSize", &self.nSize)
            .field("lpOutputRoutine", &self.lpOutputRoutine.map(|f| f as usize))
            .field("lpGetExpressionRoutine", &self.lpGetExpressionRoutine.map(|f| f as usize))
            .field("lpGetSymbolRoutine", &self.lpGetSymbolRoutine.map(|f| f as usize))
            .field("lpDisasmRoutine", &self.lpDisasmRoutine.map(|f| f as usize))
            .field("lpCheckControlCRoutine", &self.lpCheckControlCRoutine.map(|f| f as usize))
            .field("lpReadVirtualMemRoutine", &self.lpReadVirtualMemRoutine.map(|f| f as usize))
            .field("lpWriteVirtualMemRoutine", &self.lpWriteVirtualMemRoutine.map(|f| f as usize))
            .field("lpReadPhysicalMemRoutine", &self.lpReadPhysicalMemRoutine.map(|f| f as usize))
            .field("lpWritePhysicalMemRoutine", &self.lpWritePhysicalMemRoutine.map(|f| f as usize))
            .finish()
    }
}
unsafe impl ::windows::core::Abi for WINDBG_OLDKD_EXTENSION_APIS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WINDBG_OLDKD_EXTENSION_APIS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WINDBG_OLDKD_EXTENSION_APIS>()) == 0 }
    }
}
impl ::core::cmp::Eq for WINDBG_OLDKD_EXTENSION_APIS {}
impl ::core::default::Default for WINDBG_OLDKD_EXTENSION_APIS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WINDBG_OLD_EXTENSION_APIS {
    pub nSize: u32,
    pub lpOutputRoutine: PWINDBG_OUTPUT_ROUTINE,
    pub lpGetExpressionRoutine: PWINDBG_GET_EXPRESSION,
    pub lpGetSymbolRoutine: PWINDBG_GET_SYMBOL,
    pub lpDisasmRoutine: PWINDBG_DISASM,
    pub lpCheckControlCRoutine: PWINDBG_CHECK_CONTROL_C,
}
impl ::core::marker::Copy for WINDBG_OLD_EXTENSION_APIS {}
impl ::core::clone::Clone for WINDBG_OLD_EXTENSION_APIS {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for WINDBG_OLD_EXTENSION_APIS {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("WINDBG_OLD_EXTENSION_APIS").field("nSize", &self.nSize).field("lpOutputRoutine", &self.lpOutputRoutine.map(|f| f as usize)).field("lpGetExpressionRoutine", &self.lpGetExpressionRoutine.map(|f| f as usize)).field("lpGetSymbolRoutine", &self.lpGetSymbolRoutine.map(|f| f as usize)).field("lpDisasmRoutine", &self.lpDisasmRoutine.map(|f| f as usize)).field("lpCheckControlCRoutine", &self.lpCheckControlCRoutine.map(|f| f as usize)).finish()
    }
}
unsafe impl ::windows::core::Abi for WINDBG_OLD_EXTENSION_APIS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WINDBG_OLD_EXTENSION_APIS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WINDBG_OLD_EXTENSION_APIS>()) == 0 }
    }
}
impl ::core::cmp::Eq for WINDBG_OLD_EXTENSION_APIS {}
impl ::core::default::Default for WINDBG_OLD_EXTENSION_APIS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WOW64_CONTEXT {
    pub ContextFlags: u32,
    pub Dr0: u32,
    pub Dr1: u32,
    pub Dr2: u32,
    pub Dr3: u32,
    pub Dr6: u32,
    pub Dr7: u32,
    pub FloatSave: WOW64_FLOATING_SAVE_AREA,
    pub SegGs: u32,
    pub SegFs: u32,
    pub SegEs: u32,
    pub SegDs: u32,
    pub Edi: u32,
    pub Esi: u32,
    pub Ebx: u32,
    pub Edx: u32,
    pub Ecx: u32,
    pub Eax: u32,
    pub Ebp: u32,
    pub Eip: u32,
    pub SegCs: u32,
    pub EFlags: u32,
    pub Esp: u32,
    pub SegSs: u32,
    pub ExtendedRegisters: [u8; 512],
}
impl ::core::marker::Copy for WOW64_CONTEXT {}
impl ::core::clone::Clone for WOW64_CONTEXT {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for WOW64_CONTEXT {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("WOW64_CONTEXT")
            .field("ContextFlags", &self.ContextFlags)
            .field("Dr0", &self.Dr0)
            .field("Dr1", &self.Dr1)
            .field("Dr2", &self.Dr2)
            .field("Dr3", &self.Dr3)
            .field("Dr6", &self.Dr6)
            .field("Dr7", &self.Dr7)
            .field("FloatSave", &self.FloatSave)
            .field("SegGs", &self.SegGs)
            .field("SegFs", &self.SegFs)
            .field("SegEs", &self.SegEs)
            .field("SegDs", &self.SegDs)
            .field("Edi", &self.Edi)
            .field("Esi", &self.Esi)
            .field("Ebx", &self.Ebx)
            .field("Edx", &self.Edx)
            .field("Ecx", &self.Ecx)
            .field("Eax", &self.Eax)
            .field("Ebp", &self.Ebp)
            .field("Eip", &self.Eip)
            .field("SegCs", &self.SegCs)
            .field("EFlags", &self.EFlags)
            .field("Esp", &self.Esp)
            .field("SegSs", &self.SegSs)
            .field("ExtendedRegisters", &self.ExtendedRegisters)
            .finish()
    }
}
unsafe impl ::windows::core::Abi for WOW64_CONTEXT {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WOW64_CONTEXT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WOW64_CONTEXT>()) == 0 }
    }
}
impl ::core::cmp::Eq for WOW64_CONTEXT {}
impl ::core::default::Default for WOW64_CONTEXT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WOW64_DESCRIPTOR_TABLE_ENTRY {
    pub Selector: u32,
    pub Descriptor: WOW64_LDT_ENTRY,
}
impl ::core::marker::Copy for WOW64_DESCRIPTOR_TABLE_ENTRY {}
impl ::core::clone::Clone for WOW64_DESCRIPTOR_TABLE_ENTRY {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WOW64_DESCRIPTOR_TABLE_ENTRY {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WOW64_DESCRIPTOR_TABLE_ENTRY {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WOW64_DESCRIPTOR_TABLE_ENTRY>()) == 0 }
    }
}
impl ::core::cmp::Eq for WOW64_DESCRIPTOR_TABLE_ENTRY {}
impl ::core::default::Default for WOW64_DESCRIPTOR_TABLE_ENTRY {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WOW64_FLOATING_SAVE_AREA {
    pub ControlWord: u32,
    pub StatusWord: u32,
    pub TagWord: u32,
    pub ErrorOffset: u32,
    pub ErrorSelector: u32,
    pub DataOffset: u32,
    pub DataSelector: u32,
    pub RegisterArea: [u8; 80],
    pub Cr0NpxState: u32,
}
impl ::core::marker::Copy for WOW64_FLOATING_SAVE_AREA {}
impl ::core::clone::Clone for WOW64_FLOATING_SAVE_AREA {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for WOW64_FLOATING_SAVE_AREA {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("WOW64_FLOATING_SAVE_AREA").field("ControlWord", &self.ControlWord).field("StatusWord", &self.StatusWord).field("TagWord", &self.TagWord).field("ErrorOffset", &self.ErrorOffset).field("ErrorSelector", &self.ErrorSelector).field("DataOffset", &self.DataOffset).field("DataSelector", &self.DataSelector).field("RegisterArea", &self.RegisterArea).field("Cr0NpxState", &self.Cr0NpxState).finish()
    }
}
unsafe impl ::windows::core::Abi for WOW64_FLOATING_SAVE_AREA {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WOW64_FLOATING_SAVE_AREA {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WOW64_FLOATING_SAVE_AREA>()) == 0 }
    }
}
impl ::core::cmp::Eq for WOW64_FLOATING_SAVE_AREA {}
impl ::core::default::Default for WOW64_FLOATING_SAVE_AREA {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WOW64_LDT_ENTRY {
    pub LimitLow: u16,
    pub BaseLow: u16,
    pub HighWord: WOW64_LDT_ENTRY_0,
}
impl ::core::marker::Copy for WOW64_LDT_ENTRY {}
impl ::core::clone::Clone for WOW64_LDT_ENTRY {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WOW64_LDT_ENTRY {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WOW64_LDT_ENTRY {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WOW64_LDT_ENTRY>()) == 0 }
    }
}
impl ::core::cmp::Eq for WOW64_LDT_ENTRY {}
impl ::core::default::Default for WOW64_LDT_ENTRY {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union WOW64_LDT_ENTRY_0 {
    pub Bytes: WOW64_LDT_ENTRY_0_1,
    pub Bits: WOW64_LDT_ENTRY_0_0,
}
impl ::core::marker::Copy for WOW64_LDT_ENTRY_0 {}
impl ::core::clone::Clone for WOW64_LDT_ENTRY_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for WOW64_LDT_ENTRY_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WOW64_LDT_ENTRY_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WOW64_LDT_ENTRY_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for WOW64_LDT_ENTRY_0 {}
impl ::core::default::Default for WOW64_LDT_ENTRY_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WOW64_LDT_ENTRY_0_0 {
    pub _bitfield: u32,
}
impl ::core::marker::Copy for WOW64_LDT_ENTRY_0_0 {}
impl ::core::clone::Clone for WOW64_LDT_ENTRY_0_0 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for WOW64_LDT_ENTRY_0_0 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("WOW64_LDT_ENTRY_0_0").field("_bitfield", &self._bitfield).finish()
    }
}
unsafe impl ::windows::core::Abi for WOW64_LDT_ENTRY_0_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WOW64_LDT_ENTRY_0_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WOW64_LDT_ENTRY_0_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for WOW64_LDT_ENTRY_0_0 {}
impl ::core::default::Default for WOW64_LDT_ENTRY_0_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct WOW64_LDT_ENTRY_0_1 {
    pub BaseMid: u8,
    pub Flags1: u8,
    pub Flags2: u8,
    pub BaseHi: u8,
}
impl ::core::marker::Copy for WOW64_LDT_ENTRY_0_1 {}
impl ::core::clone::Clone for WOW64_LDT_ENTRY_0_1 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for WOW64_LDT_ENTRY_0_1 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("WOW64_LDT_ENTRY_0_1").field("BaseMid", &self.BaseMid).field("Flags1", &self.Flags1).field("Flags2", &self.Flags2).field("BaseHi", &self.BaseHi).finish()
    }
}
unsafe impl ::windows::core::Abi for WOW64_LDT_ENTRY_0_1 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for WOW64_LDT_ENTRY_0_1 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<WOW64_LDT_ENTRY_0_1>()) == 0 }
    }
}
impl ::core::cmp::Eq for WOW64_LDT_ENTRY_0_1 {}
impl ::core::default::Default for WOW64_LDT_ENTRY_0_1 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union XPF_MCE_FLAGS {
    pub Anonymous: XPF_MCE_FLAGS_0,
    pub AsULONG: u32,
}
impl ::core::marker::Copy for XPF_MCE_FLAGS {}
impl ::core::clone::Clone for XPF_MCE_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for XPF_MCE_FLAGS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for XPF_MCE_FLAGS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<XPF_MCE_FLAGS>()) == 0 }
    }
}
impl ::core::cmp::Eq for XPF_MCE_FLAGS {}
impl ::core::default::Default for XPF_MCE_FLAGS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(1))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct XPF_MCE_FLAGS_0 {
    pub _bitfield: u32,
}
impl ::core::marker::Copy for XPF_MCE_FLAGS_0 {}
impl ::core::clone::Clone for XPF_MCE_FLAGS_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for XPF_MCE_FLAGS_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for XPF_MCE_FLAGS_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<XPF_MCE_FLAGS_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for XPF_MCE_FLAGS_0 {}
impl ::core::default::Default for XPF_MCE_FLAGS_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union XPF_MC_BANK_FLAGS {
    pub Anonymous: XPF_MC_BANK_FLAGS_0,
    pub AsUCHAR: u8,
}
impl ::core::marker::Copy for XPF_MC_BANK_FLAGS {}
impl ::core::clone::Clone for XPF_MC_BANK_FLAGS {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for XPF_MC_BANK_FLAGS {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for XPF_MC_BANK_FLAGS {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<XPF_MC_BANK_FLAGS>()) == 0 }
    }
}
impl ::core::cmp::Eq for XPF_MC_BANK_FLAGS {}
impl ::core::default::Default for XPF_MC_BANK_FLAGS {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct XPF_MC_BANK_FLAGS_0 {
    pub _bitfield: u8,
}
impl ::core::marker::Copy for XPF_MC_BANK_FLAGS_0 {}
impl ::core::clone::Clone for XPF_MC_BANK_FLAGS_0 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for XPF_MC_BANK_FLAGS_0 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("XPF_MC_BANK_FLAGS_0").field("_bitfield", &self._bitfield).finish()
    }
}
unsafe impl ::windows::core::Abi for XPF_MC_BANK_FLAGS_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for XPF_MC_BANK_FLAGS_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<XPF_MC_BANK_FLAGS_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for XPF_MC_BANK_FLAGS_0 {}
impl ::core::default::Default for XPF_MC_BANK_FLAGS_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct XSAVE_AREA {
    pub LegacyState: XSAVE_FORMAT,
    pub Header: XSAVE_AREA_HEADER,
}
impl ::core::marker::Copy for XSAVE_AREA {}
impl ::core::clone::Clone for XSAVE_AREA {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for XSAVE_AREA {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("XSAVE_AREA").field("LegacyState", &self.LegacyState).field("Header", &self.Header).finish()
    }
}
unsafe impl ::windows::core::Abi for XSAVE_AREA {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for XSAVE_AREA {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<XSAVE_AREA>()) == 0 }
    }
}
impl ::core::cmp::Eq for XSAVE_AREA {}
impl ::core::default::Default for XSAVE_AREA {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct XSAVE_AREA_HEADER {
    pub Mask: u64,
    pub CompactionMask: u64,
    pub Reserved2: [u64; 6],
}
impl ::core::marker::Copy for XSAVE_AREA_HEADER {}
impl ::core::clone::Clone for XSAVE_AREA_HEADER {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for XSAVE_AREA_HEADER {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("XSAVE_AREA_HEADER").field("Mask", &self.Mask).field("CompactionMask", &self.CompactionMask).field("Reserved2", &self.Reserved2).finish()
    }
}
unsafe impl ::windows::core::Abi for XSAVE_AREA_HEADER {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for XSAVE_AREA_HEADER {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<XSAVE_AREA_HEADER>()) == 0 }
    }
}
impl ::core::cmp::Eq for XSAVE_AREA_HEADER {}
impl ::core::default::Default for XSAVE_AREA_HEADER {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
pub struct XSAVE_FORMAT {
    pub ControlWord: u16,
    pub StatusWord: u16,
    pub TagWord: u8,
    pub Reserved1: u8,
    pub ErrorOpcode: u16,
    pub ErrorOffset: u32,
    pub ErrorSelector: u16,
    pub Reserved2: u16,
    pub DataOffset: u32,
    pub DataSelector: u16,
    pub Reserved3: u16,
    pub MxCsr: u32,
    pub MxCsr_Mask: u32,
    pub FloatRegisters: [M128A; 8],
    pub XmmRegisters: [M128A; 16],
    pub Reserved4: [u8; 96],
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
impl ::core::marker::Copy for XSAVE_FORMAT {}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
impl ::core::clone::Clone for XSAVE_FORMAT {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
impl ::core::fmt::Debug for XSAVE_FORMAT {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("XSAVE_FORMAT")
            .field("ControlWord", &self.ControlWord)
            .field("StatusWord", &self.StatusWord)
            .field("TagWord", &self.TagWord)
            .field("Reserved1", &self.Reserved1)
            .field("ErrorOpcode", &self.ErrorOpcode)
            .field("ErrorOffset", &self.ErrorOffset)
            .field("ErrorSelector", &self.ErrorSelector)
            .field("Reserved2", &self.Reserved2)
            .field("DataOffset", &self.DataOffset)
            .field("DataSelector", &self.DataSelector)
            .field("Reserved3", &self.Reserved3)
            .field("MxCsr", &self.MxCsr)
            .field("MxCsr_Mask", &self.MxCsr_Mask)
            .field("FloatRegisters", &self.FloatRegisters)
            .field("XmmRegisters", &self.XmmRegisters)
            .field("Reserved4", &self.Reserved4)
            .finish()
    }
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
unsafe impl ::windows::core::Abi for XSAVE_FORMAT {
    type Abi = Self;
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
impl ::core::cmp::PartialEq for XSAVE_FORMAT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<XSAVE_FORMAT>()) == 0 }
    }
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
impl ::core::cmp::Eq for XSAVE_FORMAT {}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
impl ::core::default::Default for XSAVE_FORMAT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "x86")]
pub struct XSAVE_FORMAT {
    pub ControlWord: u16,
    pub StatusWord: u16,
    pub TagWord: u8,
    pub Reserved1: u8,
    pub ErrorOpcode: u16,
    pub ErrorOffset: u32,
    pub ErrorSelector: u16,
    pub Reserved2: u16,
    pub DataOffset: u32,
    pub DataSelector: u16,
    pub Reserved3: u16,
    pub MxCsr: u32,
    pub MxCsr_Mask: u32,
    pub FloatRegisters: [M128A; 8],
    pub XmmRegisters: [M128A; 8],
    pub Reserved4: [u8; 224],
}
#[cfg(target_arch = "x86")]
impl ::core::marker::Copy for XSAVE_FORMAT {}
#[cfg(target_arch = "x86")]
impl ::core::clone::Clone for XSAVE_FORMAT {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86")]
impl ::core::fmt::Debug for XSAVE_FORMAT {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("XSAVE_FORMAT")
            .field("ControlWord", &self.ControlWord)
            .field("StatusWord", &self.StatusWord)
            .field("TagWord", &self.TagWord)
            .field("Reserved1", &self.Reserved1)
            .field("ErrorOpcode", &self.ErrorOpcode)
            .field("ErrorOffset", &self.ErrorOffset)
            .field("ErrorSelector", &self.ErrorSelector)
            .field("Reserved2", &self.Reserved2)
            .field("DataOffset", &self.DataOffset)
            .field("DataSelector", &self.DataSelector)
            .field("Reserved3", &self.Reserved3)
            .field("MxCsr", &self.MxCsr)
            .field("MxCsr_Mask", &self.MxCsr_Mask)
            .field("FloatRegisters", &self.FloatRegisters)
            .field("XmmRegisters", &self.XmmRegisters)
            .field("Reserved4", &self.Reserved4)
            .finish()
    }
}
#[cfg(target_arch = "x86")]
unsafe impl ::windows::core::Abi for XSAVE_FORMAT {
    type Abi = Self;
}
#[cfg(target_arch = "x86")]
impl ::core::cmp::PartialEq for XSAVE_FORMAT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<XSAVE_FORMAT>()) == 0 }
    }
}
#[cfg(target_arch = "x86")]
impl ::core::cmp::Eq for XSAVE_FORMAT {}
#[cfg(target_arch = "x86")]
impl ::core::default::Default for XSAVE_FORMAT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct XSTATE_CONFIGURATION {
    pub EnabledFeatures: u64,
    pub EnabledVolatileFeatures: u64,
    pub Size: u32,
    pub Anonymous: XSTATE_CONFIGURATION_0,
    pub Features: [XSTATE_FEATURE; 64],
    pub EnabledSupervisorFeatures: u64,
    pub AlignedFeatures: u64,
    pub AllFeatureSize: u32,
    pub AllFeatures: [u32; 64],
    pub EnabledUserVisibleSupervisorFeatures: u64,
    pub ExtendedFeatureDisableFeatures: u64,
    pub AllNonLargeFeatureSize: u32,
    pub Spare: u32,
}
impl ::core::marker::Copy for XSTATE_CONFIGURATION {}
impl ::core::clone::Clone for XSTATE_CONFIGURATION {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for XSTATE_CONFIGURATION {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for XSTATE_CONFIGURATION {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<XSTATE_CONFIGURATION>()) == 0 }
    }
}
impl ::core::cmp::Eq for XSTATE_CONFIGURATION {}
impl ::core::default::Default for XSTATE_CONFIGURATION {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub union XSTATE_CONFIGURATION_0 {
    pub ControlFlags: u32,
    pub Anonymous: XSTATE_CONFIGURATION_0_0,
}
impl ::core::marker::Copy for XSTATE_CONFIGURATION_0 {}
impl ::core::clone::Clone for XSTATE_CONFIGURATION_0 {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for XSTATE_CONFIGURATION_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for XSTATE_CONFIGURATION_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<XSTATE_CONFIGURATION_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for XSTATE_CONFIGURATION_0 {}
impl ::core::default::Default for XSTATE_CONFIGURATION_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct XSTATE_CONFIGURATION_0_0 {
    pub _bitfield: u32,
}
impl ::core::marker::Copy for XSTATE_CONFIGURATION_0_0 {}
impl ::core::clone::Clone for XSTATE_CONFIGURATION_0_0 {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for XSTATE_CONFIGURATION_0_0 {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("XSTATE_CONFIGURATION_0_0").field("_bitfield", &self._bitfield).finish()
    }
}
unsafe impl ::windows::core::Abi for XSTATE_CONFIGURATION_0_0 {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for XSTATE_CONFIGURATION_0_0 {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<XSTATE_CONFIGURATION_0_0>()) == 0 }
    }
}
impl ::core::cmp::Eq for XSTATE_CONFIGURATION_0_0 {}
impl ::core::default::Default for XSTATE_CONFIGURATION_0_0 {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C, packed(4))]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct XSTATE_CONFIG_FEATURE_MSC_INFO {
    pub SizeOfInfo: u32,
    pub ContextSize: u32,
    pub EnabledFeatures: u64,
    pub Features: [XSTATE_FEATURE; 64],
}
impl ::core::marker::Copy for XSTATE_CONFIG_FEATURE_MSC_INFO {}
impl ::core::clone::Clone for XSTATE_CONFIG_FEATURE_MSC_INFO {
    fn clone(&self) -> Self {
        *self
    }
}
unsafe impl ::windows::core::Abi for XSTATE_CONFIG_FEATURE_MSC_INFO {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for XSTATE_CONFIG_FEATURE_MSC_INFO {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<XSTATE_CONFIG_FEATURE_MSC_INFO>()) == 0 }
    }
}
impl ::core::cmp::Eq for XSTATE_CONFIG_FEATURE_MSC_INFO {}
impl ::core::default::Default for XSTATE_CONFIG_FEATURE_MSC_INFO {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
pub struct XSTATE_CONTEXT {
    pub Mask: u64,
    pub Length: u32,
    pub Reserved1: u32,
    pub Area: *mut XSAVE_AREA,
    pub Buffer: *mut ::core::ffi::c_void,
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
impl ::core::marker::Copy for XSTATE_CONTEXT {}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
impl ::core::clone::Clone for XSTATE_CONTEXT {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
impl ::core::fmt::Debug for XSTATE_CONTEXT {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("XSTATE_CONTEXT").field("Mask", &self.Mask).field("Length", &self.Length).field("Reserved1", &self.Reserved1).field("Area", &self.Area).field("Buffer", &self.Buffer).finish()
    }
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
unsafe impl ::windows::core::Abi for XSTATE_CONTEXT {
    type Abi = Self;
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
impl ::core::cmp::PartialEq for XSTATE_CONTEXT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<XSTATE_CONTEXT>()) == 0 }
    }
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
impl ::core::cmp::Eq for XSTATE_CONTEXT {}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
impl ::core::default::Default for XSTATE_CONTEXT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "x86")]
pub struct XSTATE_CONTEXT {
    pub Mask: u64,
    pub Length: u32,
    pub Reserved1: u32,
    pub Area: *mut XSAVE_AREA,
    pub Reserved2: u32,
    pub Buffer: *mut ::core::ffi::c_void,
    pub Reserved3: u32,
}
#[cfg(target_arch = "x86")]
impl ::core::marker::Copy for XSTATE_CONTEXT {}
#[cfg(target_arch = "x86")]
impl ::core::clone::Clone for XSTATE_CONTEXT {
    fn clone(&self) -> Self {
        *self
    }
}
#[cfg(target_arch = "x86")]
impl ::core::fmt::Debug for XSTATE_CONTEXT {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("XSTATE_CONTEXT").field("Mask", &self.Mask).field("Length", &self.Length).field("Reserved1", &self.Reserved1).field("Area", &self.Area).field("Reserved2", &self.Reserved2).field("Buffer", &self.Buffer).field("Reserved3", &self.Reserved3).finish()
    }
}
#[cfg(target_arch = "x86")]
unsafe impl ::windows::core::Abi for XSTATE_CONTEXT {
    type Abi = Self;
}
#[cfg(target_arch = "x86")]
impl ::core::cmp::PartialEq for XSTATE_CONTEXT {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<XSTATE_CONTEXT>()) == 0 }
    }
}
#[cfg(target_arch = "x86")]
impl ::core::cmp::Eq for XSTATE_CONTEXT {}
#[cfg(target_arch = "x86")]
impl ::core::default::Default for XSTATE_CONTEXT {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub struct XSTATE_FEATURE {
    pub Offset: u32,
    pub Size: u32,
}
impl ::core::marker::Copy for XSTATE_FEATURE {}
impl ::core::clone::Clone for XSTATE_FEATURE {
    fn clone(&self) -> Self {
        *self
    }
}
impl ::core::fmt::Debug for XSTATE_FEATURE {
    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
        f.debug_struct("XSTATE_FEATURE").field("Offset", &self.Offset).field("Size", &self.Size).finish()
    }
}
unsafe impl ::windows::core::Abi for XSTATE_FEATURE {
    type Abi = Self;
}
impl ::core::cmp::PartialEq for XSTATE_FEATURE {
    fn eq(&self, other: &Self) -> bool {
        unsafe { ::windows::core::memcmp(self as *const _ as _, other as *const _ as _, core::mem::size_of::<XSTATE_FEATURE>()) == 0 }
    }
}
impl ::core::cmp::Eq for XSTATE_FEATURE {}
impl ::core::default::Default for XSTATE_FEATURE {
    fn default() -> Self {
        unsafe { ::core::mem::zeroed() }
    }
}
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type DIGEST_FUNCTION = ::core::option::Option<unsafe extern "system" fn(refdata: *mut ::core::ffi::c_void, pdata: *mut u8, dwlength: u32) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type LPCALL_BACK_USER_INTERRUPT_ROUTINE = ::core::option::Option<unsafe extern "system" fn() -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
pub type LPTOP_LEVEL_EXCEPTION_FILTER = ::core::option::Option<unsafe extern "system" fn(exceptioninfo: *const EXCEPTION_POINTERS) -> i32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_Memory\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_Kernel", feature = "Win32_System_Memory"))]
pub type MINIDUMP_CALLBACK_ROUTINE = ::core::option::Option<unsafe extern "system" fn(callbackparam: *mut ::core::ffi::c_void, callbackinput: *const MINIDUMP_CALLBACK_INPUT, callbackoutput: *mut MINIDUMP_CALLBACK_OUTPUT) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PCOGETACTIVATIONSTATE = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::GUID, param1: u32, param2: *mut u32) -> ::windows::core::HRESULT>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PCOGETCALLSTATE = ::core::option::Option<unsafe extern "system" fn(param0: i32, param1: *mut u32) -> ::windows::core::HRESULT>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PDBGHELP_CREATE_USER_DUMP_CALLBACK = ::core::option::Option<unsafe extern "system" fn(datatype: u32, data: *const *const ::core::ffi::c_void, datalength: *mut u32, userdata: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PDEBUG_EXTENSION_CALL = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, args: ::windows::core::PCSTR) -> ::windows::core::HRESULT>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PDEBUG_EXTENSION_CANUNLOAD = ::core::option::Option<unsafe extern "system" fn() -> ::windows::core::HRESULT>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PDEBUG_EXTENSION_INITIALIZE = ::core::option::Option<unsafe extern "system" fn(version: *mut u32, flags: *mut u32) -> ::windows::core::HRESULT>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PDEBUG_EXTENSION_KNOWN_STRUCT = ::core::option::Option<unsafe extern "system" fn(flags: u32, offset: u64, typename: ::windows::core::PCSTR, buffer: ::windows::core::PSTR, bufferchars: *mut u32) -> ::windows::core::HRESULT>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PDEBUG_EXTENSION_KNOWN_STRUCT_EX = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, flags: u32, offset: u64, typename: ::windows::core::PCSTR, buffer: ::windows::core::PSTR, bufferchars: *mut u32) -> ::windows::core::HRESULT>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PDEBUG_EXTENSION_NOTIFY = ::core::option::Option<unsafe extern "system" fn(notify: u32, argument: u64)>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PDEBUG_EXTENSION_PROVIDE_VALUE = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, flags: u32, name: ::windows::core::PCWSTR, value: *mut u64, typemodbase: *mut u64, typeid: *mut u32, typeflags: *mut u32) -> ::windows::core::HRESULT>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PDEBUG_EXTENSION_QUERY_VALUE_NAMES = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, flags: u32, buffer: ::windows::core::PWSTR, bufferchars: u32, bufferneeded: *mut u32) -> ::windows::core::HRESULT>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PDEBUG_EXTENSION_UNINITIALIZE = ::core::option::Option<unsafe extern "system" fn()>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PDEBUG_EXTENSION_UNLOAD = ::core::option::Option<unsafe extern "system" fn()>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PDEBUG_STACK_PROVIDER_BEGINTHREADSTACKRECONSTRUCTION = ::core::option::Option<unsafe extern "system" fn(streamtype: u32, minidumpstreambuffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::HRESULT>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PDEBUG_STACK_PROVIDER_ENDTHREADSTACKRECONSTRUCTION = ::core::option::Option<unsafe extern "system" fn() -> ::windows::core::HRESULT>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PDEBUG_STACK_PROVIDER_FREESTACKSYMFRAMES = ::core::option::Option<unsafe extern "system" fn(stacksymframes: *const STACK_SYM_FRAME_INFO) -> ::windows::core::HRESULT>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PDEBUG_STACK_PROVIDER_RECONSTRUCTSTACK = ::core::option::Option<unsafe extern "system" fn(systemthreadid: u32, nativeframes: *const DEBUG_STACK_FRAME_EX, countnativeframes: u32, stacksymframes: *mut *mut STACK_SYM_FRAME_INFO, stacksymframesfilled: *mut u32) -> ::windows::core::HRESULT>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PENUMDIRTREE_CALLBACK = ::core::option::Option<unsafe extern "system" fn(filepath: ::windows::core::PCSTR, callerdata: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PENUMDIRTREE_CALLBACKW = ::core::option::Option<unsafe extern "system" fn(filepath: ::windows::core::PCWSTR, callerdata: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
pub type PENUMLOADED_MODULES_CALLBACK = ::core::option::Option<unsafe extern "system" fn(modulename: ::windows::core::PCSTR, modulebase: u32, modulesize: u32, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PENUMLOADED_MODULES_CALLBACK64 = ::core::option::Option<unsafe extern "system" fn(modulename: ::windows::core::PCSTR, modulebase: u64, modulesize: u32, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PENUMLOADED_MODULES_CALLBACKW64 = ::core::option::Option<unsafe extern "system" fn(modulename: ::windows::core::PCWSTR, modulebase: u64, modulesize: u32, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PENUMSOURCEFILETOKENSCALLBACK = ::core::option::Option<unsafe extern "system" fn(token: *const ::core::ffi::c_void, size: usize) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PFINDFILEINPATHCALLBACK = ::core::option::Option<unsafe extern "system" fn(filename: ::windows::core::PCSTR, context: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PFINDFILEINPATHCALLBACKW = ::core::option::Option<unsafe extern "system" fn(filename: ::windows::core::PCWSTR, context: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PFIND_DEBUG_FILE_CALLBACK = ::core::option::Option<unsafe extern "system" fn(filehandle: super::super::super::Foundation::HANDLE, filename: ::windows::core::PCSTR, callerdata: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PFIND_DEBUG_FILE_CALLBACKW = ::core::option::Option<unsafe extern "system" fn(filehandle: super::super::super::Foundation::HANDLE, filename: ::windows::core::PCWSTR, callerdata: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PFIND_EXE_FILE_CALLBACK = ::core::option::Option<unsafe extern "system" fn(filehandle: super::super::super::Foundation::HANDLE, filename: ::windows::core::PCSTR, callerdata: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PFIND_EXE_FILE_CALLBACKW = ::core::option::Option<unsafe extern "system" fn(filehandle: super::super::super::Foundation::HANDLE, filename: ::windows::core::PCWSTR, callerdata: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
pub type PFUNCTION_TABLE_ACCESS_ROUTINE = ::core::option::Option<unsafe extern "system" fn(hprocess: super::super::super::Foundation::HANDLE, addrbase: u32) -> *mut ::core::ffi::c_void>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PFUNCTION_TABLE_ACCESS_ROUTINE64 = ::core::option::Option<unsafe extern "system" fn(ahprocess: super::super::super::Foundation::HANDLE, addrbase: u64) -> *mut ::core::ffi::c_void>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
pub type PGET_MODULE_BASE_ROUTINE = ::core::option::Option<unsafe extern "system" fn(hprocess: super::super::super::Foundation::HANDLE, address: u32) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PGET_MODULE_BASE_ROUTINE64 = ::core::option::Option<unsafe extern "system" fn(hprocess: super::super::super::Foundation::HANDLE, address: u64) -> u64>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "aarch64")]
pub type PGET_RUNTIME_FUNCTION_CALLBACK = ::core::option::Option<unsafe extern "system" fn(controlpc: u64, context: *const ::core::ffi::c_void) -> *mut IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
#[cfg(target_arch = "x86_64")]
pub type PGET_RUNTIME_FUNCTION_CALLBACK = ::core::option::Option<unsafe extern "system" fn(controlpc: u64, context: *const ::core::ffi::c_void) -> *mut IMAGE_RUNTIME_FUNCTION_ENTRY>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PIMAGEHLP_STATUS_ROUTINE = ::core::option::Option<unsafe extern "system" fn(reason: IMAGEHLP_STATUS_REASON, imagename: ::windows::core::PCSTR, dllname: ::windows::core::PCSTR, va: usize, parameter: usize) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PIMAGEHLP_STATUS_ROUTINE32 = ::core::option::Option<unsafe extern "system" fn(reason: IMAGEHLP_STATUS_REASON, imagename: ::windows::core::PCSTR, dllname: ::windows::core::PCSTR, va: u32, parameter: usize) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PIMAGEHLP_STATUS_ROUTINE64 = ::core::option::Option<unsafe extern "system" fn(reason: IMAGEHLP_STATUS_REASON, imagename: ::windows::core::PCSTR, dllname: ::windows::core::PCSTR, va: u64, parameter: usize) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
pub type PREAD_PROCESS_MEMORY_ROUTINE = ::core::option::Option<unsafe extern "system" fn(hprocess: super::super::super::Foundation::HANDLE, lpbaseaddress: u32, lpbuffer: *mut ::core::ffi::c_void, nsize: u32, lpnumberofbytesread: *mut u32) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PREAD_PROCESS_MEMORY_ROUTINE64 = ::core::option::Option<unsafe extern "system" fn(hprocess: super::super::super::Foundation::HANDLE, qwbaseaddress: u64, lpbuffer: *mut ::core::ffi::c_void, nsize: u32, lpnumberofbytesread: *mut u32) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERBYINDEXPROC = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCSTR, param1: ::windows::core::PCSTR, param2: ::windows::core::PCSTR, param3: ::windows::core::PCSTR) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERBYINDEXPROCA = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCSTR, param1: ::windows::core::PCSTR, param2: ::windows::core::PCSTR, param3: ::windows::core::PCSTR) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERBYINDEXPROCW = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR, param1: ::windows::core::PCWSTR, param2: ::windows::core::PCWSTR, param3: ::windows::core::PCWSTR) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERCALLBACKPROC = ::core::option::Option<unsafe extern "system" fn(action: usize, data: u64, context: u64) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERCLOSEPROC = ::core::option::Option<unsafe extern "system" fn() -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERDELTANAME = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCSTR, param1: *mut ::core::ffi::c_void, param2: u32, param3: u32, param4: *mut ::core::ffi::c_void, param5: u32, param6: u32, param7: ::windows::core::PCSTR, param8: usize) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERDELTANAMEW = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR, param1: *mut ::core::ffi::c_void, param2: u32, param3: u32, param4: *mut ::core::ffi::c_void, param5: u32, param6: u32, param7: ::windows::core::PCWSTR, param8: usize) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERGETINDEXSTRING = ::core::option::Option<unsafe extern "system" fn(param0: *mut ::core::ffi::c_void, param1: u32, param2: u32, param3: ::windows::core::PCSTR, param4: usize) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERGETINDEXSTRINGW = ::core::option::Option<unsafe extern "system" fn(param0: *mut ::core::ffi::c_void, param1: u32, param2: u32, param3: ::windows::core::PCWSTR, param4: usize) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERGETOPTIONDATAPROC = ::core::option::Option<unsafe extern "system" fn(param0: usize, param1: *mut u64) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PSYMBOLSERVERGETOPTIONSPROC = ::core::option::Option<unsafe extern "system" fn() -> usize>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERGETSUPPLEMENT = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCSTR, param1: ::windows::core::PCSTR, param2: ::windows::core::PCSTR, param3: ::windows::core::PCSTR, param4: usize) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERGETSUPPLEMENTW = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR, param1: ::windows::core::PCWSTR, param2: ::windows::core::PCWSTR, param3: ::windows::core::PCWSTR, param4: usize) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERGETVERSION = ::core::option::Option<unsafe extern "system" fn(param0: *mut API_VERSION) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERISSTORE = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCSTR) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERISSTOREW = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERMESSAGEPROC = ::core::option::Option<unsafe extern "system" fn(action: usize, data: u64, context: u64) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVEROPENPROC = ::core::option::Option<unsafe extern "system" fn() -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERPINGPROC = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCSTR) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERPINGPROCA = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCSTR) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERPINGPROCW = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERPINGPROCWEX = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERPROC = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCSTR, param1: ::windows::core::PCSTR, param2: *mut ::core::ffi::c_void, param3: u32, param4: u32, param5: ::windows::core::PCSTR) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERPROCA = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCSTR, param1: ::windows::core::PCSTR, param2: *mut ::core::ffi::c_void, param3: u32, param4: u32, param5: ::windows::core::PCSTR) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERPROCW = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR, param1: ::windows::core::PCWSTR, param2: *mut ::core::ffi::c_void, param3: u32, param4: u32, param5: ::windows::core::PCWSTR) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERSETHTTPAUTHHEADER = ::core::option::Option<unsafe extern "system" fn(pszauthheader: ::windows::core::PCWSTR) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERSETOPTIONSPROC = ::core::option::Option<unsafe extern "system" fn(param0: usize, param1: u64) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERSETOPTIONSWPROC = ::core::option::Option<unsafe extern "system" fn(param0: usize, param1: u64) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERSTOREFILE = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCSTR, param1: ::windows::core::PCSTR, param2: *mut ::core::ffi::c_void, param3: u32, param4: u32, param5: ::windows::core::PCSTR, param6: usize, param7: u32) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERSTOREFILEW = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR, param1: ::windows::core::PCWSTR, param2: *mut ::core::ffi::c_void, param3: u32, param4: u32, param5: ::windows::core::PCWSTR, param6: usize, param7: u32) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERSTORESUPPLEMENT = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCSTR, param1: ::windows::core::PCSTR, param2: ::windows::core::PCSTR, param3: ::windows::core::PCSTR, param4: usize, param5: u32) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERSTORESUPPLEMENTW = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR, param1: ::windows::core::PCWSTR, param2: ::windows::core::PCWSTR, param3: ::windows::core::PCWSTR, param4: usize, param5: u32) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PSYMBOLSERVERVERSION = ::core::option::Option<unsafe extern "system" fn() -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOLSERVERWEXPROC = ::core::option::Option<unsafe extern "system" fn(param0: ::windows::core::PCWSTR, param1: ::windows::core::PCWSTR, param2: *mut ::core::ffi::c_void, param3: u32, param4: u32, param5: ::windows::core::PCWSTR, param6: *mut SYMSRV_EXTENDED_OUTPUT_DATA) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOL_FUNCENTRY_CALLBACK = ::core::option::Option<unsafe extern "system" fn(hprocess: super::super::super::Foundation::HANDLE, addrbase: u32, usercontext: *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOL_FUNCENTRY_CALLBACK64 = ::core::option::Option<unsafe extern "system" fn(hprocess: super::super::super::Foundation::HANDLE, addrbase: u64, usercontext: u64) -> *mut ::core::ffi::c_void>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOL_REGISTERED_CALLBACK = ::core::option::Option<unsafe extern "system" fn(hprocess: super::super::super::Foundation::HANDLE, actioncode: u32, callbackdata: *const ::core::ffi::c_void, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYMBOL_REGISTERED_CALLBACK64 = ::core::option::Option<unsafe extern "system" fn(hprocess: super::super::super::Foundation::HANDLE, actioncode: u32, callbackdata: u64, usercontext: u64) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PSYM_DUMP_FIELD_CALLBACK = ::core::option::Option<unsafe extern "system" fn(pfield: *mut FIELD_INFO, usercontext: *mut ::core::ffi::c_void) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYM_ENUMERATESYMBOLS_CALLBACK = ::core::option::Option<unsafe extern "system" fn(psyminfo: *const SYMBOL_INFO, symbolsize: u32, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYM_ENUMERATESYMBOLS_CALLBACKW = ::core::option::Option<unsafe extern "system" fn(psyminfo: *const SYMBOL_INFOW, symbolsize: u32, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYM_ENUMLINES_CALLBACK = ::core::option::Option<unsafe extern "system" fn(lineinfo: *const SRCCODEINFO, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYM_ENUMLINES_CALLBACKW = ::core::option::Option<unsafe extern "system" fn(lineinfo: *const SRCCODEINFOW, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
pub type PSYM_ENUMMODULES_CALLBACK = ::core::option::Option<unsafe extern "system" fn(modulename: ::windows::core::PCSTR, baseofdll: u32, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYM_ENUMMODULES_CALLBACK64 = ::core::option::Option<unsafe extern "system" fn(modulename: ::windows::core::PCSTR, baseofdll: u64, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYM_ENUMMODULES_CALLBACKW64 = ::core::option::Option<unsafe extern "system" fn(modulename: ::windows::core::PCWSTR, baseofdll: u64, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYM_ENUMPROCESSES_CALLBACK = ::core::option::Option<unsafe extern "system" fn(hprocess: super::super::super::Foundation::HANDLE, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYM_ENUMSOURCEFILES_CALLBACK = ::core::option::Option<unsafe extern "system" fn(psourcefile: *const SOURCEFILE, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYM_ENUMSOURCEFILES_CALLBACKW = ::core::option::Option<unsafe extern "system" fn(psourcefile: *const SOURCEFILEW, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
pub type PSYM_ENUMSYMBOLS_CALLBACK = ::core::option::Option<unsafe extern "system" fn(symbolname: ::windows::core::PCSTR, symboladdress: u32, symbolsize: u32, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYM_ENUMSYMBOLS_CALLBACK64 = ::core::option::Option<unsafe extern "system" fn(symbolname: ::windows::core::PCSTR, symboladdress: u64, symbolsize: u32, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PSYM_ENUMSYMBOLS_CALLBACK64W = ::core::option::Option<unsafe extern "system" fn(symbolname: ::windows::core::PCWSTR, symboladdress: u64, symbolsize: u32, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
pub type PSYM_ENUMSYMBOLS_CALLBACKW = ::core::option::Option<unsafe extern "system" fn(symbolname: ::windows::core::PCWSTR, symboladdress: u32, symbolsize: u32, usercontext: *const ::core::ffi::c_void) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
pub type PTRANSLATE_ADDRESS_ROUTINE = ::core::option::Option<unsafe extern "system" fn(hprocess: super::super::super::Foundation::HANDLE, hthread: super::super::super::Foundation::HANDLE, lpaddr: *mut ADDRESS) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PTRANSLATE_ADDRESS_ROUTINE64 = ::core::option::Option<unsafe extern "system" fn(hprocess: super::super::super::Foundation::HANDLE, hthread: super::super::super::Foundation::HANDLE, lpaddr: *const ADDRESS64) -> u64>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))]
pub type PVECTORED_EXCEPTION_HANDLER = ::core::option::Option<unsafe extern "system" fn(exceptioninfo: *mut EXCEPTION_POINTERS) -> i32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PWAITCHAINCALLBACK = ::core::option::Option<unsafe extern "system" fn(wcthandle: *mut ::core::ffi::c_void, context: usize, callbackstatus: u32, nodecount: *mut u32, nodeinfoarray: *mut WAITCHAIN_NODE_INFO, iscycle: *mut i32)>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_CHECK_CONTROL_C = ::core::option::Option<unsafe extern "system" fn() -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_CHECK_VERSION = ::core::option::Option<unsafe extern "system" fn() -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_DISASM = ::core::option::Option<unsafe extern "system" fn(lpoffset: *mut usize, lpbuffer: ::windows::core::PCSTR, fshoweffectiveaddress: u32) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_DISASM32 = ::core::option::Option<unsafe extern "system" fn(lpoffset: *mut u32, lpbuffer: ::windows::core::PCSTR, fshoweffectiveaddress: u32) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_DISASM64 = ::core::option::Option<unsafe extern "system" fn(lpoffset: *mut u64, lpbuffer: ::windows::core::PCSTR, fshoweffectiveaddress: u32) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_EXTENSION_API_VERSION = ::core::option::Option<unsafe extern "system" fn() -> *mut EXT_API_VERSION>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(feature = "Win32_System_Kernel")]
pub type PWINDBG_EXTENSION_DLL_INIT = ::core::option::Option<unsafe extern "system" fn(lpextensionapis: *mut WINDBG_EXTENSION_APIS, majorversion: u16, minorversion: u16)>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(feature = "Win32_System_Kernel")]
pub type PWINDBG_EXTENSION_DLL_INIT32 = ::core::option::Option<unsafe extern "system" fn(lpextensionapis: *mut WINDBG_EXTENSION_APIS32, majorversion: u16, minorversion: u16)>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(feature = "Win32_System_Kernel")]
pub type PWINDBG_EXTENSION_DLL_INIT64 = ::core::option::Option<unsafe extern "system" fn(lpextensionapis: *mut WINDBG_EXTENSION_APIS64, majorversion: u16, minorversion: u16)>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PWINDBG_EXTENSION_ROUTINE = ::core::option::Option<unsafe extern "system" fn(hcurrentprocess: super::super::super::Foundation::HANDLE, hcurrentthread: super::super::super::Foundation::HANDLE, dwcurrentpc: u32, dwprocessor: u32, lpargumentstring: ::windows::core::PCSTR)>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PWINDBG_EXTENSION_ROUTINE32 = ::core::option::Option<unsafe extern "system" fn(hcurrentprocess: super::super::super::Foundation::HANDLE, hcurrentthread: super::super::super::Foundation::HANDLE, dwcurrentpc: u32, dwprocessor: u32, lpargumentstring: ::windows::core::PCSTR)>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type PWINDBG_EXTENSION_ROUTINE64 = ::core::option::Option<unsafe extern "system" fn(hcurrentprocess: super::super::super::Foundation::HANDLE, hcurrentthread: super::super::super::Foundation::HANDLE, dwcurrentpc: u64, dwprocessor: u32, lpargumentstring: ::windows::core::PCSTR)>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_GET_EXPRESSION = ::core::option::Option<unsafe extern "system" fn(lpexpression: ::windows::core::PCSTR) -> usize>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_GET_EXPRESSION32 = ::core::option::Option<unsafe extern "system" fn(lpexpression: ::windows::core::PCSTR) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_GET_EXPRESSION64 = ::core::option::Option<unsafe extern "system" fn(lpexpression: ::windows::core::PCSTR) -> u64>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_GET_SYMBOL = ::core::option::Option<unsafe extern "system" fn(offset: *mut ::core::ffi::c_void, pchbuffer: ::windows::core::PCSTR, pdisplacement: *mut usize)>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_GET_SYMBOL32 = ::core::option::Option<unsafe extern "system" fn(offset: u32, pchbuffer: ::windows::core::PCSTR, pdisplacement: *mut u32)>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_GET_SYMBOL64 = ::core::option::Option<unsafe extern "system" fn(offset: u64, pchbuffer: ::windows::core::PCSTR, pdisplacement: *mut u64)>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(feature = "Win32_System_Kernel")]
pub type PWINDBG_GET_THREAD_CONTEXT_ROUTINE = ::core::option::Option<unsafe extern "system" fn(processor: u32, lpcontext: *mut CONTEXT, cbsizeofcontext: u32) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_IOCTL_ROUTINE = ::core::option::Option<unsafe extern "system" fn(ioctltype: u16, lpvdata: *mut ::core::ffi::c_void, cbsize: u32) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_OLDKD_EXTENSION_ROUTINE = ::core::option::Option<unsafe extern "system" fn(dwcurrentpc: u32, lpextensionapis: *mut WINDBG_OLDKD_EXTENSION_APIS, lpargumentstring: ::windows::core::PCSTR)>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_OLDKD_READ_PHYSICAL_MEMORY = ::core::option::Option<unsafe extern "system" fn(address: u64, buffer: *mut ::core::ffi::c_void, count: u32, bytesread: *mut u32) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_OLDKD_WRITE_PHYSICAL_MEMORY = ::core::option::Option<unsafe extern "system" fn(address: u64, buffer: *mut ::core::ffi::c_void, length: u32, byteswritten: *mut u32) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(feature = "Win32_System_Kernel")]
pub type PWINDBG_OLD_EXTENSION_ROUTINE = ::core::option::Option<unsafe extern "system" fn(dwcurrentpc: u32, lpextensionapis: *mut WINDBG_EXTENSION_APIS, lpargumentstring: ::windows::core::PCSTR)>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_OUTPUT_ROUTINE = ::core::option::Option<unsafe extern "system" fn(lpformat: ::windows::core::PCSTR)>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_READ_PROCESS_MEMORY_ROUTINE = ::core::option::Option<unsafe extern "system" fn(offset: usize, lpbuffer: *mut ::core::ffi::c_void, cb: u32, lpcbbytesread: *mut u32) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_READ_PROCESS_MEMORY_ROUTINE32 = ::core::option::Option<unsafe extern "system" fn(offset: u32, lpbuffer: *mut ::core::ffi::c_void, cb: u32, lpcbbytesread: *mut u32) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_READ_PROCESS_MEMORY_ROUTINE64 = ::core::option::Option<unsafe extern "system" fn(offset: u64, lpbuffer: *mut ::core::ffi::c_void, cb: u32, lpcbbytesread: *mut u32) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"]
#[cfg(feature = "Win32_System_Kernel")]
pub type PWINDBG_SET_THREAD_CONTEXT_ROUTINE = ::core::option::Option<unsafe extern "system" fn(processor: u32, lpcontext: *mut CONTEXT, cbsizeofcontext: u32) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_STACKTRACE_ROUTINE = ::core::option::Option<unsafe extern "system" fn(framepointer: u32, stackpointer: u32, programcounter: u32, stackframes: *mut EXTSTACKTRACE, frames: u32) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_STACKTRACE_ROUTINE32 = ::core::option::Option<unsafe extern "system" fn(framepointer: u32, stackpointer: u32, programcounter: u32, stackframes: *mut EXTSTACKTRACE32, frames: u32) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_STACKTRACE_ROUTINE64 = ::core::option::Option<unsafe extern "system" fn(framepointer: u64, stackpointer: u64, programcounter: u64, stackframes: *mut EXTSTACKTRACE64, frames: u32) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE = ::core::option::Option<unsafe extern "system" fn(offset: usize, lpbuffer: *const ::core::ffi::c_void, cb: u32, lpcbbyteswritten: *mut u32) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE32 = ::core::option::Option<unsafe extern "system" fn(offset: u32, lpbuffer: *const ::core::ffi::c_void, cb: u32, lpcbbyteswritten: *mut u32) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE64 = ::core::option::Option<unsafe extern "system" fn(offset: u64, lpbuffer: *const ::core::ffi::c_void, cb: u32, lpcbbyteswritten: *mut u32) -> u32>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type SYMADDSOURCESTREAM = ::core::option::Option<unsafe extern "system" fn(param0: super::super::super::Foundation::HANDLE, param1: u64, param2: ::windows::core::PCSTR, param3: *mut u8, param4: usize) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type SYMADDSOURCESTREAMA = ::core::option::Option<unsafe extern "system" fn(param0: super::super::super::Foundation::HANDLE, param1: u64, param2: ::windows::core::PCSTR, param3: *mut u8, param4: usize) -> super::super::super::Foundation::BOOL>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type WHEA_ERROR_SOURCE_CORRECT_DEVICE_DRIVER = ::core::option::Option<unsafe extern "system" fn(errorsourcedesc: *mut ::core::ffi::c_void, maximumsectionlength: *mut u32) -> super::super::super::Foundation::NTSTATUS>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub type WHEA_ERROR_SOURCE_INITIALIZE_DEVICE_DRIVER = ::core::option::Option<unsafe extern "system" fn(context: *mut ::core::ffi::c_void, errorsourceid: u32) -> super::super::super::Foundation::NTSTATUS>;
#[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"]
pub type WHEA_ERROR_SOURCE_UNINITIALIZE_DEVICE_DRIVER = ::core::option::Option<unsafe extern "system" fn(context: *mut ::core::ffi::c_void)>;
#[cfg(feature = "implement")]
::core::include!("impl.rs");
