Add active-debugging APIs


git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6549 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am
index e2837b0..ed4ba5e 100644
--- a/mingw-w64-headers/Makefile.am
+++ b/mingw-w64-headers/Makefile.am
@@ -60,6 +60,8 @@
 IDL_SRCS = \
   include/activation.idl \
   include/activaut.idl \
+  include/activdbg.idl \
+  include/activdbg100.idl \
   include/activprof.idl \
   include/activscp.idl \
   include/audioclient.idl \
diff --git a/mingw-w64-headers/Makefile.in b/mingw-w64-headers/Makefile.in
index a736db6..00caf8d 100644
--- a/mingw-w64-headers/Makefile.in
+++ b/mingw-w64-headers/Makefile.in
@@ -284,6 +284,8 @@
 @HAVE_WIDL_TRUE@IDL_SRCS = \
 @HAVE_WIDL_TRUE@  include/activation.idl \
 @HAVE_WIDL_TRUE@  include/activaut.idl \
+@HAVE_WIDL_TRUE@  include/activdbg.idl \
+@HAVE_WIDL_TRUE@  include/activdbg100.idl \
 @HAVE_WIDL_TRUE@  include/activprof.idl \
 @HAVE_WIDL_TRUE@  include/activscp.idl \
 @HAVE_WIDL_TRUE@  include/audioclient.idl \
diff --git a/mingw-w64-headers/include/activdbg.h b/mingw-w64-headers/include/activdbg.h
new file mode 100644
index 0000000..f4b3161
--- /dev/null
+++ b/mingw-w64-headers/include/activdbg.h
@@ -0,0 +1,11475 @@
+/*** Autogenerated by WIDL 1.6 from activdbg.idl - Do not edit ***/
+
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __activdbg_h__
+#define __activdbg_h__
+
+/* Forward declarations */
+
+#ifndef __IActiveScriptDebug32_FWD_DEFINED__
+#define __IActiveScriptDebug32_FWD_DEFINED__
+typedef interface IActiveScriptDebug32 IActiveScriptDebug32;
+#endif
+
+#ifndef __IActiveScriptDebug64_FWD_DEFINED__
+#define __IActiveScriptDebug64_FWD_DEFINED__
+typedef interface IActiveScriptDebug64 IActiveScriptDebug64;
+#endif
+
+#ifndef __IActiveScriptSiteDebug32_FWD_DEFINED__
+#define __IActiveScriptSiteDebug32_FWD_DEFINED__
+typedef interface IActiveScriptSiteDebug32 IActiveScriptSiteDebug32;
+#endif
+
+#ifndef __IActiveScriptSiteDebug64_FWD_DEFINED__
+#define __IActiveScriptSiteDebug64_FWD_DEFINED__
+typedef interface IActiveScriptSiteDebug64 IActiveScriptSiteDebug64;
+#endif
+
+#ifndef __IActiveScriptSiteDebugEx_FWD_DEFINED__
+#define __IActiveScriptSiteDebugEx_FWD_DEFINED__
+typedef interface IActiveScriptSiteDebugEx IActiveScriptSiteDebugEx;
+#endif
+
+#ifndef __IActiveScriptErrorDebug_FWD_DEFINED__
+#define __IActiveScriptErrorDebug_FWD_DEFINED__
+typedef interface IActiveScriptErrorDebug IActiveScriptErrorDebug;
+#endif
+
+#ifndef __IDebugCodeContext_FWD_DEFINED__
+#define __IDebugCodeContext_FWD_DEFINED__
+typedef interface IDebugCodeContext IDebugCodeContext;
+#endif
+
+#ifndef __IDebugExpression_FWD_DEFINED__
+#define __IDebugExpression_FWD_DEFINED__
+typedef interface IDebugExpression IDebugExpression;
+#endif
+
+#ifndef __IDebugExpressionContext_FWD_DEFINED__
+#define __IDebugExpressionContext_FWD_DEFINED__
+typedef interface IDebugExpressionContext IDebugExpressionContext;
+#endif
+
+#ifndef __IDebugExpressionCallBack_FWD_DEFINED__
+#define __IDebugExpressionCallBack_FWD_DEFINED__
+typedef interface IDebugExpressionCallBack IDebugExpressionCallBack;
+#endif
+
+#ifndef __IDebugStackFrame_FWD_DEFINED__
+#define __IDebugStackFrame_FWD_DEFINED__
+typedef interface IDebugStackFrame IDebugStackFrame;
+#endif
+
+#ifndef __IDebugStackFrameSniffer_FWD_DEFINED__
+#define __IDebugStackFrameSniffer_FWD_DEFINED__
+typedef interface IDebugStackFrameSniffer IDebugStackFrameSniffer;
+#endif
+
+#ifndef __IDebugStackFrameSnifferEx32_FWD_DEFINED__
+#define __IDebugStackFrameSnifferEx32_FWD_DEFINED__
+typedef interface IDebugStackFrameSnifferEx32 IDebugStackFrameSnifferEx32;
+#endif
+
+#ifndef __IDebugStackFrameSnifferEx64_FWD_DEFINED__
+#define __IDebugStackFrameSnifferEx64_FWD_DEFINED__
+typedef interface IDebugStackFrameSnifferEx64 IDebugStackFrameSnifferEx64;
+#endif
+
+#ifndef __IDebugSyncOperation_FWD_DEFINED__
+#define __IDebugSyncOperation_FWD_DEFINED__
+typedef interface IDebugSyncOperation IDebugSyncOperation;
+#endif
+
+#ifndef __IDebugAsyncOperation_FWD_DEFINED__
+#define __IDebugAsyncOperation_FWD_DEFINED__
+typedef interface IDebugAsyncOperation IDebugAsyncOperation;
+#endif
+
+#ifndef __IDebugAsyncOperationCallBack_FWD_DEFINED__
+#define __IDebugAsyncOperationCallBack_FWD_DEFINED__
+typedef interface IDebugAsyncOperationCallBack IDebugAsyncOperationCallBack;
+#endif
+
+#ifndef __IEnumDebugCodeContexts_FWD_DEFINED__
+#define __IEnumDebugCodeContexts_FWD_DEFINED__
+typedef interface IEnumDebugCodeContexts IEnumDebugCodeContexts;
+#endif
+
+#ifndef __IEnumDebugStackFrames_FWD_DEFINED__
+#define __IEnumDebugStackFrames_FWD_DEFINED__
+typedef interface IEnumDebugStackFrames IEnumDebugStackFrames;
+#endif
+
+#ifndef __IEnumDebugStackFrames64_FWD_DEFINED__
+#define __IEnumDebugStackFrames64_FWD_DEFINED__
+typedef interface IEnumDebugStackFrames64 IEnumDebugStackFrames64;
+#endif
+
+#ifndef __IDebugDocumentInfo_FWD_DEFINED__
+#define __IDebugDocumentInfo_FWD_DEFINED__
+typedef interface IDebugDocumentInfo IDebugDocumentInfo;
+#endif
+
+#ifndef __IDebugDocumentProvider_FWD_DEFINED__
+#define __IDebugDocumentProvider_FWD_DEFINED__
+typedef interface IDebugDocumentProvider IDebugDocumentProvider;
+#endif
+
+#ifndef __IDebugDocument_FWD_DEFINED__
+#define __IDebugDocument_FWD_DEFINED__
+typedef interface IDebugDocument IDebugDocument;
+#endif
+
+#ifndef __IDebugDocumentText_FWD_DEFINED__
+#define __IDebugDocumentText_FWD_DEFINED__
+typedef interface IDebugDocumentText IDebugDocumentText;
+#endif
+
+#ifndef __IDebugDocumentTextEvents_FWD_DEFINED__
+#define __IDebugDocumentTextEvents_FWD_DEFINED__
+typedef interface IDebugDocumentTextEvents IDebugDocumentTextEvents;
+#endif
+
+#ifndef __IDebugDocumentTextAuthor_FWD_DEFINED__
+#define __IDebugDocumentTextAuthor_FWD_DEFINED__
+typedef interface IDebugDocumentTextAuthor IDebugDocumentTextAuthor;
+#endif
+
+#ifndef __IDebugDocumentTextExternalAuthor_FWD_DEFINED__
+#define __IDebugDocumentTextExternalAuthor_FWD_DEFINED__
+typedef interface IDebugDocumentTextExternalAuthor IDebugDocumentTextExternalAuthor;
+#endif
+
+#ifndef __IDebugDocumentHelper32_FWD_DEFINED__
+#define __IDebugDocumentHelper32_FWD_DEFINED__
+typedef interface IDebugDocumentHelper32 IDebugDocumentHelper32;
+#endif
+
+#ifndef __IDebugDocumentHelper64_FWD_DEFINED__
+#define __IDebugDocumentHelper64_FWD_DEFINED__
+typedef interface IDebugDocumentHelper64 IDebugDocumentHelper64;
+#endif
+
+#ifndef __IDebugDocumentHost_FWD_DEFINED__
+#define __IDebugDocumentHost_FWD_DEFINED__
+typedef interface IDebugDocumentHost IDebugDocumentHost;
+#endif
+
+#ifndef __IDebugDocumentContext_FWD_DEFINED__
+#define __IDebugDocumentContext_FWD_DEFINED__
+typedef interface IDebugDocumentContext IDebugDocumentContext;
+#endif
+
+#ifndef __IDebugSessionProvider_FWD_DEFINED__
+#define __IDebugSessionProvider_FWD_DEFINED__
+typedef interface IDebugSessionProvider IDebugSessionProvider;
+#endif
+
+#ifndef __IApplicationDebugger_FWD_DEFINED__
+#define __IApplicationDebugger_FWD_DEFINED__
+typedef interface IApplicationDebugger IApplicationDebugger;
+#endif
+
+#ifndef __IApplicationDebuggerUI_FWD_DEFINED__
+#define __IApplicationDebuggerUI_FWD_DEFINED__
+typedef interface IApplicationDebuggerUI IApplicationDebuggerUI;
+#endif
+
+#ifndef __IMachineDebugManager_FWD_DEFINED__
+#define __IMachineDebugManager_FWD_DEFINED__
+typedef interface IMachineDebugManager IMachineDebugManager;
+#endif
+
+#ifndef __IMachineDebugManagerCookie_FWD_DEFINED__
+#define __IMachineDebugManagerCookie_FWD_DEFINED__
+typedef interface IMachineDebugManagerCookie IMachineDebugManagerCookie;
+#endif
+
+#ifndef __IMachineDebugManagerEvents_FWD_DEFINED__
+#define __IMachineDebugManagerEvents_FWD_DEFINED__
+typedef interface IMachineDebugManagerEvents IMachineDebugManagerEvents;
+#endif
+
+#ifndef __IProcessDebugManager32_FWD_DEFINED__
+#define __IProcessDebugManager32_FWD_DEFINED__
+typedef interface IProcessDebugManager32 IProcessDebugManager32;
+#endif
+
+#ifndef __IProcessDebugManager64_FWD_DEFINED__
+#define __IProcessDebugManager64_FWD_DEFINED__
+typedef interface IProcessDebugManager64 IProcessDebugManager64;
+#endif
+
+#ifndef __IRemoteDebugApplication_FWD_DEFINED__
+#define __IRemoteDebugApplication_FWD_DEFINED__
+typedef interface IRemoteDebugApplication IRemoteDebugApplication;
+#endif
+
+#ifndef __IDebugApplication32_FWD_DEFINED__
+#define __IDebugApplication32_FWD_DEFINED__
+typedef interface IDebugApplication32 IDebugApplication32;
+#endif
+
+#ifndef __IDebugApplication64_FWD_DEFINED__
+#define __IDebugApplication64_FWD_DEFINED__
+typedef interface IDebugApplication64 IDebugApplication64;
+#endif
+
+#ifndef __IRemoteDebugApplicationEvents_FWD_DEFINED__
+#define __IRemoteDebugApplicationEvents_FWD_DEFINED__
+typedef interface IRemoteDebugApplicationEvents IRemoteDebugApplicationEvents;
+#endif
+
+#ifndef __IDebugApplicationNode_FWD_DEFINED__
+#define __IDebugApplicationNode_FWD_DEFINED__
+typedef interface IDebugApplicationNode IDebugApplicationNode;
+#endif
+
+#ifndef __IDebugApplicationNodeEvents_FWD_DEFINED__
+#define __IDebugApplicationNodeEvents_FWD_DEFINED__
+typedef interface IDebugApplicationNodeEvents IDebugApplicationNodeEvents;
+#endif
+
+#ifndef __AsyncIDebugApplicationNodeEvents_FWD_DEFINED__
+#define __AsyncIDebugApplicationNodeEvents_FWD_DEFINED__
+typedef interface AsyncIDebugApplicationNodeEvents AsyncIDebugApplicationNodeEvents;
+#endif
+
+#ifndef __IDebugThreadCall32_FWD_DEFINED__
+#define __IDebugThreadCall32_FWD_DEFINED__
+typedef interface IDebugThreadCall32 IDebugThreadCall32;
+#endif
+
+#ifndef __IDebugThreadCall64_FWD_DEFINED__
+#define __IDebugThreadCall64_FWD_DEFINED__
+typedef interface IDebugThreadCall64 IDebugThreadCall64;
+#endif
+
+#ifndef __IRemoteDebugApplicationThread_FWD_DEFINED__
+#define __IRemoteDebugApplicationThread_FWD_DEFINED__
+typedef interface IRemoteDebugApplicationThread IRemoteDebugApplicationThread;
+#endif
+
+#ifndef __IDebugApplicationThread_FWD_DEFINED__
+#define __IDebugApplicationThread_FWD_DEFINED__
+typedef interface IDebugApplicationThread IDebugApplicationThread;
+#endif
+
+#ifndef __IDebugApplicationThread64_FWD_DEFINED__
+#define __IDebugApplicationThread64_FWD_DEFINED__
+typedef interface IDebugApplicationThread64 IDebugApplicationThread64;
+#endif
+
+#ifndef __IDebugCookie_FWD_DEFINED__
+#define __IDebugCookie_FWD_DEFINED__
+typedef interface IDebugCookie IDebugCookie;
+#endif
+
+#ifndef __IEnumDebugApplicationNodes_FWD_DEFINED__
+#define __IEnumDebugApplicationNodes_FWD_DEFINED__
+typedef interface IEnumDebugApplicationNodes IEnumDebugApplicationNodes;
+#endif
+
+#ifndef __IEnumRemoteDebugApplications_FWD_DEFINED__
+#define __IEnumRemoteDebugApplications_FWD_DEFINED__
+typedef interface IEnumRemoteDebugApplications IEnumRemoteDebugApplications;
+#endif
+
+#ifndef __IEnumRemoteDebugApplicationThreads_FWD_DEFINED__
+#define __IEnumRemoteDebugApplicationThreads_FWD_DEFINED__
+typedef interface IEnumRemoteDebugApplicationThreads IEnumRemoteDebugApplicationThreads;
+#endif
+
+#ifndef __IDebugFormatter_FWD_DEFINED__
+#define __IDebugFormatter_FWD_DEFINED__
+typedef interface IDebugFormatter IDebugFormatter;
+#endif
+
+#ifndef __ISimpleConnectionPoint_FWD_DEFINED__
+#define __ISimpleConnectionPoint_FWD_DEFINED__
+typedef interface ISimpleConnectionPoint ISimpleConnectionPoint;
+#endif
+
+#ifndef __IDebugHelper_FWD_DEFINED__
+#define __IDebugHelper_FWD_DEFINED__
+typedef interface IDebugHelper IDebugHelper;
+#endif
+
+#ifndef __IEnumDebugExpressionContexts_FWD_DEFINED__
+#define __IEnumDebugExpressionContexts_FWD_DEFINED__
+typedef interface IEnumDebugExpressionContexts IEnumDebugExpressionContexts;
+#endif
+
+#ifndef __IProvideExpressionContexts_FWD_DEFINED__
+#define __IProvideExpressionContexts_FWD_DEFINED__
+typedef interface IProvideExpressionContexts IProvideExpressionContexts;
+#endif
+
+#ifndef __ProcessDebugManager_FWD_DEFINED__
+#define __ProcessDebugManager_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class ProcessDebugManager ProcessDebugManager;
+#else
+typedef struct ProcessDebugManager ProcessDebugManager;
+#endif /* defined __cplusplus */
+#endif /* defined __ProcessDebugManager_FWD_DEFINED__ */
+
+#ifndef __DebugHelper_FWD_DEFINED__
+#define __DebugHelper_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class DebugHelper DebugHelper;
+#else
+typedef struct DebugHelper DebugHelper;
+#endif /* defined __cplusplus */
+#endif /* defined __DebugHelper_FWD_DEFINED__ */
+
+#ifndef __CDebugDocumentHelper_FWD_DEFINED__
+#define __CDebugDocumentHelper_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class CDebugDocumentHelper CDebugDocumentHelper;
+#else
+typedef struct CDebugDocumentHelper CDebugDocumentHelper;
+#endif /* defined __cplusplus */
+#endif /* defined __CDebugDocumentHelper_FWD_DEFINED__ */
+
+#ifndef __MachineDebugManager_RETAIL_FWD_DEFINED__
+#define __MachineDebugManager_RETAIL_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class MachineDebugManager_RETAIL MachineDebugManager_RETAIL;
+#else
+typedef struct MachineDebugManager_RETAIL MachineDebugManager_RETAIL;
+#endif /* defined __cplusplus */
+#endif /* defined __MachineDebugManager_RETAIL_FWD_DEFINED__ */
+
+#ifndef __MachineDebugManager_DEBUG_FWD_DEFINED__
+#define __MachineDebugManager_DEBUG_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class MachineDebugManager_DEBUG MachineDebugManager_DEBUG;
+#else
+typedef struct MachineDebugManager_DEBUG MachineDebugManager_DEBUG;
+#endif /* defined __cplusplus */
+#endif /* defined __MachineDebugManager_DEBUG_FWD_DEFINED__ */
+
+#ifndef __DefaultDebugSessionProvider_FWD_DEFINED__
+#define __DefaultDebugSessionProvider_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class DefaultDebugSessionProvider DefaultDebugSessionProvider;
+#else
+typedef struct DefaultDebugSessionProvider DefaultDebugSessionProvider;
+#endif /* defined __cplusplus */
+#endif /* defined __DefaultDebugSessionProvider_FWD_DEFINED__ */
+
+/* Headers for imported files */
+
+#include <ocidl.h>
+#include <oleidl.h>
+#include <oaidl.h>
+#include <activscp.h>
+#include <dbgprop.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
+#ifndef __ActivDbg_h
+#define __ActivDbg_h
+#ifndef __IActiveScriptDebug32_FWD_DEFINED__
+#define __IActiveScriptDebug32_FWD_DEFINED__
+typedef interface IActiveScriptDebug32 IActiveScriptDebug32;
+#endif
+
+#ifndef __IActiveScriptDebug64_FWD_DEFINED__
+#define __IActiveScriptDebug64_FWD_DEFINED__
+typedef interface IActiveScriptDebug64 IActiveScriptDebug64;
+#endif
+
+#ifndef __IActiveScriptErrorDebug_FWD_DEFINED__
+#define __IActiveScriptErrorDebug_FWD_DEFINED__
+typedef interface IActiveScriptErrorDebug IActiveScriptErrorDebug;
+#endif
+
+#ifndef __IActiveScriptSiteDebug32_FWD_DEFINED__
+#define __IActiveScriptSiteDebug32_FWD_DEFINED__
+typedef interface IActiveScriptSiteDebug32 IActiveScriptSiteDebug32;
+#endif
+
+#ifndef __IActiveScriptSiteDebug64_FWD_DEFINED__
+#define __IActiveScriptSiteDebug64_FWD_DEFINED__
+typedef interface IActiveScriptSiteDebug64 IActiveScriptSiteDebug64;
+#endif
+
+#ifndef __IActiveScriptSiteDebugEx_FWD_DEFINED__
+#define __IActiveScriptSiteDebugEx_FWD_DEFINED__
+typedef interface IActiveScriptSiteDebugEx IActiveScriptSiteDebugEx;
+#endif
+
+#ifndef __IActiveScriptTextInfo_FWD_DEFINED__
+#define __IActiveScriptTextInfo_FWD_DEFINED__
+typedef interface IActiveScriptTextInfo IActiveScriptTextInfo;
+#endif
+
+#ifndef __IApplicationDebugger_FWD_DEFINED__
+#define __IApplicationDebugger_FWD_DEFINED__
+typedef interface IApplicationDebugger IApplicationDebugger;
+#endif
+
+#ifndef __IDebugApplication32_FWD_DEFINED__
+#define __IDebugApplication32_FWD_DEFINED__
+typedef interface IDebugApplication32 IDebugApplication32;
+#endif
+
+#ifndef __IDebugApplication64_FWD_DEFINED__
+#define __IDebugApplication64_FWD_DEFINED__
+typedef interface IDebugApplication64 IDebugApplication64;
+#endif
+
+#ifndef __IDebugApplicationNode_FWD_DEFINED__
+#define __IDebugApplicationNode_FWD_DEFINED__
+typedef interface IDebugApplicationNode IDebugApplicationNode;
+#endif
+
+#ifndef __IDebugApplicationNodeEvents_FWD_DEFINED__
+#define __IDebugApplicationNodeEvents_FWD_DEFINED__
+typedef interface IDebugApplicationNodeEvents IDebugApplicationNodeEvents;
+#endif
+
+#ifndef __AsyncIDebugApplicationNodeEvents_FWD_DEFINED__
+#define __AsyncIDebugApplicationNodeEvents_FWD_DEFINED__
+typedef interface AsyncIDebugApplicationNodeEvents AsyncIDebugApplicationNodeEvents;
+#endif
+
+#ifndef __IDebugApplicationThread_FWD_DEFINED__
+#define __IDebugApplicationThread_FWD_DEFINED__
+typedef interface IDebugApplicationThread IDebugApplicationThread;
+#endif
+
+#ifndef __IDebugAsyncOperation_FWD_DEFINED__
+#define __IDebugAsyncOperation_FWD_DEFINED__
+typedef interface IDebugAsyncOperation IDebugAsyncOperation;
+#endif
+
+#ifndef __IDebugAsyncOperationCallBack_FWD_DEFINED__
+#define __IDebugAsyncOperationCallBack_FWD_DEFINED__
+typedef interface IDebugAsyncOperationCallBack IDebugAsyncOperationCallBack;
+#endif
+
+#ifndef __IDebugCodeContext_FWD_DEFINED__
+#define __IDebugCodeContext_FWD_DEFINED__
+typedef interface IDebugCodeContext IDebugCodeContext;
+#endif
+
+#ifndef __IDebugDocument_FWD_DEFINED__
+#define __IDebugDocument_FWD_DEFINED__
+typedef interface IDebugDocument IDebugDocument;
+#endif
+
+#ifndef __IDebugDocumentContext_FWD_DEFINED__
+#define __IDebugDocumentContext_FWD_DEFINED__
+typedef interface IDebugDocumentContext IDebugDocumentContext;
+#endif
+
+#ifndef __IDebugDocumentHelper32_FWD_DEFINED__
+#define __IDebugDocumentHelper32_FWD_DEFINED__
+typedef interface IDebugDocumentHelper32 IDebugDocumentHelper32;
+#endif
+
+#ifndef __IDebugDocumentHelper64_FWD_DEFINED__
+#define __IDebugDocumentHelper64_FWD_DEFINED__
+typedef interface IDebugDocumentHelper64 IDebugDocumentHelper64;
+#endif
+
+#ifndef __IDebugDocumentHost_FWD_DEFINED__
+#define __IDebugDocumentHost_FWD_DEFINED__
+typedef interface IDebugDocumentHost IDebugDocumentHost;
+#endif
+
+#ifndef __IDebugDocumentInfo_FWD_DEFINED__
+#define __IDebugDocumentInfo_FWD_DEFINED__
+typedef interface IDebugDocumentInfo IDebugDocumentInfo;
+#endif
+
+#ifndef __IDebugDocumentProvider_FWD_DEFINED__
+#define __IDebugDocumentProvider_FWD_DEFINED__
+typedef interface IDebugDocumentProvider IDebugDocumentProvider;
+#endif
+
+#ifndef __IDebugDocumentText_FWD_DEFINED__
+#define __IDebugDocumentText_FWD_DEFINED__
+typedef interface IDebugDocumentText IDebugDocumentText;
+#endif
+
+#ifndef __IDebugDocumentTextAuthor_FWD_DEFINED__
+#define __IDebugDocumentTextAuthor_FWD_DEFINED__
+typedef interface IDebugDocumentTextAuthor IDebugDocumentTextAuthor;
+#endif
+
+#ifndef __IDebugDocumentTextEvents_FWD_DEFINED__
+#define __IDebugDocumentTextEvents_FWD_DEFINED__
+typedef interface IDebugDocumentTextEvents IDebugDocumentTextEvents;
+#endif
+
+#ifndef __IDebugExpression_FWD_DEFINED__
+#define __IDebugExpression_FWD_DEFINED__
+typedef interface IDebugExpression IDebugExpression;
+#endif
+
+#ifndef __IDebugExpressionCallBack_FWD_DEFINED__
+#define __IDebugExpressionCallBack_FWD_DEFINED__
+typedef interface IDebugExpressionCallBack IDebugExpressionCallBack;
+#endif
+
+#ifndef __IDebugExpressionContext_FWD_DEFINED__
+#define __IDebugExpressionContext_FWD_DEFINED__
+typedef interface IDebugExpressionContext IDebugExpressionContext;
+#endif
+
+#ifndef __IDebugFormatter_FWD_DEFINED__
+#define __IDebugFormatter_FWD_DEFINED__
+typedef interface IDebugFormatter IDebugFormatter;
+#endif
+
+#ifndef __IDebugSessionProvider_FWD_DEFINED__
+#define __IDebugSessionProvider_FWD_DEFINED__
+typedef interface IDebugSessionProvider IDebugSessionProvider;
+#endif
+
+#ifndef __IDebugStackFrame_FWD_DEFINED__
+#define __IDebugStackFrame_FWD_DEFINED__
+typedef interface IDebugStackFrame IDebugStackFrame;
+#endif
+
+#ifndef __IDebugStackFrameSniffer_FWD_DEFINED__
+#define __IDebugStackFrameSniffer_FWD_DEFINED__
+typedef interface IDebugStackFrameSniffer IDebugStackFrameSniffer;
+#endif
+
+#ifndef __IDebugSyncOperation_FWD_DEFINED__
+#define __IDebugSyncOperation_FWD_DEFINED__
+typedef interface IDebugSyncOperation IDebugSyncOperation;
+#endif
+
+#ifndef __IDebugThreadCall32_FWD_DEFINED__
+#define __IDebugThreadCall32_FWD_DEFINED__
+typedef interface IDebugThreadCall32 IDebugThreadCall32;
+#endif
+
+#ifndef __IDebugThreadCall64_FWD_DEFINED__
+#define __IDebugThreadCall64_FWD_DEFINED__
+typedef interface IDebugThreadCall64 IDebugThreadCall64;
+#endif
+
+#ifndef __IEnumActiveScriptDebugs_FWD_DEFINED__
+#define __IEnumActiveScriptDebugs_FWD_DEFINED__
+typedef interface IEnumActiveScriptDebugs IEnumActiveScriptDebugs;
+#endif
+
+#ifndef __IEnumDebugApplicationNodes_FWD_DEFINED__
+#define __IEnumDebugApplicationNodes_FWD_DEFINED__
+typedef interface IEnumDebugApplicationNodes IEnumDebugApplicationNodes;
+#endif
+
+#ifndef __IEnumDebugCodeContexts_FWD_DEFINED__
+#define __IEnumDebugCodeContexts_FWD_DEFINED__
+typedef interface IEnumDebugCodeContexts IEnumDebugCodeContexts;
+#endif
+
+#ifndef __IEnumDebugDocumentContexts_FWD_DEFINED__
+#define __IEnumDebugDocumentContexts_FWD_DEFINED__
+typedef interface IEnumDebugDocumentContexts IEnumDebugDocumentContexts;
+#endif
+
+#ifndef __IEnumDebugExpressionContexts_FWD_DEFINED__
+#define __IEnumDebugExpressionContexts_FWD_DEFINED__
+typedef interface IEnumDebugExpressionContexts IEnumDebugExpressionContexts;
+#endif
+
+#ifndef __IEnumDebugObjectBrowsers_FWD_DEFINED__
+#define __IEnumDebugObjectBrowsers_FWD_DEFINED__
+typedef interface IEnumDebugObjectBrowsers IEnumDebugObjectBrowsers;
+#endif
+
+#ifndef __IEnumDebugStackFrames_FWD_DEFINED__
+#define __IEnumDebugStackFrames_FWD_DEFINED__
+typedef interface IEnumDebugStackFrames IEnumDebugStackFrames;
+#endif
+
+#ifndef __IEnumDebugStackFrames64_FWD_DEFINED__
+#define __IEnumDebugStackFrames64_FWD_DEFINED__
+typedef interface IEnumDebugStackFrames64 IEnumDebugStackFrames64;
+#endif
+
+#ifndef __IEnumRemoteDebugApplications_FWD_DEFINED__
+#define __IEnumRemoteDebugApplications_FWD_DEFINED__
+typedef interface IEnumRemoteDebugApplications IEnumRemoteDebugApplications;
+#endif
+
+#ifndef __IEnumRemoteDebugApplicationThreads_FWD_DEFINED__
+#define __IEnumRemoteDebugApplicationThreads_FWD_DEFINED__
+typedef interface IEnumRemoteDebugApplicationThreads IEnumRemoteDebugApplicationThreads;
+#endif
+
+#ifndef __IMachineDebugManager_FWD_DEFINED__
+#define __IMachineDebugManager_FWD_DEFINED__
+typedef interface IMachineDebugManager IMachineDebugManager;
+#endif
+
+#ifndef __IMachineDebugManagerCookie_FWD_DEFINED__
+#define __IMachineDebugManagerCookie_FWD_DEFINED__
+typedef interface IMachineDebugManagerCookie IMachineDebugManagerCookie;
+#endif
+
+#ifndef __IMachineDebugManagerEvents_FWD_DEFINED__
+#define __IMachineDebugManagerEvents_FWD_DEFINED__
+typedef interface IMachineDebugManagerEvents IMachineDebugManagerEvents;
+#endif
+
+#ifndef __IProcessDebugManager_FWD_DEFINED__
+#define __IProcessDebugManager_FWD_DEFINED__
+typedef interface IProcessDebugManager IProcessDebugManager;
+#endif
+
+#ifndef __IProvideExpressionContexts_FWD_DEFINED__
+#define __IProvideExpressionContexts_FWD_DEFINED__
+typedef interface IProvideExpressionContexts IProvideExpressionContexts;
+#endif
+
+#ifndef __IRemoteDebugApplication_FWD_DEFINED__
+#define __IRemoteDebugApplication_FWD_DEFINED__
+typedef interface IRemoteDebugApplication IRemoteDebugApplication;
+#endif
+
+#ifndef __IRemoteDebugApplicationThread_FWD_DEFINED__
+#define __IRemoteDebugApplicationThread_FWD_DEFINED__
+typedef interface IRemoteDebugApplicationThread IRemoteDebugApplicationThread;
+#endif
+
+typedef DWORD APPBREAKFLAGS;
+typedef WORD SOURCE_TEXT_ATTR;
+typedef DWORD TEXT_DOC_ATTR;
+typedef enum tagBREAKPOINT_STATE {
+    BREAKPOINT_DELETED = 0,
+    BREAKPOINT_DISABLED = 1,
+    BREAKPOINT_ENABLED = 2
+} BREAKPOINT_STATE;
+typedef enum tagBREAKREASON {
+    BREAKREASON_STEP = 0,
+    BREAKREASON_BREAKPOINT = 1,
+    BREAKREASON_DEBUGGER_BLOCK = 2,
+    BREAKREASON_HOST_INITIATED = 3,
+    BREAKREASON_LANGUAGE_INITIATED = 4,
+    BREAKREASON_DEBUGGER_HALT = 5,
+    BREAKREASON_ERROR = 6,
+    BREAKREASON_JIT = 7
+} BREAKREASON;
+typedef enum tagBREAKRESUME_ACTION {
+    BREAKRESUMEACTION_ABORT = 0,
+    BREAKRESUMEACTION_CONTINUE = 1,
+    BREAKRESUMEACTION_STEP_INTO = 2,
+    BREAKRESUMEACTION_STEP_OVER = 3,
+    BREAKRESUMEACTION_STEP_OUT = 4,
+    BREAKRESUMEACTION_IGNORE = 5
+} BREAKRESUMEACTION;
+typedef enum tagDOCUMENTNAMETYPE {
+    DOCUMENTNAMETYPE_APPNODE = 0,
+    DOCUMENTNAMETYPE_TITLE = 1,
+    DOCUMENTNAMETYPE_FILE_TAIL = 2,
+    DOCUMENTNAMETYPE_URL = 3,
+    DOCUMENTNAMETYPE_UNIQUE_TITLE = 4
+} DOCUMENTNAMETYPE;
+typedef enum tagERRORRESUMEACTION {
+    ERRORRESUMEACTION_ReexecuteErrorStatement = 0,
+    ERRORRESUMEACTION_AbortCallAndReturnErrorToCaller = 1,
+    ERRORRESUMEACTION_SkipErrorStatement = 2
+} ERRORRESUMEACTION;
+typedef struct tagDebugStackFrameDescriptor {
+    IDebugStackFrame *pdsf;
+    DWORD dwMin;
+    DWORD dwLim;
+    WINBOOL fFinal;
+    IUnknown *punkFinal;
+} DebugStackFrameDescriptor;
+typedef struct tagDebugStackFrameDescriptor64 {
+    IDebugStackFrame *pdsf;
+    DWORDLONG dwMin;
+    DWORDLONG dwLim;
+    WINBOOL fFinal;
+    IUnknown *punkFinal;
+} DebugStackFrameDescriptor64;
+#define APPBREAKFLAG_DEBUGGER_BLOCK (0x1)
+
+#define APPBREAKFLAG_DEBUGGER_HALT (0x2)
+
+#define APPBREAKFLAG_STEP (0x10000)
+
+#define APPBREAKFLAG_NESTED (0x20000)
+
+#define APPBREAKFLAG_STEPTYPE_SOURCE (0x0)
+
+#define APPBREAKFLAG_STEPTYPE_BYTECODE (0x100000)
+
+#define APPBREAKFLAG_STEPTYPE_MACHINE (0x200000)
+
+#define APPBREAKFLAG_STEPTYPE_MASK (0xf00000)
+
+#define APPBREAKFLAG_IN_BREAKPOINT (0x80000000)
+
+#define SOURCETEXT_ATTR_KEYWORD (0x1)
+
+#define SOURCETEXT_ATTR_COMMENT (0x2)
+
+#define SOURCETEXT_ATTR_NONSOURCE (0x4)
+
+#define SOURCETEXT_ATTR_OPERATOR (0x8)
+
+#define SOURCETEXT_ATTR_NUMBER (0x10)
+
+#define SOURCETEXT_ATTR_STRING (0x20)
+
+#define SOURCETEXT_ATTR_FUNCTION_START (0x40)
+
+#define TEXT_DOC_ATTR_READONLY (0x1)
+
+#define TEXT_DOC_ATTR_TYPE_PRIMARY (0x2)
+
+#define TEXT_DOC_ATTR_TYPE_WORKER (0x4)
+
+#define TEXT_DOC_ATTR_TYPE_SCRIPT (0x8)
+
+
+#define DEBUG_TEXT_ISEXPRESSION (0x1)
+
+#define DEBUG_TEXT_RETURNVALUE (0x2)
+
+#define DEBUG_TEXT_NOSIDEEFFECTS (0x4)
+
+#define DEBUG_TEXT_ALLOWBREAKPOINTS (0x8)
+
+#define DEBUG_TEXT_ALLOWERRORREPORT (0x10)
+
+#define DEBUG_TEXT_EVALUATETOCODECONTEXT (0x20)
+
+#ifndef DISABLE_ACTIVDBG_INTERFACE_WRAPPERS
+#ifdef _WIN64
+#define IDebugApplication IDebugApplication64
+#define IID_IDebugApplication IID_IDebugApplication64
+#define IDebugThreadCall IDebugThreadCall64
+#define IID_IDebugThreadCall IID_IDebugThreadCall64
+#define SynchronousCallIntoThread SynchronousCallIntoThread64
+#define IActiveScriptDebug IActiveScriptDebug64
+#define IID_IActiveScriptDebug IID_IActiveScriptDebug64
+#define IActiveScriptSiteDebug IActiveScriptSiteDebug64
+#define IID_IActiveScriptSiteDebug IID_IActiveScriptSiteDebug64
+#define IDebugStackFrameSnifferEx IDebugStackFrameSnifferEx64
+#define IID_IDebugStackFrameSnifferEx IID_IDebugStackFrameSnifferEx64
+#define EnumStackFramesEx EnumStackFramesEx64
+#define IDebugDocumentHelper IDebugDocumentHelper64
+#define IID_IDebugDocumentHelper IID_IDebugDocumentHelper64
+#define IProcessDebugManager IProcessDebugManager64
+#define IID_IProcessDebugManager IID_IProcessDebugManager64
+#else
+#define IDebugApplication IDebugApplication32
+#define IID_IDebugApplication IID_IDebugApplication32
+#define IDebugThreadCall IDebugThreadCall32
+#define IID_IDebugThreadCall IID_IDebugThreadCall32
+#define SynchronousCallIntoThread SynchronousCallIntoThread32
+#define IActiveScriptDebug IActiveScriptDebug32
+#define IID_IActiveScriptDebug IID_IActiveScriptDebug32
+#define IActiveScriptSiteDebug IActiveScriptSiteDebug32
+#define IID_IActiveScriptSiteDebug IID_IActiveScriptSiteDebug32
+#define IDebugStackFrameSnifferEx IDebugStackFrameSnifferEx32
+#define IID_IDebugStackFrameSnifferEx IID_IDebugStackFrameSnifferEx32
+#define EnumStackFramesEx EnumStackFramesEx32
+#define IDebugDocumentHelper IDebugDocumentHelper32
+#define IID_IDebugDocumentHelper IID_IDebugDocumentHelper32
+#define IProcessDebugManager IProcessDebugManager32
+#define IID_IProcessDebugManager IID_IProcessDebugManager32
+#endif
+#endif
+EXTERN_C const CLSID CLSID_DebugHelper;
+EXTERN_C const CLSID CLSID_MachineDebugManager;
+EXTERN_C const CLSID CLSID_ProcessDebugManager;
+/*****************************************************************************
+ * IActiveScriptDebug32 interface
+ */
+#ifndef __IActiveScriptDebug32_INTERFACE_DEFINED__
+#define __IActiveScriptDebug32_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IActiveScriptDebug32, 0x51973c10, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c10-cb0c-11d0-b5c9-00a0244a0e7a")
+IActiveScriptDebug32 : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetScriptTextAttributes(
+        LPCOLESTR pstrCode,
+        ULONG uNumCodeChars,
+        LPCOLESTR pstrDelimiter,
+        DWORD dwFlags,
+        SOURCE_TEXT_ATTR *pattr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetScriptletTextAttributes(
+        LPCOLESTR pstrCode,
+        ULONG uNumCodeChars,
+        LPCOLESTR pstrDelimiter,
+        DWORD dwFlags,
+        SOURCE_TEXT_ATTR *pattr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnumCodeContextsOfPosition(
+        DWORD dwSourceContext,
+        ULONG uCharacterOffset,
+        ULONG uNumChars,
+        IEnumDebugCodeContexts **ppescc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IActiveScriptDebug32, 0x51973c10, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IActiveScriptDebug32Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IActiveScriptDebug32* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IActiveScriptDebug32* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IActiveScriptDebug32* This);
+
+    /*** IActiveScriptDebug32 methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetScriptTextAttributes)(
+        IActiveScriptDebug32* This,
+        LPCOLESTR pstrCode,
+        ULONG uNumCodeChars,
+        LPCOLESTR pstrDelimiter,
+        DWORD dwFlags,
+        SOURCE_TEXT_ATTR *pattr);
+
+    HRESULT (STDMETHODCALLTYPE *GetScriptletTextAttributes)(
+        IActiveScriptDebug32* This,
+        LPCOLESTR pstrCode,
+        ULONG uNumCodeChars,
+        LPCOLESTR pstrDelimiter,
+        DWORD dwFlags,
+        SOURCE_TEXT_ATTR *pattr);
+
+    HRESULT (STDMETHODCALLTYPE *EnumCodeContextsOfPosition)(
+        IActiveScriptDebug32* This,
+        DWORD dwSourceContext,
+        ULONG uCharacterOffset,
+        ULONG uNumChars,
+        IEnumDebugCodeContexts **ppescc);
+
+    END_INTERFACE
+} IActiveScriptDebug32Vtbl;
+interface IActiveScriptDebug32 {
+    CONST_VTBL IActiveScriptDebug32Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IActiveScriptDebug32_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IActiveScriptDebug32_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IActiveScriptDebug32_Release(This) (This)->lpVtbl->Release(This)
+/*** IActiveScriptDebug32 methods ***/
+#define IActiveScriptDebug32_GetScriptTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr) (This)->lpVtbl->GetScriptTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr)
+#define IActiveScriptDebug32_GetScriptletTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr) (This)->lpVtbl->GetScriptletTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr)
+#define IActiveScriptDebug32_EnumCodeContextsOfPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppescc) (This)->lpVtbl->EnumCodeContextsOfPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppescc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IActiveScriptDebug32_QueryInterface(IActiveScriptDebug32* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IActiveScriptDebug32_AddRef(IActiveScriptDebug32* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IActiveScriptDebug32_Release(IActiveScriptDebug32* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IActiveScriptDebug32 methods ***/
+static FORCEINLINE HRESULT IActiveScriptDebug32_GetScriptTextAttributes(IActiveScriptDebug32* This,LPCOLESTR pstrCode,ULONG uNumCodeChars,LPCOLESTR pstrDelimiter,DWORD dwFlags,SOURCE_TEXT_ATTR *pattr) {
+    return This->lpVtbl->GetScriptTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr);
+}
+static FORCEINLINE HRESULT IActiveScriptDebug32_GetScriptletTextAttributes(IActiveScriptDebug32* This,LPCOLESTR pstrCode,ULONG uNumCodeChars,LPCOLESTR pstrDelimiter,DWORD dwFlags,SOURCE_TEXT_ATTR *pattr) {
+    return This->lpVtbl->GetScriptletTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr);
+}
+static FORCEINLINE HRESULT IActiveScriptDebug32_EnumCodeContextsOfPosition(IActiveScriptDebug32* This,DWORD dwSourceContext,ULONG uCharacterOffset,ULONG uNumChars,IEnumDebugCodeContexts **ppescc) {
+    return This->lpVtbl->EnumCodeContextsOfPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppescc);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IActiveScriptDebug32_GetScriptTextAttributes_Proxy(
+    IActiveScriptDebug32* This,
+    LPCOLESTR pstrCode,
+    ULONG uNumCodeChars,
+    LPCOLESTR pstrDelimiter,
+    DWORD dwFlags,
+    SOURCE_TEXT_ATTR *pattr);
+void __RPC_STUB IActiveScriptDebug32_GetScriptTextAttributes_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptDebug32_GetScriptletTextAttributes_Proxy(
+    IActiveScriptDebug32* This,
+    LPCOLESTR pstrCode,
+    ULONG uNumCodeChars,
+    LPCOLESTR pstrDelimiter,
+    DWORD dwFlags,
+    SOURCE_TEXT_ATTR *pattr);
+void __RPC_STUB IActiveScriptDebug32_GetScriptletTextAttributes_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptDebug32_EnumCodeContextsOfPosition_Proxy(
+    IActiveScriptDebug32* This,
+    DWORD dwSourceContext,
+    ULONG uCharacterOffset,
+    ULONG uNumChars,
+    IEnumDebugCodeContexts **ppescc);
+void __RPC_STUB IActiveScriptDebug32_EnumCodeContextsOfPosition_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IActiveScriptDebug32_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IActiveScriptDebug64 interface
+ */
+#ifndef __IActiveScriptDebug64_INTERFACE_DEFINED__
+#define __IActiveScriptDebug64_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IActiveScriptDebug64, 0xbc437e23, 0xf5b8, 0x47f4, 0xbb,0x79, 0x7d,0x1c,0xe5,0x48,0x3b,0x86);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("bc437e23-f5b8-47f4-bb79-7d1ce5483b86")
+IActiveScriptDebug64 : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetScriptTextAttributes(
+        LPCOLESTR pstrCode,
+        ULONG uNumCodeChars,
+        LPCOLESTR pstrDelimiter,
+        DWORD dwFlags,
+        SOURCE_TEXT_ATTR *pattr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetScriptletTextAttributes(
+        LPCOLESTR pstrCode,
+        ULONG uNumCodeChars,
+        LPCOLESTR pstrDelimiter,
+        DWORD dwFlags,
+        SOURCE_TEXT_ATTR *pattr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnumCodeContextsOfPosition(
+        DWORDLONG dwSourceContext,
+        ULONG uCharacterOffset,
+        ULONG uNumChars,
+        IEnumDebugCodeContexts **ppescc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IActiveScriptDebug64, 0xbc437e23, 0xf5b8, 0x47f4, 0xbb,0x79, 0x7d,0x1c,0xe5,0x48,0x3b,0x86)
+#endif
+#else
+typedef struct IActiveScriptDebug64Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IActiveScriptDebug64* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IActiveScriptDebug64* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IActiveScriptDebug64* This);
+
+    /*** IActiveScriptDebug64 methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetScriptTextAttributes)(
+        IActiveScriptDebug64* This,
+        LPCOLESTR pstrCode,
+        ULONG uNumCodeChars,
+        LPCOLESTR pstrDelimiter,
+        DWORD dwFlags,
+        SOURCE_TEXT_ATTR *pattr);
+
+    HRESULT (STDMETHODCALLTYPE *GetScriptletTextAttributes)(
+        IActiveScriptDebug64* This,
+        LPCOLESTR pstrCode,
+        ULONG uNumCodeChars,
+        LPCOLESTR pstrDelimiter,
+        DWORD dwFlags,
+        SOURCE_TEXT_ATTR *pattr);
+
+    HRESULT (STDMETHODCALLTYPE *EnumCodeContextsOfPosition)(
+        IActiveScriptDebug64* This,
+        DWORDLONG dwSourceContext,
+        ULONG uCharacterOffset,
+        ULONG uNumChars,
+        IEnumDebugCodeContexts **ppescc);
+
+    END_INTERFACE
+} IActiveScriptDebug64Vtbl;
+interface IActiveScriptDebug64 {
+    CONST_VTBL IActiveScriptDebug64Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IActiveScriptDebug64_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IActiveScriptDebug64_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IActiveScriptDebug64_Release(This) (This)->lpVtbl->Release(This)
+/*** IActiveScriptDebug64 methods ***/
+#define IActiveScriptDebug64_GetScriptTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr) (This)->lpVtbl->GetScriptTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr)
+#define IActiveScriptDebug64_GetScriptletTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr) (This)->lpVtbl->GetScriptletTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr)
+#define IActiveScriptDebug64_EnumCodeContextsOfPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppescc) (This)->lpVtbl->EnumCodeContextsOfPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppescc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IActiveScriptDebug64_QueryInterface(IActiveScriptDebug64* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IActiveScriptDebug64_AddRef(IActiveScriptDebug64* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IActiveScriptDebug64_Release(IActiveScriptDebug64* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IActiveScriptDebug64 methods ***/
+static FORCEINLINE HRESULT IActiveScriptDebug64_GetScriptTextAttributes(IActiveScriptDebug64* This,LPCOLESTR pstrCode,ULONG uNumCodeChars,LPCOLESTR pstrDelimiter,DWORD dwFlags,SOURCE_TEXT_ATTR *pattr) {
+    return This->lpVtbl->GetScriptTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr);
+}
+static FORCEINLINE HRESULT IActiveScriptDebug64_GetScriptletTextAttributes(IActiveScriptDebug64* This,LPCOLESTR pstrCode,ULONG uNumCodeChars,LPCOLESTR pstrDelimiter,DWORD dwFlags,SOURCE_TEXT_ATTR *pattr) {
+    return This->lpVtbl->GetScriptletTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr);
+}
+static FORCEINLINE HRESULT IActiveScriptDebug64_EnumCodeContextsOfPosition(IActiveScriptDebug64* This,DWORDLONG dwSourceContext,ULONG uCharacterOffset,ULONG uNumChars,IEnumDebugCodeContexts **ppescc) {
+    return This->lpVtbl->EnumCodeContextsOfPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppescc);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IActiveScriptDebug64_GetScriptTextAttributes_Proxy(
+    IActiveScriptDebug64* This,
+    LPCOLESTR pstrCode,
+    ULONG uNumCodeChars,
+    LPCOLESTR pstrDelimiter,
+    DWORD dwFlags,
+    SOURCE_TEXT_ATTR *pattr);
+void __RPC_STUB IActiveScriptDebug64_GetScriptTextAttributes_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptDebug64_GetScriptletTextAttributes_Proxy(
+    IActiveScriptDebug64* This,
+    LPCOLESTR pstrCode,
+    ULONG uNumCodeChars,
+    LPCOLESTR pstrDelimiter,
+    DWORD dwFlags,
+    SOURCE_TEXT_ATTR *pattr);
+void __RPC_STUB IActiveScriptDebug64_GetScriptletTextAttributes_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptDebug64_EnumCodeContextsOfPosition_Proxy(
+    IActiveScriptDebug64* This,
+    DWORDLONG dwSourceContext,
+    ULONG uCharacterOffset,
+    ULONG uNumChars,
+    IEnumDebugCodeContexts **ppescc);
+void __RPC_STUB IActiveScriptDebug64_EnumCodeContextsOfPosition_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IActiveScriptDebug64_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IActiveScriptSiteDebug32 interface
+ */
+#ifndef __IActiveScriptSiteDebug32_INTERFACE_DEFINED__
+#define __IActiveScriptSiteDebug32_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IActiveScriptSiteDebug32, 0x51973c11, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c11-cb0c-11d0-b5c9-00a0244a0e7a")
+IActiveScriptSiteDebug32 : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetDocumentContextFromPosition(
+        DWORD dwSourceContext,
+        ULONG uCharacterOffset,
+        ULONG uNumChars,
+        IDebugDocumentContext **ppsc) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetApplication(
+        IDebugApplication32 **ppda) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetRootApplicationNode(
+        IDebugApplicationNode **ppdanRoot) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnScriptErrorDebug(
+        IActiveScriptErrorDebug *pErrorDebug,
+        WINBOOL *pfEnterDebugger,
+        WINBOOL *pfCallOnScriptErrorWhenContinuing) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IActiveScriptSiteDebug32, 0x51973c11, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IActiveScriptSiteDebug32Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IActiveScriptSiteDebug32* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IActiveScriptSiteDebug32* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IActiveScriptSiteDebug32* This);
+
+    /*** IActiveScriptSiteDebug32 methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetDocumentContextFromPosition)(
+        IActiveScriptSiteDebug32* This,
+        DWORD dwSourceContext,
+        ULONG uCharacterOffset,
+        ULONG uNumChars,
+        IDebugDocumentContext **ppsc);
+
+    HRESULT (STDMETHODCALLTYPE *GetApplication)(
+        IActiveScriptSiteDebug32* This,
+        IDebugApplication32 **ppda);
+
+    HRESULT (STDMETHODCALLTYPE *GetRootApplicationNode)(
+        IActiveScriptSiteDebug32* This,
+        IDebugApplicationNode **ppdanRoot);
+
+    HRESULT (STDMETHODCALLTYPE *OnScriptErrorDebug)(
+        IActiveScriptSiteDebug32* This,
+        IActiveScriptErrorDebug *pErrorDebug,
+        WINBOOL *pfEnterDebugger,
+        WINBOOL *pfCallOnScriptErrorWhenContinuing);
+
+    END_INTERFACE
+} IActiveScriptSiteDebug32Vtbl;
+interface IActiveScriptSiteDebug32 {
+    CONST_VTBL IActiveScriptSiteDebug32Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IActiveScriptSiteDebug32_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IActiveScriptSiteDebug32_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IActiveScriptSiteDebug32_Release(This) (This)->lpVtbl->Release(This)
+/*** IActiveScriptSiteDebug32 methods ***/
+#define IActiveScriptSiteDebug32_GetDocumentContextFromPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppsc) (This)->lpVtbl->GetDocumentContextFromPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppsc)
+#define IActiveScriptSiteDebug32_GetApplication(This,ppda) (This)->lpVtbl->GetApplication(This,ppda)
+#define IActiveScriptSiteDebug32_GetRootApplicationNode(This,ppdanRoot) (This)->lpVtbl->GetRootApplicationNode(This,ppdanRoot)
+#define IActiveScriptSiteDebug32_OnScriptErrorDebug(This,pErrorDebug,pfEnterDebugger,pfCallOnScriptErrorWhenContinuing) (This)->lpVtbl->OnScriptErrorDebug(This,pErrorDebug,pfEnterDebugger,pfCallOnScriptErrorWhenContinuing)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IActiveScriptSiteDebug32_QueryInterface(IActiveScriptSiteDebug32* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IActiveScriptSiteDebug32_AddRef(IActiveScriptSiteDebug32* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IActiveScriptSiteDebug32_Release(IActiveScriptSiteDebug32* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IActiveScriptSiteDebug32 methods ***/
+static FORCEINLINE HRESULT IActiveScriptSiteDebug32_GetDocumentContextFromPosition(IActiveScriptSiteDebug32* This,DWORD dwSourceContext,ULONG uCharacterOffset,ULONG uNumChars,IDebugDocumentContext **ppsc) {
+    return This->lpVtbl->GetDocumentContextFromPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppsc);
+}
+static FORCEINLINE HRESULT IActiveScriptSiteDebug32_GetApplication(IActiveScriptSiteDebug32* This,IDebugApplication32 **ppda) {
+    return This->lpVtbl->GetApplication(This,ppda);
+}
+static FORCEINLINE HRESULT IActiveScriptSiteDebug32_GetRootApplicationNode(IActiveScriptSiteDebug32* This,IDebugApplicationNode **ppdanRoot) {
+    return This->lpVtbl->GetRootApplicationNode(This,ppdanRoot);
+}
+static FORCEINLINE HRESULT IActiveScriptSiteDebug32_OnScriptErrorDebug(IActiveScriptSiteDebug32* This,IActiveScriptErrorDebug *pErrorDebug,WINBOOL *pfEnterDebugger,WINBOOL *pfCallOnScriptErrorWhenContinuing) {
+    return This->lpVtbl->OnScriptErrorDebug(This,pErrorDebug,pfEnterDebugger,pfCallOnScriptErrorWhenContinuing);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IActiveScriptSiteDebug32_GetDocumentContextFromPosition_Proxy(
+    IActiveScriptSiteDebug32* This,
+    DWORD dwSourceContext,
+    ULONG uCharacterOffset,
+    ULONG uNumChars,
+    IDebugDocumentContext **ppsc);
+void __RPC_STUB IActiveScriptSiteDebug32_GetDocumentContextFromPosition_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptSiteDebug32_GetApplication_Proxy(
+    IActiveScriptSiteDebug32* This,
+    IDebugApplication32 **ppda);
+void __RPC_STUB IActiveScriptSiteDebug32_GetApplication_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptSiteDebug32_GetRootApplicationNode_Proxy(
+    IActiveScriptSiteDebug32* This,
+    IDebugApplicationNode **ppdanRoot);
+void __RPC_STUB IActiveScriptSiteDebug32_GetRootApplicationNode_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptSiteDebug32_OnScriptErrorDebug_Proxy(
+    IActiveScriptSiteDebug32* This,
+    IActiveScriptErrorDebug *pErrorDebug,
+    WINBOOL *pfEnterDebugger,
+    WINBOOL *pfCallOnScriptErrorWhenContinuing);
+void __RPC_STUB IActiveScriptSiteDebug32_OnScriptErrorDebug_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IActiveScriptSiteDebug32_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IActiveScriptSiteDebug64 interface
+ */
+#ifndef __IActiveScriptSiteDebug64_INTERFACE_DEFINED__
+#define __IActiveScriptSiteDebug64_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IActiveScriptSiteDebug64, 0xd6b96b0a, 0x7463, 0x402c, 0x92,0xac, 0x89,0x98,0x42,0x26,0x94,0x2f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d6b96b0a-7463-402c-92ac-89984226942f")
+IActiveScriptSiteDebug64 : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetDocumentContextFromPosition(
+        DWORDLONG dwSourceContext,
+        ULONG uCharacterOffset,
+        ULONG uNumChars,
+        IDebugDocumentContext **ppsc) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetApplication(
+        IDebugApplication64 **ppda) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetRootApplicationNode(
+        IDebugApplicationNode **ppdanRoot) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnScriptErrorDebug(
+        IActiveScriptErrorDebug *pErrorDebug,
+        WINBOOL *pfEnterDebugger,
+        WINBOOL *pfCallOnScriptErrorWhenContinuing) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IActiveScriptSiteDebug64, 0xd6b96b0a, 0x7463, 0x402c, 0x92,0xac, 0x89,0x98,0x42,0x26,0x94,0x2f)
+#endif
+#else
+typedef struct IActiveScriptSiteDebug64Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IActiveScriptSiteDebug64* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IActiveScriptSiteDebug64* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IActiveScriptSiteDebug64* This);
+
+    /*** IActiveScriptSiteDebug64 methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetDocumentContextFromPosition)(
+        IActiveScriptSiteDebug64* This,
+        DWORDLONG dwSourceContext,
+        ULONG uCharacterOffset,
+        ULONG uNumChars,
+        IDebugDocumentContext **ppsc);
+
+    HRESULT (STDMETHODCALLTYPE *GetApplication)(
+        IActiveScriptSiteDebug64* This,
+        IDebugApplication64 **ppda);
+
+    HRESULT (STDMETHODCALLTYPE *GetRootApplicationNode)(
+        IActiveScriptSiteDebug64* This,
+        IDebugApplicationNode **ppdanRoot);
+
+    HRESULT (STDMETHODCALLTYPE *OnScriptErrorDebug)(
+        IActiveScriptSiteDebug64* This,
+        IActiveScriptErrorDebug *pErrorDebug,
+        WINBOOL *pfEnterDebugger,
+        WINBOOL *pfCallOnScriptErrorWhenContinuing);
+
+    END_INTERFACE
+} IActiveScriptSiteDebug64Vtbl;
+interface IActiveScriptSiteDebug64 {
+    CONST_VTBL IActiveScriptSiteDebug64Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IActiveScriptSiteDebug64_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IActiveScriptSiteDebug64_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IActiveScriptSiteDebug64_Release(This) (This)->lpVtbl->Release(This)
+/*** IActiveScriptSiteDebug64 methods ***/
+#define IActiveScriptSiteDebug64_GetDocumentContextFromPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppsc) (This)->lpVtbl->GetDocumentContextFromPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppsc)
+#define IActiveScriptSiteDebug64_GetApplication(This,ppda) (This)->lpVtbl->GetApplication(This,ppda)
+#define IActiveScriptSiteDebug64_GetRootApplicationNode(This,ppdanRoot) (This)->lpVtbl->GetRootApplicationNode(This,ppdanRoot)
+#define IActiveScriptSiteDebug64_OnScriptErrorDebug(This,pErrorDebug,pfEnterDebugger,pfCallOnScriptErrorWhenContinuing) (This)->lpVtbl->OnScriptErrorDebug(This,pErrorDebug,pfEnterDebugger,pfCallOnScriptErrorWhenContinuing)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IActiveScriptSiteDebug64_QueryInterface(IActiveScriptSiteDebug64* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IActiveScriptSiteDebug64_AddRef(IActiveScriptSiteDebug64* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IActiveScriptSiteDebug64_Release(IActiveScriptSiteDebug64* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IActiveScriptSiteDebug64 methods ***/
+static FORCEINLINE HRESULT IActiveScriptSiteDebug64_GetDocumentContextFromPosition(IActiveScriptSiteDebug64* This,DWORDLONG dwSourceContext,ULONG uCharacterOffset,ULONG uNumChars,IDebugDocumentContext **ppsc) {
+    return This->lpVtbl->GetDocumentContextFromPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppsc);
+}
+static FORCEINLINE HRESULT IActiveScriptSiteDebug64_GetApplication(IActiveScriptSiteDebug64* This,IDebugApplication64 **ppda) {
+    return This->lpVtbl->GetApplication(This,ppda);
+}
+static FORCEINLINE HRESULT IActiveScriptSiteDebug64_GetRootApplicationNode(IActiveScriptSiteDebug64* This,IDebugApplicationNode **ppdanRoot) {
+    return This->lpVtbl->GetRootApplicationNode(This,ppdanRoot);
+}
+static FORCEINLINE HRESULT IActiveScriptSiteDebug64_OnScriptErrorDebug(IActiveScriptSiteDebug64* This,IActiveScriptErrorDebug *pErrorDebug,WINBOOL *pfEnterDebugger,WINBOOL *pfCallOnScriptErrorWhenContinuing) {
+    return This->lpVtbl->OnScriptErrorDebug(This,pErrorDebug,pfEnterDebugger,pfCallOnScriptErrorWhenContinuing);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IActiveScriptSiteDebug64_GetDocumentContextFromPosition_Proxy(
+    IActiveScriptSiteDebug64* This,
+    DWORDLONG dwSourceContext,
+    ULONG uCharacterOffset,
+    ULONG uNumChars,
+    IDebugDocumentContext **ppsc);
+void __RPC_STUB IActiveScriptSiteDebug64_GetDocumentContextFromPosition_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptSiteDebug64_GetApplication_Proxy(
+    IActiveScriptSiteDebug64* This,
+    IDebugApplication64 **ppda);
+void __RPC_STUB IActiveScriptSiteDebug64_GetApplication_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptSiteDebug64_GetRootApplicationNode_Proxy(
+    IActiveScriptSiteDebug64* This,
+    IDebugApplicationNode **ppdanRoot);
+void __RPC_STUB IActiveScriptSiteDebug64_GetRootApplicationNode_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptSiteDebug64_OnScriptErrorDebug_Proxy(
+    IActiveScriptSiteDebug64* This,
+    IActiveScriptErrorDebug *pErrorDebug,
+    WINBOOL *pfEnterDebugger,
+    WINBOOL *pfCallOnScriptErrorWhenContinuing);
+void __RPC_STUB IActiveScriptSiteDebug64_OnScriptErrorDebug_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IActiveScriptSiteDebug64_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IActiveScriptSiteDebugEx interface
+ */
+#ifndef __IActiveScriptSiteDebugEx_INTERFACE_DEFINED__
+#define __IActiveScriptSiteDebugEx_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IActiveScriptSiteDebugEx, 0xbb722ccb, 0x6ad2, 0x41c6, 0xb7,0x80, 0xaf,0x9c,0x03,0xee,0x69,0xf5);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("bb722ccb-6ad2-41c6-b780-af9c03ee69f5")
+IActiveScriptSiteDebugEx : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE OnCanNotJITScriptErrorDebug(
+        IActiveScriptErrorDebug *pErrorDebug,
+        WINBOOL *pfCallOnScriptErrorWhenContinuing) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IActiveScriptSiteDebugEx, 0xbb722ccb, 0x6ad2, 0x41c6, 0xb7,0x80, 0xaf,0x9c,0x03,0xee,0x69,0xf5)
+#endif
+#else
+typedef struct IActiveScriptSiteDebugExVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IActiveScriptSiteDebugEx* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IActiveScriptSiteDebugEx* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IActiveScriptSiteDebugEx* This);
+
+    /*** IActiveScriptSiteDebugEx methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnCanNotJITScriptErrorDebug)(
+        IActiveScriptSiteDebugEx* This,
+        IActiveScriptErrorDebug *pErrorDebug,
+        WINBOOL *pfCallOnScriptErrorWhenContinuing);
+
+    END_INTERFACE
+} IActiveScriptSiteDebugExVtbl;
+interface IActiveScriptSiteDebugEx {
+    CONST_VTBL IActiveScriptSiteDebugExVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IActiveScriptSiteDebugEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IActiveScriptSiteDebugEx_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IActiveScriptSiteDebugEx_Release(This) (This)->lpVtbl->Release(This)
+/*** IActiveScriptSiteDebugEx methods ***/
+#define IActiveScriptSiteDebugEx_OnCanNotJITScriptErrorDebug(This,pErrorDebug,pfCallOnScriptErrorWhenContinuing) (This)->lpVtbl->OnCanNotJITScriptErrorDebug(This,pErrorDebug,pfCallOnScriptErrorWhenContinuing)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IActiveScriptSiteDebugEx_QueryInterface(IActiveScriptSiteDebugEx* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IActiveScriptSiteDebugEx_AddRef(IActiveScriptSiteDebugEx* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IActiveScriptSiteDebugEx_Release(IActiveScriptSiteDebugEx* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IActiveScriptSiteDebugEx methods ***/
+static FORCEINLINE HRESULT IActiveScriptSiteDebugEx_OnCanNotJITScriptErrorDebug(IActiveScriptSiteDebugEx* This,IActiveScriptErrorDebug *pErrorDebug,WINBOOL *pfCallOnScriptErrorWhenContinuing) {
+    return This->lpVtbl->OnCanNotJITScriptErrorDebug(This,pErrorDebug,pfCallOnScriptErrorWhenContinuing);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IActiveScriptSiteDebugEx_OnCanNotJITScriptErrorDebug_Proxy(
+    IActiveScriptSiteDebugEx* This,
+    IActiveScriptErrorDebug *pErrorDebug,
+    WINBOOL *pfCallOnScriptErrorWhenContinuing);
+void __RPC_STUB IActiveScriptSiteDebugEx_OnCanNotJITScriptErrorDebug_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IActiveScriptSiteDebugEx_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IActiveScriptErrorDebug interface
+ */
+#ifndef __IActiveScriptErrorDebug_INTERFACE_DEFINED__
+#define __IActiveScriptErrorDebug_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IActiveScriptErrorDebug, 0x51973c12, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c12-cb0c-11d0-b5c9-00a0244a0e7a")
+IActiveScriptErrorDebug : public IActiveScriptError
+{
+    virtual HRESULT STDMETHODCALLTYPE GetDocumentContext(
+        IDebugDocumentContext **ppssc) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetStackFrame(
+        IDebugStackFrame **ppdsf) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IActiveScriptErrorDebug, 0x51973c12, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IActiveScriptErrorDebugVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IActiveScriptErrorDebug* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IActiveScriptErrorDebug* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IActiveScriptErrorDebug* This);
+
+    /*** IActiveScriptError methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetExceptionInfo)(
+        IActiveScriptErrorDebug* This,
+        EXCEPINFO *pexcepinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetSourcePosition)(
+        IActiveScriptErrorDebug* This,
+        DWORD *pdwSourceContext,
+        ULONG *pulLineNumber,
+        LONG *plCharacterPosition);
+
+    HRESULT (STDMETHODCALLTYPE *GetSourceLineText)(
+        IActiveScriptErrorDebug* This,
+        BSTR *pbstrSourceLine);
+
+    /*** IActiveScriptErrorDebug methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetDocumentContext)(
+        IActiveScriptErrorDebug* This,
+        IDebugDocumentContext **ppssc);
+
+    HRESULT (STDMETHODCALLTYPE *GetStackFrame)(
+        IActiveScriptErrorDebug* This,
+        IDebugStackFrame **ppdsf);
+
+    END_INTERFACE
+} IActiveScriptErrorDebugVtbl;
+interface IActiveScriptErrorDebug {
+    CONST_VTBL IActiveScriptErrorDebugVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IActiveScriptErrorDebug_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IActiveScriptErrorDebug_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IActiveScriptErrorDebug_Release(This) (This)->lpVtbl->Release(This)
+/*** IActiveScriptError methods ***/
+#define IActiveScriptErrorDebug_GetExceptionInfo(This,pexcepinfo) (This)->lpVtbl->GetExceptionInfo(This,pexcepinfo)
+#define IActiveScriptErrorDebug_GetSourcePosition(This,pdwSourceContext,pulLineNumber,plCharacterPosition) (This)->lpVtbl->GetSourcePosition(This,pdwSourceContext,pulLineNumber,plCharacterPosition)
+#define IActiveScriptErrorDebug_GetSourceLineText(This,pbstrSourceLine) (This)->lpVtbl->GetSourceLineText(This,pbstrSourceLine)
+/*** IActiveScriptErrorDebug methods ***/
+#define IActiveScriptErrorDebug_GetDocumentContext(This,ppssc) (This)->lpVtbl->GetDocumentContext(This,ppssc)
+#define IActiveScriptErrorDebug_GetStackFrame(This,ppdsf) (This)->lpVtbl->GetStackFrame(This,ppdsf)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IActiveScriptErrorDebug_QueryInterface(IActiveScriptErrorDebug* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IActiveScriptErrorDebug_AddRef(IActiveScriptErrorDebug* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IActiveScriptErrorDebug_Release(IActiveScriptErrorDebug* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IActiveScriptError methods ***/
+static FORCEINLINE HRESULT IActiveScriptErrorDebug_GetExceptionInfo(IActiveScriptErrorDebug* This,EXCEPINFO *pexcepinfo) {
+    return This->lpVtbl->GetExceptionInfo(This,pexcepinfo);
+}
+static FORCEINLINE HRESULT IActiveScriptErrorDebug_GetSourcePosition(IActiveScriptErrorDebug* This,DWORD *pdwSourceContext,ULONG *pulLineNumber,LONG *plCharacterPosition) {
+    return This->lpVtbl->GetSourcePosition(This,pdwSourceContext,pulLineNumber,plCharacterPosition);
+}
+static FORCEINLINE HRESULT IActiveScriptErrorDebug_GetSourceLineText(IActiveScriptErrorDebug* This,BSTR *pbstrSourceLine) {
+    return This->lpVtbl->GetSourceLineText(This,pbstrSourceLine);
+}
+/*** IActiveScriptErrorDebug methods ***/
+static FORCEINLINE HRESULT IActiveScriptErrorDebug_GetDocumentContext(IActiveScriptErrorDebug* This,IDebugDocumentContext **ppssc) {
+    return This->lpVtbl->GetDocumentContext(This,ppssc);
+}
+static FORCEINLINE HRESULT IActiveScriptErrorDebug_GetStackFrame(IActiveScriptErrorDebug* This,IDebugStackFrame **ppdsf) {
+    return This->lpVtbl->GetStackFrame(This,ppdsf);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IActiveScriptErrorDebug_GetDocumentContext_Proxy(
+    IActiveScriptErrorDebug* This,
+    IDebugDocumentContext **ppssc);
+void __RPC_STUB IActiveScriptErrorDebug_GetDocumentContext_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptErrorDebug_GetStackFrame_Proxy(
+    IActiveScriptErrorDebug* This,
+    IDebugStackFrame **ppdsf);
+void __RPC_STUB IActiveScriptErrorDebug_GetStackFrame_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IActiveScriptErrorDebug_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugCodeContext interface
+ */
+#ifndef __IDebugCodeContext_INTERFACE_DEFINED__
+#define __IDebugCodeContext_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugCodeContext, 0x51973c13, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c13-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugCodeContext : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetDocumentContext(
+        IDebugDocumentContext **ppsc) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetBreakPoint(
+        BREAKPOINT_STATE bps) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugCodeContext, 0x51973c13, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugCodeContextVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugCodeContext* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugCodeContext* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugCodeContext* This);
+
+    /*** IDebugCodeContext methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetDocumentContext)(
+        IDebugCodeContext* This,
+        IDebugDocumentContext **ppsc);
+
+    HRESULT (STDMETHODCALLTYPE *SetBreakPoint)(
+        IDebugCodeContext* This,
+        BREAKPOINT_STATE bps);
+
+    END_INTERFACE
+} IDebugCodeContextVtbl;
+interface IDebugCodeContext {
+    CONST_VTBL IDebugCodeContextVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugCodeContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugCodeContext_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugCodeContext_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugCodeContext methods ***/
+#define IDebugCodeContext_GetDocumentContext(This,ppsc) (This)->lpVtbl->GetDocumentContext(This,ppsc)
+#define IDebugCodeContext_SetBreakPoint(This,bps) (This)->lpVtbl->SetBreakPoint(This,bps)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugCodeContext_QueryInterface(IDebugCodeContext* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugCodeContext_AddRef(IDebugCodeContext* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugCodeContext_Release(IDebugCodeContext* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugCodeContext methods ***/
+static FORCEINLINE HRESULT IDebugCodeContext_GetDocumentContext(IDebugCodeContext* This,IDebugDocumentContext **ppsc) {
+    return This->lpVtbl->GetDocumentContext(This,ppsc);
+}
+static FORCEINLINE HRESULT IDebugCodeContext_SetBreakPoint(IDebugCodeContext* This,BREAKPOINT_STATE bps) {
+    return This->lpVtbl->SetBreakPoint(This,bps);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugCodeContext_GetDocumentContext_Proxy(
+    IDebugCodeContext* This,
+    IDebugDocumentContext **ppsc);
+void __RPC_STUB IDebugCodeContext_GetDocumentContext_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugCodeContext_SetBreakPoint_Proxy(
+    IDebugCodeContext* This,
+    BREAKPOINT_STATE bps);
+void __RPC_STUB IDebugCodeContext_SetBreakPoint_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugCodeContext_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugExpression interface
+ */
+#ifndef __IDebugExpression_INTERFACE_DEFINED__
+#define __IDebugExpression_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugExpression, 0x51973c14, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c14-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugExpression : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Start(
+        IDebugExpressionCallBack *pdecb) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Abort(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE QueryIsComplete(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetResultAsString(
+        HRESULT *phrResult,
+        BSTR *pbstrResult) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetResultAsDebugProperty(
+        HRESULT *phrResult,
+        IDebugProperty **ppdp) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugExpression, 0x51973c14, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugExpressionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugExpression* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugExpression* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugExpression* This);
+
+    /*** IDebugExpression methods ***/
+    HRESULT (STDMETHODCALLTYPE *Start)(
+        IDebugExpression* This,
+        IDebugExpressionCallBack *pdecb);
+
+    HRESULT (STDMETHODCALLTYPE *Abort)(
+        IDebugExpression* This);
+
+    HRESULT (STDMETHODCALLTYPE *QueryIsComplete)(
+        IDebugExpression* This);
+
+    HRESULT (STDMETHODCALLTYPE *GetResultAsString)(
+        IDebugExpression* This,
+        HRESULT *phrResult,
+        BSTR *pbstrResult);
+
+    HRESULT (STDMETHODCALLTYPE *GetResultAsDebugProperty)(
+        IDebugExpression* This,
+        HRESULT *phrResult,
+        IDebugProperty **ppdp);
+
+    END_INTERFACE
+} IDebugExpressionVtbl;
+interface IDebugExpression {
+    CONST_VTBL IDebugExpressionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugExpression_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugExpression_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugExpression_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugExpression methods ***/
+#define IDebugExpression_Start(This,pdecb) (This)->lpVtbl->Start(This,pdecb)
+#define IDebugExpression_Abort(This) (This)->lpVtbl->Abort(This)
+#define IDebugExpression_QueryIsComplete(This) (This)->lpVtbl->QueryIsComplete(This)
+#define IDebugExpression_GetResultAsString(This,phrResult,pbstrResult) (This)->lpVtbl->GetResultAsString(This,phrResult,pbstrResult)
+#define IDebugExpression_GetResultAsDebugProperty(This,phrResult,ppdp) (This)->lpVtbl->GetResultAsDebugProperty(This,phrResult,ppdp)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugExpression_QueryInterface(IDebugExpression* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugExpression_AddRef(IDebugExpression* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugExpression_Release(IDebugExpression* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugExpression methods ***/
+static FORCEINLINE HRESULT IDebugExpression_Start(IDebugExpression* This,IDebugExpressionCallBack *pdecb) {
+    return This->lpVtbl->Start(This,pdecb);
+}
+static FORCEINLINE HRESULT IDebugExpression_Abort(IDebugExpression* This) {
+    return This->lpVtbl->Abort(This);
+}
+static FORCEINLINE HRESULT IDebugExpression_QueryIsComplete(IDebugExpression* This) {
+    return This->lpVtbl->QueryIsComplete(This);
+}
+static FORCEINLINE HRESULT IDebugExpression_GetResultAsString(IDebugExpression* This,HRESULT *phrResult,BSTR *pbstrResult) {
+    return This->lpVtbl->GetResultAsString(This,phrResult,pbstrResult);
+}
+static FORCEINLINE HRESULT IDebugExpression_GetResultAsDebugProperty(IDebugExpression* This,HRESULT *phrResult,IDebugProperty **ppdp) {
+    return This->lpVtbl->GetResultAsDebugProperty(This,phrResult,ppdp);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugExpression_Start_Proxy(
+    IDebugExpression* This,
+    IDebugExpressionCallBack *pdecb);
+void __RPC_STUB IDebugExpression_Start_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugExpression_Abort_Proxy(
+    IDebugExpression* This);
+void __RPC_STUB IDebugExpression_Abort_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugExpression_QueryIsComplete_Proxy(
+    IDebugExpression* This);
+void __RPC_STUB IDebugExpression_QueryIsComplete_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugExpression_GetResultAsString_Proxy(
+    IDebugExpression* This,
+    HRESULT *phrResult,
+    BSTR *pbstrResult);
+void __RPC_STUB IDebugExpression_GetResultAsString_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugExpression_GetResultAsDebugProperty_Proxy(
+    IDebugExpression* This,
+    HRESULT *phrResult,
+    IDebugProperty **ppdp);
+void __RPC_STUB IDebugExpression_GetResultAsDebugProperty_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugExpression_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugExpressionContext interface
+ */
+#ifndef __IDebugExpressionContext_INTERFACE_DEFINED__
+#define __IDebugExpressionContext_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugExpressionContext, 0x51973c15, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c15-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugExpressionContext : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE ParseLanguageText(
+        LPCOLESTR pstrCode,
+        UINT nRadix,
+        LPCOLESTR pstrDelimiter,
+        DWORD dwFlags,
+        IDebugExpression **ppe) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetLanguageInfo(
+        BSTR *pbstrLanguageName,
+        GUID *pLanguageID) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugExpressionContext, 0x51973c15, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugExpressionContextVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugExpressionContext* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugExpressionContext* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugExpressionContext* This);
+
+    /*** IDebugExpressionContext methods ***/
+    HRESULT (STDMETHODCALLTYPE *ParseLanguageText)(
+        IDebugExpressionContext* This,
+        LPCOLESTR pstrCode,
+        UINT nRadix,
+        LPCOLESTR pstrDelimiter,
+        DWORD dwFlags,
+        IDebugExpression **ppe);
+
+    HRESULT (STDMETHODCALLTYPE *GetLanguageInfo)(
+        IDebugExpressionContext* This,
+        BSTR *pbstrLanguageName,
+        GUID *pLanguageID);
+
+    END_INTERFACE
+} IDebugExpressionContextVtbl;
+interface IDebugExpressionContext {
+    CONST_VTBL IDebugExpressionContextVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugExpressionContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugExpressionContext_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugExpressionContext_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugExpressionContext methods ***/
+#define IDebugExpressionContext_ParseLanguageText(This,pstrCode,nRadix,pstrDelimiter,dwFlags,ppe) (This)->lpVtbl->ParseLanguageText(This,pstrCode,nRadix,pstrDelimiter,dwFlags,ppe)
+#define IDebugExpressionContext_GetLanguageInfo(This,pbstrLanguageName,pLanguageID) (This)->lpVtbl->GetLanguageInfo(This,pbstrLanguageName,pLanguageID)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugExpressionContext_QueryInterface(IDebugExpressionContext* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugExpressionContext_AddRef(IDebugExpressionContext* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugExpressionContext_Release(IDebugExpressionContext* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugExpressionContext methods ***/
+static FORCEINLINE HRESULT IDebugExpressionContext_ParseLanguageText(IDebugExpressionContext* This,LPCOLESTR pstrCode,UINT nRadix,LPCOLESTR pstrDelimiter,DWORD dwFlags,IDebugExpression **ppe) {
+    return This->lpVtbl->ParseLanguageText(This,pstrCode,nRadix,pstrDelimiter,dwFlags,ppe);
+}
+static FORCEINLINE HRESULT IDebugExpressionContext_GetLanguageInfo(IDebugExpressionContext* This,BSTR *pbstrLanguageName,GUID *pLanguageID) {
+    return This->lpVtbl->GetLanguageInfo(This,pbstrLanguageName,pLanguageID);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugExpressionContext_ParseLanguageText_Proxy(
+    IDebugExpressionContext* This,
+    LPCOLESTR pstrCode,
+    UINT nRadix,
+    LPCOLESTR pstrDelimiter,
+    DWORD dwFlags,
+    IDebugExpression **ppe);
+void __RPC_STUB IDebugExpressionContext_ParseLanguageText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugExpressionContext_GetLanguageInfo_Proxy(
+    IDebugExpressionContext* This,
+    BSTR *pbstrLanguageName,
+    GUID *pLanguageID);
+void __RPC_STUB IDebugExpressionContext_GetLanguageInfo_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugExpressionContext_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugExpressionCallBack interface
+ */
+#ifndef __IDebugExpressionCallBack_INTERFACE_DEFINED__
+#define __IDebugExpressionCallBack_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugExpressionCallBack, 0x51973c16, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c16-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugExpressionCallBack : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE onComplete(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugExpressionCallBack, 0x51973c16, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugExpressionCallBackVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugExpressionCallBack* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugExpressionCallBack* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugExpressionCallBack* This);
+
+    /*** IDebugExpressionCallBack methods ***/
+    HRESULT (STDMETHODCALLTYPE *onComplete)(
+        IDebugExpressionCallBack* This);
+
+    END_INTERFACE
+} IDebugExpressionCallBackVtbl;
+interface IDebugExpressionCallBack {
+    CONST_VTBL IDebugExpressionCallBackVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugExpressionCallBack_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugExpressionCallBack_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugExpressionCallBack_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugExpressionCallBack methods ***/
+#define IDebugExpressionCallBack_onComplete(This) (This)->lpVtbl->onComplete(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugExpressionCallBack_QueryInterface(IDebugExpressionCallBack* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugExpressionCallBack_AddRef(IDebugExpressionCallBack* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugExpressionCallBack_Release(IDebugExpressionCallBack* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugExpressionCallBack methods ***/
+static FORCEINLINE HRESULT IDebugExpressionCallBack_onComplete(IDebugExpressionCallBack* This) {
+    return This->lpVtbl->onComplete(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugExpressionCallBack_onComplete_Proxy(
+    IDebugExpressionCallBack* This);
+void __RPC_STUB IDebugExpressionCallBack_onComplete_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugExpressionCallBack_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugStackFrame interface
+ */
+#ifndef __IDebugStackFrame_INTERFACE_DEFINED__
+#define __IDebugStackFrame_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugStackFrame, 0x51973c17, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c17-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugStackFrame : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetCodeContext(
+        IDebugCodeContext **ppcc) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetDescriptionString(
+        WINBOOL fLong,
+        BSTR *pbstrDescription) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetLanguageString(
+        WINBOOL fLong,
+        BSTR *pbstrLanguage) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetThread(
+        IDebugApplicationThread **ppat) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetDebugProperty(
+        IDebugProperty **ppDebugProp) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugStackFrame, 0x51973c17, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugStackFrameVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugStackFrame* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugStackFrame* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugStackFrame* This);
+
+    /*** IDebugStackFrame methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetCodeContext)(
+        IDebugStackFrame* This,
+        IDebugCodeContext **ppcc);
+
+    HRESULT (STDMETHODCALLTYPE *GetDescriptionString)(
+        IDebugStackFrame* This,
+        WINBOOL fLong,
+        BSTR *pbstrDescription);
+
+    HRESULT (STDMETHODCALLTYPE *GetLanguageString)(
+        IDebugStackFrame* This,
+        WINBOOL fLong,
+        BSTR *pbstrLanguage);
+
+    HRESULT (STDMETHODCALLTYPE *GetThread)(
+        IDebugStackFrame* This,
+        IDebugApplicationThread **ppat);
+
+    HRESULT (STDMETHODCALLTYPE *GetDebugProperty)(
+        IDebugStackFrame* This,
+        IDebugProperty **ppDebugProp);
+
+    END_INTERFACE
+} IDebugStackFrameVtbl;
+interface IDebugStackFrame {
+    CONST_VTBL IDebugStackFrameVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugStackFrame_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugStackFrame_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugStackFrame_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugStackFrame methods ***/
+#define IDebugStackFrame_GetCodeContext(This,ppcc) (This)->lpVtbl->GetCodeContext(This,ppcc)
+#define IDebugStackFrame_GetDescriptionString(This,fLong,pbstrDescription) (This)->lpVtbl->GetDescriptionString(This,fLong,pbstrDescription)
+#define IDebugStackFrame_GetLanguageString(This,fLong,pbstrLanguage) (This)->lpVtbl->GetLanguageString(This,fLong,pbstrLanguage)
+#define IDebugStackFrame_GetThread(This,ppat) (This)->lpVtbl->GetThread(This,ppat)
+#define IDebugStackFrame_GetDebugProperty(This,ppDebugProp) (This)->lpVtbl->GetDebugProperty(This,ppDebugProp)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugStackFrame_QueryInterface(IDebugStackFrame* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugStackFrame_AddRef(IDebugStackFrame* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugStackFrame_Release(IDebugStackFrame* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugStackFrame methods ***/
+static FORCEINLINE HRESULT IDebugStackFrame_GetCodeContext(IDebugStackFrame* This,IDebugCodeContext **ppcc) {
+    return This->lpVtbl->GetCodeContext(This,ppcc);
+}
+static FORCEINLINE HRESULT IDebugStackFrame_GetDescriptionString(IDebugStackFrame* This,WINBOOL fLong,BSTR *pbstrDescription) {
+    return This->lpVtbl->GetDescriptionString(This,fLong,pbstrDescription);
+}
+static FORCEINLINE HRESULT IDebugStackFrame_GetLanguageString(IDebugStackFrame* This,WINBOOL fLong,BSTR *pbstrLanguage) {
+    return This->lpVtbl->GetLanguageString(This,fLong,pbstrLanguage);
+}
+static FORCEINLINE HRESULT IDebugStackFrame_GetThread(IDebugStackFrame* This,IDebugApplicationThread **ppat) {
+    return This->lpVtbl->GetThread(This,ppat);
+}
+static FORCEINLINE HRESULT IDebugStackFrame_GetDebugProperty(IDebugStackFrame* This,IDebugProperty **ppDebugProp) {
+    return This->lpVtbl->GetDebugProperty(This,ppDebugProp);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugStackFrame_GetCodeContext_Proxy(
+    IDebugStackFrame* This,
+    IDebugCodeContext **ppcc);
+void __RPC_STUB IDebugStackFrame_GetCodeContext_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugStackFrame_GetDescriptionString_Proxy(
+    IDebugStackFrame* This,
+    WINBOOL fLong,
+    BSTR *pbstrDescription);
+void __RPC_STUB IDebugStackFrame_GetDescriptionString_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugStackFrame_GetLanguageString_Proxy(
+    IDebugStackFrame* This,
+    WINBOOL fLong,
+    BSTR *pbstrLanguage);
+void __RPC_STUB IDebugStackFrame_GetLanguageString_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugStackFrame_GetThread_Proxy(
+    IDebugStackFrame* This,
+    IDebugApplicationThread **ppat);
+void __RPC_STUB IDebugStackFrame_GetThread_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugStackFrame_GetDebugProperty_Proxy(
+    IDebugStackFrame* This,
+    IDebugProperty **ppDebugProp);
+void __RPC_STUB IDebugStackFrame_GetDebugProperty_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugStackFrame_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugStackFrameSniffer interface
+ */
+#ifndef __IDebugStackFrameSniffer_INTERFACE_DEFINED__
+#define __IDebugStackFrameSniffer_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugStackFrameSniffer, 0x51973c18, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c18-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugStackFrameSniffer : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE EnumStackFrames(
+        IEnumDebugStackFrames **ppedsf) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugStackFrameSniffer, 0x51973c18, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugStackFrameSnifferVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugStackFrameSniffer* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugStackFrameSniffer* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugStackFrameSniffer* This);
+
+    /*** IDebugStackFrameSniffer methods ***/
+    HRESULT (STDMETHODCALLTYPE *EnumStackFrames)(
+        IDebugStackFrameSniffer* This,
+        IEnumDebugStackFrames **ppedsf);
+
+    END_INTERFACE
+} IDebugStackFrameSnifferVtbl;
+interface IDebugStackFrameSniffer {
+    CONST_VTBL IDebugStackFrameSnifferVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugStackFrameSniffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugStackFrameSniffer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugStackFrameSniffer_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugStackFrameSniffer methods ***/
+#define IDebugStackFrameSniffer_EnumStackFrames(This,ppedsf) (This)->lpVtbl->EnumStackFrames(This,ppedsf)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugStackFrameSniffer_QueryInterface(IDebugStackFrameSniffer* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugStackFrameSniffer_AddRef(IDebugStackFrameSniffer* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugStackFrameSniffer_Release(IDebugStackFrameSniffer* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugStackFrameSniffer methods ***/
+static FORCEINLINE HRESULT IDebugStackFrameSniffer_EnumStackFrames(IDebugStackFrameSniffer* This,IEnumDebugStackFrames **ppedsf) {
+    return This->lpVtbl->EnumStackFrames(This,ppedsf);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugStackFrameSniffer_EnumStackFrames_Proxy(
+    IDebugStackFrameSniffer* This,
+    IEnumDebugStackFrames **ppedsf);
+void __RPC_STUB IDebugStackFrameSniffer_EnumStackFrames_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugStackFrameSniffer_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugStackFrameSnifferEx32 interface
+ */
+#ifndef __IDebugStackFrameSnifferEx32_INTERFACE_DEFINED__
+#define __IDebugStackFrameSnifferEx32_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugStackFrameSnifferEx32, 0x51973c19, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c19-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugStackFrameSnifferEx32 : public IDebugStackFrameSniffer
+{
+    virtual HRESULT STDMETHODCALLTYPE EnumStackFramesEx32(
+        DWORD dwSpMin,
+        IEnumDebugStackFrames **ppedsf) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugStackFrameSnifferEx32, 0x51973c19, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugStackFrameSnifferEx32Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugStackFrameSnifferEx32* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugStackFrameSnifferEx32* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugStackFrameSnifferEx32* This);
+
+    /*** IDebugStackFrameSniffer methods ***/
+    HRESULT (STDMETHODCALLTYPE *EnumStackFrames)(
+        IDebugStackFrameSnifferEx32* This,
+        IEnumDebugStackFrames **ppedsf);
+
+    /*** IDebugStackFrameSnifferEx32 methods ***/
+    HRESULT (STDMETHODCALLTYPE *EnumStackFramesEx32)(
+        IDebugStackFrameSnifferEx32* This,
+        DWORD dwSpMin,
+        IEnumDebugStackFrames **ppedsf);
+
+    END_INTERFACE
+} IDebugStackFrameSnifferEx32Vtbl;
+interface IDebugStackFrameSnifferEx32 {
+    CONST_VTBL IDebugStackFrameSnifferEx32Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugStackFrameSnifferEx32_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugStackFrameSnifferEx32_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugStackFrameSnifferEx32_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugStackFrameSniffer methods ***/
+#define IDebugStackFrameSnifferEx32_EnumStackFrames(This,ppedsf) (This)->lpVtbl->EnumStackFrames(This,ppedsf)
+/*** IDebugStackFrameSnifferEx32 methods ***/
+#define IDebugStackFrameSnifferEx32_EnumStackFramesEx32(This,dwSpMin,ppedsf) (This)->lpVtbl->EnumStackFramesEx32(This,dwSpMin,ppedsf)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugStackFrameSnifferEx32_QueryInterface(IDebugStackFrameSnifferEx32* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugStackFrameSnifferEx32_AddRef(IDebugStackFrameSnifferEx32* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugStackFrameSnifferEx32_Release(IDebugStackFrameSnifferEx32* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugStackFrameSniffer methods ***/
+static FORCEINLINE HRESULT IDebugStackFrameSnifferEx32_EnumStackFrames(IDebugStackFrameSnifferEx32* This,IEnumDebugStackFrames **ppedsf) {
+    return This->lpVtbl->EnumStackFrames(This,ppedsf);
+}
+/*** IDebugStackFrameSnifferEx32 methods ***/
+static FORCEINLINE HRESULT IDebugStackFrameSnifferEx32_EnumStackFramesEx32(IDebugStackFrameSnifferEx32* This,DWORD dwSpMin,IEnumDebugStackFrames **ppedsf) {
+    return This->lpVtbl->EnumStackFramesEx32(This,dwSpMin,ppedsf);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugStackFrameSnifferEx32_EnumStackFramesEx32_Proxy(
+    IDebugStackFrameSnifferEx32* This,
+    DWORD dwSpMin,
+    IEnumDebugStackFrames **ppedsf);
+void __RPC_STUB IDebugStackFrameSnifferEx32_EnumStackFramesEx32_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugStackFrameSnifferEx32_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugStackFrameSnifferEx64 interface
+ */
+#ifndef __IDebugStackFrameSnifferEx64_INTERFACE_DEFINED__
+#define __IDebugStackFrameSnifferEx64_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugStackFrameSnifferEx64, 0x8cd12af4, 0x49c1, 0x4d52, 0x8d,0x8a, 0xc1,0x46,0xf4,0x75,0x81,0xaa);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("8cd12af4-49c1-4d52-8d8a-c146f47581aa")
+IDebugStackFrameSnifferEx64 : public IDebugStackFrameSniffer
+{
+    virtual HRESULT STDMETHODCALLTYPE EnumStackFramesEx64(
+        DWORDLONG dwSpMin,
+        IEnumDebugStackFrames64 **ppedsf) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugStackFrameSnifferEx64, 0x8cd12af4, 0x49c1, 0x4d52, 0x8d,0x8a, 0xc1,0x46,0xf4,0x75,0x81,0xaa)
+#endif
+#else
+typedef struct IDebugStackFrameSnifferEx64Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugStackFrameSnifferEx64* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugStackFrameSnifferEx64* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugStackFrameSnifferEx64* This);
+
+    /*** IDebugStackFrameSniffer methods ***/
+    HRESULT (STDMETHODCALLTYPE *EnumStackFrames)(
+        IDebugStackFrameSnifferEx64* This,
+        IEnumDebugStackFrames **ppedsf);
+
+    /*** IDebugStackFrameSnifferEx64 methods ***/
+    HRESULT (STDMETHODCALLTYPE *EnumStackFramesEx64)(
+        IDebugStackFrameSnifferEx64* This,
+        DWORDLONG dwSpMin,
+        IEnumDebugStackFrames64 **ppedsf);
+
+    END_INTERFACE
+} IDebugStackFrameSnifferEx64Vtbl;
+interface IDebugStackFrameSnifferEx64 {
+    CONST_VTBL IDebugStackFrameSnifferEx64Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugStackFrameSnifferEx64_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugStackFrameSnifferEx64_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugStackFrameSnifferEx64_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugStackFrameSniffer methods ***/
+#define IDebugStackFrameSnifferEx64_EnumStackFrames(This,ppedsf) (This)->lpVtbl->EnumStackFrames(This,ppedsf)
+/*** IDebugStackFrameSnifferEx64 methods ***/
+#define IDebugStackFrameSnifferEx64_EnumStackFramesEx64(This,dwSpMin,ppedsf) (This)->lpVtbl->EnumStackFramesEx64(This,dwSpMin,ppedsf)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugStackFrameSnifferEx64_QueryInterface(IDebugStackFrameSnifferEx64* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugStackFrameSnifferEx64_AddRef(IDebugStackFrameSnifferEx64* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugStackFrameSnifferEx64_Release(IDebugStackFrameSnifferEx64* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugStackFrameSniffer methods ***/
+static FORCEINLINE HRESULT IDebugStackFrameSnifferEx64_EnumStackFrames(IDebugStackFrameSnifferEx64* This,IEnumDebugStackFrames **ppedsf) {
+    return This->lpVtbl->EnumStackFrames(This,ppedsf);
+}
+/*** IDebugStackFrameSnifferEx64 methods ***/
+static FORCEINLINE HRESULT IDebugStackFrameSnifferEx64_EnumStackFramesEx64(IDebugStackFrameSnifferEx64* This,DWORDLONG dwSpMin,IEnumDebugStackFrames64 **ppedsf) {
+    return This->lpVtbl->EnumStackFramesEx64(This,dwSpMin,ppedsf);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugStackFrameSnifferEx64_EnumStackFramesEx64_Proxy(
+    IDebugStackFrameSnifferEx64* This,
+    DWORDLONG dwSpMin,
+    IEnumDebugStackFrames64 **ppedsf);
+void __RPC_STUB IDebugStackFrameSnifferEx64_EnumStackFramesEx64_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugStackFrameSnifferEx64_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugSyncOperation interface
+ */
+#ifndef __IDebugSyncOperation_INTERFACE_DEFINED__
+#define __IDebugSyncOperation_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugSyncOperation, 0x51973c1a, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c1a-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugSyncOperation : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetTargetThread(
+        IDebugApplicationThread **ppatTarget) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Execute(
+        IUnknown **ppunkResult) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE InProgressAbort(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugSyncOperation, 0x51973c1a, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugSyncOperationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugSyncOperation* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugSyncOperation* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugSyncOperation* This);
+
+    /*** IDebugSyncOperation methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTargetThread)(
+        IDebugSyncOperation* This,
+        IDebugApplicationThread **ppatTarget);
+
+    HRESULT (STDMETHODCALLTYPE *Execute)(
+        IDebugSyncOperation* This,
+        IUnknown **ppunkResult);
+
+    HRESULT (STDMETHODCALLTYPE *InProgressAbort)(
+        IDebugSyncOperation* This);
+
+    END_INTERFACE
+} IDebugSyncOperationVtbl;
+interface IDebugSyncOperation {
+    CONST_VTBL IDebugSyncOperationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugSyncOperation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugSyncOperation_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugSyncOperation_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugSyncOperation methods ***/
+#define IDebugSyncOperation_GetTargetThread(This,ppatTarget) (This)->lpVtbl->GetTargetThread(This,ppatTarget)
+#define IDebugSyncOperation_Execute(This,ppunkResult) (This)->lpVtbl->Execute(This,ppunkResult)
+#define IDebugSyncOperation_InProgressAbort(This) (This)->lpVtbl->InProgressAbort(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugSyncOperation_QueryInterface(IDebugSyncOperation* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugSyncOperation_AddRef(IDebugSyncOperation* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugSyncOperation_Release(IDebugSyncOperation* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugSyncOperation methods ***/
+static FORCEINLINE HRESULT IDebugSyncOperation_GetTargetThread(IDebugSyncOperation* This,IDebugApplicationThread **ppatTarget) {
+    return This->lpVtbl->GetTargetThread(This,ppatTarget);
+}
+static FORCEINLINE HRESULT IDebugSyncOperation_Execute(IDebugSyncOperation* This,IUnknown **ppunkResult) {
+    return This->lpVtbl->Execute(This,ppunkResult);
+}
+static FORCEINLINE HRESULT IDebugSyncOperation_InProgressAbort(IDebugSyncOperation* This) {
+    return This->lpVtbl->InProgressAbort(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugSyncOperation_GetTargetThread_Proxy(
+    IDebugSyncOperation* This,
+    IDebugApplicationThread **ppatTarget);
+void __RPC_STUB IDebugSyncOperation_GetTargetThread_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugSyncOperation_Execute_Proxy(
+    IDebugSyncOperation* This,
+    IUnknown **ppunkResult);
+void __RPC_STUB IDebugSyncOperation_Execute_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugSyncOperation_InProgressAbort_Proxy(
+    IDebugSyncOperation* This);
+void __RPC_STUB IDebugSyncOperation_InProgressAbort_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugSyncOperation_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugAsyncOperation interface
+ */
+#ifndef __IDebugAsyncOperation_INTERFACE_DEFINED__
+#define __IDebugAsyncOperation_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugAsyncOperation, 0x51973c1b, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c1b-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugAsyncOperation : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetSyncDebugOperation(
+        IDebugSyncOperation **ppsdo) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Start(
+        IDebugAsyncOperationCallBack *padocb) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Abort(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE QueryIsComplete(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetResult(
+        HRESULT *phrResult,
+        IUnknown **ppunkResult) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugAsyncOperation, 0x51973c1b, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugAsyncOperationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugAsyncOperation* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugAsyncOperation* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugAsyncOperation* This);
+
+    /*** IDebugAsyncOperation methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetSyncDebugOperation)(
+        IDebugAsyncOperation* This,
+        IDebugSyncOperation **ppsdo);
+
+    HRESULT (STDMETHODCALLTYPE *Start)(
+        IDebugAsyncOperation* This,
+        IDebugAsyncOperationCallBack *padocb);
+
+    HRESULT (STDMETHODCALLTYPE *Abort)(
+        IDebugAsyncOperation* This);
+
+    HRESULT (STDMETHODCALLTYPE *QueryIsComplete)(
+        IDebugAsyncOperation* This);
+
+    HRESULT (STDMETHODCALLTYPE *GetResult)(
+        IDebugAsyncOperation* This,
+        HRESULT *phrResult,
+        IUnknown **ppunkResult);
+
+    END_INTERFACE
+} IDebugAsyncOperationVtbl;
+interface IDebugAsyncOperation {
+    CONST_VTBL IDebugAsyncOperationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugAsyncOperation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugAsyncOperation_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugAsyncOperation_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugAsyncOperation methods ***/
+#define IDebugAsyncOperation_GetSyncDebugOperation(This,ppsdo) (This)->lpVtbl->GetSyncDebugOperation(This,ppsdo)
+#define IDebugAsyncOperation_Start(This,padocb) (This)->lpVtbl->Start(This,padocb)
+#define IDebugAsyncOperation_Abort(This) (This)->lpVtbl->Abort(This)
+#define IDebugAsyncOperation_QueryIsComplete(This) (This)->lpVtbl->QueryIsComplete(This)
+#define IDebugAsyncOperation_GetResult(This,phrResult,ppunkResult) (This)->lpVtbl->GetResult(This,phrResult,ppunkResult)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugAsyncOperation_QueryInterface(IDebugAsyncOperation* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugAsyncOperation_AddRef(IDebugAsyncOperation* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugAsyncOperation_Release(IDebugAsyncOperation* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugAsyncOperation methods ***/
+static FORCEINLINE HRESULT IDebugAsyncOperation_GetSyncDebugOperation(IDebugAsyncOperation* This,IDebugSyncOperation **ppsdo) {
+    return This->lpVtbl->GetSyncDebugOperation(This,ppsdo);
+}
+static FORCEINLINE HRESULT IDebugAsyncOperation_Start(IDebugAsyncOperation* This,IDebugAsyncOperationCallBack *padocb) {
+    return This->lpVtbl->Start(This,padocb);
+}
+static FORCEINLINE HRESULT IDebugAsyncOperation_Abort(IDebugAsyncOperation* This) {
+    return This->lpVtbl->Abort(This);
+}
+static FORCEINLINE HRESULT IDebugAsyncOperation_QueryIsComplete(IDebugAsyncOperation* This) {
+    return This->lpVtbl->QueryIsComplete(This);
+}
+static FORCEINLINE HRESULT IDebugAsyncOperation_GetResult(IDebugAsyncOperation* This,HRESULT *phrResult,IUnknown **ppunkResult) {
+    return This->lpVtbl->GetResult(This,phrResult,ppunkResult);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugAsyncOperation_GetSyncDebugOperation_Proxy(
+    IDebugAsyncOperation* This,
+    IDebugSyncOperation **ppsdo);
+void __RPC_STUB IDebugAsyncOperation_GetSyncDebugOperation_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugAsyncOperation_Start_Proxy(
+    IDebugAsyncOperation* This,
+    IDebugAsyncOperationCallBack *padocb);
+void __RPC_STUB IDebugAsyncOperation_Start_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugAsyncOperation_Abort_Proxy(
+    IDebugAsyncOperation* This);
+void __RPC_STUB IDebugAsyncOperation_Abort_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugAsyncOperation_QueryIsComplete_Proxy(
+    IDebugAsyncOperation* This);
+void __RPC_STUB IDebugAsyncOperation_QueryIsComplete_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugAsyncOperation_GetResult_Proxy(
+    IDebugAsyncOperation* This,
+    HRESULT *phrResult,
+    IUnknown **ppunkResult);
+void __RPC_STUB IDebugAsyncOperation_GetResult_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugAsyncOperation_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugAsyncOperationCallBack interface
+ */
+#ifndef __IDebugAsyncOperationCallBack_INTERFACE_DEFINED__
+#define __IDebugAsyncOperationCallBack_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugAsyncOperationCallBack, 0x51973c1c, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c1c-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugAsyncOperationCallBack : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE onComplete(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugAsyncOperationCallBack, 0x51973c1c, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugAsyncOperationCallBackVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugAsyncOperationCallBack* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugAsyncOperationCallBack* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugAsyncOperationCallBack* This);
+
+    /*** IDebugAsyncOperationCallBack methods ***/
+    HRESULT (STDMETHODCALLTYPE *onComplete)(
+        IDebugAsyncOperationCallBack* This);
+
+    END_INTERFACE
+} IDebugAsyncOperationCallBackVtbl;
+interface IDebugAsyncOperationCallBack {
+    CONST_VTBL IDebugAsyncOperationCallBackVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugAsyncOperationCallBack_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugAsyncOperationCallBack_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugAsyncOperationCallBack_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugAsyncOperationCallBack methods ***/
+#define IDebugAsyncOperationCallBack_onComplete(This) (This)->lpVtbl->onComplete(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugAsyncOperationCallBack_QueryInterface(IDebugAsyncOperationCallBack* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugAsyncOperationCallBack_AddRef(IDebugAsyncOperationCallBack* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugAsyncOperationCallBack_Release(IDebugAsyncOperationCallBack* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugAsyncOperationCallBack methods ***/
+static FORCEINLINE HRESULT IDebugAsyncOperationCallBack_onComplete(IDebugAsyncOperationCallBack* This) {
+    return This->lpVtbl->onComplete(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugAsyncOperationCallBack_onComplete_Proxy(
+    IDebugAsyncOperationCallBack* This);
+void __RPC_STUB IDebugAsyncOperationCallBack_onComplete_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugAsyncOperationCallBack_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IEnumDebugCodeContexts interface
+ */
+#ifndef __IEnumDebugCodeContexts_INTERFACE_DEFINED__
+#define __IEnumDebugCodeContexts_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IEnumDebugCodeContexts, 0x51973c1d, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c1d-cb0c-11d0-b5c9-00a0244a0e7a")
+IEnumDebugCodeContexts : public IUnknown
+{
+    virtual HRESULT __stdcall Next(
+        ULONG celt,
+        IDebugCodeContext **pscc,
+        ULONG *pceltFetched) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Skip(
+        ULONG celt) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Reset(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        IEnumDebugCodeContexts **ppescc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IEnumDebugCodeContexts, 0x51973c1d, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IEnumDebugCodeContextsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumDebugCodeContexts* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IEnumDebugCodeContexts* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IEnumDebugCodeContexts* This);
+
+    /*** IEnumDebugCodeContexts methods ***/
+    HRESULT (__stdcall *Next)(
+        IEnumDebugCodeContexts* This,
+        ULONG celt,
+        IDebugCodeContext **pscc,
+        ULONG *pceltFetched);
+
+    HRESULT (STDMETHODCALLTYPE *Skip)(
+        IEnumDebugCodeContexts* This,
+        ULONG celt);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IEnumDebugCodeContexts* This);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IEnumDebugCodeContexts* This,
+        IEnumDebugCodeContexts **ppescc);
+
+    END_INTERFACE
+} IEnumDebugCodeContextsVtbl;
+interface IEnumDebugCodeContexts {
+    CONST_VTBL IEnumDebugCodeContextsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IEnumDebugCodeContexts_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumDebugCodeContexts_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IEnumDebugCodeContexts_Release(This) (This)->lpVtbl->Release(This)
+/*** IEnumDebugCodeContexts methods ***/
+#define IEnumDebugCodeContexts_Next(This,celt,pscc,pceltFetched) (This)->lpVtbl->Next(This,celt,pscc,pceltFetched)
+#define IEnumDebugCodeContexts_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
+#define IEnumDebugCodeContexts_Reset(This) (This)->lpVtbl->Reset(This)
+#define IEnumDebugCodeContexts_Clone(This,ppescc) (This)->lpVtbl->Clone(This,ppescc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IEnumDebugCodeContexts_QueryInterface(IEnumDebugCodeContexts* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IEnumDebugCodeContexts_AddRef(IEnumDebugCodeContexts* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IEnumDebugCodeContexts_Release(IEnumDebugCodeContexts* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IEnumDebugCodeContexts methods ***/
+static FORCEINLINE HRESULT IEnumDebugCodeContexts_Next(IEnumDebugCodeContexts* This,ULONG celt,IDebugCodeContext **pscc,ULONG *pceltFetched) {
+    return This->lpVtbl->Next(This,celt,pscc,pceltFetched);
+}
+static FORCEINLINE HRESULT IEnumDebugCodeContexts_Skip(IEnumDebugCodeContexts* This,ULONG celt) {
+    return This->lpVtbl->Skip(This,celt);
+}
+static FORCEINLINE HRESULT IEnumDebugCodeContexts_Reset(IEnumDebugCodeContexts* This) {
+    return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT IEnumDebugCodeContexts_Clone(IEnumDebugCodeContexts* This,IEnumDebugCodeContexts **ppescc) {
+    return This->lpVtbl->Clone(This,ppescc);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT __stdcall IEnumDebugCodeContexts_RemoteNext_Proxy(
+    IEnumDebugCodeContexts* This,
+    ULONG celt,
+    IDebugCodeContext **pscc,
+    ULONG *pceltFetched);
+void __RPC_STUB IEnumDebugCodeContexts_RemoteNext_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDebugCodeContexts_Skip_Proxy(
+    IEnumDebugCodeContexts* This,
+    ULONG celt);
+void __RPC_STUB IEnumDebugCodeContexts_Skip_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDebugCodeContexts_Reset_Proxy(
+    IEnumDebugCodeContexts* This);
+void __RPC_STUB IEnumDebugCodeContexts_Reset_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDebugCodeContexts_Clone_Proxy(
+    IEnumDebugCodeContexts* This,
+    IEnumDebugCodeContexts **ppescc);
+void __RPC_STUB IEnumDebugCodeContexts_Clone_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumDebugCodeContexts_Next_Proxy(
+    IEnumDebugCodeContexts* This,
+    ULONG celt,
+    IDebugCodeContext **pscc,
+    ULONG *pceltFetched);
+HRESULT __RPC_STUB IEnumDebugCodeContexts_Next_Stub(
+    IEnumDebugCodeContexts* This,
+    ULONG celt,
+    IDebugCodeContext **pscc,
+    ULONG *pceltFetched);
+
+#endif  /* __IEnumDebugCodeContexts_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IEnumDebugStackFrames interface
+ */
+#ifndef __IEnumDebugStackFrames_INTERFACE_DEFINED__
+#define __IEnumDebugStackFrames_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IEnumDebugStackFrames, 0x51973c1e, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c1e-cb0c-11d0-b5c9-00a0244a0e7a")
+IEnumDebugStackFrames : public IUnknown
+{
+    virtual HRESULT __stdcall Next(
+        ULONG celt,
+        DebugStackFrameDescriptor *prgdsfd,
+        ULONG *pceltFetched) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Skip(
+        ULONG celt) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Reset(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        IEnumDebugStackFrames **ppedsf) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IEnumDebugStackFrames, 0x51973c1e, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IEnumDebugStackFramesVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumDebugStackFrames* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IEnumDebugStackFrames* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IEnumDebugStackFrames* This);
+
+    /*** IEnumDebugStackFrames methods ***/
+    HRESULT (__stdcall *Next)(
+        IEnumDebugStackFrames* This,
+        ULONG celt,
+        DebugStackFrameDescriptor *prgdsfd,
+        ULONG *pceltFetched);
+
+    HRESULT (STDMETHODCALLTYPE *Skip)(
+        IEnumDebugStackFrames* This,
+        ULONG celt);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IEnumDebugStackFrames* This);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IEnumDebugStackFrames* This,
+        IEnumDebugStackFrames **ppedsf);
+
+    END_INTERFACE
+} IEnumDebugStackFramesVtbl;
+interface IEnumDebugStackFrames {
+    CONST_VTBL IEnumDebugStackFramesVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IEnumDebugStackFrames_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumDebugStackFrames_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IEnumDebugStackFrames_Release(This) (This)->lpVtbl->Release(This)
+/*** IEnumDebugStackFrames methods ***/
+#define IEnumDebugStackFrames_Next(This,celt,prgdsfd,pceltFetched) (This)->lpVtbl->Next(This,celt,prgdsfd,pceltFetched)
+#define IEnumDebugStackFrames_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
+#define IEnumDebugStackFrames_Reset(This) (This)->lpVtbl->Reset(This)
+#define IEnumDebugStackFrames_Clone(This,ppedsf) (This)->lpVtbl->Clone(This,ppedsf)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IEnumDebugStackFrames_QueryInterface(IEnumDebugStackFrames* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IEnumDebugStackFrames_AddRef(IEnumDebugStackFrames* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IEnumDebugStackFrames_Release(IEnumDebugStackFrames* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IEnumDebugStackFrames methods ***/
+static FORCEINLINE HRESULT IEnumDebugStackFrames_Next(IEnumDebugStackFrames* This,ULONG celt,DebugStackFrameDescriptor *prgdsfd,ULONG *pceltFetched) {
+    return This->lpVtbl->Next(This,celt,prgdsfd,pceltFetched);
+}
+static FORCEINLINE HRESULT IEnumDebugStackFrames_Skip(IEnumDebugStackFrames* This,ULONG celt) {
+    return This->lpVtbl->Skip(This,celt);
+}
+static FORCEINLINE HRESULT IEnumDebugStackFrames_Reset(IEnumDebugStackFrames* This) {
+    return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT IEnumDebugStackFrames_Clone(IEnumDebugStackFrames* This,IEnumDebugStackFrames **ppedsf) {
+    return This->lpVtbl->Clone(This,ppedsf);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT __stdcall IEnumDebugStackFrames_RemoteNext_Proxy(
+    IEnumDebugStackFrames* This,
+    ULONG celt,
+    DebugStackFrameDescriptor *prgdsfd,
+    ULONG *pceltFetched);
+void __RPC_STUB IEnumDebugStackFrames_RemoteNext_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDebugStackFrames_Skip_Proxy(
+    IEnumDebugStackFrames* This,
+    ULONG celt);
+void __RPC_STUB IEnumDebugStackFrames_Skip_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDebugStackFrames_Reset_Proxy(
+    IEnumDebugStackFrames* This);
+void __RPC_STUB IEnumDebugStackFrames_Reset_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDebugStackFrames_Clone_Proxy(
+    IEnumDebugStackFrames* This,
+    IEnumDebugStackFrames **ppedsf);
+void __RPC_STUB IEnumDebugStackFrames_Clone_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumDebugStackFrames_Next_Proxy(
+    IEnumDebugStackFrames* This,
+    ULONG celt,
+    DebugStackFrameDescriptor *prgdsfd,
+    ULONG *pceltFetched);
+HRESULT __RPC_STUB IEnumDebugStackFrames_Next_Stub(
+    IEnumDebugStackFrames* This,
+    ULONG celt,
+    DebugStackFrameDescriptor *prgdsfd,
+    ULONG *pceltFetched);
+
+#endif  /* __IEnumDebugStackFrames_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IEnumDebugStackFrames64 interface
+ */
+#ifndef __IEnumDebugStackFrames64_INTERFACE_DEFINED__
+#define __IEnumDebugStackFrames64_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IEnumDebugStackFrames64, 0x0dc38853, 0xc1b0, 0x4176, 0xa9,0x84, 0xb2,0x98,0x36,0x10,0x27,0xaf);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("0dc38853-c1b0-4176-a984-b298361027af")
+IEnumDebugStackFrames64 : public IEnumDebugStackFrames
+{
+    virtual HRESULT __stdcall Next64(
+        ULONG celt,
+        DebugStackFrameDescriptor64 *prgdsfd,
+        ULONG *pceltFetched) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IEnumDebugStackFrames64, 0x0dc38853, 0xc1b0, 0x4176, 0xa9,0x84, 0xb2,0x98,0x36,0x10,0x27,0xaf)
+#endif
+#else
+typedef struct IEnumDebugStackFrames64Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumDebugStackFrames64* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IEnumDebugStackFrames64* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IEnumDebugStackFrames64* This);
+
+    /*** IEnumDebugStackFrames methods ***/
+    HRESULT (__stdcall *Next)(
+        IEnumDebugStackFrames64* This,
+        ULONG celt,
+        DebugStackFrameDescriptor *prgdsfd,
+        ULONG *pceltFetched);
+
+    HRESULT (STDMETHODCALLTYPE *Skip)(
+        IEnumDebugStackFrames64* This,
+        ULONG celt);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IEnumDebugStackFrames64* This);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IEnumDebugStackFrames64* This,
+        IEnumDebugStackFrames **ppedsf);
+
+    /*** IEnumDebugStackFrames64 methods ***/
+    HRESULT (__stdcall *Next64)(
+        IEnumDebugStackFrames64* This,
+        ULONG celt,
+        DebugStackFrameDescriptor64 *prgdsfd,
+        ULONG *pceltFetched);
+
+    END_INTERFACE
+} IEnumDebugStackFrames64Vtbl;
+interface IEnumDebugStackFrames64 {
+    CONST_VTBL IEnumDebugStackFrames64Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IEnumDebugStackFrames64_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumDebugStackFrames64_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IEnumDebugStackFrames64_Release(This) (This)->lpVtbl->Release(This)
+/*** IEnumDebugStackFrames methods ***/
+#define IEnumDebugStackFrames64_Next(This,celt,prgdsfd,pceltFetched) (This)->lpVtbl->Next(This,celt,prgdsfd,pceltFetched)
+#define IEnumDebugStackFrames64_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
+#define IEnumDebugStackFrames64_Reset(This) (This)->lpVtbl->Reset(This)
+#define IEnumDebugStackFrames64_Clone(This,ppedsf) (This)->lpVtbl->Clone(This,ppedsf)
+/*** IEnumDebugStackFrames64 methods ***/
+#define IEnumDebugStackFrames64_Next64(This,celt,prgdsfd,pceltFetched) (This)->lpVtbl->Next64(This,celt,prgdsfd,pceltFetched)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IEnumDebugStackFrames64_QueryInterface(IEnumDebugStackFrames64* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IEnumDebugStackFrames64_AddRef(IEnumDebugStackFrames64* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IEnumDebugStackFrames64_Release(IEnumDebugStackFrames64* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IEnumDebugStackFrames methods ***/
+static FORCEINLINE HRESULT IEnumDebugStackFrames64_Next(IEnumDebugStackFrames64* This,ULONG celt,DebugStackFrameDescriptor *prgdsfd,ULONG *pceltFetched) {
+    return This->lpVtbl->Next(This,celt,prgdsfd,pceltFetched);
+}
+static FORCEINLINE HRESULT IEnumDebugStackFrames64_Skip(IEnumDebugStackFrames64* This,ULONG celt) {
+    return This->lpVtbl->Skip(This,celt);
+}
+static FORCEINLINE HRESULT IEnumDebugStackFrames64_Reset(IEnumDebugStackFrames64* This) {
+    return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT IEnumDebugStackFrames64_Clone(IEnumDebugStackFrames64* This,IEnumDebugStackFrames **ppedsf) {
+    return This->lpVtbl->Clone(This,ppedsf);
+}
+/*** IEnumDebugStackFrames64 methods ***/
+static FORCEINLINE HRESULT IEnumDebugStackFrames64_Next64(IEnumDebugStackFrames64* This,ULONG celt,DebugStackFrameDescriptor64 *prgdsfd,ULONG *pceltFetched) {
+    return This->lpVtbl->Next64(This,celt,prgdsfd,pceltFetched);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT __stdcall IEnumDebugStackFrames64_RemoteNext64_Proxy(
+    IEnumDebugStackFrames64* This,
+    ULONG celt,
+    DebugStackFrameDescriptor64 *prgdsfd,
+    ULONG *pceltFetched);
+void __RPC_STUB IEnumDebugStackFrames64_RemoteNext64_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumDebugStackFrames64_Next64_Proxy(
+    IEnumDebugStackFrames64* This,
+    ULONG celt,
+    DebugStackFrameDescriptor64 *prgdsfd,
+    ULONG *pceltFetched);
+HRESULT __RPC_STUB IEnumDebugStackFrames64_Next64_Stub(
+    IEnumDebugStackFrames64* This,
+    ULONG celt,
+    DebugStackFrameDescriptor64 *prgdsfd,
+    ULONG *pceltFetched);
+
+#endif  /* __IEnumDebugStackFrames64_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugDocumentInfo interface
+ */
+#ifndef __IDebugDocumentInfo_INTERFACE_DEFINED__
+#define __IDebugDocumentInfo_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugDocumentInfo, 0x51973c1f, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c1f-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugDocumentInfo : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetName(
+        DOCUMENTNAMETYPE dnt,
+        BSTR *pbstrName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetDocumentClassId(
+        CLSID *pclsidDocument) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugDocumentInfo, 0x51973c1f, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugDocumentInfoVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugDocumentInfo* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugDocumentInfo* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugDocumentInfo* This);
+
+    /*** IDebugDocumentInfo methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetName)(
+        IDebugDocumentInfo* This,
+        DOCUMENTNAMETYPE dnt,
+        BSTR *pbstrName);
+
+    HRESULT (STDMETHODCALLTYPE *GetDocumentClassId)(
+        IDebugDocumentInfo* This,
+        CLSID *pclsidDocument);
+
+    END_INTERFACE
+} IDebugDocumentInfoVtbl;
+interface IDebugDocumentInfo {
+    CONST_VTBL IDebugDocumentInfoVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugDocumentInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugDocumentInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugDocumentInfo_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugDocumentInfo methods ***/
+#define IDebugDocumentInfo_GetName(This,dnt,pbstrName) (This)->lpVtbl->GetName(This,dnt,pbstrName)
+#define IDebugDocumentInfo_GetDocumentClassId(This,pclsidDocument) (This)->lpVtbl->GetDocumentClassId(This,pclsidDocument)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugDocumentInfo_QueryInterface(IDebugDocumentInfo* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugDocumentInfo_AddRef(IDebugDocumentInfo* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugDocumentInfo_Release(IDebugDocumentInfo* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugDocumentInfo methods ***/
+static FORCEINLINE HRESULT IDebugDocumentInfo_GetName(IDebugDocumentInfo* This,DOCUMENTNAMETYPE dnt,BSTR *pbstrName) {
+    return This->lpVtbl->GetName(This,dnt,pbstrName);
+}
+static FORCEINLINE HRESULT IDebugDocumentInfo_GetDocumentClassId(IDebugDocumentInfo* This,CLSID *pclsidDocument) {
+    return This->lpVtbl->GetDocumentClassId(This,pclsidDocument);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugDocumentInfo_GetName_Proxy(
+    IDebugDocumentInfo* This,
+    DOCUMENTNAMETYPE dnt,
+    BSTR *pbstrName);
+void __RPC_STUB IDebugDocumentInfo_GetName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentInfo_GetDocumentClassId_Proxy(
+    IDebugDocumentInfo* This,
+    CLSID *pclsidDocument);
+void __RPC_STUB IDebugDocumentInfo_GetDocumentClassId_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugDocumentInfo_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugDocumentProvider interface
+ */
+#ifndef __IDebugDocumentProvider_INTERFACE_DEFINED__
+#define __IDebugDocumentProvider_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugDocumentProvider, 0x51973c20, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c20-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugDocumentProvider : public IDebugDocumentInfo
+{
+    virtual HRESULT STDMETHODCALLTYPE GetDocument(
+        IDebugDocument **ppssd) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugDocumentProvider, 0x51973c20, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugDocumentProviderVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugDocumentProvider* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugDocumentProvider* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugDocumentProvider* This);
+
+    /*** IDebugDocumentInfo methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetName)(
+        IDebugDocumentProvider* This,
+        DOCUMENTNAMETYPE dnt,
+        BSTR *pbstrName);
+
+    HRESULT (STDMETHODCALLTYPE *GetDocumentClassId)(
+        IDebugDocumentProvider* This,
+        CLSID *pclsidDocument);
+
+    /*** IDebugDocumentProvider methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetDocument)(
+        IDebugDocumentProvider* This,
+        IDebugDocument **ppssd);
+
+    END_INTERFACE
+} IDebugDocumentProviderVtbl;
+interface IDebugDocumentProvider {
+    CONST_VTBL IDebugDocumentProviderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugDocumentProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugDocumentProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugDocumentProvider_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugDocumentInfo methods ***/
+#define IDebugDocumentProvider_GetName(This,dnt,pbstrName) (This)->lpVtbl->GetName(This,dnt,pbstrName)
+#define IDebugDocumentProvider_GetDocumentClassId(This,pclsidDocument) (This)->lpVtbl->GetDocumentClassId(This,pclsidDocument)
+/*** IDebugDocumentProvider methods ***/
+#define IDebugDocumentProvider_GetDocument(This,ppssd) (This)->lpVtbl->GetDocument(This,ppssd)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugDocumentProvider_QueryInterface(IDebugDocumentProvider* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugDocumentProvider_AddRef(IDebugDocumentProvider* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugDocumentProvider_Release(IDebugDocumentProvider* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugDocumentInfo methods ***/
+static FORCEINLINE HRESULT IDebugDocumentProvider_GetName(IDebugDocumentProvider* This,DOCUMENTNAMETYPE dnt,BSTR *pbstrName) {
+    return This->lpVtbl->GetName(This,dnt,pbstrName);
+}
+static FORCEINLINE HRESULT IDebugDocumentProvider_GetDocumentClassId(IDebugDocumentProvider* This,CLSID *pclsidDocument) {
+    return This->lpVtbl->GetDocumentClassId(This,pclsidDocument);
+}
+/*** IDebugDocumentProvider methods ***/
+static FORCEINLINE HRESULT IDebugDocumentProvider_GetDocument(IDebugDocumentProvider* This,IDebugDocument **ppssd) {
+    return This->lpVtbl->GetDocument(This,ppssd);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugDocumentProvider_GetDocument_Proxy(
+    IDebugDocumentProvider* This,
+    IDebugDocument **ppssd);
+void __RPC_STUB IDebugDocumentProvider_GetDocument_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugDocumentProvider_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugDocument interface
+ */
+#ifndef __IDebugDocument_INTERFACE_DEFINED__
+#define __IDebugDocument_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugDocument, 0x51973c21, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c21-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugDocument : public IDebugDocumentInfo
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugDocument, 0x51973c21, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugDocumentVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugDocument* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugDocument* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugDocument* This);
+
+    /*** IDebugDocumentInfo methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetName)(
+        IDebugDocument* This,
+        DOCUMENTNAMETYPE dnt,
+        BSTR *pbstrName);
+
+    HRESULT (STDMETHODCALLTYPE *GetDocumentClassId)(
+        IDebugDocument* This,
+        CLSID *pclsidDocument);
+
+    END_INTERFACE
+} IDebugDocumentVtbl;
+interface IDebugDocument {
+    CONST_VTBL IDebugDocumentVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugDocument_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugDocument_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugDocument_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugDocumentInfo methods ***/
+#define IDebugDocument_GetName(This,dnt,pbstrName) (This)->lpVtbl->GetName(This,dnt,pbstrName)
+#define IDebugDocument_GetDocumentClassId(This,pclsidDocument) (This)->lpVtbl->GetDocumentClassId(This,pclsidDocument)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugDocument_QueryInterface(IDebugDocument* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugDocument_AddRef(IDebugDocument* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugDocument_Release(IDebugDocument* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugDocumentInfo methods ***/
+static FORCEINLINE HRESULT IDebugDocument_GetName(IDebugDocument* This,DOCUMENTNAMETYPE dnt,BSTR *pbstrName) {
+    return This->lpVtbl->GetName(This,dnt,pbstrName);
+}
+static FORCEINLINE HRESULT IDebugDocument_GetDocumentClassId(IDebugDocument* This,CLSID *pclsidDocument) {
+    return This->lpVtbl->GetDocumentClassId(This,pclsidDocument);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDebugDocument_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugDocumentText interface
+ */
+#ifndef __IDebugDocumentText_INTERFACE_DEFINED__
+#define __IDebugDocumentText_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugDocumentText, 0x51973c22, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c22-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugDocumentText : public IDebugDocument
+{
+    virtual HRESULT STDMETHODCALLTYPE GetDocumentAttributes(
+        TEXT_DOC_ATTR *ptextdocattr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetSize(
+        ULONG *pcNumLines,
+        ULONG *pcNumChars) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetPositionOfLine(
+        ULONG cLineNumber,
+        ULONG *pcCharacterPosition) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetLineOfPosition(
+        ULONG cCharacterPosition,
+        ULONG *pcLineNumber,
+        ULONG *pcCharacterOffsetInLine) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetText(
+        ULONG cCharacterPosition,
+        WCHAR *pcharText,
+        SOURCE_TEXT_ATTR *pstaTextAttr,
+        ULONG *pcNumChars,
+        ULONG cMaxChars) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetPositionOfContext(
+        IDebugDocumentContext *psc,
+        ULONG *pcCharacterPosition,
+        ULONG *cNumChars) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetContextOfPosition(
+        ULONG cCharacterPosition,
+        ULONG cNumChars,
+        IDebugDocumentContext **ppsc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugDocumentText, 0x51973c22, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugDocumentTextVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugDocumentText* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugDocumentText* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugDocumentText* This);
+
+    /*** IDebugDocumentInfo methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetName)(
+        IDebugDocumentText* This,
+        DOCUMENTNAMETYPE dnt,
+        BSTR *pbstrName);
+
+    HRESULT (STDMETHODCALLTYPE *GetDocumentClassId)(
+        IDebugDocumentText* This,
+        CLSID *pclsidDocument);
+
+    /*** IDebugDocumentText methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetDocumentAttributes)(
+        IDebugDocumentText* This,
+        TEXT_DOC_ATTR *ptextdocattr);
+
+    HRESULT (STDMETHODCALLTYPE *GetSize)(
+        IDebugDocumentText* This,
+        ULONG *pcNumLines,
+        ULONG *pcNumChars);
+
+    HRESULT (STDMETHODCALLTYPE *GetPositionOfLine)(
+        IDebugDocumentText* This,
+        ULONG cLineNumber,
+        ULONG *pcCharacterPosition);
+
+    HRESULT (STDMETHODCALLTYPE *GetLineOfPosition)(
+        IDebugDocumentText* This,
+        ULONG cCharacterPosition,
+        ULONG *pcLineNumber,
+        ULONG *pcCharacterOffsetInLine);
+
+    HRESULT (STDMETHODCALLTYPE *GetText)(
+        IDebugDocumentText* This,
+        ULONG cCharacterPosition,
+        WCHAR *pcharText,
+        SOURCE_TEXT_ATTR *pstaTextAttr,
+        ULONG *pcNumChars,
+        ULONG cMaxChars);
+
+    HRESULT (STDMETHODCALLTYPE *GetPositionOfContext)(
+        IDebugDocumentText* This,
+        IDebugDocumentContext *psc,
+        ULONG *pcCharacterPosition,
+        ULONG *cNumChars);
+
+    HRESULT (STDMETHODCALLTYPE *GetContextOfPosition)(
+        IDebugDocumentText* This,
+        ULONG cCharacterPosition,
+        ULONG cNumChars,
+        IDebugDocumentContext **ppsc);
+
+    END_INTERFACE
+} IDebugDocumentTextVtbl;
+interface IDebugDocumentText {
+    CONST_VTBL IDebugDocumentTextVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugDocumentText_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugDocumentText_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugDocumentText_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugDocumentInfo methods ***/
+#define IDebugDocumentText_GetName(This,dnt,pbstrName) (This)->lpVtbl->GetName(This,dnt,pbstrName)
+#define IDebugDocumentText_GetDocumentClassId(This,pclsidDocument) (This)->lpVtbl->GetDocumentClassId(This,pclsidDocument)
+/*** IDebugDocumentText methods ***/
+#define IDebugDocumentText_GetDocumentAttributes(This,ptextdocattr) (This)->lpVtbl->GetDocumentAttributes(This,ptextdocattr)
+#define IDebugDocumentText_GetSize(This,pcNumLines,pcNumChars) (This)->lpVtbl->GetSize(This,pcNumLines,pcNumChars)
+#define IDebugDocumentText_GetPositionOfLine(This,cLineNumber,pcCharacterPosition) (This)->lpVtbl->GetPositionOfLine(This,cLineNumber,pcCharacterPosition)
+#define IDebugDocumentText_GetLineOfPosition(This,cCharacterPosition,pcLineNumber,pcCharacterOffsetInLine) (This)->lpVtbl->GetLineOfPosition(This,cCharacterPosition,pcLineNumber,pcCharacterOffsetInLine)
+#define IDebugDocumentText_GetText(This,cCharacterPosition,pcharText,pstaTextAttr,pcNumChars,cMaxChars) (This)->lpVtbl->GetText(This,cCharacterPosition,pcharText,pstaTextAttr,pcNumChars,cMaxChars)
+#define IDebugDocumentText_GetPositionOfContext(This,psc,pcCharacterPosition,cNumChars) (This)->lpVtbl->GetPositionOfContext(This,psc,pcCharacterPosition,cNumChars)
+#define IDebugDocumentText_GetContextOfPosition(This,cCharacterPosition,cNumChars,ppsc) (This)->lpVtbl->GetContextOfPosition(This,cCharacterPosition,cNumChars,ppsc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugDocumentText_QueryInterface(IDebugDocumentText* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugDocumentText_AddRef(IDebugDocumentText* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugDocumentText_Release(IDebugDocumentText* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugDocumentInfo methods ***/
+static FORCEINLINE HRESULT IDebugDocumentText_GetName(IDebugDocumentText* This,DOCUMENTNAMETYPE dnt,BSTR *pbstrName) {
+    return This->lpVtbl->GetName(This,dnt,pbstrName);
+}
+static FORCEINLINE HRESULT IDebugDocumentText_GetDocumentClassId(IDebugDocumentText* This,CLSID *pclsidDocument) {
+    return This->lpVtbl->GetDocumentClassId(This,pclsidDocument);
+}
+/*** IDebugDocumentText methods ***/
+static FORCEINLINE HRESULT IDebugDocumentText_GetDocumentAttributes(IDebugDocumentText* This,TEXT_DOC_ATTR *ptextdocattr) {
+    return This->lpVtbl->GetDocumentAttributes(This,ptextdocattr);
+}
+static FORCEINLINE HRESULT IDebugDocumentText_GetSize(IDebugDocumentText* This,ULONG *pcNumLines,ULONG *pcNumChars) {
+    return This->lpVtbl->GetSize(This,pcNumLines,pcNumChars);
+}
+static FORCEINLINE HRESULT IDebugDocumentText_GetPositionOfLine(IDebugDocumentText* This,ULONG cLineNumber,ULONG *pcCharacterPosition) {
+    return This->lpVtbl->GetPositionOfLine(This,cLineNumber,pcCharacterPosition);
+}
+static FORCEINLINE HRESULT IDebugDocumentText_GetLineOfPosition(IDebugDocumentText* This,ULONG cCharacterPosition,ULONG *pcLineNumber,ULONG *pcCharacterOffsetInLine) {
+    return This->lpVtbl->GetLineOfPosition(This,cCharacterPosition,pcLineNumber,pcCharacterOffsetInLine);
+}
+static FORCEINLINE HRESULT IDebugDocumentText_GetText(IDebugDocumentText* This,ULONG cCharacterPosition,WCHAR *pcharText,SOURCE_TEXT_ATTR *pstaTextAttr,ULONG *pcNumChars,ULONG cMaxChars) {
+    return This->lpVtbl->GetText(This,cCharacterPosition,pcharText,pstaTextAttr,pcNumChars,cMaxChars);
+}
+static FORCEINLINE HRESULT IDebugDocumentText_GetPositionOfContext(IDebugDocumentText* This,IDebugDocumentContext *psc,ULONG *pcCharacterPosition,ULONG *cNumChars) {
+    return This->lpVtbl->GetPositionOfContext(This,psc,pcCharacterPosition,cNumChars);
+}
+static FORCEINLINE HRESULT IDebugDocumentText_GetContextOfPosition(IDebugDocumentText* This,ULONG cCharacterPosition,ULONG cNumChars,IDebugDocumentContext **ppsc) {
+    return This->lpVtbl->GetContextOfPosition(This,cCharacterPosition,cNumChars,ppsc);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugDocumentText_GetDocumentAttributes_Proxy(
+    IDebugDocumentText* This,
+    TEXT_DOC_ATTR *ptextdocattr);
+void __RPC_STUB IDebugDocumentText_GetDocumentAttributes_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentText_GetSize_Proxy(
+    IDebugDocumentText* This,
+    ULONG *pcNumLines,
+    ULONG *pcNumChars);
+void __RPC_STUB IDebugDocumentText_GetSize_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentText_GetPositionOfLine_Proxy(
+    IDebugDocumentText* This,
+    ULONG cLineNumber,
+    ULONG *pcCharacterPosition);
+void __RPC_STUB IDebugDocumentText_GetPositionOfLine_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentText_GetLineOfPosition_Proxy(
+    IDebugDocumentText* This,
+    ULONG cCharacterPosition,
+    ULONG *pcLineNumber,
+    ULONG *pcCharacterOffsetInLine);
+void __RPC_STUB IDebugDocumentText_GetLineOfPosition_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentText_GetText_Proxy(
+    IDebugDocumentText* This,
+    ULONG cCharacterPosition,
+    WCHAR *pcharText,
+    SOURCE_TEXT_ATTR *pstaTextAttr,
+    ULONG *pcNumChars,
+    ULONG cMaxChars);
+void __RPC_STUB IDebugDocumentText_GetText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentText_GetPositionOfContext_Proxy(
+    IDebugDocumentText* This,
+    IDebugDocumentContext *psc,
+    ULONG *pcCharacterPosition,
+    ULONG *cNumChars);
+void __RPC_STUB IDebugDocumentText_GetPositionOfContext_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentText_GetContextOfPosition_Proxy(
+    IDebugDocumentText* This,
+    ULONG cCharacterPosition,
+    ULONG cNumChars,
+    IDebugDocumentContext **ppsc);
+void __RPC_STUB IDebugDocumentText_GetContextOfPosition_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugDocumentText_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugDocumentTextEvents interface
+ */
+#ifndef __IDebugDocumentTextEvents_INTERFACE_DEFINED__
+#define __IDebugDocumentTextEvents_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugDocumentTextEvents, 0x51973c23, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c23-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugDocumentTextEvents : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE onDestroy(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE onInsertText(
+        ULONG cCharacterPosition,
+        ULONG cNumToInsert) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE onRemoveText(
+        ULONG cCharacterPosition,
+        ULONG cNumToRemove) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE onReplaceText(
+        ULONG cCharacterPosition,
+        ULONG cNumToReplace) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE onUpdateTextAttributes(
+        ULONG cCharacterPosition,
+        ULONG cNumToUpdate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE onUpdateDocumentAttributes(
+        TEXT_DOC_ATTR textdocattr) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugDocumentTextEvents, 0x51973c23, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugDocumentTextEventsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugDocumentTextEvents* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugDocumentTextEvents* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugDocumentTextEvents* This);
+
+    /*** IDebugDocumentTextEvents methods ***/
+    HRESULT (STDMETHODCALLTYPE *onDestroy)(
+        IDebugDocumentTextEvents* This);
+
+    HRESULT (STDMETHODCALLTYPE *onInsertText)(
+        IDebugDocumentTextEvents* This,
+        ULONG cCharacterPosition,
+        ULONG cNumToInsert);
+
+    HRESULT (STDMETHODCALLTYPE *onRemoveText)(
+        IDebugDocumentTextEvents* This,
+        ULONG cCharacterPosition,
+        ULONG cNumToRemove);
+
+    HRESULT (STDMETHODCALLTYPE *onReplaceText)(
+        IDebugDocumentTextEvents* This,
+        ULONG cCharacterPosition,
+        ULONG cNumToReplace);
+
+    HRESULT (STDMETHODCALLTYPE *onUpdateTextAttributes)(
+        IDebugDocumentTextEvents* This,
+        ULONG cCharacterPosition,
+        ULONG cNumToUpdate);
+
+    HRESULT (STDMETHODCALLTYPE *onUpdateDocumentAttributes)(
+        IDebugDocumentTextEvents* This,
+        TEXT_DOC_ATTR textdocattr);
+
+    END_INTERFACE
+} IDebugDocumentTextEventsVtbl;
+interface IDebugDocumentTextEvents {
+    CONST_VTBL IDebugDocumentTextEventsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugDocumentTextEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugDocumentTextEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugDocumentTextEvents_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugDocumentTextEvents methods ***/
+#define IDebugDocumentTextEvents_onDestroy(This) (This)->lpVtbl->onDestroy(This)
+#define IDebugDocumentTextEvents_onInsertText(This,cCharacterPosition,cNumToInsert) (This)->lpVtbl->onInsertText(This,cCharacterPosition,cNumToInsert)
+#define IDebugDocumentTextEvents_onRemoveText(This,cCharacterPosition,cNumToRemove) (This)->lpVtbl->onRemoveText(This,cCharacterPosition,cNumToRemove)
+#define IDebugDocumentTextEvents_onReplaceText(This,cCharacterPosition,cNumToReplace) (This)->lpVtbl->onReplaceText(This,cCharacterPosition,cNumToReplace)
+#define IDebugDocumentTextEvents_onUpdateTextAttributes(This,cCharacterPosition,cNumToUpdate) (This)->lpVtbl->onUpdateTextAttributes(This,cCharacterPosition,cNumToUpdate)
+#define IDebugDocumentTextEvents_onUpdateDocumentAttributes(This,textdocattr) (This)->lpVtbl->onUpdateDocumentAttributes(This,textdocattr)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugDocumentTextEvents_QueryInterface(IDebugDocumentTextEvents* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugDocumentTextEvents_AddRef(IDebugDocumentTextEvents* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugDocumentTextEvents_Release(IDebugDocumentTextEvents* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugDocumentTextEvents methods ***/
+static FORCEINLINE HRESULT IDebugDocumentTextEvents_onDestroy(IDebugDocumentTextEvents* This) {
+    return This->lpVtbl->onDestroy(This);
+}
+static FORCEINLINE HRESULT IDebugDocumentTextEvents_onInsertText(IDebugDocumentTextEvents* This,ULONG cCharacterPosition,ULONG cNumToInsert) {
+    return This->lpVtbl->onInsertText(This,cCharacterPosition,cNumToInsert);
+}
+static FORCEINLINE HRESULT IDebugDocumentTextEvents_onRemoveText(IDebugDocumentTextEvents* This,ULONG cCharacterPosition,ULONG cNumToRemove) {
+    return This->lpVtbl->onRemoveText(This,cCharacterPosition,cNumToRemove);
+}
+static FORCEINLINE HRESULT IDebugDocumentTextEvents_onReplaceText(IDebugDocumentTextEvents* This,ULONG cCharacterPosition,ULONG cNumToReplace) {
+    return This->lpVtbl->onReplaceText(This,cCharacterPosition,cNumToReplace);
+}
+static FORCEINLINE HRESULT IDebugDocumentTextEvents_onUpdateTextAttributes(IDebugDocumentTextEvents* This,ULONG cCharacterPosition,ULONG cNumToUpdate) {
+    return This->lpVtbl->onUpdateTextAttributes(This,cCharacterPosition,cNumToUpdate);
+}
+static FORCEINLINE HRESULT IDebugDocumentTextEvents_onUpdateDocumentAttributes(IDebugDocumentTextEvents* This,TEXT_DOC_ATTR textdocattr) {
+    return This->lpVtbl->onUpdateDocumentAttributes(This,textdocattr);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugDocumentTextEvents_onDestroy_Proxy(
+    IDebugDocumentTextEvents* This);
+void __RPC_STUB IDebugDocumentTextEvents_onDestroy_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentTextEvents_onInsertText_Proxy(
+    IDebugDocumentTextEvents* This,
+    ULONG cCharacterPosition,
+    ULONG cNumToInsert);
+void __RPC_STUB IDebugDocumentTextEvents_onInsertText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentTextEvents_onRemoveText_Proxy(
+    IDebugDocumentTextEvents* This,
+    ULONG cCharacterPosition,
+    ULONG cNumToRemove);
+void __RPC_STUB IDebugDocumentTextEvents_onRemoveText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentTextEvents_onReplaceText_Proxy(
+    IDebugDocumentTextEvents* This,
+    ULONG cCharacterPosition,
+    ULONG cNumToReplace);
+void __RPC_STUB IDebugDocumentTextEvents_onReplaceText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentTextEvents_onUpdateTextAttributes_Proxy(
+    IDebugDocumentTextEvents* This,
+    ULONG cCharacterPosition,
+    ULONG cNumToUpdate);
+void __RPC_STUB IDebugDocumentTextEvents_onUpdateTextAttributes_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentTextEvents_onUpdateDocumentAttributes_Proxy(
+    IDebugDocumentTextEvents* This,
+    TEXT_DOC_ATTR textdocattr);
+void __RPC_STUB IDebugDocumentTextEvents_onUpdateDocumentAttributes_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugDocumentTextEvents_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugDocumentTextAuthor interface
+ */
+#ifndef __IDebugDocumentTextAuthor_INTERFACE_DEFINED__
+#define __IDebugDocumentTextAuthor_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugDocumentTextAuthor, 0x51973c24, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c24-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugDocumentTextAuthor : public IDebugDocumentText
+{
+    virtual HRESULT STDMETHODCALLTYPE InsertText(
+        ULONG cCharacterPosition,
+        ULONG cNumToInsert,
+        OLECHAR pcharText[]) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveText(
+        ULONG cCharacterPosition,
+        ULONG cNumToRemove) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ReplaceText(
+        ULONG cCharacterPosition,
+        ULONG cNumToReplace,
+        OLECHAR pcharText[]) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugDocumentTextAuthor, 0x51973c24, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugDocumentTextAuthorVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugDocumentTextAuthor* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugDocumentTextAuthor* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugDocumentTextAuthor* This);
+
+    /*** IDebugDocumentInfo methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetName)(
+        IDebugDocumentTextAuthor* This,
+        DOCUMENTNAMETYPE dnt,
+        BSTR *pbstrName);
+
+    HRESULT (STDMETHODCALLTYPE *GetDocumentClassId)(
+        IDebugDocumentTextAuthor* This,
+        CLSID *pclsidDocument);
+
+    /*** IDebugDocumentText methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetDocumentAttributes)(
+        IDebugDocumentTextAuthor* This,
+        TEXT_DOC_ATTR *ptextdocattr);
+
+    HRESULT (STDMETHODCALLTYPE *GetSize)(
+        IDebugDocumentTextAuthor* This,
+        ULONG *pcNumLines,
+        ULONG *pcNumChars);
+
+    HRESULT (STDMETHODCALLTYPE *GetPositionOfLine)(
+        IDebugDocumentTextAuthor* This,
+        ULONG cLineNumber,
+        ULONG *pcCharacterPosition);
+
+    HRESULT (STDMETHODCALLTYPE *GetLineOfPosition)(
+        IDebugDocumentTextAuthor* This,
+        ULONG cCharacterPosition,
+        ULONG *pcLineNumber,
+        ULONG *pcCharacterOffsetInLine);
+
+    HRESULT (STDMETHODCALLTYPE *GetText)(
+        IDebugDocumentTextAuthor* This,
+        ULONG cCharacterPosition,
+        WCHAR *pcharText,
+        SOURCE_TEXT_ATTR *pstaTextAttr,
+        ULONG *pcNumChars,
+        ULONG cMaxChars);
+
+    HRESULT (STDMETHODCALLTYPE *GetPositionOfContext)(
+        IDebugDocumentTextAuthor* This,
+        IDebugDocumentContext *psc,
+        ULONG *pcCharacterPosition,
+        ULONG *cNumChars);
+
+    HRESULT (STDMETHODCALLTYPE *GetContextOfPosition)(
+        IDebugDocumentTextAuthor* This,
+        ULONG cCharacterPosition,
+        ULONG cNumChars,
+        IDebugDocumentContext **ppsc);
+
+    /*** IDebugDocumentTextAuthor methods ***/
+    HRESULT (STDMETHODCALLTYPE *InsertText)(
+        IDebugDocumentTextAuthor* This,
+        ULONG cCharacterPosition,
+        ULONG cNumToInsert,
+        OLECHAR pcharText[]);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveText)(
+        IDebugDocumentTextAuthor* This,
+        ULONG cCharacterPosition,
+        ULONG cNumToRemove);
+
+    HRESULT (STDMETHODCALLTYPE *ReplaceText)(
+        IDebugDocumentTextAuthor* This,
+        ULONG cCharacterPosition,
+        ULONG cNumToReplace,
+        OLECHAR pcharText[]);
+
+    END_INTERFACE
+} IDebugDocumentTextAuthorVtbl;
+interface IDebugDocumentTextAuthor {
+    CONST_VTBL IDebugDocumentTextAuthorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugDocumentTextAuthor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugDocumentTextAuthor_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugDocumentTextAuthor_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugDocumentInfo methods ***/
+#define IDebugDocumentTextAuthor_GetName(This,dnt,pbstrName) (This)->lpVtbl->GetName(This,dnt,pbstrName)
+#define IDebugDocumentTextAuthor_GetDocumentClassId(This,pclsidDocument) (This)->lpVtbl->GetDocumentClassId(This,pclsidDocument)
+/*** IDebugDocumentText methods ***/
+#define IDebugDocumentTextAuthor_GetDocumentAttributes(This,ptextdocattr) (This)->lpVtbl->GetDocumentAttributes(This,ptextdocattr)
+#define IDebugDocumentTextAuthor_GetSize(This,pcNumLines,pcNumChars) (This)->lpVtbl->GetSize(This,pcNumLines,pcNumChars)
+#define IDebugDocumentTextAuthor_GetPositionOfLine(This,cLineNumber,pcCharacterPosition) (This)->lpVtbl->GetPositionOfLine(This,cLineNumber,pcCharacterPosition)
+#define IDebugDocumentTextAuthor_GetLineOfPosition(This,cCharacterPosition,pcLineNumber,pcCharacterOffsetInLine) (This)->lpVtbl->GetLineOfPosition(This,cCharacterPosition,pcLineNumber,pcCharacterOffsetInLine)
+#define IDebugDocumentTextAuthor_GetText(This,cCharacterPosition,pcharText,pstaTextAttr,pcNumChars,cMaxChars) (This)->lpVtbl->GetText(This,cCharacterPosition,pcharText,pstaTextAttr,pcNumChars,cMaxChars)
+#define IDebugDocumentTextAuthor_GetPositionOfContext(This,psc,pcCharacterPosition,cNumChars) (This)->lpVtbl->GetPositionOfContext(This,psc,pcCharacterPosition,cNumChars)
+#define IDebugDocumentTextAuthor_GetContextOfPosition(This,cCharacterPosition,cNumChars,ppsc) (This)->lpVtbl->GetContextOfPosition(This,cCharacterPosition,cNumChars,ppsc)
+/*** IDebugDocumentTextAuthor methods ***/
+#define IDebugDocumentTextAuthor_InsertText(This,cCharacterPosition,cNumToInsert,pcharText) (This)->lpVtbl->InsertText(This,cCharacterPosition,cNumToInsert,pcharText)
+#define IDebugDocumentTextAuthor_RemoveText(This,cCharacterPosition,cNumToRemove) (This)->lpVtbl->RemoveText(This,cCharacterPosition,cNumToRemove)
+#define IDebugDocumentTextAuthor_ReplaceText(This,cCharacterPosition,cNumToReplace,pcharText) (This)->lpVtbl->ReplaceText(This,cCharacterPosition,cNumToReplace,pcharText)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugDocumentTextAuthor_QueryInterface(IDebugDocumentTextAuthor* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugDocumentTextAuthor_AddRef(IDebugDocumentTextAuthor* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugDocumentTextAuthor_Release(IDebugDocumentTextAuthor* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugDocumentInfo methods ***/
+static FORCEINLINE HRESULT IDebugDocumentTextAuthor_GetName(IDebugDocumentTextAuthor* This,DOCUMENTNAMETYPE dnt,BSTR *pbstrName) {
+    return This->lpVtbl->GetName(This,dnt,pbstrName);
+}
+static FORCEINLINE HRESULT IDebugDocumentTextAuthor_GetDocumentClassId(IDebugDocumentTextAuthor* This,CLSID *pclsidDocument) {
+    return This->lpVtbl->GetDocumentClassId(This,pclsidDocument);
+}
+/*** IDebugDocumentText methods ***/
+static FORCEINLINE HRESULT IDebugDocumentTextAuthor_GetDocumentAttributes(IDebugDocumentTextAuthor* This,TEXT_DOC_ATTR *ptextdocattr) {
+    return This->lpVtbl->GetDocumentAttributes(This,ptextdocattr);
+}
+static FORCEINLINE HRESULT IDebugDocumentTextAuthor_GetSize(IDebugDocumentTextAuthor* This,ULONG *pcNumLines,ULONG *pcNumChars) {
+    return This->lpVtbl->GetSize(This,pcNumLines,pcNumChars);
+}
+static FORCEINLINE HRESULT IDebugDocumentTextAuthor_GetPositionOfLine(IDebugDocumentTextAuthor* This,ULONG cLineNumber,ULONG *pcCharacterPosition) {
+    return This->lpVtbl->GetPositionOfLine(This,cLineNumber,pcCharacterPosition);
+}
+static FORCEINLINE HRESULT IDebugDocumentTextAuthor_GetLineOfPosition(IDebugDocumentTextAuthor* This,ULONG cCharacterPosition,ULONG *pcLineNumber,ULONG *pcCharacterOffsetInLine) {
+    return This->lpVtbl->GetLineOfPosition(This,cCharacterPosition,pcLineNumber,pcCharacterOffsetInLine);
+}
+static FORCEINLINE HRESULT IDebugDocumentTextAuthor_GetText(IDebugDocumentTextAuthor* This,ULONG cCharacterPosition,WCHAR *pcharText,SOURCE_TEXT_ATTR *pstaTextAttr,ULONG *pcNumChars,ULONG cMaxChars) {
+    return This->lpVtbl->GetText(This,cCharacterPosition,pcharText,pstaTextAttr,pcNumChars,cMaxChars);
+}
+static FORCEINLINE HRESULT IDebugDocumentTextAuthor_GetPositionOfContext(IDebugDocumentTextAuthor* This,IDebugDocumentContext *psc,ULONG *pcCharacterPosition,ULONG *cNumChars) {
+    return This->lpVtbl->GetPositionOfContext(This,psc,pcCharacterPosition,cNumChars);
+}
+static FORCEINLINE HRESULT IDebugDocumentTextAuthor_GetContextOfPosition(IDebugDocumentTextAuthor* This,ULONG cCharacterPosition,ULONG cNumChars,IDebugDocumentContext **ppsc) {
+    return This->lpVtbl->GetContextOfPosition(This,cCharacterPosition,cNumChars,ppsc);
+}
+/*** IDebugDocumentTextAuthor methods ***/
+static FORCEINLINE HRESULT IDebugDocumentTextAuthor_InsertText(IDebugDocumentTextAuthor* This,ULONG cCharacterPosition,ULONG cNumToInsert,OLECHAR pcharText[]) {
+    return This->lpVtbl->InsertText(This,cCharacterPosition,cNumToInsert,pcharText);
+}
+static FORCEINLINE HRESULT IDebugDocumentTextAuthor_RemoveText(IDebugDocumentTextAuthor* This,ULONG cCharacterPosition,ULONG cNumToRemove) {
+    return This->lpVtbl->RemoveText(This,cCharacterPosition,cNumToRemove);
+}
+static FORCEINLINE HRESULT IDebugDocumentTextAuthor_ReplaceText(IDebugDocumentTextAuthor* This,ULONG cCharacterPosition,ULONG cNumToReplace,OLECHAR pcharText[]) {
+    return This->lpVtbl->ReplaceText(This,cCharacterPosition,cNumToReplace,pcharText);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugDocumentTextAuthor_InsertText_Proxy(
+    IDebugDocumentTextAuthor* This,
+    ULONG cCharacterPosition,
+    ULONG cNumToInsert,
+    OLECHAR pcharText[]);
+void __RPC_STUB IDebugDocumentTextAuthor_InsertText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentTextAuthor_RemoveText_Proxy(
+    IDebugDocumentTextAuthor* This,
+    ULONG cCharacterPosition,
+    ULONG cNumToRemove);
+void __RPC_STUB IDebugDocumentTextAuthor_RemoveText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentTextAuthor_ReplaceText_Proxy(
+    IDebugDocumentTextAuthor* This,
+    ULONG cCharacterPosition,
+    ULONG cNumToReplace,
+    OLECHAR pcharText[]);
+void __RPC_STUB IDebugDocumentTextAuthor_ReplaceText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugDocumentTextAuthor_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugDocumentTextExternalAuthor interface
+ */
+#ifndef __IDebugDocumentTextExternalAuthor_INTERFACE_DEFINED__
+#define __IDebugDocumentTextExternalAuthor_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugDocumentTextExternalAuthor, 0x51973c25, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c25-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugDocumentTextExternalAuthor : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetPathName(
+        BSTR *pbstrLongName,
+        WINBOOL *pfIsOriginalFile) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetFileName(
+        BSTR *pbstrShortName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE NotifyChanged(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugDocumentTextExternalAuthor, 0x51973c25, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugDocumentTextExternalAuthorVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugDocumentTextExternalAuthor* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugDocumentTextExternalAuthor* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugDocumentTextExternalAuthor* This);
+
+    /*** IDebugDocumentTextExternalAuthor methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetPathName)(
+        IDebugDocumentTextExternalAuthor* This,
+        BSTR *pbstrLongName,
+        WINBOOL *pfIsOriginalFile);
+
+    HRESULT (STDMETHODCALLTYPE *GetFileName)(
+        IDebugDocumentTextExternalAuthor* This,
+        BSTR *pbstrShortName);
+
+    HRESULT (STDMETHODCALLTYPE *NotifyChanged)(
+        IDebugDocumentTextExternalAuthor* This);
+
+    END_INTERFACE
+} IDebugDocumentTextExternalAuthorVtbl;
+interface IDebugDocumentTextExternalAuthor {
+    CONST_VTBL IDebugDocumentTextExternalAuthorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugDocumentTextExternalAuthor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugDocumentTextExternalAuthor_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugDocumentTextExternalAuthor_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugDocumentTextExternalAuthor methods ***/
+#define IDebugDocumentTextExternalAuthor_GetPathName(This,pbstrLongName,pfIsOriginalFile) (This)->lpVtbl->GetPathName(This,pbstrLongName,pfIsOriginalFile)
+#define IDebugDocumentTextExternalAuthor_GetFileName(This,pbstrShortName) (This)->lpVtbl->GetFileName(This,pbstrShortName)
+#define IDebugDocumentTextExternalAuthor_NotifyChanged(This) (This)->lpVtbl->NotifyChanged(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugDocumentTextExternalAuthor_QueryInterface(IDebugDocumentTextExternalAuthor* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugDocumentTextExternalAuthor_AddRef(IDebugDocumentTextExternalAuthor* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugDocumentTextExternalAuthor_Release(IDebugDocumentTextExternalAuthor* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugDocumentTextExternalAuthor methods ***/
+static FORCEINLINE HRESULT IDebugDocumentTextExternalAuthor_GetPathName(IDebugDocumentTextExternalAuthor* This,BSTR *pbstrLongName,WINBOOL *pfIsOriginalFile) {
+    return This->lpVtbl->GetPathName(This,pbstrLongName,pfIsOriginalFile);
+}
+static FORCEINLINE HRESULT IDebugDocumentTextExternalAuthor_GetFileName(IDebugDocumentTextExternalAuthor* This,BSTR *pbstrShortName) {
+    return This->lpVtbl->GetFileName(This,pbstrShortName);
+}
+static FORCEINLINE HRESULT IDebugDocumentTextExternalAuthor_NotifyChanged(IDebugDocumentTextExternalAuthor* This) {
+    return This->lpVtbl->NotifyChanged(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugDocumentTextExternalAuthor_GetPathName_Proxy(
+    IDebugDocumentTextExternalAuthor* This,
+    BSTR *pbstrLongName,
+    WINBOOL *pfIsOriginalFile);
+void __RPC_STUB IDebugDocumentTextExternalAuthor_GetPathName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentTextExternalAuthor_GetFileName_Proxy(
+    IDebugDocumentTextExternalAuthor* This,
+    BSTR *pbstrShortName);
+void __RPC_STUB IDebugDocumentTextExternalAuthor_GetFileName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentTextExternalAuthor_NotifyChanged_Proxy(
+    IDebugDocumentTextExternalAuthor* This);
+void __RPC_STUB IDebugDocumentTextExternalAuthor_NotifyChanged_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugDocumentTextExternalAuthor_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugDocumentHelper32 interface
+ */
+#ifndef __IDebugDocumentHelper32_INTERFACE_DEFINED__
+#define __IDebugDocumentHelper32_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugDocumentHelper32, 0x51973c26, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c26-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugDocumentHelper32 : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Init(
+        IDebugApplication32 *pda,
+        LPCOLESTR pszShortName,
+        LPCOLESTR pszLongName,
+        TEXT_DOC_ATTR docAttr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Attach(
+        IDebugDocumentHelper32 *pddhParent) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Detach(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddUnicodeText(
+        LPCOLESTR pszText) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddDBCSText(
+        LPCSTR pszText) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetDebugDocumentHost(
+        IDebugDocumentHost *pddh) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddDeferredText(
+        ULONG cChars,
+        DWORD dwTextStartCookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DefineScriptBlock(
+        ULONG ulCharOffset,
+        ULONG cChars,
+        IActiveScript *pas,
+        WINBOOL fScriptlet,
+        DWORD *pdwSourceContext) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetDefaultTextAttr(
+        SOURCE_TEXT_ATTR staTextAttr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetTextAttributes(
+        ULONG ulCharOffset,
+        ULONG cChars,
+        SOURCE_TEXT_ATTR *pstaTextAttr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetLongName(
+        LPCOLESTR pszLongName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetShortName(
+        LPCOLESTR pszShortName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetDocumentAttr(
+        TEXT_DOC_ATTR pszAttributes) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetDebugApplicationNode(
+        IDebugApplicationNode **ppdan) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetScriptBlockInfo(
+        DWORD dwSourceContext,
+        IActiveScript **ppasd,
+        ULONG *piCharPos,
+        ULONG *pcChars) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateDebugDocumentContext(
+        ULONG iCharPos,
+        ULONG cChars,
+        IDebugDocumentContext **ppddc) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE BringDocumentToTop(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE BringDocumentContextToTop(
+        IDebugDocumentContext *pddc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugDocumentHelper32, 0x51973c26, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugDocumentHelper32Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugDocumentHelper32* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugDocumentHelper32* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugDocumentHelper32* This);
+
+    /*** IDebugDocumentHelper32 methods ***/
+    HRESULT (STDMETHODCALLTYPE *Init)(
+        IDebugDocumentHelper32* This,
+        IDebugApplication32 *pda,
+        LPCOLESTR pszShortName,
+        LPCOLESTR pszLongName,
+        TEXT_DOC_ATTR docAttr);
+
+    HRESULT (STDMETHODCALLTYPE *Attach)(
+        IDebugDocumentHelper32* This,
+        IDebugDocumentHelper32 *pddhParent);
+
+    HRESULT (STDMETHODCALLTYPE *Detach)(
+        IDebugDocumentHelper32* This);
+
+    HRESULT (STDMETHODCALLTYPE *AddUnicodeText)(
+        IDebugDocumentHelper32* This,
+        LPCOLESTR pszText);
+
+    HRESULT (STDMETHODCALLTYPE *AddDBCSText)(
+        IDebugDocumentHelper32* This,
+        LPCSTR pszText);
+
+    HRESULT (STDMETHODCALLTYPE *SetDebugDocumentHost)(
+        IDebugDocumentHelper32* This,
+        IDebugDocumentHost *pddh);
+
+    HRESULT (STDMETHODCALLTYPE *AddDeferredText)(
+        IDebugDocumentHelper32* This,
+        ULONG cChars,
+        DWORD dwTextStartCookie);
+
+    HRESULT (STDMETHODCALLTYPE *DefineScriptBlock)(
+        IDebugDocumentHelper32* This,
+        ULONG ulCharOffset,
+        ULONG cChars,
+        IActiveScript *pas,
+        WINBOOL fScriptlet,
+        DWORD *pdwSourceContext);
+
+    HRESULT (STDMETHODCALLTYPE *SetDefaultTextAttr)(
+        IDebugDocumentHelper32* This,
+        SOURCE_TEXT_ATTR staTextAttr);
+
+    HRESULT (STDMETHODCALLTYPE *SetTextAttributes)(
+        IDebugDocumentHelper32* This,
+        ULONG ulCharOffset,
+        ULONG cChars,
+        SOURCE_TEXT_ATTR *pstaTextAttr);
+
+    HRESULT (STDMETHODCALLTYPE *SetLongName)(
+        IDebugDocumentHelper32* This,
+        LPCOLESTR pszLongName);
+
+    HRESULT (STDMETHODCALLTYPE *SetShortName)(
+        IDebugDocumentHelper32* This,
+        LPCOLESTR pszShortName);
+
+    HRESULT (STDMETHODCALLTYPE *SetDocumentAttr)(
+        IDebugDocumentHelper32* This,
+        TEXT_DOC_ATTR pszAttributes);
+
+    HRESULT (STDMETHODCALLTYPE *GetDebugApplicationNode)(
+        IDebugDocumentHelper32* This,
+        IDebugApplicationNode **ppdan);
+
+    HRESULT (STDMETHODCALLTYPE *GetScriptBlockInfo)(
+        IDebugDocumentHelper32* This,
+        DWORD dwSourceContext,
+        IActiveScript **ppasd,
+        ULONG *piCharPos,
+        ULONG *pcChars);
+
+    HRESULT (STDMETHODCALLTYPE *CreateDebugDocumentContext)(
+        IDebugDocumentHelper32* This,
+        ULONG iCharPos,
+        ULONG cChars,
+        IDebugDocumentContext **ppddc);
+
+    HRESULT (STDMETHODCALLTYPE *BringDocumentToTop)(
+        IDebugDocumentHelper32* This);
+
+    HRESULT (STDMETHODCALLTYPE *BringDocumentContextToTop)(
+        IDebugDocumentHelper32* This,
+        IDebugDocumentContext *pddc);
+
+    END_INTERFACE
+} IDebugDocumentHelper32Vtbl;
+interface IDebugDocumentHelper32 {
+    CONST_VTBL IDebugDocumentHelper32Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugDocumentHelper32_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugDocumentHelper32_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugDocumentHelper32_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugDocumentHelper32 methods ***/
+#define IDebugDocumentHelper32_Init(This,pda,pszShortName,pszLongName,docAttr) (This)->lpVtbl->Init(This,pda,pszShortName,pszLongName,docAttr)
+#define IDebugDocumentHelper32_Attach(This,pddhParent) (This)->lpVtbl->Attach(This,pddhParent)
+#define IDebugDocumentHelper32_Detach(This) (This)->lpVtbl->Detach(This)
+#define IDebugDocumentHelper32_AddUnicodeText(This,pszText) (This)->lpVtbl->AddUnicodeText(This,pszText)
+#define IDebugDocumentHelper32_AddDBCSText(This,pszText) (This)->lpVtbl->AddDBCSText(This,pszText)
+#define IDebugDocumentHelper32_SetDebugDocumentHost(This,pddh) (This)->lpVtbl->SetDebugDocumentHost(This,pddh)
+#define IDebugDocumentHelper32_AddDeferredText(This,cChars,dwTextStartCookie) (This)->lpVtbl->AddDeferredText(This,cChars,dwTextStartCookie)
+#define IDebugDocumentHelper32_DefineScriptBlock(This,ulCharOffset,cChars,pas,fScriptlet,pdwSourceContext) (This)->lpVtbl->DefineScriptBlock(This,ulCharOffset,cChars,pas,fScriptlet,pdwSourceContext)
+#define IDebugDocumentHelper32_SetDefaultTextAttr(This,staTextAttr) (This)->lpVtbl->SetDefaultTextAttr(This,staTextAttr)
+#define IDebugDocumentHelper32_SetTextAttributes(This,ulCharOffset,cChars,pstaTextAttr) (This)->lpVtbl->SetTextAttributes(This,ulCharOffset,cChars,pstaTextAttr)
+#define IDebugDocumentHelper32_SetLongName(This,pszLongName) (This)->lpVtbl->SetLongName(This,pszLongName)
+#define IDebugDocumentHelper32_SetShortName(This,pszShortName) (This)->lpVtbl->SetShortName(This,pszShortName)
+#define IDebugDocumentHelper32_SetDocumentAttr(This,pszAttributes) (This)->lpVtbl->SetDocumentAttr(This,pszAttributes)
+#define IDebugDocumentHelper32_GetDebugApplicationNode(This,ppdan) (This)->lpVtbl->GetDebugApplicationNode(This,ppdan)
+#define IDebugDocumentHelper32_GetScriptBlockInfo(This,dwSourceContext,ppasd,piCharPos,pcChars) (This)->lpVtbl->GetScriptBlockInfo(This,dwSourceContext,ppasd,piCharPos,pcChars)
+#define IDebugDocumentHelper32_CreateDebugDocumentContext(This,iCharPos,cChars,ppddc) (This)->lpVtbl->CreateDebugDocumentContext(This,iCharPos,cChars,ppddc)
+#define IDebugDocumentHelper32_BringDocumentToTop(This) (This)->lpVtbl->BringDocumentToTop(This)
+#define IDebugDocumentHelper32_BringDocumentContextToTop(This,pddc) (This)->lpVtbl->BringDocumentContextToTop(This,pddc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugDocumentHelper32_QueryInterface(IDebugDocumentHelper32* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugDocumentHelper32_AddRef(IDebugDocumentHelper32* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugDocumentHelper32_Release(IDebugDocumentHelper32* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugDocumentHelper32 methods ***/
+static FORCEINLINE HRESULT IDebugDocumentHelper32_Init(IDebugDocumentHelper32* This,IDebugApplication32 *pda,LPCOLESTR pszShortName,LPCOLESTR pszLongName,TEXT_DOC_ATTR docAttr) {
+    return This->lpVtbl->Init(This,pda,pszShortName,pszLongName,docAttr);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper32_Attach(IDebugDocumentHelper32* This,IDebugDocumentHelper32 *pddhParent) {
+    return This->lpVtbl->Attach(This,pddhParent);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper32_Detach(IDebugDocumentHelper32* This) {
+    return This->lpVtbl->Detach(This);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper32_AddUnicodeText(IDebugDocumentHelper32* This,LPCOLESTR pszText) {
+    return This->lpVtbl->AddUnicodeText(This,pszText);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper32_AddDBCSText(IDebugDocumentHelper32* This,LPCSTR pszText) {
+    return This->lpVtbl->AddDBCSText(This,pszText);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper32_SetDebugDocumentHost(IDebugDocumentHelper32* This,IDebugDocumentHost *pddh) {
+    return This->lpVtbl->SetDebugDocumentHost(This,pddh);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper32_AddDeferredText(IDebugDocumentHelper32* This,ULONG cChars,DWORD dwTextStartCookie) {
+    return This->lpVtbl->AddDeferredText(This,cChars,dwTextStartCookie);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper32_DefineScriptBlock(IDebugDocumentHelper32* This,ULONG ulCharOffset,ULONG cChars,IActiveScript *pas,WINBOOL fScriptlet,DWORD *pdwSourceContext) {
+    return This->lpVtbl->DefineScriptBlock(This,ulCharOffset,cChars,pas,fScriptlet,pdwSourceContext);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper32_SetDefaultTextAttr(IDebugDocumentHelper32* This,SOURCE_TEXT_ATTR staTextAttr) {
+    return This->lpVtbl->SetDefaultTextAttr(This,staTextAttr);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper32_SetTextAttributes(IDebugDocumentHelper32* This,ULONG ulCharOffset,ULONG cChars,SOURCE_TEXT_ATTR *pstaTextAttr) {
+    return This->lpVtbl->SetTextAttributes(This,ulCharOffset,cChars,pstaTextAttr);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper32_SetLongName(IDebugDocumentHelper32* This,LPCOLESTR pszLongName) {
+    return This->lpVtbl->SetLongName(This,pszLongName);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper32_SetShortName(IDebugDocumentHelper32* This,LPCOLESTR pszShortName) {
+    return This->lpVtbl->SetShortName(This,pszShortName);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper32_SetDocumentAttr(IDebugDocumentHelper32* This,TEXT_DOC_ATTR pszAttributes) {
+    return This->lpVtbl->SetDocumentAttr(This,pszAttributes);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper32_GetDebugApplicationNode(IDebugDocumentHelper32* This,IDebugApplicationNode **ppdan) {
+    return This->lpVtbl->GetDebugApplicationNode(This,ppdan);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper32_GetScriptBlockInfo(IDebugDocumentHelper32* This,DWORD dwSourceContext,IActiveScript **ppasd,ULONG *piCharPos,ULONG *pcChars) {
+    return This->lpVtbl->GetScriptBlockInfo(This,dwSourceContext,ppasd,piCharPos,pcChars);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper32_CreateDebugDocumentContext(IDebugDocumentHelper32* This,ULONG iCharPos,ULONG cChars,IDebugDocumentContext **ppddc) {
+    return This->lpVtbl->CreateDebugDocumentContext(This,iCharPos,cChars,ppddc);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper32_BringDocumentToTop(IDebugDocumentHelper32* This) {
+    return This->lpVtbl->BringDocumentToTop(This);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper32_BringDocumentContextToTop(IDebugDocumentHelper32* This,IDebugDocumentContext *pddc) {
+    return This->lpVtbl->BringDocumentContextToTop(This,pddc);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper32_Init_Proxy(
+    IDebugDocumentHelper32* This,
+    IDebugApplication32 *pda,
+    LPCOLESTR pszShortName,
+    LPCOLESTR pszLongName,
+    TEXT_DOC_ATTR docAttr);
+void __RPC_STUB IDebugDocumentHelper32_Init_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper32_Attach_Proxy(
+    IDebugDocumentHelper32* This,
+    IDebugDocumentHelper32 *pddhParent);
+void __RPC_STUB IDebugDocumentHelper32_Attach_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper32_Detach_Proxy(
+    IDebugDocumentHelper32* This);
+void __RPC_STUB IDebugDocumentHelper32_Detach_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper32_AddUnicodeText_Proxy(
+    IDebugDocumentHelper32* This,
+    LPCOLESTR pszText);
+void __RPC_STUB IDebugDocumentHelper32_AddUnicodeText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper32_AddDBCSText_Proxy(
+    IDebugDocumentHelper32* This,
+    LPCSTR pszText);
+void __RPC_STUB IDebugDocumentHelper32_AddDBCSText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper32_SetDebugDocumentHost_Proxy(
+    IDebugDocumentHelper32* This,
+    IDebugDocumentHost *pddh);
+void __RPC_STUB IDebugDocumentHelper32_SetDebugDocumentHost_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper32_AddDeferredText_Proxy(
+    IDebugDocumentHelper32* This,
+    ULONG cChars,
+    DWORD dwTextStartCookie);
+void __RPC_STUB IDebugDocumentHelper32_AddDeferredText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper32_DefineScriptBlock_Proxy(
+    IDebugDocumentHelper32* This,
+    ULONG ulCharOffset,
+    ULONG cChars,
+    IActiveScript *pas,
+    WINBOOL fScriptlet,
+    DWORD *pdwSourceContext);
+void __RPC_STUB IDebugDocumentHelper32_DefineScriptBlock_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper32_SetDefaultTextAttr_Proxy(
+    IDebugDocumentHelper32* This,
+    SOURCE_TEXT_ATTR staTextAttr);
+void __RPC_STUB IDebugDocumentHelper32_SetDefaultTextAttr_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper32_SetTextAttributes_Proxy(
+    IDebugDocumentHelper32* This,
+    ULONG ulCharOffset,
+    ULONG cChars,
+    SOURCE_TEXT_ATTR *pstaTextAttr);
+void __RPC_STUB IDebugDocumentHelper32_SetTextAttributes_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper32_SetLongName_Proxy(
+    IDebugDocumentHelper32* This,
+    LPCOLESTR pszLongName);
+void __RPC_STUB IDebugDocumentHelper32_SetLongName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper32_SetShortName_Proxy(
+    IDebugDocumentHelper32* This,
+    LPCOLESTR pszShortName);
+void __RPC_STUB IDebugDocumentHelper32_SetShortName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper32_SetDocumentAttr_Proxy(
+    IDebugDocumentHelper32* This,
+    TEXT_DOC_ATTR pszAttributes);
+void __RPC_STUB IDebugDocumentHelper32_SetDocumentAttr_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper32_GetDebugApplicationNode_Proxy(
+    IDebugDocumentHelper32* This,
+    IDebugApplicationNode **ppdan);
+void __RPC_STUB IDebugDocumentHelper32_GetDebugApplicationNode_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper32_GetScriptBlockInfo_Proxy(
+    IDebugDocumentHelper32* This,
+    DWORD dwSourceContext,
+    IActiveScript **ppasd,
+    ULONG *piCharPos,
+    ULONG *pcChars);
+void __RPC_STUB IDebugDocumentHelper32_GetScriptBlockInfo_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper32_CreateDebugDocumentContext_Proxy(
+    IDebugDocumentHelper32* This,
+    ULONG iCharPos,
+    ULONG cChars,
+    IDebugDocumentContext **ppddc);
+void __RPC_STUB IDebugDocumentHelper32_CreateDebugDocumentContext_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper32_BringDocumentToTop_Proxy(
+    IDebugDocumentHelper32* This);
+void __RPC_STUB IDebugDocumentHelper32_BringDocumentToTop_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper32_BringDocumentContextToTop_Proxy(
+    IDebugDocumentHelper32* This,
+    IDebugDocumentContext *pddc);
+void __RPC_STUB IDebugDocumentHelper32_BringDocumentContextToTop_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugDocumentHelper32_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugDocumentHelper64 interface
+ */
+#ifndef __IDebugDocumentHelper64_INTERFACE_DEFINED__
+#define __IDebugDocumentHelper64_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugDocumentHelper64, 0xc4c7363c, 0x20fd, 0x47f9, 0xbd,0x82, 0x48,0x55,0xe0,0x15,0x08,0x71);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c4c7363c-20fd-47f9-bd82-4855e0150871")
+IDebugDocumentHelper64 : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Init(
+        IDebugApplication64 *pda,
+        LPCOLESTR pszShortName,
+        LPCOLESTR pszLongName,
+        TEXT_DOC_ATTR docAttr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Attach(
+        IDebugDocumentHelper64 *pddhParent) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Detach(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddUnicodeText(
+        LPCOLESTR pszText) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddDBCSText(
+        LPCSTR pszText) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetDebugDocumentHost(
+        IDebugDocumentHost *pddh) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddDeferredText(
+        ULONG cChars,
+        DWORD dwTextStartCookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DefineScriptBlock(
+        ULONG ulCharOffset,
+        ULONG cChars,
+        IActiveScript *pas,
+        WINBOOL fScriptlet,
+        DWORDLONG *pdwSourceContext) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetDefaultTextAttr(
+        SOURCE_TEXT_ATTR staTextAttr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetTextAttributes(
+        ULONG ulCharOffset,
+        ULONG cChars,
+        SOURCE_TEXT_ATTR *pstaTextAttr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetLongName(
+        LPCOLESTR pszLongName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetShortName(
+        LPCOLESTR pszShortName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetDocumentAttr(
+        TEXT_DOC_ATTR pszAttributes) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetDebugApplicationNode(
+        IDebugApplicationNode **ppdan) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetScriptBlockInfo(
+        DWORDLONG dwSourceContext,
+        IActiveScript **ppasd,
+        ULONG *piCharPos,
+        ULONG *pcChars) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateDebugDocumentContext(
+        ULONG iCharPos,
+        ULONG cChars,
+        IDebugDocumentContext **ppddc) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE BringDocumentToTop(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE BringDocumentContextToTop(
+        IDebugDocumentContext *pddc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugDocumentHelper64, 0xc4c7363c, 0x20fd, 0x47f9, 0xbd,0x82, 0x48,0x55,0xe0,0x15,0x08,0x71)
+#endif
+#else
+typedef struct IDebugDocumentHelper64Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugDocumentHelper64* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugDocumentHelper64* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugDocumentHelper64* This);
+
+    /*** IDebugDocumentHelper64 methods ***/
+    HRESULT (STDMETHODCALLTYPE *Init)(
+        IDebugDocumentHelper64* This,
+        IDebugApplication64 *pda,
+        LPCOLESTR pszShortName,
+        LPCOLESTR pszLongName,
+        TEXT_DOC_ATTR docAttr);
+
+    HRESULT (STDMETHODCALLTYPE *Attach)(
+        IDebugDocumentHelper64* This,
+        IDebugDocumentHelper64 *pddhParent);
+
+    HRESULT (STDMETHODCALLTYPE *Detach)(
+        IDebugDocumentHelper64* This);
+
+    HRESULT (STDMETHODCALLTYPE *AddUnicodeText)(
+        IDebugDocumentHelper64* This,
+        LPCOLESTR pszText);
+
+    HRESULT (STDMETHODCALLTYPE *AddDBCSText)(
+        IDebugDocumentHelper64* This,
+        LPCSTR pszText);
+
+    HRESULT (STDMETHODCALLTYPE *SetDebugDocumentHost)(
+        IDebugDocumentHelper64* This,
+        IDebugDocumentHost *pddh);
+
+    HRESULT (STDMETHODCALLTYPE *AddDeferredText)(
+        IDebugDocumentHelper64* This,
+        ULONG cChars,
+        DWORD dwTextStartCookie);
+
+    HRESULT (STDMETHODCALLTYPE *DefineScriptBlock)(
+        IDebugDocumentHelper64* This,
+        ULONG ulCharOffset,
+        ULONG cChars,
+        IActiveScript *pas,
+        WINBOOL fScriptlet,
+        DWORDLONG *pdwSourceContext);
+
+    HRESULT (STDMETHODCALLTYPE *SetDefaultTextAttr)(
+        IDebugDocumentHelper64* This,
+        SOURCE_TEXT_ATTR staTextAttr);
+
+    HRESULT (STDMETHODCALLTYPE *SetTextAttributes)(
+        IDebugDocumentHelper64* This,
+        ULONG ulCharOffset,
+        ULONG cChars,
+        SOURCE_TEXT_ATTR *pstaTextAttr);
+
+    HRESULT (STDMETHODCALLTYPE *SetLongName)(
+        IDebugDocumentHelper64* This,
+        LPCOLESTR pszLongName);
+
+    HRESULT (STDMETHODCALLTYPE *SetShortName)(
+        IDebugDocumentHelper64* This,
+        LPCOLESTR pszShortName);
+
+    HRESULT (STDMETHODCALLTYPE *SetDocumentAttr)(
+        IDebugDocumentHelper64* This,
+        TEXT_DOC_ATTR pszAttributes);
+
+    HRESULT (STDMETHODCALLTYPE *GetDebugApplicationNode)(
+        IDebugDocumentHelper64* This,
+        IDebugApplicationNode **ppdan);
+
+    HRESULT (STDMETHODCALLTYPE *GetScriptBlockInfo)(
+        IDebugDocumentHelper64* This,
+        DWORDLONG dwSourceContext,
+        IActiveScript **ppasd,
+        ULONG *piCharPos,
+        ULONG *pcChars);
+
+    HRESULT (STDMETHODCALLTYPE *CreateDebugDocumentContext)(
+        IDebugDocumentHelper64* This,
+        ULONG iCharPos,
+        ULONG cChars,
+        IDebugDocumentContext **ppddc);
+
+    HRESULT (STDMETHODCALLTYPE *BringDocumentToTop)(
+        IDebugDocumentHelper64* This);
+
+    HRESULT (STDMETHODCALLTYPE *BringDocumentContextToTop)(
+        IDebugDocumentHelper64* This,
+        IDebugDocumentContext *pddc);
+
+    END_INTERFACE
+} IDebugDocumentHelper64Vtbl;
+interface IDebugDocumentHelper64 {
+    CONST_VTBL IDebugDocumentHelper64Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugDocumentHelper64_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugDocumentHelper64_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugDocumentHelper64_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugDocumentHelper64 methods ***/
+#define IDebugDocumentHelper64_Init(This,pda,pszShortName,pszLongName,docAttr) (This)->lpVtbl->Init(This,pda,pszShortName,pszLongName,docAttr)
+#define IDebugDocumentHelper64_Attach(This,pddhParent) (This)->lpVtbl->Attach(This,pddhParent)
+#define IDebugDocumentHelper64_Detach(This) (This)->lpVtbl->Detach(This)
+#define IDebugDocumentHelper64_AddUnicodeText(This,pszText) (This)->lpVtbl->AddUnicodeText(This,pszText)
+#define IDebugDocumentHelper64_AddDBCSText(This,pszText) (This)->lpVtbl->AddDBCSText(This,pszText)
+#define IDebugDocumentHelper64_SetDebugDocumentHost(This,pddh) (This)->lpVtbl->SetDebugDocumentHost(This,pddh)
+#define IDebugDocumentHelper64_AddDeferredText(This,cChars,dwTextStartCookie) (This)->lpVtbl->AddDeferredText(This,cChars,dwTextStartCookie)
+#define IDebugDocumentHelper64_DefineScriptBlock(This,ulCharOffset,cChars,pas,fScriptlet,pdwSourceContext) (This)->lpVtbl->DefineScriptBlock(This,ulCharOffset,cChars,pas,fScriptlet,pdwSourceContext)
+#define IDebugDocumentHelper64_SetDefaultTextAttr(This,staTextAttr) (This)->lpVtbl->SetDefaultTextAttr(This,staTextAttr)
+#define IDebugDocumentHelper64_SetTextAttributes(This,ulCharOffset,cChars,pstaTextAttr) (This)->lpVtbl->SetTextAttributes(This,ulCharOffset,cChars,pstaTextAttr)
+#define IDebugDocumentHelper64_SetLongName(This,pszLongName) (This)->lpVtbl->SetLongName(This,pszLongName)
+#define IDebugDocumentHelper64_SetShortName(This,pszShortName) (This)->lpVtbl->SetShortName(This,pszShortName)
+#define IDebugDocumentHelper64_SetDocumentAttr(This,pszAttributes) (This)->lpVtbl->SetDocumentAttr(This,pszAttributes)
+#define IDebugDocumentHelper64_GetDebugApplicationNode(This,ppdan) (This)->lpVtbl->GetDebugApplicationNode(This,ppdan)
+#define IDebugDocumentHelper64_GetScriptBlockInfo(This,dwSourceContext,ppasd,piCharPos,pcChars) (This)->lpVtbl->GetScriptBlockInfo(This,dwSourceContext,ppasd,piCharPos,pcChars)
+#define IDebugDocumentHelper64_CreateDebugDocumentContext(This,iCharPos,cChars,ppddc) (This)->lpVtbl->CreateDebugDocumentContext(This,iCharPos,cChars,ppddc)
+#define IDebugDocumentHelper64_BringDocumentToTop(This) (This)->lpVtbl->BringDocumentToTop(This)
+#define IDebugDocumentHelper64_BringDocumentContextToTop(This,pddc) (This)->lpVtbl->BringDocumentContextToTop(This,pddc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugDocumentHelper64_QueryInterface(IDebugDocumentHelper64* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugDocumentHelper64_AddRef(IDebugDocumentHelper64* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugDocumentHelper64_Release(IDebugDocumentHelper64* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugDocumentHelper64 methods ***/
+static FORCEINLINE HRESULT IDebugDocumentHelper64_Init(IDebugDocumentHelper64* This,IDebugApplication64 *pda,LPCOLESTR pszShortName,LPCOLESTR pszLongName,TEXT_DOC_ATTR docAttr) {
+    return This->lpVtbl->Init(This,pda,pszShortName,pszLongName,docAttr);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper64_Attach(IDebugDocumentHelper64* This,IDebugDocumentHelper64 *pddhParent) {
+    return This->lpVtbl->Attach(This,pddhParent);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper64_Detach(IDebugDocumentHelper64* This) {
+    return This->lpVtbl->Detach(This);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper64_AddUnicodeText(IDebugDocumentHelper64* This,LPCOLESTR pszText) {
+    return This->lpVtbl->AddUnicodeText(This,pszText);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper64_AddDBCSText(IDebugDocumentHelper64* This,LPCSTR pszText) {
+    return This->lpVtbl->AddDBCSText(This,pszText);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper64_SetDebugDocumentHost(IDebugDocumentHelper64* This,IDebugDocumentHost *pddh) {
+    return This->lpVtbl->SetDebugDocumentHost(This,pddh);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper64_AddDeferredText(IDebugDocumentHelper64* This,ULONG cChars,DWORD dwTextStartCookie) {
+    return This->lpVtbl->AddDeferredText(This,cChars,dwTextStartCookie);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper64_DefineScriptBlock(IDebugDocumentHelper64* This,ULONG ulCharOffset,ULONG cChars,IActiveScript *pas,WINBOOL fScriptlet,DWORDLONG *pdwSourceContext) {
+    return This->lpVtbl->DefineScriptBlock(This,ulCharOffset,cChars,pas,fScriptlet,pdwSourceContext);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper64_SetDefaultTextAttr(IDebugDocumentHelper64* This,SOURCE_TEXT_ATTR staTextAttr) {
+    return This->lpVtbl->SetDefaultTextAttr(This,staTextAttr);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper64_SetTextAttributes(IDebugDocumentHelper64* This,ULONG ulCharOffset,ULONG cChars,SOURCE_TEXT_ATTR *pstaTextAttr) {
+    return This->lpVtbl->SetTextAttributes(This,ulCharOffset,cChars,pstaTextAttr);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper64_SetLongName(IDebugDocumentHelper64* This,LPCOLESTR pszLongName) {
+    return This->lpVtbl->SetLongName(This,pszLongName);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper64_SetShortName(IDebugDocumentHelper64* This,LPCOLESTR pszShortName) {
+    return This->lpVtbl->SetShortName(This,pszShortName);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper64_SetDocumentAttr(IDebugDocumentHelper64* This,TEXT_DOC_ATTR pszAttributes) {
+    return This->lpVtbl->SetDocumentAttr(This,pszAttributes);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper64_GetDebugApplicationNode(IDebugDocumentHelper64* This,IDebugApplicationNode **ppdan) {
+    return This->lpVtbl->GetDebugApplicationNode(This,ppdan);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper64_GetScriptBlockInfo(IDebugDocumentHelper64* This,DWORDLONG dwSourceContext,IActiveScript **ppasd,ULONG *piCharPos,ULONG *pcChars) {
+    return This->lpVtbl->GetScriptBlockInfo(This,dwSourceContext,ppasd,piCharPos,pcChars);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper64_CreateDebugDocumentContext(IDebugDocumentHelper64* This,ULONG iCharPos,ULONG cChars,IDebugDocumentContext **ppddc) {
+    return This->lpVtbl->CreateDebugDocumentContext(This,iCharPos,cChars,ppddc);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper64_BringDocumentToTop(IDebugDocumentHelper64* This) {
+    return This->lpVtbl->BringDocumentToTop(This);
+}
+static FORCEINLINE HRESULT IDebugDocumentHelper64_BringDocumentContextToTop(IDebugDocumentHelper64* This,IDebugDocumentContext *pddc) {
+    return This->lpVtbl->BringDocumentContextToTop(This,pddc);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper64_Init_Proxy(
+    IDebugDocumentHelper64* This,
+    IDebugApplication64 *pda,
+    LPCOLESTR pszShortName,
+    LPCOLESTR pszLongName,
+    TEXT_DOC_ATTR docAttr);
+void __RPC_STUB IDebugDocumentHelper64_Init_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper64_Attach_Proxy(
+    IDebugDocumentHelper64* This,
+    IDebugDocumentHelper64 *pddhParent);
+void __RPC_STUB IDebugDocumentHelper64_Attach_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper64_Detach_Proxy(
+    IDebugDocumentHelper64* This);
+void __RPC_STUB IDebugDocumentHelper64_Detach_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper64_AddUnicodeText_Proxy(
+    IDebugDocumentHelper64* This,
+    LPCOLESTR pszText);
+void __RPC_STUB IDebugDocumentHelper64_AddUnicodeText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper64_AddDBCSText_Proxy(
+    IDebugDocumentHelper64* This,
+    LPCSTR pszText);
+void __RPC_STUB IDebugDocumentHelper64_AddDBCSText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper64_SetDebugDocumentHost_Proxy(
+    IDebugDocumentHelper64* This,
+    IDebugDocumentHost *pddh);
+void __RPC_STUB IDebugDocumentHelper64_SetDebugDocumentHost_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper64_AddDeferredText_Proxy(
+    IDebugDocumentHelper64* This,
+    ULONG cChars,
+    DWORD dwTextStartCookie);
+void __RPC_STUB IDebugDocumentHelper64_AddDeferredText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper64_DefineScriptBlock_Proxy(
+    IDebugDocumentHelper64* This,
+    ULONG ulCharOffset,
+    ULONG cChars,
+    IActiveScript *pas,
+    WINBOOL fScriptlet,
+    DWORDLONG *pdwSourceContext);
+void __RPC_STUB IDebugDocumentHelper64_DefineScriptBlock_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper64_SetDefaultTextAttr_Proxy(
+    IDebugDocumentHelper64* This,
+    SOURCE_TEXT_ATTR staTextAttr);
+void __RPC_STUB IDebugDocumentHelper64_SetDefaultTextAttr_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper64_SetTextAttributes_Proxy(
+    IDebugDocumentHelper64* This,
+    ULONG ulCharOffset,
+    ULONG cChars,
+    SOURCE_TEXT_ATTR *pstaTextAttr);
+void __RPC_STUB IDebugDocumentHelper64_SetTextAttributes_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper64_SetLongName_Proxy(
+    IDebugDocumentHelper64* This,
+    LPCOLESTR pszLongName);
+void __RPC_STUB IDebugDocumentHelper64_SetLongName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper64_SetShortName_Proxy(
+    IDebugDocumentHelper64* This,
+    LPCOLESTR pszShortName);
+void __RPC_STUB IDebugDocumentHelper64_SetShortName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper64_SetDocumentAttr_Proxy(
+    IDebugDocumentHelper64* This,
+    TEXT_DOC_ATTR pszAttributes);
+void __RPC_STUB IDebugDocumentHelper64_SetDocumentAttr_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper64_GetDebugApplicationNode_Proxy(
+    IDebugDocumentHelper64* This,
+    IDebugApplicationNode **ppdan);
+void __RPC_STUB IDebugDocumentHelper64_GetDebugApplicationNode_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper64_GetScriptBlockInfo_Proxy(
+    IDebugDocumentHelper64* This,
+    DWORDLONG dwSourceContext,
+    IActiveScript **ppasd,
+    ULONG *piCharPos,
+    ULONG *pcChars);
+void __RPC_STUB IDebugDocumentHelper64_GetScriptBlockInfo_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper64_CreateDebugDocumentContext_Proxy(
+    IDebugDocumentHelper64* This,
+    ULONG iCharPos,
+    ULONG cChars,
+    IDebugDocumentContext **ppddc);
+void __RPC_STUB IDebugDocumentHelper64_CreateDebugDocumentContext_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper64_BringDocumentToTop_Proxy(
+    IDebugDocumentHelper64* This);
+void __RPC_STUB IDebugDocumentHelper64_BringDocumentToTop_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHelper64_BringDocumentContextToTop_Proxy(
+    IDebugDocumentHelper64* This,
+    IDebugDocumentContext *pddc);
+void __RPC_STUB IDebugDocumentHelper64_BringDocumentContextToTop_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugDocumentHelper64_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugDocumentHost interface
+ */
+#ifndef __IDebugDocumentHost_INTERFACE_DEFINED__
+#define __IDebugDocumentHost_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugDocumentHost, 0x51973c27, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c27-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugDocumentHost : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetDeferredText(
+        DWORD dwTextStartCookie,
+        WCHAR *pcharText,
+        SOURCE_TEXT_ATTR *pstaTextAttr,
+        ULONG *pcNumChars,
+        ULONG cMaxChars) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetScriptTextAttributes(
+        LPCOLESTR pstrCode,
+        ULONG uNumCodeChars,
+        LPCOLESTR pstrDelimiter,
+        DWORD dwFlags,
+        SOURCE_TEXT_ATTR *pattr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnCreateDocumentContext(
+        IUnknown **ppunkOuter) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetPathName(
+        BSTR *pbstrLongName,
+        WINBOOL *pfIsOriginalFile) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetFileName(
+        BSTR *pbstrShortName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE NotifyChanged(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugDocumentHost, 0x51973c27, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugDocumentHostVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugDocumentHost* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugDocumentHost* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugDocumentHost* This);
+
+    /*** IDebugDocumentHost methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetDeferredText)(
+        IDebugDocumentHost* This,
+        DWORD dwTextStartCookie,
+        WCHAR *pcharText,
+        SOURCE_TEXT_ATTR *pstaTextAttr,
+        ULONG *pcNumChars,
+        ULONG cMaxChars);
+
+    HRESULT (STDMETHODCALLTYPE *GetScriptTextAttributes)(
+        IDebugDocumentHost* This,
+        LPCOLESTR pstrCode,
+        ULONG uNumCodeChars,
+        LPCOLESTR pstrDelimiter,
+        DWORD dwFlags,
+        SOURCE_TEXT_ATTR *pattr);
+
+    HRESULT (STDMETHODCALLTYPE *OnCreateDocumentContext)(
+        IDebugDocumentHost* This,
+        IUnknown **ppunkOuter);
+
+    HRESULT (STDMETHODCALLTYPE *GetPathName)(
+        IDebugDocumentHost* This,
+        BSTR *pbstrLongName,
+        WINBOOL *pfIsOriginalFile);
+
+    HRESULT (STDMETHODCALLTYPE *GetFileName)(
+        IDebugDocumentHost* This,
+        BSTR *pbstrShortName);
+
+    HRESULT (STDMETHODCALLTYPE *NotifyChanged)(
+        IDebugDocumentHost* This);
+
+    END_INTERFACE
+} IDebugDocumentHostVtbl;
+interface IDebugDocumentHost {
+    CONST_VTBL IDebugDocumentHostVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugDocumentHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugDocumentHost_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugDocumentHost_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugDocumentHost methods ***/
+#define IDebugDocumentHost_GetDeferredText(This,dwTextStartCookie,pcharText,pstaTextAttr,pcNumChars,cMaxChars) (This)->lpVtbl->GetDeferredText(This,dwTextStartCookie,pcharText,pstaTextAttr,pcNumChars,cMaxChars)
+#define IDebugDocumentHost_GetScriptTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr) (This)->lpVtbl->GetScriptTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr)
+#define IDebugDocumentHost_OnCreateDocumentContext(This,ppunkOuter) (This)->lpVtbl->OnCreateDocumentContext(This,ppunkOuter)
+#define IDebugDocumentHost_GetPathName(This,pbstrLongName,pfIsOriginalFile) (This)->lpVtbl->GetPathName(This,pbstrLongName,pfIsOriginalFile)
+#define IDebugDocumentHost_GetFileName(This,pbstrShortName) (This)->lpVtbl->GetFileName(This,pbstrShortName)
+#define IDebugDocumentHost_NotifyChanged(This) (This)->lpVtbl->NotifyChanged(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugDocumentHost_QueryInterface(IDebugDocumentHost* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugDocumentHost_AddRef(IDebugDocumentHost* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugDocumentHost_Release(IDebugDocumentHost* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugDocumentHost methods ***/
+static FORCEINLINE HRESULT IDebugDocumentHost_GetDeferredText(IDebugDocumentHost* This,DWORD dwTextStartCookie,WCHAR *pcharText,SOURCE_TEXT_ATTR *pstaTextAttr,ULONG *pcNumChars,ULONG cMaxChars) {
+    return This->lpVtbl->GetDeferredText(This,dwTextStartCookie,pcharText,pstaTextAttr,pcNumChars,cMaxChars);
+}
+static FORCEINLINE HRESULT IDebugDocumentHost_GetScriptTextAttributes(IDebugDocumentHost* This,LPCOLESTR pstrCode,ULONG uNumCodeChars,LPCOLESTR pstrDelimiter,DWORD dwFlags,SOURCE_TEXT_ATTR *pattr) {
+    return This->lpVtbl->GetScriptTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr);
+}
+static FORCEINLINE HRESULT IDebugDocumentHost_OnCreateDocumentContext(IDebugDocumentHost* This,IUnknown **ppunkOuter) {
+    return This->lpVtbl->OnCreateDocumentContext(This,ppunkOuter);
+}
+static FORCEINLINE HRESULT IDebugDocumentHost_GetPathName(IDebugDocumentHost* This,BSTR *pbstrLongName,WINBOOL *pfIsOriginalFile) {
+    return This->lpVtbl->GetPathName(This,pbstrLongName,pfIsOriginalFile);
+}
+static FORCEINLINE HRESULT IDebugDocumentHost_GetFileName(IDebugDocumentHost* This,BSTR *pbstrShortName) {
+    return This->lpVtbl->GetFileName(This,pbstrShortName);
+}
+static FORCEINLINE HRESULT IDebugDocumentHost_NotifyChanged(IDebugDocumentHost* This) {
+    return This->lpVtbl->NotifyChanged(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugDocumentHost_GetDeferredText_Proxy(
+    IDebugDocumentHost* This,
+    DWORD dwTextStartCookie,
+    WCHAR *pcharText,
+    SOURCE_TEXT_ATTR *pstaTextAttr,
+    ULONG *pcNumChars,
+    ULONG cMaxChars);
+void __RPC_STUB IDebugDocumentHost_GetDeferredText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHost_GetScriptTextAttributes_Proxy(
+    IDebugDocumentHost* This,
+    LPCOLESTR pstrCode,
+    ULONG uNumCodeChars,
+    LPCOLESTR pstrDelimiter,
+    DWORD dwFlags,
+    SOURCE_TEXT_ATTR *pattr);
+void __RPC_STUB IDebugDocumentHost_GetScriptTextAttributes_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHost_OnCreateDocumentContext_Proxy(
+    IDebugDocumentHost* This,
+    IUnknown **ppunkOuter);
+void __RPC_STUB IDebugDocumentHost_OnCreateDocumentContext_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHost_GetPathName_Proxy(
+    IDebugDocumentHost* This,
+    BSTR *pbstrLongName,
+    WINBOOL *pfIsOriginalFile);
+void __RPC_STUB IDebugDocumentHost_GetPathName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHost_GetFileName_Proxy(
+    IDebugDocumentHost* This,
+    BSTR *pbstrShortName);
+void __RPC_STUB IDebugDocumentHost_GetFileName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentHost_NotifyChanged_Proxy(
+    IDebugDocumentHost* This);
+void __RPC_STUB IDebugDocumentHost_NotifyChanged_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugDocumentHost_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugDocumentContext interface
+ */
+#ifndef __IDebugDocumentContext_INTERFACE_DEFINED__
+#define __IDebugDocumentContext_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugDocumentContext, 0x51973c28, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c28-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugDocumentContext : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetDocument(
+        IDebugDocument **ppsd) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnumCodeContexts(
+        IEnumDebugCodeContexts **ppescc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugDocumentContext, 0x51973c28, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugDocumentContextVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugDocumentContext* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugDocumentContext* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugDocumentContext* This);
+
+    /*** IDebugDocumentContext methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetDocument)(
+        IDebugDocumentContext* This,
+        IDebugDocument **ppsd);
+
+    HRESULT (STDMETHODCALLTYPE *EnumCodeContexts)(
+        IDebugDocumentContext* This,
+        IEnumDebugCodeContexts **ppescc);
+
+    END_INTERFACE
+} IDebugDocumentContextVtbl;
+interface IDebugDocumentContext {
+    CONST_VTBL IDebugDocumentContextVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugDocumentContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugDocumentContext_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugDocumentContext_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugDocumentContext methods ***/
+#define IDebugDocumentContext_GetDocument(This,ppsd) (This)->lpVtbl->GetDocument(This,ppsd)
+#define IDebugDocumentContext_EnumCodeContexts(This,ppescc) (This)->lpVtbl->EnumCodeContexts(This,ppescc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugDocumentContext_QueryInterface(IDebugDocumentContext* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugDocumentContext_AddRef(IDebugDocumentContext* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugDocumentContext_Release(IDebugDocumentContext* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugDocumentContext methods ***/
+static FORCEINLINE HRESULT IDebugDocumentContext_GetDocument(IDebugDocumentContext* This,IDebugDocument **ppsd) {
+    return This->lpVtbl->GetDocument(This,ppsd);
+}
+static FORCEINLINE HRESULT IDebugDocumentContext_EnumCodeContexts(IDebugDocumentContext* This,IEnumDebugCodeContexts **ppescc) {
+    return This->lpVtbl->EnumCodeContexts(This,ppescc);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugDocumentContext_GetDocument_Proxy(
+    IDebugDocumentContext* This,
+    IDebugDocument **ppsd);
+void __RPC_STUB IDebugDocumentContext_GetDocument_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugDocumentContext_EnumCodeContexts_Proxy(
+    IDebugDocumentContext* This,
+    IEnumDebugCodeContexts **ppescc);
+void __RPC_STUB IDebugDocumentContext_EnumCodeContexts_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugDocumentContext_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugSessionProvider interface
+ */
+#ifndef __IDebugSessionProvider_INTERFACE_DEFINED__
+#define __IDebugSessionProvider_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugSessionProvider, 0x51973c29, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c29-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugSessionProvider : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE StartDebugSession(
+        IRemoteDebugApplication *pda) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugSessionProvider, 0x51973c29, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugSessionProviderVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugSessionProvider* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugSessionProvider* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugSessionProvider* This);
+
+    /*** IDebugSessionProvider methods ***/
+    HRESULT (STDMETHODCALLTYPE *StartDebugSession)(
+        IDebugSessionProvider* This,
+        IRemoteDebugApplication *pda);
+
+    END_INTERFACE
+} IDebugSessionProviderVtbl;
+interface IDebugSessionProvider {
+    CONST_VTBL IDebugSessionProviderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugSessionProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugSessionProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugSessionProvider_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugSessionProvider methods ***/
+#define IDebugSessionProvider_StartDebugSession(This,pda) (This)->lpVtbl->StartDebugSession(This,pda)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugSessionProvider_QueryInterface(IDebugSessionProvider* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugSessionProvider_AddRef(IDebugSessionProvider* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugSessionProvider_Release(IDebugSessionProvider* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugSessionProvider methods ***/
+static FORCEINLINE HRESULT IDebugSessionProvider_StartDebugSession(IDebugSessionProvider* This,IRemoteDebugApplication *pda) {
+    return This->lpVtbl->StartDebugSession(This,pda);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugSessionProvider_StartDebugSession_Proxy(
+    IDebugSessionProvider* This,
+    IRemoteDebugApplication *pda);
+void __RPC_STUB IDebugSessionProvider_StartDebugSession_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugSessionProvider_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IApplicationDebugger interface
+ */
+#ifndef __IApplicationDebugger_INTERFACE_DEFINED__
+#define __IApplicationDebugger_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IApplicationDebugger, 0x51973c2a, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c2a-cb0c-11d0-b5c9-00a0244a0e7a")
+IApplicationDebugger : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE QueryAlive(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateInstanceAtDebugger(
+        REFCLSID rclsid,
+        IUnknown *pUnkOuter,
+        DWORD dwClsContext,
+        REFIID riid,
+        IUnknown **ppvObject) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE onDebugOutput(
+        LPCOLESTR pstr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE onHandleBreakPoint(
+        IRemoteDebugApplicationThread *prpt,
+        BREAKREASON br,
+        IActiveScriptErrorDebug *pError) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE onClose(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE onDebuggerEvent(
+        REFIID riid,
+        IUnknown *punk) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IApplicationDebugger, 0x51973c2a, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IApplicationDebuggerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IApplicationDebugger* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IApplicationDebugger* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IApplicationDebugger* This);
+
+    /*** IApplicationDebugger methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryAlive)(
+        IApplicationDebugger* This);
+
+    HRESULT (STDMETHODCALLTYPE *CreateInstanceAtDebugger)(
+        IApplicationDebugger* This,
+        REFCLSID rclsid,
+        IUnknown *pUnkOuter,
+        DWORD dwClsContext,
+        REFIID riid,
+        IUnknown **ppvObject);
+
+    HRESULT (STDMETHODCALLTYPE *onDebugOutput)(
+        IApplicationDebugger* This,
+        LPCOLESTR pstr);
+
+    HRESULT (STDMETHODCALLTYPE *onHandleBreakPoint)(
+        IApplicationDebugger* This,
+        IRemoteDebugApplicationThread *prpt,
+        BREAKREASON br,
+        IActiveScriptErrorDebug *pError);
+
+    HRESULT (STDMETHODCALLTYPE *onClose)(
+        IApplicationDebugger* This);
+
+    HRESULT (STDMETHODCALLTYPE *onDebuggerEvent)(
+        IApplicationDebugger* This,
+        REFIID riid,
+        IUnknown *punk);
+
+    END_INTERFACE
+} IApplicationDebuggerVtbl;
+interface IApplicationDebugger {
+    CONST_VTBL IApplicationDebuggerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IApplicationDebugger_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IApplicationDebugger_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IApplicationDebugger_Release(This) (This)->lpVtbl->Release(This)
+/*** IApplicationDebugger methods ***/
+#define IApplicationDebugger_QueryAlive(This) (This)->lpVtbl->QueryAlive(This)
+#define IApplicationDebugger_CreateInstanceAtDebugger(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstanceAtDebugger(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject)
+#define IApplicationDebugger_onDebugOutput(This,pstr) (This)->lpVtbl->onDebugOutput(This,pstr)
+#define IApplicationDebugger_onHandleBreakPoint(This,prpt,br,pError) (This)->lpVtbl->onHandleBreakPoint(This,prpt,br,pError)
+#define IApplicationDebugger_onClose(This) (This)->lpVtbl->onClose(This)
+#define IApplicationDebugger_onDebuggerEvent(This,riid,punk) (This)->lpVtbl->onDebuggerEvent(This,riid,punk)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IApplicationDebugger_QueryInterface(IApplicationDebugger* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IApplicationDebugger_AddRef(IApplicationDebugger* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IApplicationDebugger_Release(IApplicationDebugger* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IApplicationDebugger methods ***/
+static FORCEINLINE HRESULT IApplicationDebugger_QueryAlive(IApplicationDebugger* This) {
+    return This->lpVtbl->QueryAlive(This);
+}
+static FORCEINLINE HRESULT IApplicationDebugger_CreateInstanceAtDebugger(IApplicationDebugger* This,REFCLSID rclsid,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,IUnknown **ppvObject) {
+    return This->lpVtbl->CreateInstanceAtDebugger(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject);
+}
+static FORCEINLINE HRESULT IApplicationDebugger_onDebugOutput(IApplicationDebugger* This,LPCOLESTR pstr) {
+    return This->lpVtbl->onDebugOutput(This,pstr);
+}
+static FORCEINLINE HRESULT IApplicationDebugger_onHandleBreakPoint(IApplicationDebugger* This,IRemoteDebugApplicationThread *prpt,BREAKREASON br,IActiveScriptErrorDebug *pError) {
+    return This->lpVtbl->onHandleBreakPoint(This,prpt,br,pError);
+}
+static FORCEINLINE HRESULT IApplicationDebugger_onClose(IApplicationDebugger* This) {
+    return This->lpVtbl->onClose(This);
+}
+static FORCEINLINE HRESULT IApplicationDebugger_onDebuggerEvent(IApplicationDebugger* This,REFIID riid,IUnknown *punk) {
+    return This->lpVtbl->onDebuggerEvent(This,riid,punk);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IApplicationDebugger_QueryAlive_Proxy(
+    IApplicationDebugger* This);
+void __RPC_STUB IApplicationDebugger_QueryAlive_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IApplicationDebugger_CreateInstanceAtDebugger_Proxy(
+    IApplicationDebugger* This,
+    REFCLSID rclsid,
+    IUnknown *pUnkOuter,
+    DWORD dwClsContext,
+    REFIID riid,
+    IUnknown **ppvObject);
+void __RPC_STUB IApplicationDebugger_CreateInstanceAtDebugger_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IApplicationDebugger_onDebugOutput_Proxy(
+    IApplicationDebugger* This,
+    LPCOLESTR pstr);
+void __RPC_STUB IApplicationDebugger_onDebugOutput_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IApplicationDebugger_onHandleBreakPoint_Proxy(
+    IApplicationDebugger* This,
+    IRemoteDebugApplicationThread *prpt,
+    BREAKREASON br,
+    IActiveScriptErrorDebug *pError);
+void __RPC_STUB IApplicationDebugger_onHandleBreakPoint_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IApplicationDebugger_onClose_Proxy(
+    IApplicationDebugger* This);
+void __RPC_STUB IApplicationDebugger_onClose_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IApplicationDebugger_onDebuggerEvent_Proxy(
+    IApplicationDebugger* This,
+    REFIID riid,
+    IUnknown *punk);
+void __RPC_STUB IApplicationDebugger_onDebuggerEvent_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IApplicationDebugger_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IApplicationDebuggerUI interface
+ */
+#ifndef __IApplicationDebuggerUI_INTERFACE_DEFINED__
+#define __IApplicationDebuggerUI_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IApplicationDebuggerUI, 0x51973c2b, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c2b-cb0c-11d0-b5c9-00a0244a0e7a")
+IApplicationDebuggerUI : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE BringDocumentToTop(
+        IDebugDocumentText *pddt) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE BringDocumentContextToTop(
+        IDebugDocumentContext *pddc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IApplicationDebuggerUI, 0x51973c2b, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IApplicationDebuggerUIVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IApplicationDebuggerUI* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IApplicationDebuggerUI* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IApplicationDebuggerUI* This);
+
+    /*** IApplicationDebuggerUI methods ***/
+    HRESULT (STDMETHODCALLTYPE *BringDocumentToTop)(
+        IApplicationDebuggerUI* This,
+        IDebugDocumentText *pddt);
+
+    HRESULT (STDMETHODCALLTYPE *BringDocumentContextToTop)(
+        IApplicationDebuggerUI* This,
+        IDebugDocumentContext *pddc);
+
+    END_INTERFACE
+} IApplicationDebuggerUIVtbl;
+interface IApplicationDebuggerUI {
+    CONST_VTBL IApplicationDebuggerUIVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IApplicationDebuggerUI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IApplicationDebuggerUI_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IApplicationDebuggerUI_Release(This) (This)->lpVtbl->Release(This)
+/*** IApplicationDebuggerUI methods ***/
+#define IApplicationDebuggerUI_BringDocumentToTop(This,pddt) (This)->lpVtbl->BringDocumentToTop(This,pddt)
+#define IApplicationDebuggerUI_BringDocumentContextToTop(This,pddc) (This)->lpVtbl->BringDocumentContextToTop(This,pddc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IApplicationDebuggerUI_QueryInterface(IApplicationDebuggerUI* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IApplicationDebuggerUI_AddRef(IApplicationDebuggerUI* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IApplicationDebuggerUI_Release(IApplicationDebuggerUI* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IApplicationDebuggerUI methods ***/
+static FORCEINLINE HRESULT IApplicationDebuggerUI_BringDocumentToTop(IApplicationDebuggerUI* This,IDebugDocumentText *pddt) {
+    return This->lpVtbl->BringDocumentToTop(This,pddt);
+}
+static FORCEINLINE HRESULT IApplicationDebuggerUI_BringDocumentContextToTop(IApplicationDebuggerUI* This,IDebugDocumentContext *pddc) {
+    return This->lpVtbl->BringDocumentContextToTop(This,pddc);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IApplicationDebuggerUI_BringDocumentToTop_Proxy(
+    IApplicationDebuggerUI* This,
+    IDebugDocumentText *pddt);
+void __RPC_STUB IApplicationDebuggerUI_BringDocumentToTop_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IApplicationDebuggerUI_BringDocumentContextToTop_Proxy(
+    IApplicationDebuggerUI* This,
+    IDebugDocumentContext *pddc);
+void __RPC_STUB IApplicationDebuggerUI_BringDocumentContextToTop_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IApplicationDebuggerUI_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMachineDebugManager interface
+ */
+#ifndef __IMachineDebugManager_INTERFACE_DEFINED__
+#define __IMachineDebugManager_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMachineDebugManager, 0x51973c2c, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c2c-cb0c-11d0-b5c9-00a0244a0e7a")
+IMachineDebugManager : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE AddApplication(
+        IRemoteDebugApplication *pda,
+        DWORD *pdwAppCookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveApplication(
+        DWORD dwAppCookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnumApplications(
+        IEnumRemoteDebugApplications **ppeda) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMachineDebugManager, 0x51973c2c, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IMachineDebugManagerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMachineDebugManager* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMachineDebugManager* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMachineDebugManager* This);
+
+    /*** IMachineDebugManager methods ***/
+    HRESULT (STDMETHODCALLTYPE *AddApplication)(
+        IMachineDebugManager* This,
+        IRemoteDebugApplication *pda,
+        DWORD *pdwAppCookie);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveApplication)(
+        IMachineDebugManager* This,
+        DWORD dwAppCookie);
+
+    HRESULT (STDMETHODCALLTYPE *EnumApplications)(
+        IMachineDebugManager* This,
+        IEnumRemoteDebugApplications **ppeda);
+
+    END_INTERFACE
+} IMachineDebugManagerVtbl;
+interface IMachineDebugManager {
+    CONST_VTBL IMachineDebugManagerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMachineDebugManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMachineDebugManager_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMachineDebugManager_Release(This) (This)->lpVtbl->Release(This)
+/*** IMachineDebugManager methods ***/
+#define IMachineDebugManager_AddApplication(This,pda,pdwAppCookie) (This)->lpVtbl->AddApplication(This,pda,pdwAppCookie)
+#define IMachineDebugManager_RemoveApplication(This,dwAppCookie) (This)->lpVtbl->RemoveApplication(This,dwAppCookie)
+#define IMachineDebugManager_EnumApplications(This,ppeda) (This)->lpVtbl->EnumApplications(This,ppeda)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMachineDebugManager_QueryInterface(IMachineDebugManager* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMachineDebugManager_AddRef(IMachineDebugManager* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMachineDebugManager_Release(IMachineDebugManager* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMachineDebugManager methods ***/
+static FORCEINLINE HRESULT IMachineDebugManager_AddApplication(IMachineDebugManager* This,IRemoteDebugApplication *pda,DWORD *pdwAppCookie) {
+    return This->lpVtbl->AddApplication(This,pda,pdwAppCookie);
+}
+static FORCEINLINE HRESULT IMachineDebugManager_RemoveApplication(IMachineDebugManager* This,DWORD dwAppCookie) {
+    return This->lpVtbl->RemoveApplication(This,dwAppCookie);
+}
+static FORCEINLINE HRESULT IMachineDebugManager_EnumApplications(IMachineDebugManager* This,IEnumRemoteDebugApplications **ppeda) {
+    return This->lpVtbl->EnumApplications(This,ppeda);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IMachineDebugManager_AddApplication_Proxy(
+    IMachineDebugManager* This,
+    IRemoteDebugApplication *pda,
+    DWORD *pdwAppCookie);
+void __RPC_STUB IMachineDebugManager_AddApplication_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IMachineDebugManager_RemoveApplication_Proxy(
+    IMachineDebugManager* This,
+    DWORD dwAppCookie);
+void __RPC_STUB IMachineDebugManager_RemoveApplication_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IMachineDebugManager_EnumApplications_Proxy(
+    IMachineDebugManager* This,
+    IEnumRemoteDebugApplications **ppeda);
+void __RPC_STUB IMachineDebugManager_EnumApplications_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IMachineDebugManager_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMachineDebugManagerCookie interface
+ */
+#ifndef __IMachineDebugManagerCookie_INTERFACE_DEFINED__
+#define __IMachineDebugManagerCookie_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMachineDebugManagerCookie, 0x51973c2d, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c2d-cb0c-11d0-b5c9-00a0244a0e7a")
+IMachineDebugManagerCookie : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE AddApplication(
+        IRemoteDebugApplication *pda,
+        DWORD dwDebugAppCookie,
+        DWORD *pdwAppCookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveApplication(
+        DWORD dwDebugAppCookie,
+        DWORD dwAppCookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnumApplications(
+        IEnumRemoteDebugApplications **ppeda) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMachineDebugManagerCookie, 0x51973c2d, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IMachineDebugManagerCookieVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMachineDebugManagerCookie* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMachineDebugManagerCookie* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMachineDebugManagerCookie* This);
+
+    /*** IMachineDebugManagerCookie methods ***/
+    HRESULT (STDMETHODCALLTYPE *AddApplication)(
+        IMachineDebugManagerCookie* This,
+        IRemoteDebugApplication *pda,
+        DWORD dwDebugAppCookie,
+        DWORD *pdwAppCookie);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveApplication)(
+        IMachineDebugManagerCookie* This,
+        DWORD dwDebugAppCookie,
+        DWORD dwAppCookie);
+
+    HRESULT (STDMETHODCALLTYPE *EnumApplications)(
+        IMachineDebugManagerCookie* This,
+        IEnumRemoteDebugApplications **ppeda);
+
+    END_INTERFACE
+} IMachineDebugManagerCookieVtbl;
+interface IMachineDebugManagerCookie {
+    CONST_VTBL IMachineDebugManagerCookieVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMachineDebugManagerCookie_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMachineDebugManagerCookie_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMachineDebugManagerCookie_Release(This) (This)->lpVtbl->Release(This)
+/*** IMachineDebugManagerCookie methods ***/
+#define IMachineDebugManagerCookie_AddApplication(This,pda,dwDebugAppCookie,pdwAppCookie) (This)->lpVtbl->AddApplication(This,pda,dwDebugAppCookie,pdwAppCookie)
+#define IMachineDebugManagerCookie_RemoveApplication(This,dwDebugAppCookie,dwAppCookie) (This)->lpVtbl->RemoveApplication(This,dwDebugAppCookie,dwAppCookie)
+#define IMachineDebugManagerCookie_EnumApplications(This,ppeda) (This)->lpVtbl->EnumApplications(This,ppeda)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMachineDebugManagerCookie_QueryInterface(IMachineDebugManagerCookie* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMachineDebugManagerCookie_AddRef(IMachineDebugManagerCookie* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMachineDebugManagerCookie_Release(IMachineDebugManagerCookie* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMachineDebugManagerCookie methods ***/
+static FORCEINLINE HRESULT IMachineDebugManagerCookie_AddApplication(IMachineDebugManagerCookie* This,IRemoteDebugApplication *pda,DWORD dwDebugAppCookie,DWORD *pdwAppCookie) {
+    return This->lpVtbl->AddApplication(This,pda,dwDebugAppCookie,pdwAppCookie);
+}
+static FORCEINLINE HRESULT IMachineDebugManagerCookie_RemoveApplication(IMachineDebugManagerCookie* This,DWORD dwDebugAppCookie,DWORD dwAppCookie) {
+    return This->lpVtbl->RemoveApplication(This,dwDebugAppCookie,dwAppCookie);
+}
+static FORCEINLINE HRESULT IMachineDebugManagerCookie_EnumApplications(IMachineDebugManagerCookie* This,IEnumRemoteDebugApplications **ppeda) {
+    return This->lpVtbl->EnumApplications(This,ppeda);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IMachineDebugManagerCookie_AddApplication_Proxy(
+    IMachineDebugManagerCookie* This,
+    IRemoteDebugApplication *pda,
+    DWORD dwDebugAppCookie,
+    DWORD *pdwAppCookie);
+void __RPC_STUB IMachineDebugManagerCookie_AddApplication_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IMachineDebugManagerCookie_RemoveApplication_Proxy(
+    IMachineDebugManagerCookie* This,
+    DWORD dwDebugAppCookie,
+    DWORD dwAppCookie);
+void __RPC_STUB IMachineDebugManagerCookie_RemoveApplication_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IMachineDebugManagerCookie_EnumApplications_Proxy(
+    IMachineDebugManagerCookie* This,
+    IEnumRemoteDebugApplications **ppeda);
+void __RPC_STUB IMachineDebugManagerCookie_EnumApplications_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IMachineDebugManagerCookie_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMachineDebugManagerEvents interface
+ */
+#ifndef __IMachineDebugManagerEvents_INTERFACE_DEFINED__
+#define __IMachineDebugManagerEvents_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMachineDebugManagerEvents, 0x51973c2e, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c2e-cb0c-11d0-b5c9-00a0244a0e7a")
+IMachineDebugManagerEvents : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE onAddApplication(
+        IRemoteDebugApplication *pda,
+        DWORD dwAppCookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE onRemoveApplication(
+        IRemoteDebugApplication *pda,
+        DWORD dwAppCookie) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMachineDebugManagerEvents, 0x51973c2e, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IMachineDebugManagerEventsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMachineDebugManagerEvents* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMachineDebugManagerEvents* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMachineDebugManagerEvents* This);
+
+    /*** IMachineDebugManagerEvents methods ***/
+    HRESULT (STDMETHODCALLTYPE *onAddApplication)(
+        IMachineDebugManagerEvents* This,
+        IRemoteDebugApplication *pda,
+        DWORD dwAppCookie);
+
+    HRESULT (STDMETHODCALLTYPE *onRemoveApplication)(
+        IMachineDebugManagerEvents* This,
+        IRemoteDebugApplication *pda,
+        DWORD dwAppCookie);
+
+    END_INTERFACE
+} IMachineDebugManagerEventsVtbl;
+interface IMachineDebugManagerEvents {
+    CONST_VTBL IMachineDebugManagerEventsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMachineDebugManagerEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMachineDebugManagerEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMachineDebugManagerEvents_Release(This) (This)->lpVtbl->Release(This)
+/*** IMachineDebugManagerEvents methods ***/
+#define IMachineDebugManagerEvents_onAddApplication(This,pda,dwAppCookie) (This)->lpVtbl->onAddApplication(This,pda,dwAppCookie)
+#define IMachineDebugManagerEvents_onRemoveApplication(This,pda,dwAppCookie) (This)->lpVtbl->onRemoveApplication(This,pda,dwAppCookie)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMachineDebugManagerEvents_QueryInterface(IMachineDebugManagerEvents* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMachineDebugManagerEvents_AddRef(IMachineDebugManagerEvents* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMachineDebugManagerEvents_Release(IMachineDebugManagerEvents* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMachineDebugManagerEvents methods ***/
+static FORCEINLINE HRESULT IMachineDebugManagerEvents_onAddApplication(IMachineDebugManagerEvents* This,IRemoteDebugApplication *pda,DWORD dwAppCookie) {
+    return This->lpVtbl->onAddApplication(This,pda,dwAppCookie);
+}
+static FORCEINLINE HRESULT IMachineDebugManagerEvents_onRemoveApplication(IMachineDebugManagerEvents* This,IRemoteDebugApplication *pda,DWORD dwAppCookie) {
+    return This->lpVtbl->onRemoveApplication(This,pda,dwAppCookie);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IMachineDebugManagerEvents_onAddApplication_Proxy(
+    IMachineDebugManagerEvents* This,
+    IRemoteDebugApplication *pda,
+    DWORD dwAppCookie);
+void __RPC_STUB IMachineDebugManagerEvents_onAddApplication_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IMachineDebugManagerEvents_onRemoveApplication_Proxy(
+    IMachineDebugManagerEvents* This,
+    IRemoteDebugApplication *pda,
+    DWORD dwAppCookie);
+void __RPC_STUB IMachineDebugManagerEvents_onRemoveApplication_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IMachineDebugManagerEvents_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IProcessDebugManager32 interface
+ */
+#ifndef __IProcessDebugManager32_INTERFACE_DEFINED__
+#define __IProcessDebugManager32_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IProcessDebugManager32, 0x51973c2f, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c2f-cb0c-11d0-b5c9-00a0244a0e7a")
+IProcessDebugManager32 : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE CreateApplication(
+        IDebugApplication32 **ppda) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetDefaultApplication(
+        IDebugApplication32 **ppda) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddApplication(
+        IDebugApplication32 *pda,
+        DWORD *pdwAppCookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveApplication(
+        DWORD dwAppCookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateDebugDocumentHelper(
+        IUnknown *punkOuter,
+        IDebugDocumentHelper32 **pddh) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IProcessDebugManager32, 0x51973c2f, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IProcessDebugManager32Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IProcessDebugManager32* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IProcessDebugManager32* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IProcessDebugManager32* This);
+
+    /*** IProcessDebugManager32 methods ***/
+    HRESULT (STDMETHODCALLTYPE *CreateApplication)(
+        IProcessDebugManager32* This,
+        IDebugApplication32 **ppda);
+
+    HRESULT (STDMETHODCALLTYPE *GetDefaultApplication)(
+        IProcessDebugManager32* This,
+        IDebugApplication32 **ppda);
+
+    HRESULT (STDMETHODCALLTYPE *AddApplication)(
+        IProcessDebugManager32* This,
+        IDebugApplication32 *pda,
+        DWORD *pdwAppCookie);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveApplication)(
+        IProcessDebugManager32* This,
+        DWORD dwAppCookie);
+
+    HRESULT (STDMETHODCALLTYPE *CreateDebugDocumentHelper)(
+        IProcessDebugManager32* This,
+        IUnknown *punkOuter,
+        IDebugDocumentHelper32 **pddh);
+
+    END_INTERFACE
+} IProcessDebugManager32Vtbl;
+interface IProcessDebugManager32 {
+    CONST_VTBL IProcessDebugManager32Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IProcessDebugManager32_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IProcessDebugManager32_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IProcessDebugManager32_Release(This) (This)->lpVtbl->Release(This)
+/*** IProcessDebugManager32 methods ***/
+#define IProcessDebugManager32_CreateApplication(This,ppda) (This)->lpVtbl->CreateApplication(This,ppda)
+#define IProcessDebugManager32_GetDefaultApplication(This,ppda) (This)->lpVtbl->GetDefaultApplication(This,ppda)
+#define IProcessDebugManager32_AddApplication(This,pda,pdwAppCookie) (This)->lpVtbl->AddApplication(This,pda,pdwAppCookie)
+#define IProcessDebugManager32_RemoveApplication(This,dwAppCookie) (This)->lpVtbl->RemoveApplication(This,dwAppCookie)
+#define IProcessDebugManager32_CreateDebugDocumentHelper(This,punkOuter,pddh) (This)->lpVtbl->CreateDebugDocumentHelper(This,punkOuter,pddh)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IProcessDebugManager32_QueryInterface(IProcessDebugManager32* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IProcessDebugManager32_AddRef(IProcessDebugManager32* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IProcessDebugManager32_Release(IProcessDebugManager32* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IProcessDebugManager32 methods ***/
+static FORCEINLINE HRESULT IProcessDebugManager32_CreateApplication(IProcessDebugManager32* This,IDebugApplication32 **ppda) {
+    return This->lpVtbl->CreateApplication(This,ppda);
+}
+static FORCEINLINE HRESULT IProcessDebugManager32_GetDefaultApplication(IProcessDebugManager32* This,IDebugApplication32 **ppda) {
+    return This->lpVtbl->GetDefaultApplication(This,ppda);
+}
+static FORCEINLINE HRESULT IProcessDebugManager32_AddApplication(IProcessDebugManager32* This,IDebugApplication32 *pda,DWORD *pdwAppCookie) {
+    return This->lpVtbl->AddApplication(This,pda,pdwAppCookie);
+}
+static FORCEINLINE HRESULT IProcessDebugManager32_RemoveApplication(IProcessDebugManager32* This,DWORD dwAppCookie) {
+    return This->lpVtbl->RemoveApplication(This,dwAppCookie);
+}
+static FORCEINLINE HRESULT IProcessDebugManager32_CreateDebugDocumentHelper(IProcessDebugManager32* This,IUnknown *punkOuter,IDebugDocumentHelper32 **pddh) {
+    return This->lpVtbl->CreateDebugDocumentHelper(This,punkOuter,pddh);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IProcessDebugManager32_CreateApplication_Proxy(
+    IProcessDebugManager32* This,
+    IDebugApplication32 **ppda);
+void __RPC_STUB IProcessDebugManager32_CreateApplication_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IProcessDebugManager32_GetDefaultApplication_Proxy(
+    IProcessDebugManager32* This,
+    IDebugApplication32 **ppda);
+void __RPC_STUB IProcessDebugManager32_GetDefaultApplication_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IProcessDebugManager32_AddApplication_Proxy(
+    IProcessDebugManager32* This,
+    IDebugApplication32 *pda,
+    DWORD *pdwAppCookie);
+void __RPC_STUB IProcessDebugManager32_AddApplication_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IProcessDebugManager32_RemoveApplication_Proxy(
+    IProcessDebugManager32* This,
+    DWORD dwAppCookie);
+void __RPC_STUB IProcessDebugManager32_RemoveApplication_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IProcessDebugManager32_CreateDebugDocumentHelper_Proxy(
+    IProcessDebugManager32* This,
+    IUnknown *punkOuter,
+    IDebugDocumentHelper32 **pddh);
+void __RPC_STUB IProcessDebugManager32_CreateDebugDocumentHelper_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IProcessDebugManager32_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IProcessDebugManager64 interface
+ */
+#ifndef __IProcessDebugManager64_INTERFACE_DEFINED__
+#define __IProcessDebugManager64_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IProcessDebugManager64, 0x56b9fc1c, 0x63a9, 0x4cc1, 0xac,0x21, 0x08,0x7d,0x69,0xa1,0x7f,0xab);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("56b9fc1c-63a9-4cc1-ac21-087d69a17fab")
+IProcessDebugManager64 : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE CreateApplication(
+        IDebugApplication64 **ppda) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetDefaultApplication(
+        IDebugApplication64 **ppda) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddApplication(
+        IDebugApplication64 *pda,
+        DWORD *pdwAppCookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveApplication(
+        DWORD dwAppCookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateDebugDocumentHelper(
+        IUnknown *punkOuter,
+        IDebugDocumentHelper64 **pddh) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IProcessDebugManager64, 0x56b9fc1c, 0x63a9, 0x4cc1, 0xac,0x21, 0x08,0x7d,0x69,0xa1,0x7f,0xab)
+#endif
+#else
+typedef struct IProcessDebugManager64Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IProcessDebugManager64* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IProcessDebugManager64* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IProcessDebugManager64* This);
+
+    /*** IProcessDebugManager64 methods ***/
+    HRESULT (STDMETHODCALLTYPE *CreateApplication)(
+        IProcessDebugManager64* This,
+        IDebugApplication64 **ppda);
+
+    HRESULT (STDMETHODCALLTYPE *GetDefaultApplication)(
+        IProcessDebugManager64* This,
+        IDebugApplication64 **ppda);
+
+    HRESULT (STDMETHODCALLTYPE *AddApplication)(
+        IProcessDebugManager64* This,
+        IDebugApplication64 *pda,
+        DWORD *pdwAppCookie);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveApplication)(
+        IProcessDebugManager64* This,
+        DWORD dwAppCookie);
+
+    HRESULT (STDMETHODCALLTYPE *CreateDebugDocumentHelper)(
+        IProcessDebugManager64* This,
+        IUnknown *punkOuter,
+        IDebugDocumentHelper64 **pddh);
+
+    END_INTERFACE
+} IProcessDebugManager64Vtbl;
+interface IProcessDebugManager64 {
+    CONST_VTBL IProcessDebugManager64Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IProcessDebugManager64_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IProcessDebugManager64_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IProcessDebugManager64_Release(This) (This)->lpVtbl->Release(This)
+/*** IProcessDebugManager64 methods ***/
+#define IProcessDebugManager64_CreateApplication(This,ppda) (This)->lpVtbl->CreateApplication(This,ppda)
+#define IProcessDebugManager64_GetDefaultApplication(This,ppda) (This)->lpVtbl->GetDefaultApplication(This,ppda)
+#define IProcessDebugManager64_AddApplication(This,pda,pdwAppCookie) (This)->lpVtbl->AddApplication(This,pda,pdwAppCookie)
+#define IProcessDebugManager64_RemoveApplication(This,dwAppCookie) (This)->lpVtbl->RemoveApplication(This,dwAppCookie)
+#define IProcessDebugManager64_CreateDebugDocumentHelper(This,punkOuter,pddh) (This)->lpVtbl->CreateDebugDocumentHelper(This,punkOuter,pddh)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IProcessDebugManager64_QueryInterface(IProcessDebugManager64* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IProcessDebugManager64_AddRef(IProcessDebugManager64* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IProcessDebugManager64_Release(IProcessDebugManager64* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IProcessDebugManager64 methods ***/
+static FORCEINLINE HRESULT IProcessDebugManager64_CreateApplication(IProcessDebugManager64* This,IDebugApplication64 **ppda) {
+    return This->lpVtbl->CreateApplication(This,ppda);
+}
+static FORCEINLINE HRESULT IProcessDebugManager64_GetDefaultApplication(IProcessDebugManager64* This,IDebugApplication64 **ppda) {
+    return This->lpVtbl->GetDefaultApplication(This,ppda);
+}
+static FORCEINLINE HRESULT IProcessDebugManager64_AddApplication(IProcessDebugManager64* This,IDebugApplication64 *pda,DWORD *pdwAppCookie) {
+    return This->lpVtbl->AddApplication(This,pda,pdwAppCookie);
+}
+static FORCEINLINE HRESULT IProcessDebugManager64_RemoveApplication(IProcessDebugManager64* This,DWORD dwAppCookie) {
+    return This->lpVtbl->RemoveApplication(This,dwAppCookie);
+}
+static FORCEINLINE HRESULT IProcessDebugManager64_CreateDebugDocumentHelper(IProcessDebugManager64* This,IUnknown *punkOuter,IDebugDocumentHelper64 **pddh) {
+    return This->lpVtbl->CreateDebugDocumentHelper(This,punkOuter,pddh);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IProcessDebugManager64_CreateApplication_Proxy(
+    IProcessDebugManager64* This,
+    IDebugApplication64 **ppda);
+void __RPC_STUB IProcessDebugManager64_CreateApplication_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IProcessDebugManager64_GetDefaultApplication_Proxy(
+    IProcessDebugManager64* This,
+    IDebugApplication64 **ppda);
+void __RPC_STUB IProcessDebugManager64_GetDefaultApplication_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IProcessDebugManager64_AddApplication_Proxy(
+    IProcessDebugManager64* This,
+    IDebugApplication64 *pda,
+    DWORD *pdwAppCookie);
+void __RPC_STUB IProcessDebugManager64_AddApplication_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IProcessDebugManager64_RemoveApplication_Proxy(
+    IProcessDebugManager64* This,
+    DWORD dwAppCookie);
+void __RPC_STUB IProcessDebugManager64_RemoveApplication_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IProcessDebugManager64_CreateDebugDocumentHelper_Proxy(
+    IProcessDebugManager64* This,
+    IUnknown *punkOuter,
+    IDebugDocumentHelper64 **pddh);
+void __RPC_STUB IProcessDebugManager64_CreateDebugDocumentHelper_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IProcessDebugManager64_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRemoteDebugApplication interface
+ */
+#ifndef __IRemoteDebugApplication_INTERFACE_DEFINED__
+#define __IRemoteDebugApplication_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRemoteDebugApplication, 0x51973c30, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c30-cb0c-11d0-b5c9-00a0244a0e7a")
+IRemoteDebugApplication : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE ResumeFromBreakPoint(
+        IRemoteDebugApplicationThread *prptFocus,
+        BREAKRESUMEACTION bra,
+        ERRORRESUMEACTION era) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CauseBreak(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ConnectDebugger(
+        IApplicationDebugger *pad) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DisconnectDebugger(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetDebugger(
+        IApplicationDebugger **pad) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateInstanceAtApplication(
+        REFCLSID rclsid,
+        IUnknown *pUnkOuter,
+        DWORD dwClsContext,
+        REFIID riid,
+        IUnknown **ppvObject) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE QueryAlive(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnumThreads(
+        IEnumRemoteDebugApplicationThreads **pperdat) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetName(
+        BSTR *pbstrName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetRootNode(
+        IDebugApplicationNode **ppdanRoot) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnumGlobalExpressionContexts(
+        IEnumDebugExpressionContexts **ppedec) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRemoteDebugApplication, 0x51973c30, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IRemoteDebugApplicationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRemoteDebugApplication* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRemoteDebugApplication* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRemoteDebugApplication* This);
+
+    /*** IRemoteDebugApplication methods ***/
+    HRESULT (STDMETHODCALLTYPE *ResumeFromBreakPoint)(
+        IRemoteDebugApplication* This,
+        IRemoteDebugApplicationThread *prptFocus,
+        BREAKRESUMEACTION bra,
+        ERRORRESUMEACTION era);
+
+    HRESULT (STDMETHODCALLTYPE *CauseBreak)(
+        IRemoteDebugApplication* This);
+
+    HRESULT (STDMETHODCALLTYPE *ConnectDebugger)(
+        IRemoteDebugApplication* This,
+        IApplicationDebugger *pad);
+
+    HRESULT (STDMETHODCALLTYPE *DisconnectDebugger)(
+        IRemoteDebugApplication* This);
+
+    HRESULT (STDMETHODCALLTYPE *GetDebugger)(
+        IRemoteDebugApplication* This,
+        IApplicationDebugger **pad);
+
+    HRESULT (STDMETHODCALLTYPE *CreateInstanceAtApplication)(
+        IRemoteDebugApplication* This,
+        REFCLSID rclsid,
+        IUnknown *pUnkOuter,
+        DWORD dwClsContext,
+        REFIID riid,
+        IUnknown **ppvObject);
+
+    HRESULT (STDMETHODCALLTYPE *QueryAlive)(
+        IRemoteDebugApplication* This);
+
+    HRESULT (STDMETHODCALLTYPE *EnumThreads)(
+        IRemoteDebugApplication* This,
+        IEnumRemoteDebugApplicationThreads **pperdat);
+
+    HRESULT (STDMETHODCALLTYPE *GetName)(
+        IRemoteDebugApplication* This,
+        BSTR *pbstrName);
+
+    HRESULT (STDMETHODCALLTYPE *GetRootNode)(
+        IRemoteDebugApplication* This,
+        IDebugApplicationNode **ppdanRoot);
+
+    HRESULT (STDMETHODCALLTYPE *EnumGlobalExpressionContexts)(
+        IRemoteDebugApplication* This,
+        IEnumDebugExpressionContexts **ppedec);
+
+    END_INTERFACE
+} IRemoteDebugApplicationVtbl;
+interface IRemoteDebugApplication {
+    CONST_VTBL IRemoteDebugApplicationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRemoteDebugApplication_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRemoteDebugApplication_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRemoteDebugApplication_Release(This) (This)->lpVtbl->Release(This)
+/*** IRemoteDebugApplication methods ***/
+#define IRemoteDebugApplication_ResumeFromBreakPoint(This,prptFocus,bra,era) (This)->lpVtbl->ResumeFromBreakPoint(This,prptFocus,bra,era)
+#define IRemoteDebugApplication_CauseBreak(This) (This)->lpVtbl->CauseBreak(This)
+#define IRemoteDebugApplication_ConnectDebugger(This,pad) (This)->lpVtbl->ConnectDebugger(This,pad)
+#define IRemoteDebugApplication_DisconnectDebugger(This) (This)->lpVtbl->DisconnectDebugger(This)
+#define IRemoteDebugApplication_GetDebugger(This,pad) (This)->lpVtbl->GetDebugger(This,pad)
+#define IRemoteDebugApplication_CreateInstanceAtApplication(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstanceAtApplication(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject)
+#define IRemoteDebugApplication_QueryAlive(This) (This)->lpVtbl->QueryAlive(This)
+#define IRemoteDebugApplication_EnumThreads(This,pperdat) (This)->lpVtbl->EnumThreads(This,pperdat)
+#define IRemoteDebugApplication_GetName(This,pbstrName) (This)->lpVtbl->GetName(This,pbstrName)
+#define IRemoteDebugApplication_GetRootNode(This,ppdanRoot) (This)->lpVtbl->GetRootNode(This,ppdanRoot)
+#define IRemoteDebugApplication_EnumGlobalExpressionContexts(This,ppedec) (This)->lpVtbl->EnumGlobalExpressionContexts(This,ppedec)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRemoteDebugApplication_QueryInterface(IRemoteDebugApplication* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRemoteDebugApplication_AddRef(IRemoteDebugApplication* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRemoteDebugApplication_Release(IRemoteDebugApplication* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRemoteDebugApplication methods ***/
+static FORCEINLINE HRESULT IRemoteDebugApplication_ResumeFromBreakPoint(IRemoteDebugApplication* This,IRemoteDebugApplicationThread *prptFocus,BREAKRESUMEACTION bra,ERRORRESUMEACTION era) {
+    return This->lpVtbl->ResumeFromBreakPoint(This,prptFocus,bra,era);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplication_CauseBreak(IRemoteDebugApplication* This) {
+    return This->lpVtbl->CauseBreak(This);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplication_ConnectDebugger(IRemoteDebugApplication* This,IApplicationDebugger *pad) {
+    return This->lpVtbl->ConnectDebugger(This,pad);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplication_DisconnectDebugger(IRemoteDebugApplication* This) {
+    return This->lpVtbl->DisconnectDebugger(This);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplication_GetDebugger(IRemoteDebugApplication* This,IApplicationDebugger **pad) {
+    return This->lpVtbl->GetDebugger(This,pad);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplication_CreateInstanceAtApplication(IRemoteDebugApplication* This,REFCLSID rclsid,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,IUnknown **ppvObject) {
+    return This->lpVtbl->CreateInstanceAtApplication(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplication_QueryAlive(IRemoteDebugApplication* This) {
+    return This->lpVtbl->QueryAlive(This);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplication_EnumThreads(IRemoteDebugApplication* This,IEnumRemoteDebugApplicationThreads **pperdat) {
+    return This->lpVtbl->EnumThreads(This,pperdat);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplication_GetName(IRemoteDebugApplication* This,BSTR *pbstrName) {
+    return This->lpVtbl->GetName(This,pbstrName);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplication_GetRootNode(IRemoteDebugApplication* This,IDebugApplicationNode **ppdanRoot) {
+    return This->lpVtbl->GetRootNode(This,ppdanRoot);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplication_EnumGlobalExpressionContexts(IRemoteDebugApplication* This,IEnumDebugExpressionContexts **ppedec) {
+    return This->lpVtbl->EnumGlobalExpressionContexts(This,ppedec);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplication_ResumeFromBreakPoint_Proxy(
+    IRemoteDebugApplication* This,
+    IRemoteDebugApplicationThread *prptFocus,
+    BREAKRESUMEACTION bra,
+    ERRORRESUMEACTION era);
+void __RPC_STUB IRemoteDebugApplication_ResumeFromBreakPoint_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplication_CauseBreak_Proxy(
+    IRemoteDebugApplication* This);
+void __RPC_STUB IRemoteDebugApplication_CauseBreak_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplication_ConnectDebugger_Proxy(
+    IRemoteDebugApplication* This,
+    IApplicationDebugger *pad);
+void __RPC_STUB IRemoteDebugApplication_ConnectDebugger_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplication_DisconnectDebugger_Proxy(
+    IRemoteDebugApplication* This);
+void __RPC_STUB IRemoteDebugApplication_DisconnectDebugger_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplication_GetDebugger_Proxy(
+    IRemoteDebugApplication* This,
+    IApplicationDebugger **pad);
+void __RPC_STUB IRemoteDebugApplication_GetDebugger_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplication_CreateInstanceAtApplication_Proxy(
+    IRemoteDebugApplication* This,
+    REFCLSID rclsid,
+    IUnknown *pUnkOuter,
+    DWORD dwClsContext,
+    REFIID riid,
+    IUnknown **ppvObject);
+void __RPC_STUB IRemoteDebugApplication_CreateInstanceAtApplication_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplication_QueryAlive_Proxy(
+    IRemoteDebugApplication* This);
+void __RPC_STUB IRemoteDebugApplication_QueryAlive_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplication_EnumThreads_Proxy(
+    IRemoteDebugApplication* This,
+    IEnumRemoteDebugApplicationThreads **pperdat);
+void __RPC_STUB IRemoteDebugApplication_EnumThreads_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplication_GetName_Proxy(
+    IRemoteDebugApplication* This,
+    BSTR *pbstrName);
+void __RPC_STUB IRemoteDebugApplication_GetName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplication_GetRootNode_Proxy(
+    IRemoteDebugApplication* This,
+    IDebugApplicationNode **ppdanRoot);
+void __RPC_STUB IRemoteDebugApplication_GetRootNode_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplication_EnumGlobalExpressionContexts_Proxy(
+    IRemoteDebugApplication* This,
+    IEnumDebugExpressionContexts **ppedec);
+void __RPC_STUB IRemoteDebugApplication_EnumGlobalExpressionContexts_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IRemoteDebugApplication_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugApplication32 interface
+ */
+#ifndef __IDebugApplication32_INTERFACE_DEFINED__
+#define __IDebugApplication32_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugApplication32, 0x51973c32, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c32-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugApplication32 : public IRemoteDebugApplication
+{
+    virtual HRESULT STDMETHODCALLTYPE SetName(
+        LPCOLESTR pstrName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE StepOutComplete(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DebugOutput(
+        LPCOLESTR pstr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE StartDebugSession(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE HandleBreakPoint(
+        BREAKREASON br,
+        BREAKRESUMEACTION *pbra) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Close(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetBreakFlags(
+        APPBREAKFLAGS *pabf,
+        IRemoteDebugApplicationThread **pprdatSteppingThread) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetCurrentThread(
+        IDebugApplicationThread **pat) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateAsyncDebugOperation(
+        IDebugSyncOperation *psdo,
+        IDebugAsyncOperation **ppado) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddStackFrameSniffer(
+        IDebugStackFrameSniffer *pdsfs,
+        DWORD *pdwCookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveStackFrameSniffer(
+        DWORD dwCookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE QueryCurrentThreadIsDebuggerThread(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SynchronousCallInDebuggerThread(
+        IDebugThreadCall32 *pptc,
+        DWORD dwParam1,
+        DWORD dwParam2,
+        DWORD dwParam3) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateApplicationNode(
+        IDebugApplicationNode **ppdanNew) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE FireDebuggerEvent(
+        REFGUID riid,
+        IUnknown *punk) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE HandleRuntimeError(
+        IActiveScriptErrorDebug *pErrorDebug,
+        IActiveScriptSite *pScriptSite,
+        BREAKRESUMEACTION *pbra,
+        ERRORRESUMEACTION *perra,
+        WINBOOL *pfCallOnScriptError) = 0;
+
+    virtual WINBOOL STDMETHODCALLTYPE FCanJitDebug(
+        ) = 0;
+
+    virtual WINBOOL STDMETHODCALLTYPE FIsAutoJitDebugEnabled(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddGlobalExpressionContextProvider(
+        IProvideExpressionContexts *pdsfs,
+        DWORD *pdwCookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveGlobalExpressionContextProvider(
+        DWORD dwCookie) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugApplication32, 0x51973c32, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugApplication32Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugApplication32* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugApplication32* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugApplication32* This);
+
+    /*** IRemoteDebugApplication methods ***/
+    HRESULT (STDMETHODCALLTYPE *ResumeFromBreakPoint)(
+        IDebugApplication32* This,
+        IRemoteDebugApplicationThread *prptFocus,
+        BREAKRESUMEACTION bra,
+        ERRORRESUMEACTION era);
+
+    HRESULT (STDMETHODCALLTYPE *CauseBreak)(
+        IDebugApplication32* This);
+
+    HRESULT (STDMETHODCALLTYPE *ConnectDebugger)(
+        IDebugApplication32* This,
+        IApplicationDebugger *pad);
+
+    HRESULT (STDMETHODCALLTYPE *DisconnectDebugger)(
+        IDebugApplication32* This);
+
+    HRESULT (STDMETHODCALLTYPE *GetDebugger)(
+        IDebugApplication32* This,
+        IApplicationDebugger **pad);
+
+    HRESULT (STDMETHODCALLTYPE *CreateInstanceAtApplication)(
+        IDebugApplication32* This,
+        REFCLSID rclsid,
+        IUnknown *pUnkOuter,
+        DWORD dwClsContext,
+        REFIID riid,
+        IUnknown **ppvObject);
+
+    HRESULT (STDMETHODCALLTYPE *QueryAlive)(
+        IDebugApplication32* This);
+
+    HRESULT (STDMETHODCALLTYPE *EnumThreads)(
+        IDebugApplication32* This,
+        IEnumRemoteDebugApplicationThreads **pperdat);
+
+    HRESULT (STDMETHODCALLTYPE *GetName)(
+        IDebugApplication32* This,
+        BSTR *pbstrName);
+
+    HRESULT (STDMETHODCALLTYPE *GetRootNode)(
+        IDebugApplication32* This,
+        IDebugApplicationNode **ppdanRoot);
+
+    HRESULT (STDMETHODCALLTYPE *EnumGlobalExpressionContexts)(
+        IDebugApplication32* This,
+        IEnumDebugExpressionContexts **ppedec);
+
+    /*** IDebugApplication32 methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetName)(
+        IDebugApplication32* This,
+        LPCOLESTR pstrName);
+
+    HRESULT (STDMETHODCALLTYPE *StepOutComplete)(
+        IDebugApplication32* This);
+
+    HRESULT (STDMETHODCALLTYPE *DebugOutput)(
+        IDebugApplication32* This,
+        LPCOLESTR pstr);
+
+    HRESULT (STDMETHODCALLTYPE *StartDebugSession)(
+        IDebugApplication32* This);
+
+    HRESULT (STDMETHODCALLTYPE *HandleBreakPoint)(
+        IDebugApplication32* This,
+        BREAKREASON br,
+        BREAKRESUMEACTION *pbra);
+
+    HRESULT (STDMETHODCALLTYPE *Close)(
+        IDebugApplication32* This);
+
+    HRESULT (STDMETHODCALLTYPE *GetBreakFlags)(
+        IDebugApplication32* This,
+        APPBREAKFLAGS *pabf,
+        IRemoteDebugApplicationThread **pprdatSteppingThread);
+
+    HRESULT (STDMETHODCALLTYPE *GetCurrentThread)(
+        IDebugApplication32* This,
+        IDebugApplicationThread **pat);
+
+    HRESULT (STDMETHODCALLTYPE *CreateAsyncDebugOperation)(
+        IDebugApplication32* This,
+        IDebugSyncOperation *psdo,
+        IDebugAsyncOperation **ppado);
+
+    HRESULT (STDMETHODCALLTYPE *AddStackFrameSniffer)(
+        IDebugApplication32* This,
+        IDebugStackFrameSniffer *pdsfs,
+        DWORD *pdwCookie);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveStackFrameSniffer)(
+        IDebugApplication32* This,
+        DWORD dwCookie);
+
+    HRESULT (STDMETHODCALLTYPE *QueryCurrentThreadIsDebuggerThread)(
+        IDebugApplication32* This);
+
+    HRESULT (STDMETHODCALLTYPE *SynchronousCallInDebuggerThread)(
+        IDebugApplication32* This,
+        IDebugThreadCall32 *pptc,
+        DWORD dwParam1,
+        DWORD dwParam2,
+        DWORD dwParam3);
+
+    HRESULT (STDMETHODCALLTYPE *CreateApplicationNode)(
+        IDebugApplication32* This,
+        IDebugApplicationNode **ppdanNew);
+
+    HRESULT (STDMETHODCALLTYPE *FireDebuggerEvent)(
+        IDebugApplication32* This,
+        REFGUID riid,
+        IUnknown *punk);
+
+    HRESULT (STDMETHODCALLTYPE *HandleRuntimeError)(
+        IDebugApplication32* This,
+        IActiveScriptErrorDebug *pErrorDebug,
+        IActiveScriptSite *pScriptSite,
+        BREAKRESUMEACTION *pbra,
+        ERRORRESUMEACTION *perra,
+        WINBOOL *pfCallOnScriptError);
+
+    WINBOOL (STDMETHODCALLTYPE *FCanJitDebug)(
+        IDebugApplication32* This);
+
+    WINBOOL (STDMETHODCALLTYPE *FIsAutoJitDebugEnabled)(
+        IDebugApplication32* This);
+
+    HRESULT (STDMETHODCALLTYPE *AddGlobalExpressionContextProvider)(
+        IDebugApplication32* This,
+        IProvideExpressionContexts *pdsfs,
+        DWORD *pdwCookie);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveGlobalExpressionContextProvider)(
+        IDebugApplication32* This,
+        DWORD dwCookie);
+
+    END_INTERFACE
+} IDebugApplication32Vtbl;
+interface IDebugApplication32 {
+    CONST_VTBL IDebugApplication32Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugApplication32_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugApplication32_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugApplication32_Release(This) (This)->lpVtbl->Release(This)
+/*** IRemoteDebugApplication methods ***/
+#define IDebugApplication32_ResumeFromBreakPoint(This,prptFocus,bra,era) (This)->lpVtbl->ResumeFromBreakPoint(This,prptFocus,bra,era)
+#define IDebugApplication32_CauseBreak(This) (This)->lpVtbl->CauseBreak(This)
+#define IDebugApplication32_ConnectDebugger(This,pad) (This)->lpVtbl->ConnectDebugger(This,pad)
+#define IDebugApplication32_DisconnectDebugger(This) (This)->lpVtbl->DisconnectDebugger(This)
+#define IDebugApplication32_GetDebugger(This,pad) (This)->lpVtbl->GetDebugger(This,pad)
+#define IDebugApplication32_CreateInstanceAtApplication(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstanceAtApplication(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject)
+#define IDebugApplication32_QueryAlive(This) (This)->lpVtbl->QueryAlive(This)
+#define IDebugApplication32_EnumThreads(This,pperdat) (This)->lpVtbl->EnumThreads(This,pperdat)
+#define IDebugApplication32_GetName(This,pbstrName) (This)->lpVtbl->GetName(This,pbstrName)
+#define IDebugApplication32_GetRootNode(This,ppdanRoot) (This)->lpVtbl->GetRootNode(This,ppdanRoot)
+#define IDebugApplication32_EnumGlobalExpressionContexts(This,ppedec) (This)->lpVtbl->EnumGlobalExpressionContexts(This,ppedec)
+/*** IDebugApplication32 methods ***/
+#define IDebugApplication32_SetName(This,pstrName) (This)->lpVtbl->SetName(This,pstrName)
+#define IDebugApplication32_StepOutComplete(This) (This)->lpVtbl->StepOutComplete(This)
+#define IDebugApplication32_DebugOutput(This,pstr) (This)->lpVtbl->DebugOutput(This,pstr)
+#define IDebugApplication32_StartDebugSession(This) (This)->lpVtbl->StartDebugSession(This)
+#define IDebugApplication32_HandleBreakPoint(This,br,pbra) (This)->lpVtbl->HandleBreakPoint(This,br,pbra)
+#define IDebugApplication32_Close(This) (This)->lpVtbl->Close(This)
+#define IDebugApplication32_GetBreakFlags(This,pabf,pprdatSteppingThread) (This)->lpVtbl->GetBreakFlags(This,pabf,pprdatSteppingThread)
+#define IDebugApplication32_GetCurrentThread(This,pat) (This)->lpVtbl->GetCurrentThread(This,pat)
+#define IDebugApplication32_CreateAsyncDebugOperation(This,psdo,ppado) (This)->lpVtbl->CreateAsyncDebugOperation(This,psdo,ppado)
+#define IDebugApplication32_AddStackFrameSniffer(This,pdsfs,pdwCookie) (This)->lpVtbl->AddStackFrameSniffer(This,pdsfs,pdwCookie)
+#define IDebugApplication32_RemoveStackFrameSniffer(This,dwCookie) (This)->lpVtbl->RemoveStackFrameSniffer(This,dwCookie)
+#define IDebugApplication32_QueryCurrentThreadIsDebuggerThread(This) (This)->lpVtbl->QueryCurrentThreadIsDebuggerThread(This)
+#define IDebugApplication32_SynchronousCallInDebuggerThread(This,pptc,dwParam1,dwParam2,dwParam3) (This)->lpVtbl->SynchronousCallInDebuggerThread(This,pptc,dwParam1,dwParam2,dwParam3)
+#define IDebugApplication32_CreateApplicationNode(This,ppdanNew) (This)->lpVtbl->CreateApplicationNode(This,ppdanNew)
+#define IDebugApplication32_FireDebuggerEvent(This,riid,punk) (This)->lpVtbl->FireDebuggerEvent(This,riid,punk)
+#define IDebugApplication32_HandleRuntimeError(This,pErrorDebug,pScriptSite,pbra,perra,pfCallOnScriptError) (This)->lpVtbl->HandleRuntimeError(This,pErrorDebug,pScriptSite,pbra,perra,pfCallOnScriptError)
+#define IDebugApplication32_FCanJitDebug(This) (This)->lpVtbl->FCanJitDebug(This)
+#define IDebugApplication32_FIsAutoJitDebugEnabled(This) (This)->lpVtbl->FIsAutoJitDebugEnabled(This)
+#define IDebugApplication32_AddGlobalExpressionContextProvider(This,pdsfs,pdwCookie) (This)->lpVtbl->AddGlobalExpressionContextProvider(This,pdsfs,pdwCookie)
+#define IDebugApplication32_RemoveGlobalExpressionContextProvider(This,dwCookie) (This)->lpVtbl->RemoveGlobalExpressionContextProvider(This,dwCookie)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugApplication32_QueryInterface(IDebugApplication32* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugApplication32_AddRef(IDebugApplication32* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugApplication32_Release(IDebugApplication32* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRemoteDebugApplication methods ***/
+static FORCEINLINE HRESULT IDebugApplication32_ResumeFromBreakPoint(IDebugApplication32* This,IRemoteDebugApplicationThread *prptFocus,BREAKRESUMEACTION bra,ERRORRESUMEACTION era) {
+    return This->lpVtbl->ResumeFromBreakPoint(This,prptFocus,bra,era);
+}
+static FORCEINLINE HRESULT IDebugApplication32_CauseBreak(IDebugApplication32* This) {
+    return This->lpVtbl->CauseBreak(This);
+}
+static FORCEINLINE HRESULT IDebugApplication32_ConnectDebugger(IDebugApplication32* This,IApplicationDebugger *pad) {
+    return This->lpVtbl->ConnectDebugger(This,pad);
+}
+static FORCEINLINE HRESULT IDebugApplication32_DisconnectDebugger(IDebugApplication32* This) {
+    return This->lpVtbl->DisconnectDebugger(This);
+}
+static FORCEINLINE HRESULT IDebugApplication32_GetDebugger(IDebugApplication32* This,IApplicationDebugger **pad) {
+    return This->lpVtbl->GetDebugger(This,pad);
+}
+static FORCEINLINE HRESULT IDebugApplication32_CreateInstanceAtApplication(IDebugApplication32* This,REFCLSID rclsid,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,IUnknown **ppvObject) {
+    return This->lpVtbl->CreateInstanceAtApplication(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject);
+}
+static FORCEINLINE HRESULT IDebugApplication32_QueryAlive(IDebugApplication32* This) {
+    return This->lpVtbl->QueryAlive(This);
+}
+static FORCEINLINE HRESULT IDebugApplication32_EnumThreads(IDebugApplication32* This,IEnumRemoteDebugApplicationThreads **pperdat) {
+    return This->lpVtbl->EnumThreads(This,pperdat);
+}
+static FORCEINLINE HRESULT IDebugApplication32_GetName(IDebugApplication32* This,BSTR *pbstrName) {
+    return This->lpVtbl->GetName(This,pbstrName);
+}
+static FORCEINLINE HRESULT IDebugApplication32_GetRootNode(IDebugApplication32* This,IDebugApplicationNode **ppdanRoot) {
+    return This->lpVtbl->GetRootNode(This,ppdanRoot);
+}
+static FORCEINLINE HRESULT IDebugApplication32_EnumGlobalExpressionContexts(IDebugApplication32* This,IEnumDebugExpressionContexts **ppedec) {
+    return This->lpVtbl->EnumGlobalExpressionContexts(This,ppedec);
+}
+/*** IDebugApplication32 methods ***/
+static FORCEINLINE HRESULT IDebugApplication32_SetName(IDebugApplication32* This,LPCOLESTR pstrName) {
+    return This->lpVtbl->SetName(This,pstrName);
+}
+static FORCEINLINE HRESULT IDebugApplication32_StepOutComplete(IDebugApplication32* This) {
+    return This->lpVtbl->StepOutComplete(This);
+}
+static FORCEINLINE HRESULT IDebugApplication32_DebugOutput(IDebugApplication32* This,LPCOLESTR pstr) {
+    return This->lpVtbl->DebugOutput(This,pstr);
+}
+static FORCEINLINE HRESULT IDebugApplication32_StartDebugSession(IDebugApplication32* This) {
+    return This->lpVtbl->StartDebugSession(This);
+}
+static FORCEINLINE HRESULT IDebugApplication32_HandleBreakPoint(IDebugApplication32* This,BREAKREASON br,BREAKRESUMEACTION *pbra) {
+    return This->lpVtbl->HandleBreakPoint(This,br,pbra);
+}
+static FORCEINLINE HRESULT IDebugApplication32_Close(IDebugApplication32* This) {
+    return This->lpVtbl->Close(This);
+}
+static FORCEINLINE HRESULT IDebugApplication32_GetBreakFlags(IDebugApplication32* This,APPBREAKFLAGS *pabf,IRemoteDebugApplicationThread **pprdatSteppingThread) {
+    return This->lpVtbl->GetBreakFlags(This,pabf,pprdatSteppingThread);
+}
+static FORCEINLINE HRESULT IDebugApplication32_GetCurrentThread(IDebugApplication32* This,IDebugApplicationThread **pat) {
+    return This->lpVtbl->GetCurrentThread(This,pat);
+}
+static FORCEINLINE HRESULT IDebugApplication32_CreateAsyncDebugOperation(IDebugApplication32* This,IDebugSyncOperation *psdo,IDebugAsyncOperation **ppado) {
+    return This->lpVtbl->CreateAsyncDebugOperation(This,psdo,ppado);
+}
+static FORCEINLINE HRESULT IDebugApplication32_AddStackFrameSniffer(IDebugApplication32* This,IDebugStackFrameSniffer *pdsfs,DWORD *pdwCookie) {
+    return This->lpVtbl->AddStackFrameSniffer(This,pdsfs,pdwCookie);
+}
+static FORCEINLINE HRESULT IDebugApplication32_RemoveStackFrameSniffer(IDebugApplication32* This,DWORD dwCookie) {
+    return This->lpVtbl->RemoveStackFrameSniffer(This,dwCookie);
+}
+static FORCEINLINE HRESULT IDebugApplication32_QueryCurrentThreadIsDebuggerThread(IDebugApplication32* This) {
+    return This->lpVtbl->QueryCurrentThreadIsDebuggerThread(This);
+}
+static FORCEINLINE HRESULT IDebugApplication32_SynchronousCallInDebuggerThread(IDebugApplication32* This,IDebugThreadCall32 *pptc,DWORD dwParam1,DWORD dwParam2,DWORD dwParam3) {
+    return This->lpVtbl->SynchronousCallInDebuggerThread(This,pptc,dwParam1,dwParam2,dwParam3);
+}
+static FORCEINLINE HRESULT IDebugApplication32_CreateApplicationNode(IDebugApplication32* This,IDebugApplicationNode **ppdanNew) {
+    return This->lpVtbl->CreateApplicationNode(This,ppdanNew);
+}
+static FORCEINLINE HRESULT IDebugApplication32_FireDebuggerEvent(IDebugApplication32* This,REFGUID riid,IUnknown *punk) {
+    return This->lpVtbl->FireDebuggerEvent(This,riid,punk);
+}
+static FORCEINLINE HRESULT IDebugApplication32_HandleRuntimeError(IDebugApplication32* This,IActiveScriptErrorDebug *pErrorDebug,IActiveScriptSite *pScriptSite,BREAKRESUMEACTION *pbra,ERRORRESUMEACTION *perra,WINBOOL *pfCallOnScriptError) {
+    return This->lpVtbl->HandleRuntimeError(This,pErrorDebug,pScriptSite,pbra,perra,pfCallOnScriptError);
+}
+static FORCEINLINE WINBOOL IDebugApplication32_FCanJitDebug(IDebugApplication32* This) {
+    return This->lpVtbl->FCanJitDebug(This);
+}
+static FORCEINLINE WINBOOL IDebugApplication32_FIsAutoJitDebugEnabled(IDebugApplication32* This) {
+    return This->lpVtbl->FIsAutoJitDebugEnabled(This);
+}
+static FORCEINLINE HRESULT IDebugApplication32_AddGlobalExpressionContextProvider(IDebugApplication32* This,IProvideExpressionContexts *pdsfs,DWORD *pdwCookie) {
+    return This->lpVtbl->AddGlobalExpressionContextProvider(This,pdsfs,pdwCookie);
+}
+static FORCEINLINE HRESULT IDebugApplication32_RemoveGlobalExpressionContextProvider(IDebugApplication32* This,DWORD dwCookie) {
+    return This->lpVtbl->RemoveGlobalExpressionContextProvider(This,dwCookie);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugApplication32_SetName_Proxy(
+    IDebugApplication32* This,
+    LPCOLESTR pstrName);
+void __RPC_STUB IDebugApplication32_SetName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication32_StepOutComplete_Proxy(
+    IDebugApplication32* This);
+void __RPC_STUB IDebugApplication32_StepOutComplete_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication32_DebugOutput_Proxy(
+    IDebugApplication32* This,
+    LPCOLESTR pstr);
+void __RPC_STUB IDebugApplication32_DebugOutput_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication32_StartDebugSession_Proxy(
+    IDebugApplication32* This);
+void __RPC_STUB IDebugApplication32_StartDebugSession_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication32_HandleBreakPoint_Proxy(
+    IDebugApplication32* This,
+    BREAKREASON br,
+    BREAKRESUMEACTION *pbra);
+void __RPC_STUB IDebugApplication32_HandleBreakPoint_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication32_Close_Proxy(
+    IDebugApplication32* This);
+void __RPC_STUB IDebugApplication32_Close_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication32_GetBreakFlags_Proxy(
+    IDebugApplication32* This,
+    APPBREAKFLAGS *pabf,
+    IRemoteDebugApplicationThread **pprdatSteppingThread);
+void __RPC_STUB IDebugApplication32_GetBreakFlags_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication32_GetCurrentThread_Proxy(
+    IDebugApplication32* This,
+    IDebugApplicationThread **pat);
+void __RPC_STUB IDebugApplication32_GetCurrentThread_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication32_CreateAsyncDebugOperation_Proxy(
+    IDebugApplication32* This,
+    IDebugSyncOperation *psdo,
+    IDebugAsyncOperation **ppado);
+void __RPC_STUB IDebugApplication32_CreateAsyncDebugOperation_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication32_AddStackFrameSniffer_Proxy(
+    IDebugApplication32* This,
+    IDebugStackFrameSniffer *pdsfs,
+    DWORD *pdwCookie);
+void __RPC_STUB IDebugApplication32_AddStackFrameSniffer_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication32_RemoveStackFrameSniffer_Proxy(
+    IDebugApplication32* This,
+    DWORD dwCookie);
+void __RPC_STUB IDebugApplication32_RemoveStackFrameSniffer_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication32_QueryCurrentThreadIsDebuggerThread_Proxy(
+    IDebugApplication32* This);
+void __RPC_STUB IDebugApplication32_QueryCurrentThreadIsDebuggerThread_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication32_SynchronousCallInDebuggerThread_Proxy(
+    IDebugApplication32* This,
+    IDebugThreadCall32 *pptc,
+    DWORD dwParam1,
+    DWORD dwParam2,
+    DWORD dwParam3);
+void __RPC_STUB IDebugApplication32_SynchronousCallInDebuggerThread_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication32_CreateApplicationNode_Proxy(
+    IDebugApplication32* This,
+    IDebugApplicationNode **ppdanNew);
+void __RPC_STUB IDebugApplication32_CreateApplicationNode_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication32_FireDebuggerEvent_Proxy(
+    IDebugApplication32* This,
+    REFGUID riid,
+    IUnknown *punk);
+void __RPC_STUB IDebugApplication32_FireDebuggerEvent_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication32_HandleRuntimeError_Proxy(
+    IDebugApplication32* This,
+    IActiveScriptErrorDebug *pErrorDebug,
+    IActiveScriptSite *pScriptSite,
+    BREAKRESUMEACTION *pbra,
+    ERRORRESUMEACTION *perra,
+    WINBOOL *pfCallOnScriptError);
+void __RPC_STUB IDebugApplication32_HandleRuntimeError_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+WINBOOL STDMETHODCALLTYPE IDebugApplication32_FCanJitDebug_Proxy(
+    IDebugApplication32* This);
+void __RPC_STUB IDebugApplication32_FCanJitDebug_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+WINBOOL STDMETHODCALLTYPE IDebugApplication32_FIsAutoJitDebugEnabled_Proxy(
+    IDebugApplication32* This);
+void __RPC_STUB IDebugApplication32_FIsAutoJitDebugEnabled_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication32_AddGlobalExpressionContextProvider_Proxy(
+    IDebugApplication32* This,
+    IProvideExpressionContexts *pdsfs,
+    DWORD *pdwCookie);
+void __RPC_STUB IDebugApplication32_AddGlobalExpressionContextProvider_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication32_RemoveGlobalExpressionContextProvider_Proxy(
+    IDebugApplication32* This,
+    DWORD dwCookie);
+void __RPC_STUB IDebugApplication32_RemoveGlobalExpressionContextProvider_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugApplication32_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugApplication64 interface
+ */
+#ifndef __IDebugApplication64_INTERFACE_DEFINED__
+#define __IDebugApplication64_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugApplication64, 0x4dedc754, 0x04c7, 0x4f10, 0x9e,0x60, 0x16,0xa3,0x90,0xfe,0x6e,0x62);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("4dedc754-04c7-4f10-9e60-16a390fe6e62")
+IDebugApplication64 : public IRemoteDebugApplication
+{
+    virtual HRESULT STDMETHODCALLTYPE SetName(
+        LPCOLESTR pstrName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE StepOutComplete(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DebugOutput(
+        LPCOLESTR pstr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE StartDebugSession(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE HandleBreakPoint(
+        BREAKREASON br,
+        BREAKRESUMEACTION *pbra) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Close(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetBreakFlags(
+        APPBREAKFLAGS *pabf,
+        IRemoteDebugApplicationThread **pprdatSteppingThread) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetCurrentThread(
+        IDebugApplicationThread **pat) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateAsyncDebugOperation(
+        IDebugSyncOperation *psdo,
+        IDebugAsyncOperation **ppado) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddStackFrameSniffer(
+        IDebugStackFrameSniffer *pdsfs,
+        DWORD *pdwCookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveStackFrameSniffer(
+        DWORD dwCookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE QueryCurrentThreadIsDebuggerThread(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SynchronousCallInDebuggerThread(
+        IDebugThreadCall64 *pptc,
+        DWORDLONG dwParam1,
+        DWORDLONG dwParam2,
+        DWORDLONG dwParam3) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateApplicationNode(
+        IDebugApplicationNode **ppdanNew) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE FireDebuggerEvent(
+        REFGUID riid,
+        IUnknown *punk) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE HandleRuntimeError(
+        IActiveScriptErrorDebug *pErrorDebug,
+        IActiveScriptSite *pScriptSite,
+        BREAKRESUMEACTION *pbra,
+        ERRORRESUMEACTION *perra,
+        WINBOOL *pfCallOnScriptError) = 0;
+
+    virtual WINBOOL STDMETHODCALLTYPE FCanJitDebug(
+        ) = 0;
+
+    virtual WINBOOL STDMETHODCALLTYPE FIsAutoJitDebugEnabled(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddGlobalExpressionContextProvider(
+        IProvideExpressionContexts *pdsfs,
+        DWORDLONG *pdwCookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveGlobalExpressionContextProvider(
+        DWORDLONG dwCookie) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugApplication64, 0x4dedc754, 0x04c7, 0x4f10, 0x9e,0x60, 0x16,0xa3,0x90,0xfe,0x6e,0x62)
+#endif
+#else
+typedef struct IDebugApplication64Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugApplication64* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugApplication64* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugApplication64* This);
+
+    /*** IRemoteDebugApplication methods ***/
+    HRESULT (STDMETHODCALLTYPE *ResumeFromBreakPoint)(
+        IDebugApplication64* This,
+        IRemoteDebugApplicationThread *prptFocus,
+        BREAKRESUMEACTION bra,
+        ERRORRESUMEACTION era);
+
+    HRESULT (STDMETHODCALLTYPE *CauseBreak)(
+        IDebugApplication64* This);
+
+    HRESULT (STDMETHODCALLTYPE *ConnectDebugger)(
+        IDebugApplication64* This,
+        IApplicationDebugger *pad);
+
+    HRESULT (STDMETHODCALLTYPE *DisconnectDebugger)(
+        IDebugApplication64* This);
+
+    HRESULT (STDMETHODCALLTYPE *GetDebugger)(
+        IDebugApplication64* This,
+        IApplicationDebugger **pad);
+
+    HRESULT (STDMETHODCALLTYPE *CreateInstanceAtApplication)(
+        IDebugApplication64* This,
+        REFCLSID rclsid,
+        IUnknown *pUnkOuter,
+        DWORD dwClsContext,
+        REFIID riid,
+        IUnknown **ppvObject);
+
+    HRESULT (STDMETHODCALLTYPE *QueryAlive)(
+        IDebugApplication64* This);
+
+    HRESULT (STDMETHODCALLTYPE *EnumThreads)(
+        IDebugApplication64* This,
+        IEnumRemoteDebugApplicationThreads **pperdat);
+
+    HRESULT (STDMETHODCALLTYPE *GetName)(
+        IDebugApplication64* This,
+        BSTR *pbstrName);
+
+    HRESULT (STDMETHODCALLTYPE *GetRootNode)(
+        IDebugApplication64* This,
+        IDebugApplicationNode **ppdanRoot);
+
+    HRESULT (STDMETHODCALLTYPE *EnumGlobalExpressionContexts)(
+        IDebugApplication64* This,
+        IEnumDebugExpressionContexts **ppedec);
+
+    /*** IDebugApplication64 methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetName)(
+        IDebugApplication64* This,
+        LPCOLESTR pstrName);
+
+    HRESULT (STDMETHODCALLTYPE *StepOutComplete)(
+        IDebugApplication64* This);
+
+    HRESULT (STDMETHODCALLTYPE *DebugOutput)(
+        IDebugApplication64* This,
+        LPCOLESTR pstr);
+
+    HRESULT (STDMETHODCALLTYPE *StartDebugSession)(
+        IDebugApplication64* This);
+
+    HRESULT (STDMETHODCALLTYPE *HandleBreakPoint)(
+        IDebugApplication64* This,
+        BREAKREASON br,
+        BREAKRESUMEACTION *pbra);
+
+    HRESULT (STDMETHODCALLTYPE *Close)(
+        IDebugApplication64* This);
+
+    HRESULT (STDMETHODCALLTYPE *GetBreakFlags)(
+        IDebugApplication64* This,
+        APPBREAKFLAGS *pabf,
+        IRemoteDebugApplicationThread **pprdatSteppingThread);
+
+    HRESULT (STDMETHODCALLTYPE *GetCurrentThread)(
+        IDebugApplication64* This,
+        IDebugApplicationThread **pat);
+
+    HRESULT (STDMETHODCALLTYPE *CreateAsyncDebugOperation)(
+        IDebugApplication64* This,
+        IDebugSyncOperation *psdo,
+        IDebugAsyncOperation **ppado);
+
+    HRESULT (STDMETHODCALLTYPE *AddStackFrameSniffer)(
+        IDebugApplication64* This,
+        IDebugStackFrameSniffer *pdsfs,
+        DWORD *pdwCookie);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveStackFrameSniffer)(
+        IDebugApplication64* This,
+        DWORD dwCookie);
+
+    HRESULT (STDMETHODCALLTYPE *QueryCurrentThreadIsDebuggerThread)(
+        IDebugApplication64* This);
+
+    HRESULT (STDMETHODCALLTYPE *SynchronousCallInDebuggerThread)(
+        IDebugApplication64* This,
+        IDebugThreadCall64 *pptc,
+        DWORDLONG dwParam1,
+        DWORDLONG dwParam2,
+        DWORDLONG dwParam3);
+
+    HRESULT (STDMETHODCALLTYPE *CreateApplicationNode)(
+        IDebugApplication64* This,
+        IDebugApplicationNode **ppdanNew);
+
+    HRESULT (STDMETHODCALLTYPE *FireDebuggerEvent)(
+        IDebugApplication64* This,
+        REFGUID riid,
+        IUnknown *punk);
+
+    HRESULT (STDMETHODCALLTYPE *HandleRuntimeError)(
+        IDebugApplication64* This,
+        IActiveScriptErrorDebug *pErrorDebug,
+        IActiveScriptSite *pScriptSite,
+        BREAKRESUMEACTION *pbra,
+        ERRORRESUMEACTION *perra,
+        WINBOOL *pfCallOnScriptError);
+
+    WINBOOL (STDMETHODCALLTYPE *FCanJitDebug)(
+        IDebugApplication64* This);
+
+    WINBOOL (STDMETHODCALLTYPE *FIsAutoJitDebugEnabled)(
+        IDebugApplication64* This);
+
+    HRESULT (STDMETHODCALLTYPE *AddGlobalExpressionContextProvider)(
+        IDebugApplication64* This,
+        IProvideExpressionContexts *pdsfs,
+        DWORDLONG *pdwCookie);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveGlobalExpressionContextProvider)(
+        IDebugApplication64* This,
+        DWORDLONG dwCookie);
+
+    END_INTERFACE
+} IDebugApplication64Vtbl;
+interface IDebugApplication64 {
+    CONST_VTBL IDebugApplication64Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugApplication64_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugApplication64_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugApplication64_Release(This) (This)->lpVtbl->Release(This)
+/*** IRemoteDebugApplication methods ***/
+#define IDebugApplication64_ResumeFromBreakPoint(This,prptFocus,bra,era) (This)->lpVtbl->ResumeFromBreakPoint(This,prptFocus,bra,era)
+#define IDebugApplication64_CauseBreak(This) (This)->lpVtbl->CauseBreak(This)
+#define IDebugApplication64_ConnectDebugger(This,pad) (This)->lpVtbl->ConnectDebugger(This,pad)
+#define IDebugApplication64_DisconnectDebugger(This) (This)->lpVtbl->DisconnectDebugger(This)
+#define IDebugApplication64_GetDebugger(This,pad) (This)->lpVtbl->GetDebugger(This,pad)
+#define IDebugApplication64_CreateInstanceAtApplication(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstanceAtApplication(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject)
+#define IDebugApplication64_QueryAlive(This) (This)->lpVtbl->QueryAlive(This)
+#define IDebugApplication64_EnumThreads(This,pperdat) (This)->lpVtbl->EnumThreads(This,pperdat)
+#define IDebugApplication64_GetName(This,pbstrName) (This)->lpVtbl->GetName(This,pbstrName)
+#define IDebugApplication64_GetRootNode(This,ppdanRoot) (This)->lpVtbl->GetRootNode(This,ppdanRoot)
+#define IDebugApplication64_EnumGlobalExpressionContexts(This,ppedec) (This)->lpVtbl->EnumGlobalExpressionContexts(This,ppedec)
+/*** IDebugApplication64 methods ***/
+#define IDebugApplication64_SetName(This,pstrName) (This)->lpVtbl->SetName(This,pstrName)
+#define IDebugApplication64_StepOutComplete(This) (This)->lpVtbl->StepOutComplete(This)
+#define IDebugApplication64_DebugOutput(This,pstr) (This)->lpVtbl->DebugOutput(This,pstr)
+#define IDebugApplication64_StartDebugSession(This) (This)->lpVtbl->StartDebugSession(This)
+#define IDebugApplication64_HandleBreakPoint(This,br,pbra) (This)->lpVtbl->HandleBreakPoint(This,br,pbra)
+#define IDebugApplication64_Close(This) (This)->lpVtbl->Close(This)
+#define IDebugApplication64_GetBreakFlags(This,pabf,pprdatSteppingThread) (This)->lpVtbl->GetBreakFlags(This,pabf,pprdatSteppingThread)
+#define IDebugApplication64_GetCurrentThread(This,pat) (This)->lpVtbl->GetCurrentThread(This,pat)
+#define IDebugApplication64_CreateAsyncDebugOperation(This,psdo,ppado) (This)->lpVtbl->CreateAsyncDebugOperation(This,psdo,ppado)
+#define IDebugApplication64_AddStackFrameSniffer(This,pdsfs,pdwCookie) (This)->lpVtbl->AddStackFrameSniffer(This,pdsfs,pdwCookie)
+#define IDebugApplication64_RemoveStackFrameSniffer(This,dwCookie) (This)->lpVtbl->RemoveStackFrameSniffer(This,dwCookie)
+#define IDebugApplication64_QueryCurrentThreadIsDebuggerThread(This) (This)->lpVtbl->QueryCurrentThreadIsDebuggerThread(This)
+#define IDebugApplication64_SynchronousCallInDebuggerThread(This,pptc,dwParam1,dwParam2,dwParam3) (This)->lpVtbl->SynchronousCallInDebuggerThread(This,pptc,dwParam1,dwParam2,dwParam3)
+#define IDebugApplication64_CreateApplicationNode(This,ppdanNew) (This)->lpVtbl->CreateApplicationNode(This,ppdanNew)
+#define IDebugApplication64_FireDebuggerEvent(This,riid,punk) (This)->lpVtbl->FireDebuggerEvent(This,riid,punk)
+#define IDebugApplication64_HandleRuntimeError(This,pErrorDebug,pScriptSite,pbra,perra,pfCallOnScriptError) (This)->lpVtbl->HandleRuntimeError(This,pErrorDebug,pScriptSite,pbra,perra,pfCallOnScriptError)
+#define IDebugApplication64_FCanJitDebug(This) (This)->lpVtbl->FCanJitDebug(This)
+#define IDebugApplication64_FIsAutoJitDebugEnabled(This) (This)->lpVtbl->FIsAutoJitDebugEnabled(This)
+#define IDebugApplication64_AddGlobalExpressionContextProvider(This,pdsfs,pdwCookie) (This)->lpVtbl->AddGlobalExpressionContextProvider(This,pdsfs,pdwCookie)
+#define IDebugApplication64_RemoveGlobalExpressionContextProvider(This,dwCookie) (This)->lpVtbl->RemoveGlobalExpressionContextProvider(This,dwCookie)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugApplication64_QueryInterface(IDebugApplication64* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugApplication64_AddRef(IDebugApplication64* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugApplication64_Release(IDebugApplication64* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRemoteDebugApplication methods ***/
+static FORCEINLINE HRESULT IDebugApplication64_ResumeFromBreakPoint(IDebugApplication64* This,IRemoteDebugApplicationThread *prptFocus,BREAKRESUMEACTION bra,ERRORRESUMEACTION era) {
+    return This->lpVtbl->ResumeFromBreakPoint(This,prptFocus,bra,era);
+}
+static FORCEINLINE HRESULT IDebugApplication64_CauseBreak(IDebugApplication64* This) {
+    return This->lpVtbl->CauseBreak(This);
+}
+static FORCEINLINE HRESULT IDebugApplication64_ConnectDebugger(IDebugApplication64* This,IApplicationDebugger *pad) {
+    return This->lpVtbl->ConnectDebugger(This,pad);
+}
+static FORCEINLINE HRESULT IDebugApplication64_DisconnectDebugger(IDebugApplication64* This) {
+    return This->lpVtbl->DisconnectDebugger(This);
+}
+static FORCEINLINE HRESULT IDebugApplication64_GetDebugger(IDebugApplication64* This,IApplicationDebugger **pad) {
+    return This->lpVtbl->GetDebugger(This,pad);
+}
+static FORCEINLINE HRESULT IDebugApplication64_CreateInstanceAtApplication(IDebugApplication64* This,REFCLSID rclsid,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,IUnknown **ppvObject) {
+    return This->lpVtbl->CreateInstanceAtApplication(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject);
+}
+static FORCEINLINE HRESULT IDebugApplication64_QueryAlive(IDebugApplication64* This) {
+    return This->lpVtbl->QueryAlive(This);
+}
+static FORCEINLINE HRESULT IDebugApplication64_EnumThreads(IDebugApplication64* This,IEnumRemoteDebugApplicationThreads **pperdat) {
+    return This->lpVtbl->EnumThreads(This,pperdat);
+}
+static FORCEINLINE HRESULT IDebugApplication64_GetName(IDebugApplication64* This,BSTR *pbstrName) {
+    return This->lpVtbl->GetName(This,pbstrName);
+}
+static FORCEINLINE HRESULT IDebugApplication64_GetRootNode(IDebugApplication64* This,IDebugApplicationNode **ppdanRoot) {
+    return This->lpVtbl->GetRootNode(This,ppdanRoot);
+}
+static FORCEINLINE HRESULT IDebugApplication64_EnumGlobalExpressionContexts(IDebugApplication64* This,IEnumDebugExpressionContexts **ppedec) {
+    return This->lpVtbl->EnumGlobalExpressionContexts(This,ppedec);
+}
+/*** IDebugApplication64 methods ***/
+static FORCEINLINE HRESULT IDebugApplication64_SetName(IDebugApplication64* This,LPCOLESTR pstrName) {
+    return This->lpVtbl->SetName(This,pstrName);
+}
+static FORCEINLINE HRESULT IDebugApplication64_StepOutComplete(IDebugApplication64* This) {
+    return This->lpVtbl->StepOutComplete(This);
+}
+static FORCEINLINE HRESULT IDebugApplication64_DebugOutput(IDebugApplication64* This,LPCOLESTR pstr) {
+    return This->lpVtbl->DebugOutput(This,pstr);
+}
+static FORCEINLINE HRESULT IDebugApplication64_StartDebugSession(IDebugApplication64* This) {
+    return This->lpVtbl->StartDebugSession(This);
+}
+static FORCEINLINE HRESULT IDebugApplication64_HandleBreakPoint(IDebugApplication64* This,BREAKREASON br,BREAKRESUMEACTION *pbra) {
+    return This->lpVtbl->HandleBreakPoint(This,br,pbra);
+}
+static FORCEINLINE HRESULT IDebugApplication64_Close(IDebugApplication64* This) {
+    return This->lpVtbl->Close(This);
+}
+static FORCEINLINE HRESULT IDebugApplication64_GetBreakFlags(IDebugApplication64* This,APPBREAKFLAGS *pabf,IRemoteDebugApplicationThread **pprdatSteppingThread) {
+    return This->lpVtbl->GetBreakFlags(This,pabf,pprdatSteppingThread);
+}
+static FORCEINLINE HRESULT IDebugApplication64_GetCurrentThread(IDebugApplication64* This,IDebugApplicationThread **pat) {
+    return This->lpVtbl->GetCurrentThread(This,pat);
+}
+static FORCEINLINE HRESULT IDebugApplication64_CreateAsyncDebugOperation(IDebugApplication64* This,IDebugSyncOperation *psdo,IDebugAsyncOperation **ppado) {
+    return This->lpVtbl->CreateAsyncDebugOperation(This,psdo,ppado);
+}
+static FORCEINLINE HRESULT IDebugApplication64_AddStackFrameSniffer(IDebugApplication64* This,IDebugStackFrameSniffer *pdsfs,DWORD *pdwCookie) {
+    return This->lpVtbl->AddStackFrameSniffer(This,pdsfs,pdwCookie);
+}
+static FORCEINLINE HRESULT IDebugApplication64_RemoveStackFrameSniffer(IDebugApplication64* This,DWORD dwCookie) {
+    return This->lpVtbl->RemoveStackFrameSniffer(This,dwCookie);
+}
+static FORCEINLINE HRESULT IDebugApplication64_QueryCurrentThreadIsDebuggerThread(IDebugApplication64* This) {
+    return This->lpVtbl->QueryCurrentThreadIsDebuggerThread(This);
+}
+static FORCEINLINE HRESULT IDebugApplication64_SynchronousCallInDebuggerThread(IDebugApplication64* This,IDebugThreadCall64 *pptc,DWORDLONG dwParam1,DWORDLONG dwParam2,DWORDLONG dwParam3) {
+    return This->lpVtbl->SynchronousCallInDebuggerThread(This,pptc,dwParam1,dwParam2,dwParam3);
+}
+static FORCEINLINE HRESULT IDebugApplication64_CreateApplicationNode(IDebugApplication64* This,IDebugApplicationNode **ppdanNew) {
+    return This->lpVtbl->CreateApplicationNode(This,ppdanNew);
+}
+static FORCEINLINE HRESULT IDebugApplication64_FireDebuggerEvent(IDebugApplication64* This,REFGUID riid,IUnknown *punk) {
+    return This->lpVtbl->FireDebuggerEvent(This,riid,punk);
+}
+static FORCEINLINE HRESULT IDebugApplication64_HandleRuntimeError(IDebugApplication64* This,IActiveScriptErrorDebug *pErrorDebug,IActiveScriptSite *pScriptSite,BREAKRESUMEACTION *pbra,ERRORRESUMEACTION *perra,WINBOOL *pfCallOnScriptError) {
+    return This->lpVtbl->HandleRuntimeError(This,pErrorDebug,pScriptSite,pbra,perra,pfCallOnScriptError);
+}
+static FORCEINLINE WINBOOL IDebugApplication64_FCanJitDebug(IDebugApplication64* This) {
+    return This->lpVtbl->FCanJitDebug(This);
+}
+static FORCEINLINE WINBOOL IDebugApplication64_FIsAutoJitDebugEnabled(IDebugApplication64* This) {
+    return This->lpVtbl->FIsAutoJitDebugEnabled(This);
+}
+static FORCEINLINE HRESULT IDebugApplication64_AddGlobalExpressionContextProvider(IDebugApplication64* This,IProvideExpressionContexts *pdsfs,DWORDLONG *pdwCookie) {
+    return This->lpVtbl->AddGlobalExpressionContextProvider(This,pdsfs,pdwCookie);
+}
+static FORCEINLINE HRESULT IDebugApplication64_RemoveGlobalExpressionContextProvider(IDebugApplication64* This,DWORDLONG dwCookie) {
+    return This->lpVtbl->RemoveGlobalExpressionContextProvider(This,dwCookie);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugApplication64_SetName_Proxy(
+    IDebugApplication64* This,
+    LPCOLESTR pstrName);
+void __RPC_STUB IDebugApplication64_SetName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication64_StepOutComplete_Proxy(
+    IDebugApplication64* This);
+void __RPC_STUB IDebugApplication64_StepOutComplete_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication64_DebugOutput_Proxy(
+    IDebugApplication64* This,
+    LPCOLESTR pstr);
+void __RPC_STUB IDebugApplication64_DebugOutput_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication64_StartDebugSession_Proxy(
+    IDebugApplication64* This);
+void __RPC_STUB IDebugApplication64_StartDebugSession_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication64_HandleBreakPoint_Proxy(
+    IDebugApplication64* This,
+    BREAKREASON br,
+    BREAKRESUMEACTION *pbra);
+void __RPC_STUB IDebugApplication64_HandleBreakPoint_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication64_Close_Proxy(
+    IDebugApplication64* This);
+void __RPC_STUB IDebugApplication64_Close_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication64_GetBreakFlags_Proxy(
+    IDebugApplication64* This,
+    APPBREAKFLAGS *pabf,
+    IRemoteDebugApplicationThread **pprdatSteppingThread);
+void __RPC_STUB IDebugApplication64_GetBreakFlags_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication64_GetCurrentThread_Proxy(
+    IDebugApplication64* This,
+    IDebugApplicationThread **pat);
+void __RPC_STUB IDebugApplication64_GetCurrentThread_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication64_CreateAsyncDebugOperation_Proxy(
+    IDebugApplication64* This,
+    IDebugSyncOperation *psdo,
+    IDebugAsyncOperation **ppado);
+void __RPC_STUB IDebugApplication64_CreateAsyncDebugOperation_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication64_AddStackFrameSniffer_Proxy(
+    IDebugApplication64* This,
+    IDebugStackFrameSniffer *pdsfs,
+    DWORD *pdwCookie);
+void __RPC_STUB IDebugApplication64_AddStackFrameSniffer_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication64_RemoveStackFrameSniffer_Proxy(
+    IDebugApplication64* This,
+    DWORD dwCookie);
+void __RPC_STUB IDebugApplication64_RemoveStackFrameSniffer_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication64_QueryCurrentThreadIsDebuggerThread_Proxy(
+    IDebugApplication64* This);
+void __RPC_STUB IDebugApplication64_QueryCurrentThreadIsDebuggerThread_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication64_SynchronousCallInDebuggerThread_Proxy(
+    IDebugApplication64* This,
+    IDebugThreadCall64 *pptc,
+    DWORDLONG dwParam1,
+    DWORDLONG dwParam2,
+    DWORDLONG dwParam3);
+void __RPC_STUB IDebugApplication64_SynchronousCallInDebuggerThread_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication64_CreateApplicationNode_Proxy(
+    IDebugApplication64* This,
+    IDebugApplicationNode **ppdanNew);
+void __RPC_STUB IDebugApplication64_CreateApplicationNode_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication64_FireDebuggerEvent_Proxy(
+    IDebugApplication64* This,
+    REFGUID riid,
+    IUnknown *punk);
+void __RPC_STUB IDebugApplication64_FireDebuggerEvent_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication64_HandleRuntimeError_Proxy(
+    IDebugApplication64* This,
+    IActiveScriptErrorDebug *pErrorDebug,
+    IActiveScriptSite *pScriptSite,
+    BREAKRESUMEACTION *pbra,
+    ERRORRESUMEACTION *perra,
+    WINBOOL *pfCallOnScriptError);
+void __RPC_STUB IDebugApplication64_HandleRuntimeError_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+WINBOOL STDMETHODCALLTYPE IDebugApplication64_FCanJitDebug_Proxy(
+    IDebugApplication64* This);
+void __RPC_STUB IDebugApplication64_FCanJitDebug_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+WINBOOL STDMETHODCALLTYPE IDebugApplication64_FIsAutoJitDebugEnabled_Proxy(
+    IDebugApplication64* This);
+void __RPC_STUB IDebugApplication64_FIsAutoJitDebugEnabled_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication64_AddGlobalExpressionContextProvider_Proxy(
+    IDebugApplication64* This,
+    IProvideExpressionContexts *pdsfs,
+    DWORDLONG *pdwCookie);
+void __RPC_STUB IDebugApplication64_AddGlobalExpressionContextProvider_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication64_RemoveGlobalExpressionContextProvider_Proxy(
+    IDebugApplication64* This,
+    DWORDLONG dwCookie);
+void __RPC_STUB IDebugApplication64_RemoveGlobalExpressionContextProvider_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugApplication64_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRemoteDebugApplicationEvents interface
+ */
+#ifndef __IRemoteDebugApplicationEvents_INTERFACE_DEFINED__
+#define __IRemoteDebugApplicationEvents_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRemoteDebugApplicationEvents, 0x51973c33, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c33-cb0c-11d0-b5c9-00a0244a0e7a")
+IRemoteDebugApplicationEvents : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE OnConnectDebugger(
+        IApplicationDebugger *pad) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnDisconnectDebugger(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnSetName(
+        LPCOLESTR pstrName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnDebugOutput(
+        LPCOLESTR pstr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnClose(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnEnterBreakPoint(
+        IRemoteDebugApplicationThread *prdat) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnLeaveBreakPoint(
+        IRemoteDebugApplicationThread *prdat) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnCreateThread(
+        IRemoteDebugApplicationThread *prdat) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnDestroyThread(
+        IRemoteDebugApplicationThread *prdat) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnBreakFlagChange(
+        APPBREAKFLAGS abf,
+        IRemoteDebugApplicationThread *prdatSteppingThread) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRemoteDebugApplicationEvents, 0x51973c33, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IRemoteDebugApplicationEventsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRemoteDebugApplicationEvents* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRemoteDebugApplicationEvents* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRemoteDebugApplicationEvents* This);
+
+    /*** IRemoteDebugApplicationEvents methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnConnectDebugger)(
+        IRemoteDebugApplicationEvents* This,
+        IApplicationDebugger *pad);
+
+    HRESULT (STDMETHODCALLTYPE *OnDisconnectDebugger)(
+        IRemoteDebugApplicationEvents* This);
+
+    HRESULT (STDMETHODCALLTYPE *OnSetName)(
+        IRemoteDebugApplicationEvents* This,
+        LPCOLESTR pstrName);
+
+    HRESULT (STDMETHODCALLTYPE *OnDebugOutput)(
+        IRemoteDebugApplicationEvents* This,
+        LPCOLESTR pstr);
+
+    HRESULT (STDMETHODCALLTYPE *OnClose)(
+        IRemoteDebugApplicationEvents* This);
+
+    HRESULT (STDMETHODCALLTYPE *OnEnterBreakPoint)(
+        IRemoteDebugApplicationEvents* This,
+        IRemoteDebugApplicationThread *prdat);
+
+    HRESULT (STDMETHODCALLTYPE *OnLeaveBreakPoint)(
+        IRemoteDebugApplicationEvents* This,
+        IRemoteDebugApplicationThread *prdat);
+
+    HRESULT (STDMETHODCALLTYPE *OnCreateThread)(
+        IRemoteDebugApplicationEvents* This,
+        IRemoteDebugApplicationThread *prdat);
+
+    HRESULT (STDMETHODCALLTYPE *OnDestroyThread)(
+        IRemoteDebugApplicationEvents* This,
+        IRemoteDebugApplicationThread *prdat);
+
+    HRESULT (STDMETHODCALLTYPE *OnBreakFlagChange)(
+        IRemoteDebugApplicationEvents* This,
+        APPBREAKFLAGS abf,
+        IRemoteDebugApplicationThread *prdatSteppingThread);
+
+    END_INTERFACE
+} IRemoteDebugApplicationEventsVtbl;
+interface IRemoteDebugApplicationEvents {
+    CONST_VTBL IRemoteDebugApplicationEventsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRemoteDebugApplicationEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRemoteDebugApplicationEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRemoteDebugApplicationEvents_Release(This) (This)->lpVtbl->Release(This)
+/*** IRemoteDebugApplicationEvents methods ***/
+#define IRemoteDebugApplicationEvents_OnConnectDebugger(This,pad) (This)->lpVtbl->OnConnectDebugger(This,pad)
+#define IRemoteDebugApplicationEvents_OnDisconnectDebugger(This) (This)->lpVtbl->OnDisconnectDebugger(This)
+#define IRemoteDebugApplicationEvents_OnSetName(This,pstrName) (This)->lpVtbl->OnSetName(This,pstrName)
+#define IRemoteDebugApplicationEvents_OnDebugOutput(This,pstr) (This)->lpVtbl->OnDebugOutput(This,pstr)
+#define IRemoteDebugApplicationEvents_OnClose(This) (This)->lpVtbl->OnClose(This)
+#define IRemoteDebugApplicationEvents_OnEnterBreakPoint(This,prdat) (This)->lpVtbl->OnEnterBreakPoint(This,prdat)
+#define IRemoteDebugApplicationEvents_OnLeaveBreakPoint(This,prdat) (This)->lpVtbl->OnLeaveBreakPoint(This,prdat)
+#define IRemoteDebugApplicationEvents_OnCreateThread(This,prdat) (This)->lpVtbl->OnCreateThread(This,prdat)
+#define IRemoteDebugApplicationEvents_OnDestroyThread(This,prdat) (This)->lpVtbl->OnDestroyThread(This,prdat)
+#define IRemoteDebugApplicationEvents_OnBreakFlagChange(This,abf,prdatSteppingThread) (This)->lpVtbl->OnBreakFlagChange(This,abf,prdatSteppingThread)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRemoteDebugApplicationEvents_QueryInterface(IRemoteDebugApplicationEvents* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRemoteDebugApplicationEvents_AddRef(IRemoteDebugApplicationEvents* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRemoteDebugApplicationEvents_Release(IRemoteDebugApplicationEvents* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRemoteDebugApplicationEvents methods ***/
+static FORCEINLINE HRESULT IRemoteDebugApplicationEvents_OnConnectDebugger(IRemoteDebugApplicationEvents* This,IApplicationDebugger *pad) {
+    return This->lpVtbl->OnConnectDebugger(This,pad);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplicationEvents_OnDisconnectDebugger(IRemoteDebugApplicationEvents* This) {
+    return This->lpVtbl->OnDisconnectDebugger(This);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplicationEvents_OnSetName(IRemoteDebugApplicationEvents* This,LPCOLESTR pstrName) {
+    return This->lpVtbl->OnSetName(This,pstrName);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplicationEvents_OnDebugOutput(IRemoteDebugApplicationEvents* This,LPCOLESTR pstr) {
+    return This->lpVtbl->OnDebugOutput(This,pstr);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplicationEvents_OnClose(IRemoteDebugApplicationEvents* This) {
+    return This->lpVtbl->OnClose(This);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplicationEvents_OnEnterBreakPoint(IRemoteDebugApplicationEvents* This,IRemoteDebugApplicationThread *prdat) {
+    return This->lpVtbl->OnEnterBreakPoint(This,prdat);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplicationEvents_OnLeaveBreakPoint(IRemoteDebugApplicationEvents* This,IRemoteDebugApplicationThread *prdat) {
+    return This->lpVtbl->OnLeaveBreakPoint(This,prdat);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplicationEvents_OnCreateThread(IRemoteDebugApplicationEvents* This,IRemoteDebugApplicationThread *prdat) {
+    return This->lpVtbl->OnCreateThread(This,prdat);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplicationEvents_OnDestroyThread(IRemoteDebugApplicationEvents* This,IRemoteDebugApplicationThread *prdat) {
+    return This->lpVtbl->OnDestroyThread(This,prdat);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplicationEvents_OnBreakFlagChange(IRemoteDebugApplicationEvents* This,APPBREAKFLAGS abf,IRemoteDebugApplicationThread *prdatSteppingThread) {
+    return This->lpVtbl->OnBreakFlagChange(This,abf,prdatSteppingThread);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplicationEvents_OnConnectDebugger_Proxy(
+    IRemoteDebugApplicationEvents* This,
+    IApplicationDebugger *pad);
+void __RPC_STUB IRemoteDebugApplicationEvents_OnConnectDebugger_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplicationEvents_OnDisconnectDebugger_Proxy(
+    IRemoteDebugApplicationEvents* This);
+void __RPC_STUB IRemoteDebugApplicationEvents_OnDisconnectDebugger_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplicationEvents_OnSetName_Proxy(
+    IRemoteDebugApplicationEvents* This,
+    LPCOLESTR pstrName);
+void __RPC_STUB IRemoteDebugApplicationEvents_OnSetName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplicationEvents_OnDebugOutput_Proxy(
+    IRemoteDebugApplicationEvents* This,
+    LPCOLESTR pstr);
+void __RPC_STUB IRemoteDebugApplicationEvents_OnDebugOutput_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplicationEvents_OnClose_Proxy(
+    IRemoteDebugApplicationEvents* This);
+void __RPC_STUB IRemoteDebugApplicationEvents_OnClose_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplicationEvents_OnEnterBreakPoint_Proxy(
+    IRemoteDebugApplicationEvents* This,
+    IRemoteDebugApplicationThread *prdat);
+void __RPC_STUB IRemoteDebugApplicationEvents_OnEnterBreakPoint_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplicationEvents_OnLeaveBreakPoint_Proxy(
+    IRemoteDebugApplicationEvents* This,
+    IRemoteDebugApplicationThread *prdat);
+void __RPC_STUB IRemoteDebugApplicationEvents_OnLeaveBreakPoint_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplicationEvents_OnCreateThread_Proxy(
+    IRemoteDebugApplicationEvents* This,
+    IRemoteDebugApplicationThread *prdat);
+void __RPC_STUB IRemoteDebugApplicationEvents_OnCreateThread_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplicationEvents_OnDestroyThread_Proxy(
+    IRemoteDebugApplicationEvents* This,
+    IRemoteDebugApplicationThread *prdat);
+void __RPC_STUB IRemoteDebugApplicationEvents_OnDestroyThread_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplicationEvents_OnBreakFlagChange_Proxy(
+    IRemoteDebugApplicationEvents* This,
+    APPBREAKFLAGS abf,
+    IRemoteDebugApplicationThread *prdatSteppingThread);
+void __RPC_STUB IRemoteDebugApplicationEvents_OnBreakFlagChange_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IRemoteDebugApplicationEvents_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugApplicationNode interface
+ */
+#ifndef __IDebugApplicationNode_INTERFACE_DEFINED__
+#define __IDebugApplicationNode_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugApplicationNode, 0x51973c34, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c34-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugApplicationNode : public IDebugDocumentProvider
+{
+    virtual HRESULT STDMETHODCALLTYPE EnumChildren(
+        IEnumDebugApplicationNodes **pperddp) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetParent(
+        IDebugApplicationNode **pprddp) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetDocumentProvider(
+        IDebugDocumentProvider *pddp) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Close(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Attach(
+        IDebugApplicationNode *pdanParent) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Detach(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugApplicationNode, 0x51973c34, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugApplicationNodeVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugApplicationNode* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugApplicationNode* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugApplicationNode* This);
+
+    /*** IDebugDocumentInfo methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetName)(
+        IDebugApplicationNode* This,
+        DOCUMENTNAMETYPE dnt,
+        BSTR *pbstrName);
+
+    HRESULT (STDMETHODCALLTYPE *GetDocumentClassId)(
+        IDebugApplicationNode* This,
+        CLSID *pclsidDocument);
+
+    /*** IDebugDocumentProvider methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetDocument)(
+        IDebugApplicationNode* This,
+        IDebugDocument **ppssd);
+
+    /*** IDebugApplicationNode methods ***/
+    HRESULT (STDMETHODCALLTYPE *EnumChildren)(
+        IDebugApplicationNode* This,
+        IEnumDebugApplicationNodes **pperddp);
+
+    HRESULT (STDMETHODCALLTYPE *GetParent)(
+        IDebugApplicationNode* This,
+        IDebugApplicationNode **pprddp);
+
+    HRESULT (STDMETHODCALLTYPE *SetDocumentProvider)(
+        IDebugApplicationNode* This,
+        IDebugDocumentProvider *pddp);
+
+    HRESULT (STDMETHODCALLTYPE *Close)(
+        IDebugApplicationNode* This);
+
+    HRESULT (STDMETHODCALLTYPE *Attach)(
+        IDebugApplicationNode* This,
+        IDebugApplicationNode *pdanParent);
+
+    HRESULT (STDMETHODCALLTYPE *Detach)(
+        IDebugApplicationNode* This);
+
+    END_INTERFACE
+} IDebugApplicationNodeVtbl;
+interface IDebugApplicationNode {
+    CONST_VTBL IDebugApplicationNodeVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugApplicationNode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugApplicationNode_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugApplicationNode_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugDocumentInfo methods ***/
+#define IDebugApplicationNode_GetName(This,dnt,pbstrName) (This)->lpVtbl->GetName(This,dnt,pbstrName)
+#define IDebugApplicationNode_GetDocumentClassId(This,pclsidDocument) (This)->lpVtbl->GetDocumentClassId(This,pclsidDocument)
+/*** IDebugDocumentProvider methods ***/
+#define IDebugApplicationNode_GetDocument(This,ppssd) (This)->lpVtbl->GetDocument(This,ppssd)
+/*** IDebugApplicationNode methods ***/
+#define IDebugApplicationNode_EnumChildren(This,pperddp) (This)->lpVtbl->EnumChildren(This,pperddp)
+#define IDebugApplicationNode_GetParent(This,pprddp) (This)->lpVtbl->GetParent(This,pprddp)
+#define IDebugApplicationNode_SetDocumentProvider(This,pddp) (This)->lpVtbl->SetDocumentProvider(This,pddp)
+#define IDebugApplicationNode_Close(This) (This)->lpVtbl->Close(This)
+#define IDebugApplicationNode_Attach(This,pdanParent) (This)->lpVtbl->Attach(This,pdanParent)
+#define IDebugApplicationNode_Detach(This) (This)->lpVtbl->Detach(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugApplicationNode_QueryInterface(IDebugApplicationNode* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugApplicationNode_AddRef(IDebugApplicationNode* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugApplicationNode_Release(IDebugApplicationNode* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugDocumentInfo methods ***/
+static FORCEINLINE HRESULT IDebugApplicationNode_GetName(IDebugApplicationNode* This,DOCUMENTNAMETYPE dnt,BSTR *pbstrName) {
+    return This->lpVtbl->GetName(This,dnt,pbstrName);
+}
+static FORCEINLINE HRESULT IDebugApplicationNode_GetDocumentClassId(IDebugApplicationNode* This,CLSID *pclsidDocument) {
+    return This->lpVtbl->GetDocumentClassId(This,pclsidDocument);
+}
+/*** IDebugDocumentProvider methods ***/
+static FORCEINLINE HRESULT IDebugApplicationNode_GetDocument(IDebugApplicationNode* This,IDebugDocument **ppssd) {
+    return This->lpVtbl->GetDocument(This,ppssd);
+}
+/*** IDebugApplicationNode methods ***/
+static FORCEINLINE HRESULT IDebugApplicationNode_EnumChildren(IDebugApplicationNode* This,IEnumDebugApplicationNodes **pperddp) {
+    return This->lpVtbl->EnumChildren(This,pperddp);
+}
+static FORCEINLINE HRESULT IDebugApplicationNode_GetParent(IDebugApplicationNode* This,IDebugApplicationNode **pprddp) {
+    return This->lpVtbl->GetParent(This,pprddp);
+}
+static FORCEINLINE HRESULT IDebugApplicationNode_SetDocumentProvider(IDebugApplicationNode* This,IDebugDocumentProvider *pddp) {
+    return This->lpVtbl->SetDocumentProvider(This,pddp);
+}
+static FORCEINLINE HRESULT IDebugApplicationNode_Close(IDebugApplicationNode* This) {
+    return This->lpVtbl->Close(This);
+}
+static FORCEINLINE HRESULT IDebugApplicationNode_Attach(IDebugApplicationNode* This,IDebugApplicationNode *pdanParent) {
+    return This->lpVtbl->Attach(This,pdanParent);
+}
+static FORCEINLINE HRESULT IDebugApplicationNode_Detach(IDebugApplicationNode* This) {
+    return This->lpVtbl->Detach(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugApplicationNode_EnumChildren_Proxy(
+    IDebugApplicationNode* This,
+    IEnumDebugApplicationNodes **pperddp);
+void __RPC_STUB IDebugApplicationNode_EnumChildren_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationNode_GetParent_Proxy(
+    IDebugApplicationNode* This,
+    IDebugApplicationNode **pprddp);
+void __RPC_STUB IDebugApplicationNode_GetParent_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationNode_SetDocumentProvider_Proxy(
+    IDebugApplicationNode* This,
+    IDebugDocumentProvider *pddp);
+void __RPC_STUB IDebugApplicationNode_SetDocumentProvider_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationNode_Close_Proxy(
+    IDebugApplicationNode* This);
+void __RPC_STUB IDebugApplicationNode_Close_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationNode_Attach_Proxy(
+    IDebugApplicationNode* This,
+    IDebugApplicationNode *pdanParent);
+void __RPC_STUB IDebugApplicationNode_Attach_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationNode_Detach_Proxy(
+    IDebugApplicationNode* This);
+void __RPC_STUB IDebugApplicationNode_Detach_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugApplicationNode_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugApplicationNodeEvents interface
+ */
+#ifndef __IDebugApplicationNodeEvents_INTERFACE_DEFINED__
+#define __IDebugApplicationNodeEvents_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugApplicationNodeEvents, 0x51973c35, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c35-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugApplicationNodeEvents : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE onAddChild(
+        IDebugApplicationNode *prddpChild) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE onRemoveChild(
+        IDebugApplicationNode *prddpChild) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE onDetach(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE onAttach(
+        IDebugApplicationNode *prddpParent) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugApplicationNodeEvents, 0x51973c35, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugApplicationNodeEventsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugApplicationNodeEvents* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugApplicationNodeEvents* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugApplicationNodeEvents* This);
+
+    /*** IDebugApplicationNodeEvents methods ***/
+    HRESULT (STDMETHODCALLTYPE *onAddChild)(
+        IDebugApplicationNodeEvents* This,
+        IDebugApplicationNode *prddpChild);
+
+    HRESULT (STDMETHODCALLTYPE *onRemoveChild)(
+        IDebugApplicationNodeEvents* This,
+        IDebugApplicationNode *prddpChild);
+
+    HRESULT (STDMETHODCALLTYPE *onDetach)(
+        IDebugApplicationNodeEvents* This);
+
+    HRESULT (STDMETHODCALLTYPE *onAttach)(
+        IDebugApplicationNodeEvents* This,
+        IDebugApplicationNode *prddpParent);
+
+    END_INTERFACE
+} IDebugApplicationNodeEventsVtbl;
+interface IDebugApplicationNodeEvents {
+    CONST_VTBL IDebugApplicationNodeEventsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugApplicationNodeEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugApplicationNodeEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugApplicationNodeEvents_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugApplicationNodeEvents methods ***/
+#define IDebugApplicationNodeEvents_onAddChild(This,prddpChild) (This)->lpVtbl->onAddChild(This,prddpChild)
+#define IDebugApplicationNodeEvents_onRemoveChild(This,prddpChild) (This)->lpVtbl->onRemoveChild(This,prddpChild)
+#define IDebugApplicationNodeEvents_onDetach(This) (This)->lpVtbl->onDetach(This)
+#define IDebugApplicationNodeEvents_onAttach(This,prddpParent) (This)->lpVtbl->onAttach(This,prddpParent)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugApplicationNodeEvents_QueryInterface(IDebugApplicationNodeEvents* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugApplicationNodeEvents_AddRef(IDebugApplicationNodeEvents* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugApplicationNodeEvents_Release(IDebugApplicationNodeEvents* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugApplicationNodeEvents methods ***/
+static FORCEINLINE HRESULT IDebugApplicationNodeEvents_onAddChild(IDebugApplicationNodeEvents* This,IDebugApplicationNode *prddpChild) {
+    return This->lpVtbl->onAddChild(This,prddpChild);
+}
+static FORCEINLINE HRESULT IDebugApplicationNodeEvents_onRemoveChild(IDebugApplicationNodeEvents* This,IDebugApplicationNode *prddpChild) {
+    return This->lpVtbl->onRemoveChild(This,prddpChild);
+}
+static FORCEINLINE HRESULT IDebugApplicationNodeEvents_onDetach(IDebugApplicationNodeEvents* This) {
+    return This->lpVtbl->onDetach(This);
+}
+static FORCEINLINE HRESULT IDebugApplicationNodeEvents_onAttach(IDebugApplicationNodeEvents* This,IDebugApplicationNode *prddpParent) {
+    return This->lpVtbl->onAttach(This,prddpParent);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugApplicationNodeEvents_onAddChild_Proxy(
+    IDebugApplicationNodeEvents* This,
+    IDebugApplicationNode *prddpChild);
+void __RPC_STUB IDebugApplicationNodeEvents_onAddChild_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationNodeEvents_onRemoveChild_Proxy(
+    IDebugApplicationNodeEvents* This,
+    IDebugApplicationNode *prddpChild);
+void __RPC_STUB IDebugApplicationNodeEvents_onRemoveChild_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationNodeEvents_onDetach_Proxy(
+    IDebugApplicationNodeEvents* This);
+void __RPC_STUB IDebugApplicationNodeEvents_onDetach_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationNodeEvents_onAttach_Proxy(
+    IDebugApplicationNodeEvents* This,
+    IDebugApplicationNode *prddpParent);
+void __RPC_STUB IDebugApplicationNodeEvents_onAttach_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugApplicationNodeEvents_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * AsyncIDebugApplicationNodeEvents interface
+ */
+#ifndef __AsyncIDebugApplicationNodeEvents_INTERFACE_DEFINED__
+#define __AsyncIDebugApplicationNodeEvents_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_AsyncIDebugApplicationNodeEvents, 0xa2e3aa3b, 0xaa8d, 0x4ebf, 0x84,0xcd, 0x64,0x8b,0x73,0x7b,0x8c,0x13);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a2e3aa3b-aa8d-4ebf-84cd-648b737b8c13")
+AsyncIDebugApplicationNodeEvents : public IUnknown
+{
+    virtual void STDMETHODCALLTYPE Begin_onAddChild(
+        IDebugApplicationNode *prddpChild) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Finish_onAddChild(
+        ) = 0;
+
+    virtual void STDMETHODCALLTYPE Begin_onRemoveChild(
+        IDebugApplicationNode *prddpChild) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Finish_onRemoveChild(
+        ) = 0;
+
+    virtual void STDMETHODCALLTYPE Begin_onDetach(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Finish_onDetach(
+        ) = 0;
+
+    virtual void STDMETHODCALLTYPE Begin_onAttach(
+        IDebugApplicationNode *prddpParent) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Finish_onAttach(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(AsyncIDebugApplicationNodeEvents, 0xa2e3aa3b, 0xaa8d, 0x4ebf, 0x84,0xcd, 0x64,0x8b,0x73,0x7b,0x8c,0x13)
+#endif
+#else
+typedef struct AsyncIDebugApplicationNodeEventsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        AsyncIDebugApplicationNodeEvents* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        AsyncIDebugApplicationNodeEvents* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        AsyncIDebugApplicationNodeEvents* This);
+
+    /*** IDebugApplicationNodeEvents methods ***/
+    void (STDMETHODCALLTYPE *Begin_onAddChild)(
+        AsyncIDebugApplicationNodeEvents* This,
+        IDebugApplicationNode *prddpChild);
+
+    HRESULT (STDMETHODCALLTYPE *Finish_onAddChild)(
+        AsyncIDebugApplicationNodeEvents* This);
+
+    void (STDMETHODCALLTYPE *Begin_onRemoveChild)(
+        AsyncIDebugApplicationNodeEvents* This,
+        IDebugApplicationNode *prddpChild);
+
+    HRESULT (STDMETHODCALLTYPE *Finish_onRemoveChild)(
+        AsyncIDebugApplicationNodeEvents* This);
+
+    void (STDMETHODCALLTYPE *Begin_onDetach)(
+        AsyncIDebugApplicationNodeEvents* This);
+
+    HRESULT (STDMETHODCALLTYPE *Finish_onDetach)(
+        AsyncIDebugApplicationNodeEvents* This);
+
+    void (STDMETHODCALLTYPE *Begin_onAttach)(
+        AsyncIDebugApplicationNodeEvents* This,
+        IDebugApplicationNode *prddpParent);
+
+    HRESULT (STDMETHODCALLTYPE *Finish_onAttach)(
+        AsyncIDebugApplicationNodeEvents* This);
+
+    END_INTERFACE
+} AsyncIDebugApplicationNodeEventsVtbl;
+interface AsyncIDebugApplicationNodeEvents {
+    CONST_VTBL AsyncIDebugApplicationNodeEventsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define AsyncIDebugApplicationNodeEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define AsyncIDebugApplicationNodeEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define AsyncIDebugApplicationNodeEvents_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugApplicationNodeEvents methods ***/
+#define AsyncIDebugApplicationNodeEvents_Begin_onAddChild(This,prddpChild) (This)->lpVtbl->Begin_onAddChild(This,prddpChild)
+#define AsyncIDebugApplicationNodeEvents_Finish_onAddChild(This) (This)->lpVtbl->Finish_onAddChild(This)
+#define AsyncIDebugApplicationNodeEvents_Begin_onRemoveChild(This,prddpChild) (This)->lpVtbl->Begin_onRemoveChild(This,prddpChild)
+#define AsyncIDebugApplicationNodeEvents_Finish_onRemoveChild(This) (This)->lpVtbl->Finish_onRemoveChild(This)
+#define AsyncIDebugApplicationNodeEvents_Begin_onDetach(This) (This)->lpVtbl->Begin_onDetach(This)
+#define AsyncIDebugApplicationNodeEvents_Finish_onDetach(This) (This)->lpVtbl->Finish_onDetach(This)
+#define AsyncIDebugApplicationNodeEvents_Begin_onAttach(This,prddpParent) (This)->lpVtbl->Begin_onAttach(This,prddpParent)
+#define AsyncIDebugApplicationNodeEvents_Finish_onAttach(This) (This)->lpVtbl->Finish_onAttach(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT AsyncIDebugApplicationNodeEvents_QueryInterface(AsyncIDebugApplicationNodeEvents* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG AsyncIDebugApplicationNodeEvents_AddRef(AsyncIDebugApplicationNodeEvents* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG AsyncIDebugApplicationNodeEvents_Release(AsyncIDebugApplicationNodeEvents* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugApplicationNodeEvents methods ***/
+static FORCEINLINE void Begin_AsyncIDebugApplicationNodeEvents_onAddChild(AsyncIDebugApplicationNodeEvents* This,IDebugApplicationNode *prddpChild) {
+    This->lpVtbl->Begin_onAddChild(This,prddpChild);
+}
+static FORCEINLINE HRESULT Finish_AsyncIDebugApplicationNodeEvents_onAddChild(AsyncIDebugApplicationNodeEvents* This) {
+    return This->lpVtbl->Finish_onAddChild(This);
+}
+static FORCEINLINE void Begin_AsyncIDebugApplicationNodeEvents_onRemoveChild(AsyncIDebugApplicationNodeEvents* This,IDebugApplicationNode *prddpChild) {
+    This->lpVtbl->Begin_onRemoveChild(This,prddpChild);
+}
+static FORCEINLINE HRESULT Finish_AsyncIDebugApplicationNodeEvents_onRemoveChild(AsyncIDebugApplicationNodeEvents* This) {
+    return This->lpVtbl->Finish_onRemoveChild(This);
+}
+static FORCEINLINE void Begin_AsyncIDebugApplicationNodeEvents_onDetach(AsyncIDebugApplicationNodeEvents* This) {
+    This->lpVtbl->Begin_onDetach(This);
+}
+static FORCEINLINE HRESULT Finish_AsyncIDebugApplicationNodeEvents_onDetach(AsyncIDebugApplicationNodeEvents* This) {
+    return This->lpVtbl->Finish_onDetach(This);
+}
+static FORCEINLINE void Begin_AsyncIDebugApplicationNodeEvents_onAttach(AsyncIDebugApplicationNodeEvents* This,IDebugApplicationNode *prddpParent) {
+    This->lpVtbl->Begin_onAttach(This,prddpParent);
+}
+static FORCEINLINE HRESULT Finish_AsyncIDebugApplicationNodeEvents_onAttach(AsyncIDebugApplicationNodeEvents* This) {
+    return This->lpVtbl->Finish_onAttach(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE AsyncIDebugApplicationNodeEvents_Begin_onAddChild_Proxy(
+    IDebugApplicationNodeEvents* This,
+    IDebugApplicationNode *prddpChild);
+void __RPC_STUB AsyncIDebugApplicationNodeEvents_Begin_onAddChild_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE AsyncIDebugApplicationNodeEvents_Finish_onAddChild_Proxy(
+    IDebugApplicationNodeEvents* This,
+    IDebugApplicationNode *prddpChild);
+void __RPC_STUB AsyncIDebugApplicationNodeEvents_Finish_onAddChild_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE AsyncIDebugApplicationNodeEvents_Begin_onRemoveChild_Proxy(
+    IDebugApplicationNodeEvents* This,
+    IDebugApplicationNode *prddpChild);
+void __RPC_STUB AsyncIDebugApplicationNodeEvents_Begin_onRemoveChild_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE AsyncIDebugApplicationNodeEvents_Finish_onRemoveChild_Proxy(
+    IDebugApplicationNodeEvents* This,
+    IDebugApplicationNode *prddpChild);
+void __RPC_STUB AsyncIDebugApplicationNodeEvents_Finish_onRemoveChild_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE AsyncIDebugApplicationNodeEvents_Begin_onDetach_Proxy(
+    IDebugApplicationNodeEvents* This);
+void __RPC_STUB AsyncIDebugApplicationNodeEvents_Begin_onDetach_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE AsyncIDebugApplicationNodeEvents_Finish_onDetach_Proxy(
+    IDebugApplicationNodeEvents* This);
+void __RPC_STUB AsyncIDebugApplicationNodeEvents_Finish_onDetach_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE AsyncIDebugApplicationNodeEvents_Begin_onAttach_Proxy(
+    IDebugApplicationNodeEvents* This,
+    IDebugApplicationNode *prddpParent);
+void __RPC_STUB AsyncIDebugApplicationNodeEvents_Begin_onAttach_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE AsyncIDebugApplicationNodeEvents_Finish_onAttach_Proxy(
+    IDebugApplicationNodeEvents* This,
+    IDebugApplicationNode *prddpParent);
+void __RPC_STUB AsyncIDebugApplicationNodeEvents_Finish_onAttach_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __AsyncIDebugApplicationNodeEvents_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugThreadCall32 interface
+ */
+#ifndef __IDebugThreadCall32_INTERFACE_DEFINED__
+#define __IDebugThreadCall32_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugThreadCall32, 0x51973c36, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c36-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugThreadCall32 : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE ThreadCallHandler(
+        DWORD dwParam1,
+        DWORD dwParam2,
+        DWORD dwParam3) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugThreadCall32, 0x51973c36, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugThreadCall32Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugThreadCall32* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugThreadCall32* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugThreadCall32* This);
+
+    /*** IDebugThreadCall32 methods ***/
+    HRESULT (STDMETHODCALLTYPE *ThreadCallHandler)(
+        IDebugThreadCall32* This,
+        DWORD dwParam1,
+        DWORD dwParam2,
+        DWORD dwParam3);
+
+    END_INTERFACE
+} IDebugThreadCall32Vtbl;
+interface IDebugThreadCall32 {
+    CONST_VTBL IDebugThreadCall32Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugThreadCall32_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugThreadCall32_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugThreadCall32_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugThreadCall32 methods ***/
+#define IDebugThreadCall32_ThreadCallHandler(This,dwParam1,dwParam2,dwParam3) (This)->lpVtbl->ThreadCallHandler(This,dwParam1,dwParam2,dwParam3)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugThreadCall32_QueryInterface(IDebugThreadCall32* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugThreadCall32_AddRef(IDebugThreadCall32* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugThreadCall32_Release(IDebugThreadCall32* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugThreadCall32 methods ***/
+static FORCEINLINE HRESULT IDebugThreadCall32_ThreadCallHandler(IDebugThreadCall32* This,DWORD dwParam1,DWORD dwParam2,DWORD dwParam3) {
+    return This->lpVtbl->ThreadCallHandler(This,dwParam1,dwParam2,dwParam3);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugThreadCall32_ThreadCallHandler_Proxy(
+    IDebugThreadCall32* This,
+    DWORD dwParam1,
+    DWORD dwParam2,
+    DWORD dwParam3);
+void __RPC_STUB IDebugThreadCall32_ThreadCallHandler_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugThreadCall32_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugThreadCall64 interface
+ */
+#ifndef __IDebugThreadCall64_INTERFACE_DEFINED__
+#define __IDebugThreadCall64_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugThreadCall64, 0xcb3fa335, 0xe979, 0x42fd, 0x9f,0xcf, 0xa7,0x54,0x6a,0x0f,0x39,0x05);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("cb3fa335-e979-42fd-9fcf-a7546a0f3905")
+IDebugThreadCall64 : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE ThreadCallHandler(
+        DWORDLONG dwParam1,
+        DWORDLONG dwParam2,
+        DWORDLONG dwParam3) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugThreadCall64, 0xcb3fa335, 0xe979, 0x42fd, 0x9f,0xcf, 0xa7,0x54,0x6a,0x0f,0x39,0x05)
+#endif
+#else
+typedef struct IDebugThreadCall64Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugThreadCall64* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugThreadCall64* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugThreadCall64* This);
+
+    /*** IDebugThreadCall64 methods ***/
+    HRESULT (STDMETHODCALLTYPE *ThreadCallHandler)(
+        IDebugThreadCall64* This,
+        DWORDLONG dwParam1,
+        DWORDLONG dwParam2,
+        DWORDLONG dwParam3);
+
+    END_INTERFACE
+} IDebugThreadCall64Vtbl;
+interface IDebugThreadCall64 {
+    CONST_VTBL IDebugThreadCall64Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugThreadCall64_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugThreadCall64_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugThreadCall64_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugThreadCall64 methods ***/
+#define IDebugThreadCall64_ThreadCallHandler(This,dwParam1,dwParam2,dwParam3) (This)->lpVtbl->ThreadCallHandler(This,dwParam1,dwParam2,dwParam3)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugThreadCall64_QueryInterface(IDebugThreadCall64* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugThreadCall64_AddRef(IDebugThreadCall64* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugThreadCall64_Release(IDebugThreadCall64* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugThreadCall64 methods ***/
+static FORCEINLINE HRESULT IDebugThreadCall64_ThreadCallHandler(IDebugThreadCall64* This,DWORDLONG dwParam1,DWORDLONG dwParam2,DWORDLONG dwParam3) {
+    return This->lpVtbl->ThreadCallHandler(This,dwParam1,dwParam2,dwParam3);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugThreadCall64_ThreadCallHandler_Proxy(
+    IDebugThreadCall64* This,
+    DWORDLONG dwParam1,
+    DWORDLONG dwParam2,
+    DWORDLONG dwParam3);
+void __RPC_STUB IDebugThreadCall64_ThreadCallHandler_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugThreadCall64_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRemoteDebugApplicationThread interface
+ */
+#ifndef __IRemoteDebugApplicationThread_INTERFACE_DEFINED__
+#define __IRemoteDebugApplicationThread_INTERFACE_DEFINED__
+
+typedef DWORD THREAD_STATE;
+#define THREAD_STATE_RUNNING (0x1)
+
+#define THREAD_STATE_SUSPENDED (0x2)
+
+#define THREAD_BLOCKED (0x4)
+
+#define THREAD_OUT_OF_CONTEXT (0x8)
+
+DEFINE_GUID(IID_IRemoteDebugApplicationThread, 0x51973c37, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c37-cb0c-11d0-b5c9-00a0244a0e7a")
+IRemoteDebugApplicationThread : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetSystemThreadId(
+        DWORD *dwThreadId) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetApplication(
+        IRemoteDebugApplication **pprda) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnumStackFrames(
+        IEnumDebugStackFrames **ppedsf) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetDescription(
+        BSTR *pbstrDescription,
+        BSTR *pbstrState) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetNextStatement(
+        IDebugStackFrame *pStackFrame,
+        IDebugCodeContext *pCodeContext) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetState(
+        DWORD *pState) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Suspend(
+        DWORD *pdwCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Resume(
+        DWORD *pdwCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetSuspendCount(
+        DWORD *pdwCount) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRemoteDebugApplicationThread, 0x51973c37, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IRemoteDebugApplicationThreadVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRemoteDebugApplicationThread* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRemoteDebugApplicationThread* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRemoteDebugApplicationThread* This);
+
+    /*** IRemoteDebugApplicationThread methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetSystemThreadId)(
+        IRemoteDebugApplicationThread* This,
+        DWORD *dwThreadId);
+
+    HRESULT (STDMETHODCALLTYPE *GetApplication)(
+        IRemoteDebugApplicationThread* This,
+        IRemoteDebugApplication **pprda);
+
+    HRESULT (STDMETHODCALLTYPE *EnumStackFrames)(
+        IRemoteDebugApplicationThread* This,
+        IEnumDebugStackFrames **ppedsf);
+
+    HRESULT (STDMETHODCALLTYPE *GetDescription)(
+        IRemoteDebugApplicationThread* This,
+        BSTR *pbstrDescription,
+        BSTR *pbstrState);
+
+    HRESULT (STDMETHODCALLTYPE *SetNextStatement)(
+        IRemoteDebugApplicationThread* This,
+        IDebugStackFrame *pStackFrame,
+        IDebugCodeContext *pCodeContext);
+
+    HRESULT (STDMETHODCALLTYPE *GetState)(
+        IRemoteDebugApplicationThread* This,
+        DWORD *pState);
+
+    HRESULT (STDMETHODCALLTYPE *Suspend)(
+        IRemoteDebugApplicationThread* This,
+        DWORD *pdwCount);
+
+    HRESULT (STDMETHODCALLTYPE *Resume)(
+        IRemoteDebugApplicationThread* This,
+        DWORD *pdwCount);
+
+    HRESULT (STDMETHODCALLTYPE *GetSuspendCount)(
+        IRemoteDebugApplicationThread* This,
+        DWORD *pdwCount);
+
+    END_INTERFACE
+} IRemoteDebugApplicationThreadVtbl;
+interface IRemoteDebugApplicationThread {
+    CONST_VTBL IRemoteDebugApplicationThreadVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRemoteDebugApplicationThread_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRemoteDebugApplicationThread_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRemoteDebugApplicationThread_Release(This) (This)->lpVtbl->Release(This)
+/*** IRemoteDebugApplicationThread methods ***/
+#define IRemoteDebugApplicationThread_GetSystemThreadId(This,dwThreadId) (This)->lpVtbl->GetSystemThreadId(This,dwThreadId)
+#define IRemoteDebugApplicationThread_GetApplication(This,pprda) (This)->lpVtbl->GetApplication(This,pprda)
+#define IRemoteDebugApplicationThread_EnumStackFrames(This,ppedsf) (This)->lpVtbl->EnumStackFrames(This,ppedsf)
+#define IRemoteDebugApplicationThread_GetDescription(This,pbstrDescription,pbstrState) (This)->lpVtbl->GetDescription(This,pbstrDescription,pbstrState)
+#define IRemoteDebugApplicationThread_SetNextStatement(This,pStackFrame,pCodeContext) (This)->lpVtbl->SetNextStatement(This,pStackFrame,pCodeContext)
+#define IRemoteDebugApplicationThread_GetState(This,pState) (This)->lpVtbl->GetState(This,pState)
+#define IRemoteDebugApplicationThread_Suspend(This,pdwCount) (This)->lpVtbl->Suspend(This,pdwCount)
+#define IRemoteDebugApplicationThread_Resume(This,pdwCount) (This)->lpVtbl->Resume(This,pdwCount)
+#define IRemoteDebugApplicationThread_GetSuspendCount(This,pdwCount) (This)->lpVtbl->GetSuspendCount(This,pdwCount)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRemoteDebugApplicationThread_QueryInterface(IRemoteDebugApplicationThread* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRemoteDebugApplicationThread_AddRef(IRemoteDebugApplicationThread* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRemoteDebugApplicationThread_Release(IRemoteDebugApplicationThread* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRemoteDebugApplicationThread methods ***/
+static FORCEINLINE HRESULT IRemoteDebugApplicationThread_GetSystemThreadId(IRemoteDebugApplicationThread* This,DWORD *dwThreadId) {
+    return This->lpVtbl->GetSystemThreadId(This,dwThreadId);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplicationThread_GetApplication(IRemoteDebugApplicationThread* This,IRemoteDebugApplication **pprda) {
+    return This->lpVtbl->GetApplication(This,pprda);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplicationThread_EnumStackFrames(IRemoteDebugApplicationThread* This,IEnumDebugStackFrames **ppedsf) {
+    return This->lpVtbl->EnumStackFrames(This,ppedsf);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplicationThread_GetDescription(IRemoteDebugApplicationThread* This,BSTR *pbstrDescription,BSTR *pbstrState) {
+    return This->lpVtbl->GetDescription(This,pbstrDescription,pbstrState);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplicationThread_SetNextStatement(IRemoteDebugApplicationThread* This,IDebugStackFrame *pStackFrame,IDebugCodeContext *pCodeContext) {
+    return This->lpVtbl->SetNextStatement(This,pStackFrame,pCodeContext);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplicationThread_GetState(IRemoteDebugApplicationThread* This,DWORD *pState) {
+    return This->lpVtbl->GetState(This,pState);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplicationThread_Suspend(IRemoteDebugApplicationThread* This,DWORD *pdwCount) {
+    return This->lpVtbl->Suspend(This,pdwCount);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplicationThread_Resume(IRemoteDebugApplicationThread* This,DWORD *pdwCount) {
+    return This->lpVtbl->Resume(This,pdwCount);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplicationThread_GetSuspendCount(IRemoteDebugApplicationThread* This,DWORD *pdwCount) {
+    return This->lpVtbl->GetSuspendCount(This,pdwCount);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplicationThread_GetSystemThreadId_Proxy(
+    IRemoteDebugApplicationThread* This,
+    DWORD *dwThreadId);
+void __RPC_STUB IRemoteDebugApplicationThread_GetSystemThreadId_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplicationThread_GetApplication_Proxy(
+    IRemoteDebugApplicationThread* This,
+    IRemoteDebugApplication **pprda);
+void __RPC_STUB IRemoteDebugApplicationThread_GetApplication_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplicationThread_EnumStackFrames_Proxy(
+    IRemoteDebugApplicationThread* This,
+    IEnumDebugStackFrames **ppedsf);
+void __RPC_STUB IRemoteDebugApplicationThread_EnumStackFrames_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplicationThread_GetDescription_Proxy(
+    IRemoteDebugApplicationThread* This,
+    BSTR *pbstrDescription,
+    BSTR *pbstrState);
+void __RPC_STUB IRemoteDebugApplicationThread_GetDescription_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplicationThread_SetNextStatement_Proxy(
+    IRemoteDebugApplicationThread* This,
+    IDebugStackFrame *pStackFrame,
+    IDebugCodeContext *pCodeContext);
+void __RPC_STUB IRemoteDebugApplicationThread_SetNextStatement_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplicationThread_GetState_Proxy(
+    IRemoteDebugApplicationThread* This,
+    DWORD *pState);
+void __RPC_STUB IRemoteDebugApplicationThread_GetState_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplicationThread_Suspend_Proxy(
+    IRemoteDebugApplicationThread* This,
+    DWORD *pdwCount);
+void __RPC_STUB IRemoteDebugApplicationThread_Suspend_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplicationThread_Resume_Proxy(
+    IRemoteDebugApplicationThread* This,
+    DWORD *pdwCount);
+void __RPC_STUB IRemoteDebugApplicationThread_Resume_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplicationThread_GetSuspendCount_Proxy(
+    IRemoteDebugApplicationThread* This,
+    DWORD *pdwCount);
+void __RPC_STUB IRemoteDebugApplicationThread_GetSuspendCount_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IRemoteDebugApplicationThread_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugApplicationThread interface
+ */
+#ifndef __IDebugApplicationThread_INTERFACE_DEFINED__
+#define __IDebugApplicationThread_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugApplicationThread, 0x51973c38, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c38-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugApplicationThread : public IRemoteDebugApplicationThread
+{
+    virtual HRESULT STDMETHODCALLTYPE SynchronousCallIntoThread32(
+        IDebugThreadCall32 *pstcb,
+        DWORD dwParam1,
+        DWORD dwParam2,
+        DWORD dwParam3) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE QueryIsCurrentThread(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE QueryIsDebuggerThread(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetDescription(
+        LPCOLESTR pstrDescription) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetStateString(
+        LPCOLESTR pstrState) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugApplicationThread, 0x51973c38, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugApplicationThreadVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugApplicationThread* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugApplicationThread* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugApplicationThread* This);
+
+    /*** IRemoteDebugApplicationThread methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetSystemThreadId)(
+        IDebugApplicationThread* This,
+        DWORD *dwThreadId);
+
+    HRESULT (STDMETHODCALLTYPE *GetApplication)(
+        IDebugApplicationThread* This,
+        IRemoteDebugApplication **pprda);
+
+    HRESULT (STDMETHODCALLTYPE *EnumStackFrames)(
+        IDebugApplicationThread* This,
+        IEnumDebugStackFrames **ppedsf);
+
+    HRESULT (STDMETHODCALLTYPE *GetDescription)(
+        IDebugApplicationThread* This,
+        BSTR *pbstrDescription,
+        BSTR *pbstrState);
+
+    HRESULT (STDMETHODCALLTYPE *SetNextStatement)(
+        IDebugApplicationThread* This,
+        IDebugStackFrame *pStackFrame,
+        IDebugCodeContext *pCodeContext);
+
+    HRESULT (STDMETHODCALLTYPE *GetState)(
+        IDebugApplicationThread* This,
+        DWORD *pState);
+
+    HRESULT (STDMETHODCALLTYPE *Suspend)(
+        IDebugApplicationThread* This,
+        DWORD *pdwCount);
+
+    HRESULT (STDMETHODCALLTYPE *Resume)(
+        IDebugApplicationThread* This,
+        DWORD *pdwCount);
+
+    HRESULT (STDMETHODCALLTYPE *GetSuspendCount)(
+        IDebugApplicationThread* This,
+        DWORD *pdwCount);
+
+    /*** IDebugApplicationThread methods ***/
+    HRESULT (STDMETHODCALLTYPE *SynchronousCallIntoThread32)(
+        IDebugApplicationThread* This,
+        IDebugThreadCall32 *pstcb,
+        DWORD dwParam1,
+        DWORD dwParam2,
+        DWORD dwParam3);
+
+    HRESULT (STDMETHODCALLTYPE *QueryIsCurrentThread)(
+        IDebugApplicationThread* This);
+
+    HRESULT (STDMETHODCALLTYPE *QueryIsDebuggerThread)(
+        IDebugApplicationThread* This);
+
+    HRESULT (STDMETHODCALLTYPE *SetDescription)(
+        IDebugApplicationThread* This,
+        LPCOLESTR pstrDescription);
+
+    HRESULT (STDMETHODCALLTYPE *SetStateString)(
+        IDebugApplicationThread* This,
+        LPCOLESTR pstrState);
+
+    END_INTERFACE
+} IDebugApplicationThreadVtbl;
+interface IDebugApplicationThread {
+    CONST_VTBL IDebugApplicationThreadVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugApplicationThread_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugApplicationThread_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugApplicationThread_Release(This) (This)->lpVtbl->Release(This)
+/*** IRemoteDebugApplicationThread methods ***/
+#define IDebugApplicationThread_GetSystemThreadId(This,dwThreadId) (This)->lpVtbl->GetSystemThreadId(This,dwThreadId)
+#define IDebugApplicationThread_GetApplication(This,pprda) (This)->lpVtbl->GetApplication(This,pprda)
+#define IDebugApplicationThread_EnumStackFrames(This,ppedsf) (This)->lpVtbl->EnumStackFrames(This,ppedsf)
+#define IDebugApplicationThread_GetDescription(This,pbstrDescription,pbstrState) (This)->lpVtbl->GetDescription(This,pbstrDescription,pbstrState)
+#define IDebugApplicationThread_SetNextStatement(This,pStackFrame,pCodeContext) (This)->lpVtbl->SetNextStatement(This,pStackFrame,pCodeContext)
+#define IDebugApplicationThread_GetState(This,pState) (This)->lpVtbl->GetState(This,pState)
+#define IDebugApplicationThread_Suspend(This,pdwCount) (This)->lpVtbl->Suspend(This,pdwCount)
+#define IDebugApplicationThread_Resume(This,pdwCount) (This)->lpVtbl->Resume(This,pdwCount)
+#define IDebugApplicationThread_GetSuspendCount(This,pdwCount) (This)->lpVtbl->GetSuspendCount(This,pdwCount)
+/*** IDebugApplicationThread methods ***/
+#define IDebugApplicationThread_SynchronousCallIntoThread32(This,pstcb,dwParam1,dwParam2,dwParam3) (This)->lpVtbl->SynchronousCallIntoThread32(This,pstcb,dwParam1,dwParam2,dwParam3)
+#define IDebugApplicationThread_QueryIsCurrentThread(This) (This)->lpVtbl->QueryIsCurrentThread(This)
+#define IDebugApplicationThread_QueryIsDebuggerThread(This) (This)->lpVtbl->QueryIsDebuggerThread(This)
+#define IDebugApplicationThread_SetDescription(This,pstrDescription) (This)->lpVtbl->SetDescription(This,pstrDescription)
+#define IDebugApplicationThread_SetStateString(This,pstrState) (This)->lpVtbl->SetStateString(This,pstrState)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugApplicationThread_QueryInterface(IDebugApplicationThread* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugApplicationThread_AddRef(IDebugApplicationThread* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugApplicationThread_Release(IDebugApplicationThread* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRemoteDebugApplicationThread methods ***/
+static FORCEINLINE HRESULT IDebugApplicationThread_GetSystemThreadId(IDebugApplicationThread* This,DWORD *dwThreadId) {
+    return This->lpVtbl->GetSystemThreadId(This,dwThreadId);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread_GetApplication(IDebugApplicationThread* This,IRemoteDebugApplication **pprda) {
+    return This->lpVtbl->GetApplication(This,pprda);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread_EnumStackFrames(IDebugApplicationThread* This,IEnumDebugStackFrames **ppedsf) {
+    return This->lpVtbl->EnumStackFrames(This,ppedsf);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread_GetDescription(IDebugApplicationThread* This,BSTR *pbstrDescription,BSTR *pbstrState) {
+    return This->lpVtbl->GetDescription(This,pbstrDescription,pbstrState);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread_SetNextStatement(IDebugApplicationThread* This,IDebugStackFrame *pStackFrame,IDebugCodeContext *pCodeContext) {
+    return This->lpVtbl->SetNextStatement(This,pStackFrame,pCodeContext);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread_GetState(IDebugApplicationThread* This,DWORD *pState) {
+    return This->lpVtbl->GetState(This,pState);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread_Suspend(IDebugApplicationThread* This,DWORD *pdwCount) {
+    return This->lpVtbl->Suspend(This,pdwCount);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread_Resume(IDebugApplicationThread* This,DWORD *pdwCount) {
+    return This->lpVtbl->Resume(This,pdwCount);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread_GetSuspendCount(IDebugApplicationThread* This,DWORD *pdwCount) {
+    return This->lpVtbl->GetSuspendCount(This,pdwCount);
+}
+/*** IDebugApplicationThread methods ***/
+static FORCEINLINE HRESULT IDebugApplicationThread_SynchronousCallIntoThread32(IDebugApplicationThread* This,IDebugThreadCall32 *pstcb,DWORD dwParam1,DWORD dwParam2,DWORD dwParam3) {
+    return This->lpVtbl->SynchronousCallIntoThread32(This,pstcb,dwParam1,dwParam2,dwParam3);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread_QueryIsCurrentThread(IDebugApplicationThread* This) {
+    return This->lpVtbl->QueryIsCurrentThread(This);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread_QueryIsDebuggerThread(IDebugApplicationThread* This) {
+    return This->lpVtbl->QueryIsDebuggerThread(This);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread_SetDescription(IDebugApplicationThread* This,LPCOLESTR pstrDescription) {
+    return This->lpVtbl->SetDescription(This,pstrDescription);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread_SetStateString(IDebugApplicationThread* This,LPCOLESTR pstrState) {
+    return This->lpVtbl->SetStateString(This,pstrState);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugApplicationThread_SynchronousCallIntoThread32_Proxy(
+    IDebugApplicationThread* This,
+    IDebugThreadCall32 *pstcb,
+    DWORD dwParam1,
+    DWORD dwParam2,
+    DWORD dwParam3);
+void __RPC_STUB IDebugApplicationThread_SynchronousCallIntoThread32_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationThread_QueryIsCurrentThread_Proxy(
+    IDebugApplicationThread* This);
+void __RPC_STUB IDebugApplicationThread_QueryIsCurrentThread_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationThread_QueryIsDebuggerThread_Proxy(
+    IDebugApplicationThread* This);
+void __RPC_STUB IDebugApplicationThread_QueryIsDebuggerThread_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationThread_SetDescription_Proxy(
+    IDebugApplicationThread* This,
+    LPCOLESTR pstrDescription);
+void __RPC_STUB IDebugApplicationThread_SetDescription_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationThread_SetStateString_Proxy(
+    IDebugApplicationThread* This,
+    LPCOLESTR pstrState);
+void __RPC_STUB IDebugApplicationThread_SetStateString_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugApplicationThread_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugApplicationThread64 interface
+ */
+#ifndef __IDebugApplicationThread64_INTERFACE_DEFINED__
+#define __IDebugApplicationThread64_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugApplicationThread64, 0x9dac5886, 0xdbad, 0x456d, 0x9d,0xee, 0x5d,0xec,0x39,0xab,0x3d,0xda);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9dac5886-dbad-456d-9dee-5dec39ab3dda")
+IDebugApplicationThread64 : public IDebugApplicationThread
+{
+    virtual HRESULT STDMETHODCALLTYPE SynchronousCallIntoThread64(
+        IDebugThreadCall64 *pstcb,
+        DWORDLONG dwParam1,
+        DWORDLONG dwParam2,
+        DWORDLONG dwParam3) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugApplicationThread64, 0x9dac5886, 0xdbad, 0x456d, 0x9d,0xee, 0x5d,0xec,0x39,0xab,0x3d,0xda)
+#endif
+#else
+typedef struct IDebugApplicationThread64Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugApplicationThread64* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugApplicationThread64* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugApplicationThread64* This);
+
+    /*** IRemoteDebugApplicationThread methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetSystemThreadId)(
+        IDebugApplicationThread64* This,
+        DWORD *dwThreadId);
+
+    HRESULT (STDMETHODCALLTYPE *GetApplication)(
+        IDebugApplicationThread64* This,
+        IRemoteDebugApplication **pprda);
+
+    HRESULT (STDMETHODCALLTYPE *EnumStackFrames)(
+        IDebugApplicationThread64* This,
+        IEnumDebugStackFrames **ppedsf);
+
+    HRESULT (STDMETHODCALLTYPE *GetDescription)(
+        IDebugApplicationThread64* This,
+        BSTR *pbstrDescription,
+        BSTR *pbstrState);
+
+    HRESULT (STDMETHODCALLTYPE *SetNextStatement)(
+        IDebugApplicationThread64* This,
+        IDebugStackFrame *pStackFrame,
+        IDebugCodeContext *pCodeContext);
+
+    HRESULT (STDMETHODCALLTYPE *GetState)(
+        IDebugApplicationThread64* This,
+        DWORD *pState);
+
+    HRESULT (STDMETHODCALLTYPE *Suspend)(
+        IDebugApplicationThread64* This,
+        DWORD *pdwCount);
+
+    HRESULT (STDMETHODCALLTYPE *Resume)(
+        IDebugApplicationThread64* This,
+        DWORD *pdwCount);
+
+    HRESULT (STDMETHODCALLTYPE *GetSuspendCount)(
+        IDebugApplicationThread64* This,
+        DWORD *pdwCount);
+
+    /*** IDebugApplicationThread methods ***/
+    HRESULT (STDMETHODCALLTYPE *SynchronousCallIntoThread32)(
+        IDebugApplicationThread64* This,
+        IDebugThreadCall32 *pstcb,
+        DWORD dwParam1,
+        DWORD dwParam2,
+        DWORD dwParam3);
+
+    HRESULT (STDMETHODCALLTYPE *QueryIsCurrentThread)(
+        IDebugApplicationThread64* This);
+
+    HRESULT (STDMETHODCALLTYPE *QueryIsDebuggerThread)(
+        IDebugApplicationThread64* This);
+
+    HRESULT (STDMETHODCALLTYPE *SetDescription)(
+        IDebugApplicationThread64* This,
+        LPCOLESTR pstrDescription);
+
+    HRESULT (STDMETHODCALLTYPE *SetStateString)(
+        IDebugApplicationThread64* This,
+        LPCOLESTR pstrState);
+
+    /*** IDebugApplicationThread64 methods ***/
+    HRESULT (STDMETHODCALLTYPE *SynchronousCallIntoThread64)(
+        IDebugApplicationThread64* This,
+        IDebugThreadCall64 *pstcb,
+        DWORDLONG dwParam1,
+        DWORDLONG dwParam2,
+        DWORDLONG dwParam3);
+
+    END_INTERFACE
+} IDebugApplicationThread64Vtbl;
+interface IDebugApplicationThread64 {
+    CONST_VTBL IDebugApplicationThread64Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugApplicationThread64_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugApplicationThread64_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugApplicationThread64_Release(This) (This)->lpVtbl->Release(This)
+/*** IRemoteDebugApplicationThread methods ***/
+#define IDebugApplicationThread64_GetSystemThreadId(This,dwThreadId) (This)->lpVtbl->GetSystemThreadId(This,dwThreadId)
+#define IDebugApplicationThread64_GetApplication(This,pprda) (This)->lpVtbl->GetApplication(This,pprda)
+#define IDebugApplicationThread64_EnumStackFrames(This,ppedsf) (This)->lpVtbl->EnumStackFrames(This,ppedsf)
+#define IDebugApplicationThread64_GetDescription(This,pbstrDescription,pbstrState) (This)->lpVtbl->GetDescription(This,pbstrDescription,pbstrState)
+#define IDebugApplicationThread64_SetNextStatement(This,pStackFrame,pCodeContext) (This)->lpVtbl->SetNextStatement(This,pStackFrame,pCodeContext)
+#define IDebugApplicationThread64_GetState(This,pState) (This)->lpVtbl->GetState(This,pState)
+#define IDebugApplicationThread64_Suspend(This,pdwCount) (This)->lpVtbl->Suspend(This,pdwCount)
+#define IDebugApplicationThread64_Resume(This,pdwCount) (This)->lpVtbl->Resume(This,pdwCount)
+#define IDebugApplicationThread64_GetSuspendCount(This,pdwCount) (This)->lpVtbl->GetSuspendCount(This,pdwCount)
+/*** IDebugApplicationThread methods ***/
+#define IDebugApplicationThread64_SynchronousCallIntoThread32(This,pstcb,dwParam1,dwParam2,dwParam3) (This)->lpVtbl->SynchronousCallIntoThread32(This,pstcb,dwParam1,dwParam2,dwParam3)
+#define IDebugApplicationThread64_QueryIsCurrentThread(This) (This)->lpVtbl->QueryIsCurrentThread(This)
+#define IDebugApplicationThread64_QueryIsDebuggerThread(This) (This)->lpVtbl->QueryIsDebuggerThread(This)
+#define IDebugApplicationThread64_SetDescription(This,pstrDescription) (This)->lpVtbl->SetDescription(This,pstrDescription)
+#define IDebugApplicationThread64_SetStateString(This,pstrState) (This)->lpVtbl->SetStateString(This,pstrState)
+/*** IDebugApplicationThread64 methods ***/
+#define IDebugApplicationThread64_SynchronousCallIntoThread64(This,pstcb,dwParam1,dwParam2,dwParam3) (This)->lpVtbl->SynchronousCallIntoThread64(This,pstcb,dwParam1,dwParam2,dwParam3)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugApplicationThread64_QueryInterface(IDebugApplicationThread64* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugApplicationThread64_AddRef(IDebugApplicationThread64* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugApplicationThread64_Release(IDebugApplicationThread64* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRemoteDebugApplicationThread methods ***/
+static FORCEINLINE HRESULT IDebugApplicationThread64_GetSystemThreadId(IDebugApplicationThread64* This,DWORD *dwThreadId) {
+    return This->lpVtbl->GetSystemThreadId(This,dwThreadId);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread64_GetApplication(IDebugApplicationThread64* This,IRemoteDebugApplication **pprda) {
+    return This->lpVtbl->GetApplication(This,pprda);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread64_EnumStackFrames(IDebugApplicationThread64* This,IEnumDebugStackFrames **ppedsf) {
+    return This->lpVtbl->EnumStackFrames(This,ppedsf);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread64_GetDescription(IDebugApplicationThread64* This,BSTR *pbstrDescription,BSTR *pbstrState) {
+    return This->lpVtbl->GetDescription(This,pbstrDescription,pbstrState);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread64_SetNextStatement(IDebugApplicationThread64* This,IDebugStackFrame *pStackFrame,IDebugCodeContext *pCodeContext) {
+    return This->lpVtbl->SetNextStatement(This,pStackFrame,pCodeContext);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread64_GetState(IDebugApplicationThread64* This,DWORD *pState) {
+    return This->lpVtbl->GetState(This,pState);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread64_Suspend(IDebugApplicationThread64* This,DWORD *pdwCount) {
+    return This->lpVtbl->Suspend(This,pdwCount);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread64_Resume(IDebugApplicationThread64* This,DWORD *pdwCount) {
+    return This->lpVtbl->Resume(This,pdwCount);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread64_GetSuspendCount(IDebugApplicationThread64* This,DWORD *pdwCount) {
+    return This->lpVtbl->GetSuspendCount(This,pdwCount);
+}
+/*** IDebugApplicationThread methods ***/
+static FORCEINLINE HRESULT IDebugApplicationThread64_SynchronousCallIntoThread32(IDebugApplicationThread64* This,IDebugThreadCall32 *pstcb,DWORD dwParam1,DWORD dwParam2,DWORD dwParam3) {
+    return This->lpVtbl->SynchronousCallIntoThread32(This,pstcb,dwParam1,dwParam2,dwParam3);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread64_QueryIsCurrentThread(IDebugApplicationThread64* This) {
+    return This->lpVtbl->QueryIsCurrentThread(This);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread64_QueryIsDebuggerThread(IDebugApplicationThread64* This) {
+    return This->lpVtbl->QueryIsDebuggerThread(This);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread64_SetDescription(IDebugApplicationThread64* This,LPCOLESTR pstrDescription) {
+    return This->lpVtbl->SetDescription(This,pstrDescription);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread64_SetStateString(IDebugApplicationThread64* This,LPCOLESTR pstrState) {
+    return This->lpVtbl->SetStateString(This,pstrState);
+}
+/*** IDebugApplicationThread64 methods ***/
+static FORCEINLINE HRESULT IDebugApplicationThread64_SynchronousCallIntoThread64(IDebugApplicationThread64* This,IDebugThreadCall64 *pstcb,DWORDLONG dwParam1,DWORDLONG dwParam2,DWORDLONG dwParam3) {
+    return This->lpVtbl->SynchronousCallIntoThread64(This,pstcb,dwParam1,dwParam2,dwParam3);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugApplicationThread64_SynchronousCallIntoThread64_Proxy(
+    IDebugApplicationThread64* This,
+    IDebugThreadCall64 *pstcb,
+    DWORDLONG dwParam1,
+    DWORDLONG dwParam2,
+    DWORDLONG dwParam3);
+void __RPC_STUB IDebugApplicationThread64_SynchronousCallIntoThread64_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugApplicationThread64_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugCookie interface
+ */
+#ifndef __IDebugCookie_INTERFACE_DEFINED__
+#define __IDebugCookie_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugCookie, 0x51973c39, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c39-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugCookie : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetDebugCookie(
+        DWORD dwDebugAppCookie) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugCookie, 0x51973c39, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugCookieVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugCookie* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugCookie* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugCookie* This);
+
+    /*** IDebugCookie methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetDebugCookie)(
+        IDebugCookie* This,
+        DWORD dwDebugAppCookie);
+
+    END_INTERFACE
+} IDebugCookieVtbl;
+interface IDebugCookie {
+    CONST_VTBL IDebugCookieVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugCookie_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugCookie_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugCookie_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugCookie methods ***/
+#define IDebugCookie_SetDebugCookie(This,dwDebugAppCookie) (This)->lpVtbl->SetDebugCookie(This,dwDebugAppCookie)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugCookie_QueryInterface(IDebugCookie* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugCookie_AddRef(IDebugCookie* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugCookie_Release(IDebugCookie* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugCookie methods ***/
+static FORCEINLINE HRESULT IDebugCookie_SetDebugCookie(IDebugCookie* This,DWORD dwDebugAppCookie) {
+    return This->lpVtbl->SetDebugCookie(This,dwDebugAppCookie);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugCookie_SetDebugCookie_Proxy(
+    IDebugCookie* This,
+    DWORD dwDebugAppCookie);
+void __RPC_STUB IDebugCookie_SetDebugCookie_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugCookie_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IEnumDebugApplicationNodes interface
+ */
+#ifndef __IEnumDebugApplicationNodes_INTERFACE_DEFINED__
+#define __IEnumDebugApplicationNodes_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IEnumDebugApplicationNodes, 0x51973c3a, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c3a-cb0c-11d0-b5c9-00a0244a0e7a")
+IEnumDebugApplicationNodes : public IUnknown
+{
+    virtual HRESULT __stdcall Next(
+        ULONG celt,
+        IDebugApplicationNode **pprddp,
+        ULONG *pceltFetched) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Skip(
+        ULONG celt) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Reset(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        IEnumDebugApplicationNodes **pperddp) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IEnumDebugApplicationNodes, 0x51973c3a, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IEnumDebugApplicationNodesVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumDebugApplicationNodes* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IEnumDebugApplicationNodes* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IEnumDebugApplicationNodes* This);
+
+    /*** IEnumDebugApplicationNodes methods ***/
+    HRESULT (__stdcall *Next)(
+        IEnumDebugApplicationNodes* This,
+        ULONG celt,
+        IDebugApplicationNode **pprddp,
+        ULONG *pceltFetched);
+
+    HRESULT (STDMETHODCALLTYPE *Skip)(
+        IEnumDebugApplicationNodes* This,
+        ULONG celt);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IEnumDebugApplicationNodes* This);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IEnumDebugApplicationNodes* This,
+        IEnumDebugApplicationNodes **pperddp);
+
+    END_INTERFACE
+} IEnumDebugApplicationNodesVtbl;
+interface IEnumDebugApplicationNodes {
+    CONST_VTBL IEnumDebugApplicationNodesVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IEnumDebugApplicationNodes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumDebugApplicationNodes_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IEnumDebugApplicationNodes_Release(This) (This)->lpVtbl->Release(This)
+/*** IEnumDebugApplicationNodes methods ***/
+#define IEnumDebugApplicationNodes_Next(This,celt,pprddp,pceltFetched) (This)->lpVtbl->Next(This,celt,pprddp,pceltFetched)
+#define IEnumDebugApplicationNodes_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
+#define IEnumDebugApplicationNodes_Reset(This) (This)->lpVtbl->Reset(This)
+#define IEnumDebugApplicationNodes_Clone(This,pperddp) (This)->lpVtbl->Clone(This,pperddp)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IEnumDebugApplicationNodes_QueryInterface(IEnumDebugApplicationNodes* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IEnumDebugApplicationNodes_AddRef(IEnumDebugApplicationNodes* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IEnumDebugApplicationNodes_Release(IEnumDebugApplicationNodes* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IEnumDebugApplicationNodes methods ***/
+static FORCEINLINE HRESULT IEnumDebugApplicationNodes_Next(IEnumDebugApplicationNodes* This,ULONG celt,IDebugApplicationNode **pprddp,ULONG *pceltFetched) {
+    return This->lpVtbl->Next(This,celt,pprddp,pceltFetched);
+}
+static FORCEINLINE HRESULT IEnumDebugApplicationNodes_Skip(IEnumDebugApplicationNodes* This,ULONG celt) {
+    return This->lpVtbl->Skip(This,celt);
+}
+static FORCEINLINE HRESULT IEnumDebugApplicationNodes_Reset(IEnumDebugApplicationNodes* This) {
+    return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT IEnumDebugApplicationNodes_Clone(IEnumDebugApplicationNodes* This,IEnumDebugApplicationNodes **pperddp) {
+    return This->lpVtbl->Clone(This,pperddp);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT __stdcall IEnumDebugApplicationNodes_RemoteNext_Proxy(
+    IEnumDebugApplicationNodes* This,
+    ULONG celt,
+    IDebugApplicationNode **pprddp,
+    ULONG *pceltFetched);
+void __RPC_STUB IEnumDebugApplicationNodes_RemoteNext_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDebugApplicationNodes_Skip_Proxy(
+    IEnumDebugApplicationNodes* This,
+    ULONG celt);
+void __RPC_STUB IEnumDebugApplicationNodes_Skip_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDebugApplicationNodes_Reset_Proxy(
+    IEnumDebugApplicationNodes* This);
+void __RPC_STUB IEnumDebugApplicationNodes_Reset_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDebugApplicationNodes_Clone_Proxy(
+    IEnumDebugApplicationNodes* This,
+    IEnumDebugApplicationNodes **pperddp);
+void __RPC_STUB IEnumDebugApplicationNodes_Clone_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumDebugApplicationNodes_Next_Proxy(
+    IEnumDebugApplicationNodes* This,
+    ULONG celt,
+    IDebugApplicationNode **pprddp,
+    ULONG *pceltFetched);
+HRESULT __RPC_STUB IEnumDebugApplicationNodes_Next_Stub(
+    IEnumDebugApplicationNodes* This,
+    ULONG celt,
+    IDebugApplicationNode **pprddp,
+    ULONG *pceltFetched);
+
+#endif  /* __IEnumDebugApplicationNodes_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IEnumRemoteDebugApplications interface
+ */
+#ifndef __IEnumRemoteDebugApplications_INTERFACE_DEFINED__
+#define __IEnumRemoteDebugApplications_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IEnumRemoteDebugApplications, 0x51973c3b, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c3b-cb0c-11d0-b5c9-00a0244a0e7a")
+IEnumRemoteDebugApplications : public IUnknown
+{
+    virtual HRESULT __stdcall Next(
+        ULONG celt,
+        IRemoteDebugApplication **ppda,
+        ULONG *pceltFetched) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Skip(
+        ULONG celt) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Reset(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        IEnumRemoteDebugApplications **ppessd) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IEnumRemoteDebugApplications, 0x51973c3b, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IEnumRemoteDebugApplicationsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumRemoteDebugApplications* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IEnumRemoteDebugApplications* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IEnumRemoteDebugApplications* This);
+
+    /*** IEnumRemoteDebugApplications methods ***/
+    HRESULT (__stdcall *Next)(
+        IEnumRemoteDebugApplications* This,
+        ULONG celt,
+        IRemoteDebugApplication **ppda,
+        ULONG *pceltFetched);
+
+    HRESULT (STDMETHODCALLTYPE *Skip)(
+        IEnumRemoteDebugApplications* This,
+        ULONG celt);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IEnumRemoteDebugApplications* This);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IEnumRemoteDebugApplications* This,
+        IEnumRemoteDebugApplications **ppessd);
+
+    END_INTERFACE
+} IEnumRemoteDebugApplicationsVtbl;
+interface IEnumRemoteDebugApplications {
+    CONST_VTBL IEnumRemoteDebugApplicationsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IEnumRemoteDebugApplications_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumRemoteDebugApplications_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IEnumRemoteDebugApplications_Release(This) (This)->lpVtbl->Release(This)
+/*** IEnumRemoteDebugApplications methods ***/
+#define IEnumRemoteDebugApplications_Next(This,celt,ppda,pceltFetched) (This)->lpVtbl->Next(This,celt,ppda,pceltFetched)
+#define IEnumRemoteDebugApplications_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
+#define IEnumRemoteDebugApplications_Reset(This) (This)->lpVtbl->Reset(This)
+#define IEnumRemoteDebugApplications_Clone(This,ppessd) (This)->lpVtbl->Clone(This,ppessd)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IEnumRemoteDebugApplications_QueryInterface(IEnumRemoteDebugApplications* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IEnumRemoteDebugApplications_AddRef(IEnumRemoteDebugApplications* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IEnumRemoteDebugApplications_Release(IEnumRemoteDebugApplications* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IEnumRemoteDebugApplications methods ***/
+static FORCEINLINE HRESULT IEnumRemoteDebugApplications_Next(IEnumRemoteDebugApplications* This,ULONG celt,IRemoteDebugApplication **ppda,ULONG *pceltFetched) {
+    return This->lpVtbl->Next(This,celt,ppda,pceltFetched);
+}
+static FORCEINLINE HRESULT IEnumRemoteDebugApplications_Skip(IEnumRemoteDebugApplications* This,ULONG celt) {
+    return This->lpVtbl->Skip(This,celt);
+}
+static FORCEINLINE HRESULT IEnumRemoteDebugApplications_Reset(IEnumRemoteDebugApplications* This) {
+    return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT IEnumRemoteDebugApplications_Clone(IEnumRemoteDebugApplications* This,IEnumRemoteDebugApplications **ppessd) {
+    return This->lpVtbl->Clone(This,ppessd);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT __stdcall IEnumRemoteDebugApplications_RemoteNext_Proxy(
+    IEnumRemoteDebugApplications* This,
+    ULONG celt,
+    IRemoteDebugApplication **ppda,
+    ULONG *pceltFetched);
+void __RPC_STUB IEnumRemoteDebugApplications_RemoteNext_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumRemoteDebugApplications_Skip_Proxy(
+    IEnumRemoteDebugApplications* This,
+    ULONG celt);
+void __RPC_STUB IEnumRemoteDebugApplications_Skip_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumRemoteDebugApplications_Reset_Proxy(
+    IEnumRemoteDebugApplications* This);
+void __RPC_STUB IEnumRemoteDebugApplications_Reset_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumRemoteDebugApplications_Clone_Proxy(
+    IEnumRemoteDebugApplications* This,
+    IEnumRemoteDebugApplications **ppessd);
+void __RPC_STUB IEnumRemoteDebugApplications_Clone_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumRemoteDebugApplications_Next_Proxy(
+    IEnumRemoteDebugApplications* This,
+    ULONG celt,
+    IRemoteDebugApplication **ppda,
+    ULONG *pceltFetched);
+HRESULT __RPC_STUB IEnumRemoteDebugApplications_Next_Stub(
+    IEnumRemoteDebugApplications* This,
+    ULONG celt,
+    IRemoteDebugApplication **ppda,
+    ULONG *pceltFetched);
+
+#endif  /* __IEnumRemoteDebugApplications_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IEnumRemoteDebugApplicationThreads interface
+ */
+#ifndef __IEnumRemoteDebugApplicationThreads_INTERFACE_DEFINED__
+#define __IEnumRemoteDebugApplicationThreads_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IEnumRemoteDebugApplicationThreads, 0x51973c3c, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c3c-cb0c-11d0-b5c9-00a0244a0e7a")
+IEnumRemoteDebugApplicationThreads : public IUnknown
+{
+    virtual HRESULT __stdcall Next(
+        ULONG celt,
+        IRemoteDebugApplicationThread **pprdat,
+        ULONG *pceltFetched) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Skip(
+        ULONG celt) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Reset(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        IEnumRemoteDebugApplicationThreads **pperdat) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IEnumRemoteDebugApplicationThreads, 0x51973c3c, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IEnumRemoteDebugApplicationThreadsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumRemoteDebugApplicationThreads* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IEnumRemoteDebugApplicationThreads* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IEnumRemoteDebugApplicationThreads* This);
+
+    /*** IEnumRemoteDebugApplicationThreads methods ***/
+    HRESULT (__stdcall *Next)(
+        IEnumRemoteDebugApplicationThreads* This,
+        ULONG celt,
+        IRemoteDebugApplicationThread **pprdat,
+        ULONG *pceltFetched);
+
+    HRESULT (STDMETHODCALLTYPE *Skip)(
+        IEnumRemoteDebugApplicationThreads* This,
+        ULONG celt);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IEnumRemoteDebugApplicationThreads* This);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IEnumRemoteDebugApplicationThreads* This,
+        IEnumRemoteDebugApplicationThreads **pperdat);
+
+    END_INTERFACE
+} IEnumRemoteDebugApplicationThreadsVtbl;
+interface IEnumRemoteDebugApplicationThreads {
+    CONST_VTBL IEnumRemoteDebugApplicationThreadsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IEnumRemoteDebugApplicationThreads_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumRemoteDebugApplicationThreads_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IEnumRemoteDebugApplicationThreads_Release(This) (This)->lpVtbl->Release(This)
+/*** IEnumRemoteDebugApplicationThreads methods ***/
+#define IEnumRemoteDebugApplicationThreads_Next(This,celt,pprdat,pceltFetched) (This)->lpVtbl->Next(This,celt,pprdat,pceltFetched)
+#define IEnumRemoteDebugApplicationThreads_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
+#define IEnumRemoteDebugApplicationThreads_Reset(This) (This)->lpVtbl->Reset(This)
+#define IEnumRemoteDebugApplicationThreads_Clone(This,pperdat) (This)->lpVtbl->Clone(This,pperdat)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IEnumRemoteDebugApplicationThreads_QueryInterface(IEnumRemoteDebugApplicationThreads* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IEnumRemoteDebugApplicationThreads_AddRef(IEnumRemoteDebugApplicationThreads* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IEnumRemoteDebugApplicationThreads_Release(IEnumRemoteDebugApplicationThreads* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IEnumRemoteDebugApplicationThreads methods ***/
+static FORCEINLINE HRESULT IEnumRemoteDebugApplicationThreads_Next(IEnumRemoteDebugApplicationThreads* This,ULONG celt,IRemoteDebugApplicationThread **pprdat,ULONG *pceltFetched) {
+    return This->lpVtbl->Next(This,celt,pprdat,pceltFetched);
+}
+static FORCEINLINE HRESULT IEnumRemoteDebugApplicationThreads_Skip(IEnumRemoteDebugApplicationThreads* This,ULONG celt) {
+    return This->lpVtbl->Skip(This,celt);
+}
+static FORCEINLINE HRESULT IEnumRemoteDebugApplicationThreads_Reset(IEnumRemoteDebugApplicationThreads* This) {
+    return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT IEnumRemoteDebugApplicationThreads_Clone(IEnumRemoteDebugApplicationThreads* This,IEnumRemoteDebugApplicationThreads **pperdat) {
+    return This->lpVtbl->Clone(This,pperdat);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT __stdcall IEnumRemoteDebugApplicationThreads_RemoteNext_Proxy(
+    IEnumRemoteDebugApplicationThreads* This,
+    ULONG celt,
+    IRemoteDebugApplicationThread **ppdat,
+    ULONG *pceltFetched);
+void __RPC_STUB IEnumRemoteDebugApplicationThreads_RemoteNext_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumRemoteDebugApplicationThreads_Skip_Proxy(
+    IEnumRemoteDebugApplicationThreads* This,
+    ULONG celt);
+void __RPC_STUB IEnumRemoteDebugApplicationThreads_Skip_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumRemoteDebugApplicationThreads_Reset_Proxy(
+    IEnumRemoteDebugApplicationThreads* This);
+void __RPC_STUB IEnumRemoteDebugApplicationThreads_Reset_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumRemoteDebugApplicationThreads_Clone_Proxy(
+    IEnumRemoteDebugApplicationThreads* This,
+    IEnumRemoteDebugApplicationThreads **pperdat);
+void __RPC_STUB IEnumRemoteDebugApplicationThreads_Clone_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumRemoteDebugApplicationThreads_Next_Proxy(
+    IEnumRemoteDebugApplicationThreads* This,
+    ULONG celt,
+    IRemoteDebugApplicationThread **pprdat,
+    ULONG *pceltFetched);
+HRESULT __RPC_STUB IEnumRemoteDebugApplicationThreads_Next_Stub(
+    IEnumRemoteDebugApplicationThreads* This,
+    ULONG celt,
+    IRemoteDebugApplicationThread **ppdat,
+    ULONG *pceltFetched);
+
+#endif  /* __IEnumRemoteDebugApplicationThreads_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugFormatter interface
+ */
+#ifndef __IDebugFormatter_INTERFACE_DEFINED__
+#define __IDebugFormatter_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugFormatter, 0x51973c05, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c05-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugFormatter : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetStringForVariant(
+        VARIANT *pvar,
+        ULONG nRadix,
+        BSTR *pbstrValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetVariantForString(
+        LPCOLESTR pwstrValue,
+        VARIANT *pvar) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetStringForVarType(
+        VARTYPE vt,
+        TYPEDESC *ptdescArrayType,
+        BSTR *pbstr) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugFormatter, 0x51973c05, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugFormatterVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugFormatter* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugFormatter* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugFormatter* This);
+
+    /*** IDebugFormatter methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetStringForVariant)(
+        IDebugFormatter* This,
+        VARIANT *pvar,
+        ULONG nRadix,
+        BSTR *pbstrValue);
+
+    HRESULT (STDMETHODCALLTYPE *GetVariantForString)(
+        IDebugFormatter* This,
+        LPCOLESTR pwstrValue,
+        VARIANT *pvar);
+
+    HRESULT (STDMETHODCALLTYPE *GetStringForVarType)(
+        IDebugFormatter* This,
+        VARTYPE vt,
+        TYPEDESC *ptdescArrayType,
+        BSTR *pbstr);
+
+    END_INTERFACE
+} IDebugFormatterVtbl;
+interface IDebugFormatter {
+    CONST_VTBL IDebugFormatterVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugFormatter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugFormatter_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugFormatter_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugFormatter methods ***/
+#define IDebugFormatter_GetStringForVariant(This,pvar,nRadix,pbstrValue) (This)->lpVtbl->GetStringForVariant(This,pvar,nRadix,pbstrValue)
+#define IDebugFormatter_GetVariantForString(This,pwstrValue,pvar) (This)->lpVtbl->GetVariantForString(This,pwstrValue,pvar)
+#define IDebugFormatter_GetStringForVarType(This,vt,ptdescArrayType,pbstr) (This)->lpVtbl->GetStringForVarType(This,vt,ptdescArrayType,pbstr)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugFormatter_QueryInterface(IDebugFormatter* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugFormatter_AddRef(IDebugFormatter* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugFormatter_Release(IDebugFormatter* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugFormatter methods ***/
+static FORCEINLINE HRESULT IDebugFormatter_GetStringForVariant(IDebugFormatter* This,VARIANT *pvar,ULONG nRadix,BSTR *pbstrValue) {
+    return This->lpVtbl->GetStringForVariant(This,pvar,nRadix,pbstrValue);
+}
+static FORCEINLINE HRESULT IDebugFormatter_GetVariantForString(IDebugFormatter* This,LPCOLESTR pwstrValue,VARIANT *pvar) {
+    return This->lpVtbl->GetVariantForString(This,pwstrValue,pvar);
+}
+static FORCEINLINE HRESULT IDebugFormatter_GetStringForVarType(IDebugFormatter* This,VARTYPE vt,TYPEDESC *ptdescArrayType,BSTR *pbstr) {
+    return This->lpVtbl->GetStringForVarType(This,vt,ptdescArrayType,pbstr);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugFormatter_GetStringForVariant_Proxy(
+    IDebugFormatter* This,
+    VARIANT *pvar,
+    ULONG nRadix,
+    BSTR *pbstrValue);
+void __RPC_STUB IDebugFormatter_GetStringForVariant_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugFormatter_GetVariantForString_Proxy(
+    IDebugFormatter* This,
+    LPCOLESTR pwstrValue,
+    VARIANT *pvar);
+void __RPC_STUB IDebugFormatter_GetVariantForString_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugFormatter_GetStringForVarType_Proxy(
+    IDebugFormatter* This,
+    VARTYPE vt,
+    TYPEDESC *ptdescArrayType,
+    BSTR *pbstr);
+void __RPC_STUB IDebugFormatter_GetStringForVarType_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugFormatter_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISimpleConnectionPoint interface
+ */
+#ifndef __ISimpleConnectionPoint_INTERFACE_DEFINED__
+#define __ISimpleConnectionPoint_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISimpleConnectionPoint, 0x51973c3e, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c3e-cb0c-11d0-b5c9-00a0244a0e7a")
+ISimpleConnectionPoint : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetEventCount(
+        ULONG *pulCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DescribeEvents(
+        ULONG iEvent,
+        ULONG cEvents,
+        DISPID *prgid,
+        BSTR *prgbstr,
+        ULONG *pcEventsFetched) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Advise(
+        IDispatch *pdisp,
+        DWORD *pdwCookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Unadvise(
+        DWORD dwCookie) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISimpleConnectionPoint, 0x51973c3e, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct ISimpleConnectionPointVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISimpleConnectionPoint* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISimpleConnectionPoint* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISimpleConnectionPoint* This);
+
+    /*** ISimpleConnectionPoint methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetEventCount)(
+        ISimpleConnectionPoint* This,
+        ULONG *pulCount);
+
+    HRESULT (STDMETHODCALLTYPE *DescribeEvents)(
+        ISimpleConnectionPoint* This,
+        ULONG iEvent,
+        ULONG cEvents,
+        DISPID *prgid,
+        BSTR *prgbstr,
+        ULONG *pcEventsFetched);
+
+    HRESULT (STDMETHODCALLTYPE *Advise)(
+        ISimpleConnectionPoint* This,
+        IDispatch *pdisp,
+        DWORD *pdwCookie);
+
+    HRESULT (STDMETHODCALLTYPE *Unadvise)(
+        ISimpleConnectionPoint* This,
+        DWORD dwCookie);
+
+    END_INTERFACE
+} ISimpleConnectionPointVtbl;
+interface ISimpleConnectionPoint {
+    CONST_VTBL ISimpleConnectionPointVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISimpleConnectionPoint_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISimpleConnectionPoint_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISimpleConnectionPoint_Release(This) (This)->lpVtbl->Release(This)
+/*** ISimpleConnectionPoint methods ***/
+#define ISimpleConnectionPoint_GetEventCount(This,pulCount) (This)->lpVtbl->GetEventCount(This,pulCount)
+#define ISimpleConnectionPoint_DescribeEvents(This,iEvent,cEvents,prgid,prgbstr,pcEventsFetched) (This)->lpVtbl->DescribeEvents(This,iEvent,cEvents,prgid,prgbstr,pcEventsFetched)
+#define ISimpleConnectionPoint_Advise(This,pdisp,pdwCookie) (This)->lpVtbl->Advise(This,pdisp,pdwCookie)
+#define ISimpleConnectionPoint_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISimpleConnectionPoint_QueryInterface(ISimpleConnectionPoint* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISimpleConnectionPoint_AddRef(ISimpleConnectionPoint* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISimpleConnectionPoint_Release(ISimpleConnectionPoint* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ISimpleConnectionPoint methods ***/
+static FORCEINLINE HRESULT ISimpleConnectionPoint_GetEventCount(ISimpleConnectionPoint* This,ULONG *pulCount) {
+    return This->lpVtbl->GetEventCount(This,pulCount);
+}
+static FORCEINLINE HRESULT ISimpleConnectionPoint_DescribeEvents(ISimpleConnectionPoint* This,ULONG iEvent,ULONG cEvents,DISPID *prgid,BSTR *prgbstr,ULONG *pcEventsFetched) {
+    return This->lpVtbl->DescribeEvents(This,iEvent,cEvents,prgid,prgbstr,pcEventsFetched);
+}
+static FORCEINLINE HRESULT ISimpleConnectionPoint_Advise(ISimpleConnectionPoint* This,IDispatch *pdisp,DWORD *pdwCookie) {
+    return This->lpVtbl->Advise(This,pdisp,pdwCookie);
+}
+static FORCEINLINE HRESULT ISimpleConnectionPoint_Unadvise(ISimpleConnectionPoint* This,DWORD dwCookie) {
+    return This->lpVtbl->Unadvise(This,dwCookie);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE ISimpleConnectionPoint_GetEventCount_Proxy(
+    ISimpleConnectionPoint* This,
+    ULONG *pulCount);
+void __RPC_STUB ISimpleConnectionPoint_GetEventCount_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISimpleConnectionPoint_DescribeEvents_Proxy(
+    ISimpleConnectionPoint* This,
+    ULONG iEvent,
+    ULONG cEvents,
+    DISPID *prgid,
+    BSTR *prgbstr,
+    ULONG *pcEventsFetched);
+void __RPC_STUB ISimpleConnectionPoint_DescribeEvents_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISimpleConnectionPoint_Advise_Proxy(
+    ISimpleConnectionPoint* This,
+    IDispatch *pdisp,
+    DWORD *pdwCookie);
+void __RPC_STUB ISimpleConnectionPoint_Advise_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE ISimpleConnectionPoint_Unadvise_Proxy(
+    ISimpleConnectionPoint* This,
+    DWORD dwCookie);
+void __RPC_STUB ISimpleConnectionPoint_Unadvise_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __ISimpleConnectionPoint_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugHelper interface
+ */
+#ifndef __IDebugHelper_INTERFACE_DEFINED__
+#define __IDebugHelper_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugHelper, 0x51973c3f, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c3f-cb0c-11d0-b5c9-00a0244a0e7a")
+IDebugHelper : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE CreatePropertyBrowser(
+        VARIANT *pvar,
+        LPCOLESTR bstrName,
+        IDebugApplicationThread *pdat,
+        IDebugProperty **ppdob) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreatePropertyBrowserEx(
+        VARIANT *pvar,
+        LPCOLESTR bstrName,
+        IDebugApplicationThread *pdat,
+        IDebugFormatter *pdf,
+        IDebugProperty **ppdob) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateSimpleConnectionPoint(
+        IDispatch *pdisp,
+        ISimpleConnectionPoint **ppscp) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugHelper, 0x51973c3f, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IDebugHelperVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugHelper* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugHelper* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugHelper* This);
+
+    /*** IDebugHelper methods ***/
+    HRESULT (STDMETHODCALLTYPE *CreatePropertyBrowser)(
+        IDebugHelper* This,
+        VARIANT *pvar,
+        LPCOLESTR bstrName,
+        IDebugApplicationThread *pdat,
+        IDebugProperty **ppdob);
+
+    HRESULT (STDMETHODCALLTYPE *CreatePropertyBrowserEx)(
+        IDebugHelper* This,
+        VARIANT *pvar,
+        LPCOLESTR bstrName,
+        IDebugApplicationThread *pdat,
+        IDebugFormatter *pdf,
+        IDebugProperty **ppdob);
+
+    HRESULT (STDMETHODCALLTYPE *CreateSimpleConnectionPoint)(
+        IDebugHelper* This,
+        IDispatch *pdisp,
+        ISimpleConnectionPoint **ppscp);
+
+    END_INTERFACE
+} IDebugHelperVtbl;
+interface IDebugHelper {
+    CONST_VTBL IDebugHelperVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugHelper_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugHelper methods ***/
+#define IDebugHelper_CreatePropertyBrowser(This,pvar,bstrName,pdat,ppdob) (This)->lpVtbl->CreatePropertyBrowser(This,pvar,bstrName,pdat,ppdob)
+#define IDebugHelper_CreatePropertyBrowserEx(This,pvar,bstrName,pdat,pdf,ppdob) (This)->lpVtbl->CreatePropertyBrowserEx(This,pvar,bstrName,pdat,pdf,ppdob)
+#define IDebugHelper_CreateSimpleConnectionPoint(This,pdisp,ppscp) (This)->lpVtbl->CreateSimpleConnectionPoint(This,pdisp,ppscp)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugHelper_QueryInterface(IDebugHelper* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugHelper_AddRef(IDebugHelper* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugHelper_Release(IDebugHelper* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugHelper methods ***/
+static FORCEINLINE HRESULT IDebugHelper_CreatePropertyBrowser(IDebugHelper* This,VARIANT *pvar,LPCOLESTR bstrName,IDebugApplicationThread *pdat,IDebugProperty **ppdob) {
+    return This->lpVtbl->CreatePropertyBrowser(This,pvar,bstrName,pdat,ppdob);
+}
+static FORCEINLINE HRESULT IDebugHelper_CreatePropertyBrowserEx(IDebugHelper* This,VARIANT *pvar,LPCOLESTR bstrName,IDebugApplicationThread *pdat,IDebugFormatter *pdf,IDebugProperty **ppdob) {
+    return This->lpVtbl->CreatePropertyBrowserEx(This,pvar,bstrName,pdat,pdf,ppdob);
+}
+static FORCEINLINE HRESULT IDebugHelper_CreateSimpleConnectionPoint(IDebugHelper* This,IDispatch *pdisp,ISimpleConnectionPoint **ppscp) {
+    return This->lpVtbl->CreateSimpleConnectionPoint(This,pdisp,ppscp);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugHelper_CreatePropertyBrowser_Proxy(
+    IDebugHelper* This,
+    VARIANT *pvar,
+    LPCOLESTR bstrName,
+    IDebugApplicationThread *pdat,
+    IDebugProperty **ppdob);
+void __RPC_STUB IDebugHelper_CreatePropertyBrowser_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugHelper_CreatePropertyBrowserEx_Proxy(
+    IDebugHelper* This,
+    VARIANT *pvar,
+    LPCOLESTR bstrName,
+    IDebugApplicationThread *pdat,
+    IDebugFormatter *pdf,
+    IDebugProperty **ppdob);
+void __RPC_STUB IDebugHelper_CreatePropertyBrowserEx_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugHelper_CreateSimpleConnectionPoint_Proxy(
+    IDebugHelper* This,
+    IDispatch *pdisp,
+    ISimpleConnectionPoint **ppscp);
+void __RPC_STUB IDebugHelper_CreateSimpleConnectionPoint_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugHelper_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IEnumDebugExpressionContexts interface
+ */
+#ifndef __IEnumDebugExpressionContexts_INTERFACE_DEFINED__
+#define __IEnumDebugExpressionContexts_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IEnumDebugExpressionContexts, 0x51973c40, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c40-cb0c-11d0-b5c9-00a0244a0e7a")
+IEnumDebugExpressionContexts : public IUnknown
+{
+    virtual HRESULT __stdcall Next(
+        ULONG celt,
+        IDebugExpressionContext **ppdec,
+        ULONG *pceltFetched) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Skip(
+        ULONG celt) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Reset(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        IEnumDebugExpressionContexts **ppedec) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IEnumDebugExpressionContexts, 0x51973c40, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IEnumDebugExpressionContextsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumDebugExpressionContexts* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IEnumDebugExpressionContexts* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IEnumDebugExpressionContexts* This);
+
+    /*** IEnumDebugExpressionContexts methods ***/
+    HRESULT (__stdcall *Next)(
+        IEnumDebugExpressionContexts* This,
+        ULONG celt,
+        IDebugExpressionContext **ppdec,
+        ULONG *pceltFetched);
+
+    HRESULT (STDMETHODCALLTYPE *Skip)(
+        IEnumDebugExpressionContexts* This,
+        ULONG celt);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IEnumDebugExpressionContexts* This);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IEnumDebugExpressionContexts* This,
+        IEnumDebugExpressionContexts **ppedec);
+
+    END_INTERFACE
+} IEnumDebugExpressionContextsVtbl;
+interface IEnumDebugExpressionContexts {
+    CONST_VTBL IEnumDebugExpressionContextsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IEnumDebugExpressionContexts_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumDebugExpressionContexts_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IEnumDebugExpressionContexts_Release(This) (This)->lpVtbl->Release(This)
+/*** IEnumDebugExpressionContexts methods ***/
+#define IEnumDebugExpressionContexts_Next(This,celt,ppdec,pceltFetched) (This)->lpVtbl->Next(This,celt,ppdec,pceltFetched)
+#define IEnumDebugExpressionContexts_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
+#define IEnumDebugExpressionContexts_Reset(This) (This)->lpVtbl->Reset(This)
+#define IEnumDebugExpressionContexts_Clone(This,ppedec) (This)->lpVtbl->Clone(This,ppedec)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IEnumDebugExpressionContexts_QueryInterface(IEnumDebugExpressionContexts* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IEnumDebugExpressionContexts_AddRef(IEnumDebugExpressionContexts* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IEnumDebugExpressionContexts_Release(IEnumDebugExpressionContexts* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IEnumDebugExpressionContexts methods ***/
+static FORCEINLINE HRESULT IEnumDebugExpressionContexts_Next(IEnumDebugExpressionContexts* This,ULONG celt,IDebugExpressionContext **ppdec,ULONG *pceltFetched) {
+    return This->lpVtbl->Next(This,celt,ppdec,pceltFetched);
+}
+static FORCEINLINE HRESULT IEnumDebugExpressionContexts_Skip(IEnumDebugExpressionContexts* This,ULONG celt) {
+    return This->lpVtbl->Skip(This,celt);
+}
+static FORCEINLINE HRESULT IEnumDebugExpressionContexts_Reset(IEnumDebugExpressionContexts* This) {
+    return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT IEnumDebugExpressionContexts_Clone(IEnumDebugExpressionContexts* This,IEnumDebugExpressionContexts **ppedec) {
+    return This->lpVtbl->Clone(This,ppedec);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT __stdcall IEnumDebugExpressionContexts_RemoteNext_Proxy(
+    IEnumDebugExpressionContexts* This,
+    ULONG celt,
+    IDebugExpressionContext **pprgdec,
+    ULONG *pceltFetched);
+void __RPC_STUB IEnumDebugExpressionContexts_RemoteNext_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDebugExpressionContexts_Skip_Proxy(
+    IEnumDebugExpressionContexts* This,
+    ULONG celt);
+void __RPC_STUB IEnumDebugExpressionContexts_Skip_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDebugExpressionContexts_Reset_Proxy(
+    IEnumDebugExpressionContexts* This);
+void __RPC_STUB IEnumDebugExpressionContexts_Reset_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IEnumDebugExpressionContexts_Clone_Proxy(
+    IEnumDebugExpressionContexts* This,
+    IEnumDebugExpressionContexts **ppedec);
+void __RPC_STUB IEnumDebugExpressionContexts_Clone_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumDebugExpressionContexts_Next_Proxy(
+    IEnumDebugExpressionContexts* This,
+    ULONG celt,
+    IDebugExpressionContext **ppdec,
+    ULONG *pceltFetched);
+HRESULT __RPC_STUB IEnumDebugExpressionContexts_Next_Stub(
+    IEnumDebugExpressionContexts* This,
+    ULONG celt,
+    IDebugExpressionContext **pprgdec,
+    ULONG *pceltFetched);
+
+#endif  /* __IEnumDebugExpressionContexts_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IProvideExpressionContexts interface
+ */
+#ifndef __IProvideExpressionContexts_INTERFACE_DEFINED__
+#define __IProvideExpressionContexts_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IProvideExpressionContexts, 0x51973c41, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("51973c41-cb0c-11d0-b5c9-00a0244a0e7a")
+IProvideExpressionContexts : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE EnumExpressionContexts(
+        IEnumDebugExpressionContexts **ppedec) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IProvideExpressionContexts, 0x51973c41, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
+#endif
+#else
+typedef struct IProvideExpressionContextsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IProvideExpressionContexts* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IProvideExpressionContexts* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IProvideExpressionContexts* This);
+
+    /*** IProvideExpressionContexts methods ***/
+    HRESULT (STDMETHODCALLTYPE *EnumExpressionContexts)(
+        IProvideExpressionContexts* This,
+        IEnumDebugExpressionContexts **ppedec);
+
+    END_INTERFACE
+} IProvideExpressionContextsVtbl;
+interface IProvideExpressionContexts {
+    CONST_VTBL IProvideExpressionContextsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IProvideExpressionContexts_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IProvideExpressionContexts_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IProvideExpressionContexts_Release(This) (This)->lpVtbl->Release(This)
+/*** IProvideExpressionContexts methods ***/
+#define IProvideExpressionContexts_EnumExpressionContexts(This,ppedec) (This)->lpVtbl->EnumExpressionContexts(This,ppedec)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IProvideExpressionContexts_QueryInterface(IProvideExpressionContexts* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IProvideExpressionContexts_AddRef(IProvideExpressionContexts* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IProvideExpressionContexts_Release(IProvideExpressionContexts* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IProvideExpressionContexts methods ***/
+static FORCEINLINE HRESULT IProvideExpressionContexts_EnumExpressionContexts(IProvideExpressionContexts* This,IEnumDebugExpressionContexts **ppedec) {
+    return This->lpVtbl->EnumExpressionContexts(This,ppedec);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IProvideExpressionContexts_EnumExpressionContexts_Proxy(
+    IProvideExpressionContexts* This,
+    IEnumDebugExpressionContexts **ppedec);
+void __RPC_STUB IProvideExpressionContexts_EnumExpressionContexts_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IProvideExpressionContexts_INTERFACE_DEFINED__ */
+
+
+DEFINE_GUID(LIBID_ProcessDebugManagerLib, 0x78a51821, 0x51f4, 0x11d0, 0x8f,0x20, 0x00,0x80,0x5f,0x2c,0xd0,0x64);
+
+#ifndef __IActiveScriptDebug32_FWD_DEFINED__
+#define __IActiveScriptDebug32_FWD_DEFINED__
+typedef interface IActiveScriptDebug32 IActiveScriptDebug32;
+#endif
+
+#ifndef __IActiveScriptDebug64_FWD_DEFINED__
+#define __IActiveScriptDebug64_FWD_DEFINED__
+typedef interface IActiveScriptDebug64 IActiveScriptDebug64;
+#endif
+
+#ifndef __IActiveScriptErrorDebug_FWD_DEFINED__
+#define __IActiveScriptErrorDebug_FWD_DEFINED__
+typedef interface IActiveScriptErrorDebug IActiveScriptErrorDebug;
+#endif
+
+#ifndef __IActiveScriptSiteDebug32_FWD_DEFINED__
+#define __IActiveScriptSiteDebug32_FWD_DEFINED__
+typedef interface IActiveScriptSiteDebug32 IActiveScriptSiteDebug32;
+#endif
+
+#ifndef __IActiveScriptSiteDebug64_FWD_DEFINED__
+#define __IActiveScriptSiteDebug64_FWD_DEFINED__
+typedef interface IActiveScriptSiteDebug64 IActiveScriptSiteDebug64;
+#endif
+
+#ifndef __IActiveScriptSiteDebugEx_FWD_DEFINED__
+#define __IActiveScriptSiteDebugEx_FWD_DEFINED__
+typedef interface IActiveScriptSiteDebugEx IActiveScriptSiteDebugEx;
+#endif
+
+#ifndef __IApplicationDebugger_FWD_DEFINED__
+#define __IApplicationDebugger_FWD_DEFINED__
+typedef interface IApplicationDebugger IApplicationDebugger;
+#endif
+
+#ifndef __IApplicationDebuggerUI_FWD_DEFINED__
+#define __IApplicationDebuggerUI_FWD_DEFINED__
+typedef interface IApplicationDebuggerUI IApplicationDebuggerUI;
+#endif
+
+#ifndef __IDebugApplication32_FWD_DEFINED__
+#define __IDebugApplication32_FWD_DEFINED__
+typedef interface IDebugApplication32 IDebugApplication32;
+#endif
+
+#ifndef __IDebugApplication64_FWD_DEFINED__
+#define __IDebugApplication64_FWD_DEFINED__
+typedef interface IDebugApplication64 IDebugApplication64;
+#endif
+
+#ifndef __IDebugApplicationNode_FWD_DEFINED__
+#define __IDebugApplicationNode_FWD_DEFINED__
+typedef interface IDebugApplicationNode IDebugApplicationNode;
+#endif
+
+#ifndef __IDebugApplicationNodeEvents_FWD_DEFINED__
+#define __IDebugApplicationNodeEvents_FWD_DEFINED__
+typedef interface IDebugApplicationNodeEvents IDebugApplicationNodeEvents;
+#endif
+
+#ifndef __AsyncIDebugApplicationNodeEvents_FWD_DEFINED__
+#define __AsyncIDebugApplicationNodeEvents_FWD_DEFINED__
+typedef interface AsyncIDebugApplicationNodeEvents AsyncIDebugApplicationNodeEvents;
+#endif
+
+#ifndef __IDebugApplicationThread_FWD_DEFINED__
+#define __IDebugApplicationThread_FWD_DEFINED__
+typedef interface IDebugApplicationThread IDebugApplicationThread;
+#endif
+
+#ifndef __IDebugAsyncOperation_FWD_DEFINED__
+#define __IDebugAsyncOperation_FWD_DEFINED__
+typedef interface IDebugAsyncOperation IDebugAsyncOperation;
+#endif
+
+#ifndef __IDebugAsyncOperationCallBack_FWD_DEFINED__
+#define __IDebugAsyncOperationCallBack_FWD_DEFINED__
+typedef interface IDebugAsyncOperationCallBack IDebugAsyncOperationCallBack;
+#endif
+
+#ifndef __IDebugCodeContext_FWD_DEFINED__
+#define __IDebugCodeContext_FWD_DEFINED__
+typedef interface IDebugCodeContext IDebugCodeContext;
+#endif
+
+#ifndef __IDebugCookie_FWD_DEFINED__
+#define __IDebugCookie_FWD_DEFINED__
+typedef interface IDebugCookie IDebugCookie;
+#endif
+
+#ifndef __IDebugDocument_FWD_DEFINED__
+#define __IDebugDocument_FWD_DEFINED__
+typedef interface IDebugDocument IDebugDocument;
+#endif
+
+#ifndef __IDebugDocumentContext_FWD_DEFINED__
+#define __IDebugDocumentContext_FWD_DEFINED__
+typedef interface IDebugDocumentContext IDebugDocumentContext;
+#endif
+
+#ifndef __IDebugDocumentHelper32_FWD_DEFINED__
+#define __IDebugDocumentHelper32_FWD_DEFINED__
+typedef interface IDebugDocumentHelper32 IDebugDocumentHelper32;
+#endif
+
+#ifndef __IDebugDocumentHelper64_FWD_DEFINED__
+#define __IDebugDocumentHelper64_FWD_DEFINED__
+typedef interface IDebugDocumentHelper64 IDebugDocumentHelper64;
+#endif
+
+#ifndef __IDebugDocumentHost_FWD_DEFINED__
+#define __IDebugDocumentHost_FWD_DEFINED__
+typedef interface IDebugDocumentHost IDebugDocumentHost;
+#endif
+
+#ifndef __IDebugDocumentInfo_FWD_DEFINED__
+#define __IDebugDocumentInfo_FWD_DEFINED__
+typedef interface IDebugDocumentInfo IDebugDocumentInfo;
+#endif
+
+#ifndef __IDebugDocumentProvider_FWD_DEFINED__
+#define __IDebugDocumentProvider_FWD_DEFINED__
+typedef interface IDebugDocumentProvider IDebugDocumentProvider;
+#endif
+
+#ifndef __IDebugDocumentText_FWD_DEFINED__
+#define __IDebugDocumentText_FWD_DEFINED__
+typedef interface IDebugDocumentText IDebugDocumentText;
+#endif
+
+#ifndef __IDebugDocumentTextAuthor_FWD_DEFINED__
+#define __IDebugDocumentTextAuthor_FWD_DEFINED__
+typedef interface IDebugDocumentTextAuthor IDebugDocumentTextAuthor;
+#endif
+
+#ifndef __IDebugDocumentTextEvents_FWD_DEFINED__
+#define __IDebugDocumentTextEvents_FWD_DEFINED__
+typedef interface IDebugDocumentTextEvents IDebugDocumentTextEvents;
+#endif
+
+#ifndef __IDebugDocumentTextExternalAuthor_FWD_DEFINED__
+#define __IDebugDocumentTextExternalAuthor_FWD_DEFINED__
+typedef interface IDebugDocumentTextExternalAuthor IDebugDocumentTextExternalAuthor;
+#endif
+
+#ifndef __IDebugExpression_FWD_DEFINED__
+#define __IDebugExpression_FWD_DEFINED__
+typedef interface IDebugExpression IDebugExpression;
+#endif
+
+#ifndef __IDebugExpressionCallBack_FWD_DEFINED__
+#define __IDebugExpressionCallBack_FWD_DEFINED__
+typedef interface IDebugExpressionCallBack IDebugExpressionCallBack;
+#endif
+
+#ifndef __IDebugExpressionContext_FWD_DEFINED__
+#define __IDebugExpressionContext_FWD_DEFINED__
+typedef interface IDebugExpressionContext IDebugExpressionContext;
+#endif
+
+#ifndef __IDebugFormatter_FWD_DEFINED__
+#define __IDebugFormatter_FWD_DEFINED__
+typedef interface IDebugFormatter IDebugFormatter;
+#endif
+
+#ifndef __IDebugHelper_FWD_DEFINED__
+#define __IDebugHelper_FWD_DEFINED__
+typedef interface IDebugHelper IDebugHelper;
+#endif
+
+#ifndef __IDebugSessionProvider_FWD_DEFINED__
+#define __IDebugSessionProvider_FWD_DEFINED__
+typedef interface IDebugSessionProvider IDebugSessionProvider;
+#endif
+
+#ifndef __IDebugStackFrame_FWD_DEFINED__
+#define __IDebugStackFrame_FWD_DEFINED__
+typedef interface IDebugStackFrame IDebugStackFrame;
+#endif
+
+#ifndef __IDebugStackFrameSniffer_FWD_DEFINED__
+#define __IDebugStackFrameSniffer_FWD_DEFINED__
+typedef interface IDebugStackFrameSniffer IDebugStackFrameSniffer;
+#endif
+
+#ifndef __IDebugStackFrameSnifferEx32_FWD_DEFINED__
+#define __IDebugStackFrameSnifferEx32_FWD_DEFINED__
+typedef interface IDebugStackFrameSnifferEx32 IDebugStackFrameSnifferEx32;
+#endif
+
+#ifndef __IDebugStackFrameSnifferEx64_FWD_DEFINED__
+#define __IDebugStackFrameSnifferEx64_FWD_DEFINED__
+typedef interface IDebugStackFrameSnifferEx64 IDebugStackFrameSnifferEx64;
+#endif
+
+#ifndef __IDebugSyncOperation_FWD_DEFINED__
+#define __IDebugSyncOperation_FWD_DEFINED__
+typedef interface IDebugSyncOperation IDebugSyncOperation;
+#endif
+
+#ifndef __IDebugThreadCall32_FWD_DEFINED__
+#define __IDebugThreadCall32_FWD_DEFINED__
+typedef interface IDebugThreadCall32 IDebugThreadCall32;
+#endif
+
+#ifndef __IDebugThreadCall64_FWD_DEFINED__
+#define __IDebugThreadCall64_FWD_DEFINED__
+typedef interface IDebugThreadCall64 IDebugThreadCall64;
+#endif
+
+#ifndef __IEnumDebugApplicationNodes_FWD_DEFINED__
+#define __IEnumDebugApplicationNodes_FWD_DEFINED__
+typedef interface IEnumDebugApplicationNodes IEnumDebugApplicationNodes;
+#endif
+
+#ifndef __IEnumDebugCodeContexts_FWD_DEFINED__
+#define __IEnumDebugCodeContexts_FWD_DEFINED__
+typedef interface IEnumDebugCodeContexts IEnumDebugCodeContexts;
+#endif
+
+#ifndef __IEnumDebugExpressionContexts_FWD_DEFINED__
+#define __IEnumDebugExpressionContexts_FWD_DEFINED__
+typedef interface IEnumDebugExpressionContexts IEnumDebugExpressionContexts;
+#endif
+
+#ifndef __IEnumDebugStackFrames_FWD_DEFINED__
+#define __IEnumDebugStackFrames_FWD_DEFINED__
+typedef interface IEnumDebugStackFrames IEnumDebugStackFrames;
+#endif
+
+#ifndef __IEnumDebugStackFrames64_FWD_DEFINED__
+#define __IEnumDebugStackFrames64_FWD_DEFINED__
+typedef interface IEnumDebugStackFrames64 IEnumDebugStackFrames64;
+#endif
+
+#ifndef __IEnumRemoteDebugApplications_FWD_DEFINED__
+#define __IEnumRemoteDebugApplications_FWD_DEFINED__
+typedef interface IEnumRemoteDebugApplications IEnumRemoteDebugApplications;
+#endif
+
+#ifndef __IEnumRemoteDebugApplicationThreads_FWD_DEFINED__
+#define __IEnumRemoteDebugApplicationThreads_FWD_DEFINED__
+typedef interface IEnumRemoteDebugApplicationThreads IEnumRemoteDebugApplicationThreads;
+#endif
+
+#ifndef __IProcessDebugManager32_FWD_DEFINED__
+#define __IProcessDebugManager32_FWD_DEFINED__
+typedef interface IProcessDebugManager32 IProcessDebugManager32;
+#endif
+
+#ifndef __IProcessDebugManager64_FWD_DEFINED__
+#define __IProcessDebugManager64_FWD_DEFINED__
+typedef interface IProcessDebugManager64 IProcessDebugManager64;
+#endif
+
+#ifndef __IProvideExpressionContexts_FWD_DEFINED__
+#define __IProvideExpressionContexts_FWD_DEFINED__
+typedef interface IProvideExpressionContexts IProvideExpressionContexts;
+#endif
+
+#ifndef __IMachineDebugManager_FWD_DEFINED__
+#define __IMachineDebugManager_FWD_DEFINED__
+typedef interface IMachineDebugManager IMachineDebugManager;
+#endif
+
+#ifndef __IMachineDebugManagerCookie_FWD_DEFINED__
+#define __IMachineDebugManagerCookie_FWD_DEFINED__
+typedef interface IMachineDebugManagerCookie IMachineDebugManagerCookie;
+#endif
+
+#ifndef __IMachineDebugManagerEvents_FWD_DEFINED__
+#define __IMachineDebugManagerEvents_FWD_DEFINED__
+typedef interface IMachineDebugManagerEvents IMachineDebugManagerEvents;
+#endif
+
+#ifndef __IRemoteDebugApplication_FWD_DEFINED__
+#define __IRemoteDebugApplication_FWD_DEFINED__
+typedef interface IRemoteDebugApplication IRemoteDebugApplication;
+#endif
+
+#ifndef __IRemoteDebugApplicationEvents_FWD_DEFINED__
+#define __IRemoteDebugApplicationEvents_FWD_DEFINED__
+typedef interface IRemoteDebugApplicationEvents IRemoteDebugApplicationEvents;
+#endif
+
+#ifndef __IRemoteDebugApplicationThread_FWD_DEFINED__
+#define __IRemoteDebugApplicationThread_FWD_DEFINED__
+typedef interface IRemoteDebugApplicationThread IRemoteDebugApplicationThread;
+#endif
+
+#ifndef __ISimpleConnectionPoint_FWD_DEFINED__
+#define __ISimpleConnectionPoint_FWD_DEFINED__
+typedef interface ISimpleConnectionPoint ISimpleConnectionPoint;
+#endif
+
+/*****************************************************************************
+ * ProcessDebugManager coclass
+ */
+
+DEFINE_GUID(CLSID_ProcessDebugManager, 0x78a51822, 0x51f4, 0x11d0, 0x8f,0x20, 0x00,0x80,0x5f,0x2c,0xd0,0x64);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("78a51822-51f4-11d0-8f20-00805f2cd064") ProcessDebugManager;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ProcessDebugManager, 0x78a51822, 0x51f4, 0x11d0, 0x8f,0x20, 0x00,0x80,0x5f,0x2c,0xd0,0x64)
+#endif
+#endif
+
+/*****************************************************************************
+ * DebugHelper coclass
+ */
+
+DEFINE_GUID(CLSID_DebugHelper, 0x0bfcc060, 0x8c1d, 0x11d0, 0xac,0xcd, 0x00,0xaa,0x00,0x60,0x27,0x5c);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("0bfcc060-8c1d-11d0-accd-00aa0060275c") DebugHelper;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(DebugHelper, 0x0bfcc060, 0x8c1d, 0x11d0, 0xac,0xcd, 0x00,0xaa,0x00,0x60,0x27,0x5c)
+#endif
+#endif
+
+EXTERN_C const CLSID CLSID_CDebugDocumentHelper;
+/*****************************************************************************
+ * CDebugDocumentHelper coclass
+ */
+
+DEFINE_GUID(CLSID_CDebugDocumentHelper, 0x83b8bca6, 0x687c, 0x11d0, 0xa4,0x05, 0x00,0xaa,0x00,0x60,0x27,0x5c);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("83b8bca6-687c-11d0-a405-00aa0060275c") CDebugDocumentHelper;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(CDebugDocumentHelper, 0x83b8bca6, 0x687c, 0x11d0, 0xa4,0x05, 0x00,0xaa,0x00,0x60,0x27,0x5c)
+#endif
+#endif
+
+#ifdef DEBUG
+#define MachineDebugManger MachineDebugManager_DEBUG
+#define CLSID_MachineDebugManager CLSID_MachineDebugManager_DEBUG
+#else
+#define MachineDebugManger MachineDebugManager_RETAIL
+#define CLSID_MachineDebugManager CLSID_MachineDebugManager_RETAIL
+#endif
+/*****************************************************************************
+ * MachineDebugManager_RETAIL coclass
+ */
+
+DEFINE_GUID(CLSID_MachineDebugManager_RETAIL, 0x0c0a3666, 0x30c9, 0x11d0, 0x8f,0x20, 0x00,0x80,0x5f,0x2c,0xd0,0x64);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("0c0a3666-30c9-11d0-8f20-00805f2cd064") MachineDebugManager_RETAIL;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(MachineDebugManager_RETAIL, 0x0c0a3666, 0x30c9, 0x11d0, 0x8f,0x20, 0x00,0x80,0x5f,0x2c,0xd0,0x64)
+#endif
+#endif
+
+/*****************************************************************************
+ * MachineDebugManager_DEBUG coclass
+ */
+
+DEFINE_GUID(CLSID_MachineDebugManager_DEBUG, 0x49769cec, 0x3a55, 0x4bb0, 0xb6,0x97, 0x88,0xfe,0xde,0x77,0xe8,0xea);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("49769cec-3a55-4bb0-b697-88fede77e8ea") MachineDebugManager_DEBUG;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(MachineDebugManager_DEBUG, 0x49769cec, 0x3a55, 0x4bb0, 0xb6,0x97, 0x88,0xfe,0xde,0x77,0xe8,0xea)
+#endif
+#endif
+
+/*****************************************************************************
+ * DefaultDebugSessionProvider coclass
+ */
+
+DEFINE_GUID(CLSID_DefaultDebugSessionProvider, 0x834128a2, 0x51f4, 0x11d0, 0x8f,0x20, 0x00,0x80,0x5f,0x2c,0xd0,0x64);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("834128a2-51f4-11d0-8f20-00805f2cd064") DefaultDebugSessionProvider;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(DefaultDebugSessionProvider, 0x834128a2, 0x51f4, 0x11d0, 0x8f,0x20, 0x00,0x80,0x5f,0x2c,0xd0,0x64)
+#endif
+#endif
+
+#endif
+#endif
+/* Begin additional prototypes for all interfaces */
+
+ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
+unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
+unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
+void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __activdbg_h__ */
diff --git a/mingw-w64-headers/include/activdbg.idl b/mingw-w64-headers/include/activdbg.idl
new file mode 100755
index 0000000..ca4053c
--- /dev/null
+++ b/mingw-w64-headers/include/activdbg.idl
@@ -0,0 +1,830 @@
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+
+#ifndef DO_NO_IMPORTS
+import "ocidl.idl";
+import "oleidl.idl";
+import "oaidl.idl";
+#ifndef AD7_NO_AD7_IMPORTS
+import "activscp.idl";
+import "dbgprop.idl";
+#endif
+#endif
+
+cpp_quote("#include <winapifamily.h>")
+cpp_quote("")
+cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
+cpp_quote("")
+cpp_quote("#ifndef __ActivDbg_h")
+cpp_quote("#define __ActivDbg_h")
+
+interface IActiveScriptDebug32;
+interface IActiveScriptDebug64;
+interface IActiveScriptErrorDebug;
+interface IActiveScriptSiteDebug32;
+interface IActiveScriptSiteDebug64;
+interface IActiveScriptSiteDebugEx;
+interface IActiveScriptTextInfo;
+interface IApplicationDebugger;
+interface IDebugApplication32;
+interface IDebugApplication64;
+interface IDebugApplicationNode;
+interface IDebugApplicationNodeEvents;
+interface IDebugApplicationThread;
+interface IDebugAsyncOperation;
+interface IDebugAsyncOperationCallBack;
+interface IDebugCodeContext;
+interface IDebugDocument;
+interface IDebugDocumentContext;
+interface IDebugDocumentHelper32;
+interface IDebugDocumentHelper64;
+interface IDebugDocumentHost;
+interface IDebugDocumentInfo;
+interface IDebugDocumentProvider;
+interface IDebugDocumentText;
+interface IDebugDocumentTextAuthor;
+interface IDebugDocumentTextEvents;
+interface IDebugExpression;
+interface IDebugExpressionCallBack;
+interface IDebugExpressionContext;
+interface IDebugFormatter;
+interface IDebugSessionProvider;
+interface IDebugStackFrame;
+interface IDebugStackFrameSniffer;
+interface IDebugSyncOperation;
+interface IDebugThreadCall32;
+interface IDebugThreadCall64;
+interface IEnumActiveScriptDebugs;
+interface IEnumDebugApplicationNodes;
+interface IEnumDebugCodeContexts;
+interface IEnumDebugDocumentContexts;
+interface IEnumDebugExpressionContexts;
+interface IEnumDebugObjectBrowsers;
+interface IEnumDebugStackFrames;
+interface IEnumDebugStackFrames64;
+interface IEnumRemoteDebugApplications;
+interface IEnumRemoteDebugApplicationThreads;
+interface IMachineDebugManager;
+interface IMachineDebugManagerCookie;
+interface IMachineDebugManagerEvents;
+interface IProcessDebugManager;
+interface IProvideExpressionContexts;
+interface IRemoteDebugApplication;
+interface IRemoteDebugApplicationThread;
+
+typedef DWORD APPBREAKFLAGS;
+typedef WORD SOURCE_TEXT_ATTR;
+typedef DWORD TEXT_DOC_ATTR;
+
+typedef enum tagBREAKPOINT_STATE {
+  BREAKPOINT_DELETED = 0,
+  BREAKPOINT_DISABLED = 1,
+  BREAKPOINT_ENABLED = 2
+} BREAKPOINT_STATE;
+
+typedef enum tagBREAKREASON {
+  BREAKREASON_STEP,
+  BREAKREASON_BREAKPOINT,
+  BREAKREASON_DEBUGGER_BLOCK,
+  BREAKREASON_HOST_INITIATED,
+  BREAKREASON_LANGUAGE_INITIATED,
+  BREAKREASON_DEBUGGER_HALT,
+  BREAKREASON_ERROR,
+  BREAKREASON_JIT
+} BREAKREASON;
+
+typedef enum tagBREAKRESUME_ACTION {
+  BREAKRESUMEACTION_ABORT,
+  BREAKRESUMEACTION_CONTINUE,
+  BREAKRESUMEACTION_STEP_INTO,
+  BREAKRESUMEACTION_STEP_OVER,
+  BREAKRESUMEACTION_STEP_OUT,
+  BREAKRESUMEACTION_IGNORE,
+} BREAKRESUMEACTION;
+
+typedef enum tagDOCUMENTNAMETYPE {
+  DOCUMENTNAMETYPE_APPNODE,
+  DOCUMENTNAMETYPE_TITLE,
+  DOCUMENTNAMETYPE_FILE_TAIL,
+  DOCUMENTNAMETYPE_URL,
+  DOCUMENTNAMETYPE_UNIQUE_TITLE,
+} DOCUMENTNAMETYPE;
+
+typedef enum tagERRORRESUMEACTION {
+  ERRORRESUMEACTION_ReexecuteErrorStatement,
+  ERRORRESUMEACTION_AbortCallAndReturnErrorToCaller,
+  ERRORRESUMEACTION_SkipErrorStatement,
+} ERRORRESUMEACTION;
+
+typedef struct tagDebugStackFrameDescriptor {
+  IDebugStackFrame *pdsf;
+  DWORD dwMin;
+  DWORD dwLim;
+  BOOL fFinal;
+  IUnknown *punkFinal;
+} DebugStackFrameDescriptor;
+
+typedef struct tagDebugStackFrameDescriptor64 {
+  IDebugStackFrame *pdsf;
+  DWORDLONG dwMin;
+  DWORDLONG dwLim;
+  BOOL fFinal;
+  IUnknown *punkFinal;
+} DebugStackFrameDescriptor64;
+
+const APPBREAKFLAGS APPBREAKFLAG_DEBUGGER_BLOCK = 0x00000001;
+const APPBREAKFLAGS APPBREAKFLAG_DEBUGGER_HALT = 0x00000002;
+const APPBREAKFLAGS APPBREAKFLAG_STEP = 0x00010000;
+const APPBREAKFLAGS APPBREAKFLAG_NESTED = 0x00020000;
+const APPBREAKFLAGS APPBREAKFLAG_STEPTYPE_SOURCE = 0x00000000;
+const APPBREAKFLAGS APPBREAKFLAG_STEPTYPE_BYTECODE = 0x00100000;
+const APPBREAKFLAGS APPBREAKFLAG_STEPTYPE_MACHINE = 0x00200000;
+const APPBREAKFLAGS APPBREAKFLAG_STEPTYPE_MASK = 0x00f00000;
+const APPBREAKFLAGS APPBREAKFLAG_IN_BREAKPOINT = 0x80000000;
+
+const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_KEYWORD = 0x1;
+const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_COMMENT = 0x2;
+const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_NONSOURCE = 0x4;
+const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_OPERATOR = 0x8;
+const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_NUMBER = 0x10;
+const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_STRING = 0x20;
+const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_FUNCTION_START = 0x40;
+
+const TEXT_DOC_ATTR TEXT_DOC_ATTR_READONLY = 0x1;
+const TEXT_DOC_ATTR TEXT_DOC_ATTR_TYPE_PRIMARY = 0x2;
+const TEXT_DOC_ATTR TEXT_DOC_ATTR_TYPE_WORKER = 0x4;
+const TEXT_DOC_ATTR TEXT_DOC_ATTR_TYPE_SCRIPT = 0x8;
+cpp_quote("")
+const DWORD DEBUG_TEXT_ISEXPRESSION = 0x1;
+const DWORD DEBUG_TEXT_RETURNVALUE = 0x2;
+const DWORD DEBUG_TEXT_NOSIDEEFFECTS = 0x4;
+const DWORD DEBUG_TEXT_ALLOWBREAKPOINTS = 0x8;
+const DWORD DEBUG_TEXT_ALLOWERRORREPORT = 0x10;
+const DWORD DEBUG_TEXT_EVALUATETOCODECONTEXT = 0x20;
+
+cpp_quote("#ifndef DISABLE_ACTIVDBG_INTERFACE_WRAPPERS")
+cpp_quote("#ifdef _WIN64")
+cpp_quote("#define IDebugApplication IDebugApplication64")
+cpp_quote("#define IID_IDebugApplication IID_IDebugApplication64")
+cpp_quote("#define IDebugThreadCall IDebugThreadCall64")
+cpp_quote("#define IID_IDebugThreadCall IID_IDebugThreadCall64")
+cpp_quote("#define SynchronousCallIntoThread SynchronousCallIntoThread64")
+cpp_quote("#define IActiveScriptDebug IActiveScriptDebug64")
+cpp_quote("#define IID_IActiveScriptDebug IID_IActiveScriptDebug64")
+cpp_quote("#define IActiveScriptSiteDebug IActiveScriptSiteDebug64")
+cpp_quote("#define IID_IActiveScriptSiteDebug IID_IActiveScriptSiteDebug64")
+cpp_quote("#define IDebugStackFrameSnifferEx IDebugStackFrameSnifferEx64")
+cpp_quote("#define IID_IDebugStackFrameSnifferEx IID_IDebugStackFrameSnifferEx64")
+cpp_quote("#define EnumStackFramesEx EnumStackFramesEx64")
+cpp_quote("#define IDebugDocumentHelper IDebugDocumentHelper64")
+cpp_quote("#define IID_IDebugDocumentHelper IID_IDebugDocumentHelper64")
+cpp_quote("#define IProcessDebugManager IProcessDebugManager64")
+cpp_quote("#define IID_IProcessDebugManager IID_IProcessDebugManager64")
+cpp_quote("#else")
+cpp_quote("#define IDebugApplication IDebugApplication32")
+cpp_quote("#define IID_IDebugApplication IID_IDebugApplication32")
+cpp_quote("#define IDebugThreadCall IDebugThreadCall32")
+cpp_quote("#define IID_IDebugThreadCall IID_IDebugThreadCall32")
+cpp_quote("#define SynchronousCallIntoThread SynchronousCallIntoThread32")
+cpp_quote("#define IActiveScriptDebug IActiveScriptDebug32")
+cpp_quote("#define IID_IActiveScriptDebug IID_IActiveScriptDebug32")
+cpp_quote("#define IActiveScriptSiteDebug IActiveScriptSiteDebug32")
+cpp_quote("#define IID_IActiveScriptSiteDebug IID_IActiveScriptSiteDebug32")
+cpp_quote("#define IDebugStackFrameSnifferEx IDebugStackFrameSnifferEx32")
+cpp_quote("#define IID_IDebugStackFrameSnifferEx IID_IDebugStackFrameSnifferEx32")
+cpp_quote("#define EnumStackFramesEx EnumStackFramesEx32")
+cpp_quote("#define IDebugDocumentHelper IDebugDocumentHelper32")
+cpp_quote("#define IID_IDebugDocumentHelper IID_IDebugDocumentHelper32")
+cpp_quote("#define IProcessDebugManager IProcessDebugManager32")
+cpp_quote("#define IID_IProcessDebugManager IID_IProcessDebugManager32")
+cpp_quote("#endif")
+cpp_quote("#endif")
+
+cpp_quote("EXTERN_C const CLSID CLSID_DebugHelper;")
+cpp_quote("EXTERN_C const CLSID CLSID_MachineDebugManager;")
+cpp_quote("EXTERN_C const CLSID CLSID_ProcessDebugManager;")
+
+[object, uuid (51973c10-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IActiveScriptDebug32 : IUnknown {
+  HRESULT GetScriptTextAttributes ([in, size_is (uNumCodeChars)] LPCOLESTR pstrCode,[in] ULONG uNumCodeChars,[in] LPCOLESTR pstrDelimiter,[in] DWORD dwFlags,[in, out, size_is (uNumCodeChars)] SOURCE_TEXT_ATTR *pattr);
+  HRESULT GetScriptletTextAttributes ([in, size_is (uNumCodeChars)] LPCOLESTR pstrCode,[in] ULONG uNumCodeChars,[in] LPCOLESTR pstrDelimiter,[in] DWORD dwFlags,[in, out, size_is (uNumCodeChars)] SOURCE_TEXT_ATTR *pattr);
+  HRESULT EnumCodeContextsOfPosition ([in] DWORD dwSourceContext,[in] ULONG uCharacterOffset,[in] ULONG uNumChars,[out] IEnumDebugCodeContexts **ppescc);
+}
+
+[object, uuid (bc437e23-f5b8-47f4-bb79-7d1ce5483b86), pointer_default (unique)]
+interface IActiveScriptDebug64 : IUnknown {
+  HRESULT GetScriptTextAttributes ([in, size_is (uNumCodeChars)] LPCOLESTR pstrCode,[in] ULONG uNumCodeChars,[in] LPCOLESTR pstrDelimiter,[in] DWORD dwFlags,[in, out, size_is (uNumCodeChars)] SOURCE_TEXT_ATTR *pattr);
+  HRESULT GetScriptletTextAttributes ([in, size_is (uNumCodeChars)] LPCOLESTR pstrCode,[in] ULONG uNumCodeChars,[in] LPCOLESTR pstrDelimiter,[in] DWORD dwFlags,[in, out, size_is (uNumCodeChars)] SOURCE_TEXT_ATTR *pattr);
+  HRESULT EnumCodeContextsOfPosition ([in] DWORDLONG dwSourceContext,[in] ULONG uCharacterOffset,[in] ULONG uNumChars,[out] IEnumDebugCodeContexts **ppescc);
+}
+
+[object, local, uuid (51973c11-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IActiveScriptSiteDebug32 : IUnknown {
+  HRESULT GetDocumentContextFromPosition ([in] DWORD dwSourceContext,[in] ULONG uCharacterOffset,[in] ULONG uNumChars,[out] IDebugDocumentContext **ppsc);
+  HRESULT GetApplication ([out] IDebugApplication32 **ppda);
+  HRESULT GetRootApplicationNode ([out] IDebugApplicationNode **ppdanRoot);
+  HRESULT OnScriptErrorDebug ([in] IActiveScriptErrorDebug *pErrorDebug,[out] BOOL *pfEnterDebugger,[out] BOOL *pfCallOnScriptErrorWhenContinuing);
+}
+
+[object, local, uuid (d6b96b0a-7463-402c-92ac-89984226942f), pointer_default (unique)]
+interface IActiveScriptSiteDebug64 : IUnknown {
+  HRESULT GetDocumentContextFromPosition ([in] DWORDLONG dwSourceContext,[in] ULONG uCharacterOffset,[in] ULONG uNumChars,[out] IDebugDocumentContext **ppsc);
+  HRESULT GetApplication ([out] IDebugApplication64 **ppda);
+  HRESULT GetRootApplicationNode ([out] IDebugApplicationNode **ppdanRoot);
+  HRESULT OnScriptErrorDebug ([in] IActiveScriptErrorDebug *pErrorDebug,[out] BOOL *pfEnterDebugger,[out] BOOL *pfCallOnScriptErrorWhenContinuing);
+}
+
+[object, local, uuid (BB722CCB-6ad2-41c6-b780-af9c03ee69f5), pointer_default (unique)]
+interface IActiveScriptSiteDebugEx : IUnknown {
+  HRESULT OnCanNotJITScriptErrorDebug ([in] IActiveScriptErrorDebug *pErrorDebug,[out] BOOL *pfCallOnScriptErrorWhenContinuing);
+}
+
+[object, uuid (51973c12-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IActiveScriptErrorDebug : IActiveScriptError {
+  HRESULT GetDocumentContext ([out] IDebugDocumentContext **ppssc);
+  HRESULT GetStackFrame ([out] IDebugStackFrame **ppdsf);
+}
+
+[object, uuid (51973c13-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugCodeContext : IUnknown {
+  HRESULT GetDocumentContext ([out] IDebugDocumentContext **ppsc);
+  HRESULT SetBreakPoint ([in] BREAKPOINT_STATE bps);
+}
+
+[object, uuid (51973c14-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugExpression : IUnknown {
+  HRESULT Start ([in] IDebugExpressionCallBack *pdecb);
+  HRESULT Abort (void);
+  HRESULT QueryIsComplete (void);
+  HRESULT GetResultAsString ([out] HRESULT *phrResult,[out] BSTR *pbstrResult);
+  HRESULT GetResultAsDebugProperty ([out] HRESULT *phrResult,[out] IDebugProperty **ppdp);
+}
+
+[object, uuid (51973c15-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugExpressionContext : IUnknown {
+  HRESULT ParseLanguageText ([in] LPCOLESTR pstrCode,[in] UINT nRadix,[in] LPCOLESTR pstrDelimiter,[in] DWORD dwFlags,[out] IDebugExpression **ppe);
+  HRESULT GetLanguageInfo ([out] BSTR *pbstrLanguageName,[out] GUID *pLanguageID);
+}
+
+[object, uuid (51973c16-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugExpressionCallBack : IUnknown {
+  HRESULT onComplete (void);
+}
+
+[object, uuid (51973c17-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugStackFrame : IUnknown {
+  HRESULT GetCodeContext ([out] IDebugCodeContext **ppcc);
+  HRESULT GetDescriptionString ([in] BOOL fLong,[out] BSTR *pbstrDescription);
+  HRESULT GetLanguageString ([in] BOOL fLong,[out] BSTR *pbstrLanguage);
+  HRESULT GetThread ([out] IDebugApplicationThread **ppat);
+  HRESULT GetDebugProperty ([out] IDebugProperty **ppDebugProp);
+}
+
+[object, uuid (51973c18-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugStackFrameSniffer : IUnknown {
+  HRESULT EnumStackFrames ([out] IEnumDebugStackFrames **ppedsf);
+}
+
+[object, uuid (51973c19-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugStackFrameSnifferEx32 : IDebugStackFrameSniffer {
+  HRESULT EnumStackFramesEx32 ([in] DWORD dwSpMin,[out] IEnumDebugStackFrames **ppedsf);
+};
+
+[object, uuid (8cd12af4-49c1-4d52-8d8a-c146f47581aa), pointer_default (unique)]
+interface IDebugStackFrameSnifferEx64 : IDebugStackFrameSniffer {
+  HRESULT EnumStackFramesEx64 ([in] DWORDLONG dwSpMin,[out] IEnumDebugStackFrames64 **ppedsf);
+};
+
+[object, local, uuid (51973c1a-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugSyncOperation : IUnknown {
+  HRESULT GetTargetThread ([out] IDebugApplicationThread **ppatTarget);
+  HRESULT Execute ([out] IUnknown **ppunkResult);
+  HRESULT InProgressAbort (void);
+}
+
+[object, local, uuid (51973c1b-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugAsyncOperation : IUnknown {
+  HRESULT GetSyncDebugOperation ([out] IDebugSyncOperation **ppsdo);
+  HRESULT Start (IDebugAsyncOperationCallBack *padocb);
+  HRESULT Abort (void);
+  HRESULT QueryIsComplete (void);
+  HRESULT GetResult ([out] HRESULT *phrResult,[out] IUnknown **ppunkResult);
+}
+
+[object, local, uuid (51973c1c-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugAsyncOperationCallBack : IUnknown {
+  HRESULT onComplete (void);
+}
+
+[object, uuid (51973c1d-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IEnumDebugCodeContexts : IUnknown {
+  [local] HRESULT __stdcall Next ([in] ULONG celt,[out] IDebugCodeContext **pscc,[out] ULONG *pceltFetched);
+  [call_as (Next)] HRESULT __stdcall RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]IDebugCodeContext **pscc,[out] ULONG *pceltFetched);
+  HRESULT Skip ([in] ULONG celt);
+  HRESULT Reset (void);
+  HRESULT Clone ([out] IEnumDebugCodeContexts **ppescc);
+}
+
+[object, uuid (51973c1e-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IEnumDebugStackFrames : IUnknown {
+  [local] HRESULT __stdcall Next ([in] ULONG celt,[out] DebugStackFrameDescriptor *prgdsfd,[out] ULONG *pceltFetched);
+  [call_as (Next)] HRESULT __stdcall RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]DebugStackFrameDescriptor *prgdsfd,[out] ULONG *pceltFetched);
+  HRESULT Skip ([in] ULONG celt);
+  HRESULT Reset (void);
+  HRESULT Clone ([out] IEnumDebugStackFrames **ppedsf);
+}
+
+[object, uuid (0dc38853-c1b0-4176-a984-b298361027af), pointer_default (unique)]
+interface IEnumDebugStackFrames64 : IEnumDebugStackFrames {
+  [local] HRESULT __stdcall Next64 ([in] ULONG celt,[out] DebugStackFrameDescriptor64 *prgdsfd,[out] ULONG *pceltFetched);
+  [call_as (Next64)] HRESULT __stdcall RemoteNext64 ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]DebugStackFrameDescriptor64 *prgdsfd,[out] ULONG *pceltFetched);
+}
+
+[object, uuid (51973c1f-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugDocumentInfo : IUnknown {
+  HRESULT GetName ([in] DOCUMENTNAMETYPE dnt,[out] BSTR *pbstrName);
+  HRESULT GetDocumentClassId ([out] CLSID *pclsidDocument);
+}
+
+[object, uuid (51973c20-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugDocumentProvider : IDebugDocumentInfo {
+  HRESULT GetDocument ([out] IDebugDocument **ppssd);
+}
+
+[object, uuid (51973c21-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugDocument : IDebugDocumentInfo {
+}
+
+[object, uuid (51973c22-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugDocumentText : IDebugDocument {
+  HRESULT GetDocumentAttributes ([out] TEXT_DOC_ATTR *ptextdocattr);
+  HRESULT GetSize ([out] ULONG *pcNumLines,[out] ULONG *pcNumChars);
+  HRESULT GetPositionOfLine ([in] ULONG cLineNumber,[out] ULONG *pcCharacterPosition);
+  HRESULT GetLineOfPosition ([in] ULONG cCharacterPosition,[out] ULONG *pcLineNumber,[out] ULONG *pcCharacterOffsetInLine);
+  HRESULT GetText ([in] ULONG cCharacterPosition,[in, out, length_is (*pcNumChars), size_is (cMaxChars)] WCHAR *pcharText,[in, out, length_is (*pcNumChars), size_is (cMaxChars), ptr] SOURCE_TEXT_ATTR *pstaTextAttr,[in, out] ULONG *pcNumChars,[in] ULONG cMaxChars);
+  HRESULT GetPositionOfContext ([in] IDebugDocumentContext *psc,[out] ULONG *pcCharacterPosition,[out] ULONG *cNumChars);
+  HRESULT GetContextOfPosition ([in] ULONG cCharacterPosition,[in] ULONG cNumChars,[out] IDebugDocumentContext **ppsc);
+}
+
+[object, uuid (51973c23-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugDocumentTextEvents : IUnknown {
+  HRESULT onDestroy (void);
+  HRESULT onInsertText ([in] ULONG cCharacterPosition,[in] ULONG cNumToInsert);
+  HRESULT onRemoveText ([in] ULONG cCharacterPosition,[in] ULONG cNumToRemove);
+  HRESULT onReplaceText ([in] ULONG cCharacterPosition,[in] ULONG cNumToReplace);
+  HRESULT onUpdateTextAttributes ([in] ULONG cCharacterPosition,[in] ULONG cNumToUpdate);
+  HRESULT onUpdateDocumentAttributes ([in] TEXT_DOC_ATTR textdocattr);
+}
+
+[object, uuid (51973c24-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugDocumentTextAuthor : IDebugDocumentText {
+  HRESULT InsertText ([in] ULONG cCharacterPosition,[in] ULONG cNumToInsert,[in, size_is (cNumToInsert)]OLECHAR pcharText[]);
+  HRESULT RemoveText ([in] ULONG cCharacterPosition,[in] ULONG cNumToRemove);
+  HRESULT ReplaceText ([in] ULONG cCharacterPosition,[in] ULONG cNumToReplace,[in, size_is (cNumToReplace)]OLECHAR pcharText[]);
+}
+
+[object, uuid (51973c25-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugDocumentTextExternalAuthor : IUnknown {
+  HRESULT GetPathName ([out] BSTR *pbstrLongName,[out] BOOL *pfIsOriginalFile);
+  HRESULT GetFileName ([out] BSTR *pbstrShortName);
+  HRESULT NotifyChanged ();
+}
+
+[object, uuid (51973c26-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugDocumentHelper32 : IUnknown {
+  HRESULT Init ([in] IDebugApplication32 *pda,[in, string] LPCOLESTR pszShortName,[in, string] LPCOLESTR pszLongName,[in] TEXT_DOC_ATTR docAttr);
+  HRESULT Attach ([in] IDebugDocumentHelper32 *pddhParent);
+  HRESULT Detach ();
+  HRESULT AddUnicodeText ([in, string] LPCOLESTR pszText);
+  HRESULT AddDBCSText ([in, string] LPCSTR pszText);
+  HRESULT SetDebugDocumentHost ([in] IDebugDocumentHost *pddh);
+  HRESULT AddDeferredText ([in] ULONG cChars,[in] DWORD dwTextStartCookie);
+  HRESULT DefineScriptBlock ([in] ULONG ulCharOffset,[in] ULONG cChars,[in] IActiveScript *pas,[in] BOOL fScriptlet,[out] DWORD *pdwSourceContext);
+  HRESULT SetDefaultTextAttr (SOURCE_TEXT_ATTR staTextAttr);
+  HRESULT SetTextAttributes ([in] ULONG ulCharOffset,[in] ULONG cChars,[in, length_is (cChars), size_is (cChars)]SOURCE_TEXT_ATTR *pstaTextAttr);
+  HRESULT SetLongName ([in, string] LPCOLESTR pszLongName);
+  HRESULT SetShortName ([in, string] LPCOLESTR pszShortName);
+  HRESULT SetDocumentAttr ([in] TEXT_DOC_ATTR pszAttributes);
+  HRESULT GetDebugApplicationNode ([out] IDebugApplicationNode **ppdan);
+  HRESULT GetScriptBlockInfo ([in] DWORD dwSourceContext,[out] IActiveScript **ppasd,[out] ULONG *piCharPos,[out] ULONG *pcChars);
+  HRESULT CreateDebugDocumentContext ([in] ULONG iCharPos,[in] ULONG cChars,[out] IDebugDocumentContext **ppddc);
+  HRESULT BringDocumentToTop ();
+  HRESULT BringDocumentContextToTop (IDebugDocumentContext *pddc);
+};
+
+[object, uuid (c4c7363c-20fd-47f9-bd82-4855e0150871), pointer_default (unique)]
+interface IDebugDocumentHelper64 : IUnknown {
+  HRESULT Init ([in] IDebugApplication64 *pda,[in, string] LPCOLESTR pszShortName,[in, string] LPCOLESTR pszLongName,[in] TEXT_DOC_ATTR docAttr);
+  HRESULT Attach ([in] IDebugDocumentHelper64 *pddhParent);
+  HRESULT Detach ();
+  HRESULT AddUnicodeText ([in, string] LPCOLESTR pszText);
+  HRESULT AddDBCSText ([in, string] LPCSTR pszText);
+  HRESULT SetDebugDocumentHost ([in] IDebugDocumentHost *pddh);
+  HRESULT AddDeferredText ([in] ULONG cChars,[in] DWORD dwTextStartCookie);
+  HRESULT DefineScriptBlock ([in] ULONG ulCharOffset,[in] ULONG cChars,[in] IActiveScript *pas,[in] BOOL fScriptlet,[out] DWORDLONG *pdwSourceContext);
+  HRESULT SetDefaultTextAttr (SOURCE_TEXT_ATTR staTextAttr);
+  HRESULT SetTextAttributes ([in] ULONG ulCharOffset,[in] ULONG cChars,[in, length_is (cChars), size_is (cChars)]SOURCE_TEXT_ATTR *pstaTextAttr);
+  HRESULT SetLongName ([in, string] LPCOLESTR pszLongName);
+  HRESULT SetShortName ([in, string] LPCOLESTR pszShortName);
+  HRESULT SetDocumentAttr ([in] TEXT_DOC_ATTR pszAttributes);
+  HRESULT GetDebugApplicationNode ([out] IDebugApplicationNode **ppdan);
+  HRESULT GetScriptBlockInfo ([in] DWORDLONG dwSourceContext,[out] IActiveScript **ppasd,[out] ULONG *piCharPos,[out] ULONG *pcChars);
+  HRESULT CreateDebugDocumentContext ([in] ULONG iCharPos,[in] ULONG cChars,[out] IDebugDocumentContext **ppddc);
+  HRESULT BringDocumentToTop ();
+  HRESULT BringDocumentContextToTop (IDebugDocumentContext *pddc);
+};
+
+[object, uuid (51973c27-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugDocumentHost : IUnknown {
+  HRESULT GetDeferredText ([in] DWORD dwTextStartCookie,[in, out, length_is (*pcNumChars), size_is (cMaxChars)] WCHAR *pcharText,[in, out, length_is (*pcNumChars), size_is (cMaxChars)] SOURCE_TEXT_ATTR *pstaTextAttr,[in, out] ULONG *pcNumChars,[in] ULONG cMaxChars);
+  HRESULT GetScriptTextAttributes ([in, size_is (uNumCodeChars)] LPCOLESTR pstrCode,[in] ULONG uNumCodeChars,[in] LPCOLESTR pstrDelimiter,[in] DWORD dwFlags,[in, out, size_is (uNumCodeChars)] SOURCE_TEXT_ATTR *pattr);
+  HRESULT OnCreateDocumentContext ([out] IUnknown **ppunkOuter);
+  HRESULT GetPathName ([out] BSTR *pbstrLongName,[out] BOOL *pfIsOriginalFile);
+  HRESULT GetFileName ([out] BSTR *pbstrShortName);
+  HRESULT NotifyChanged ();
+};
+
+[object, uuid (51973c28-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugDocumentContext : IUnknown {
+  HRESULT GetDocument ([out] IDebugDocument **ppsd);
+  HRESULT EnumCodeContexts ([out] IEnumDebugCodeContexts **ppescc);
+}
+
+[object, uuid (51973c29-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugSessionProvider : IUnknown {
+  HRESULT StartDebugSession ([in] IRemoteDebugApplication *pda);
+};
+
+[object, uuid (51973c2a-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IApplicationDebugger : IUnknown {
+  HRESULT QueryAlive (void);
+  HRESULT CreateInstanceAtDebugger ([in] REFCLSID rclsid,[in] IUnknown *pUnkOuter,[in] DWORD dwClsContext,[in] REFIID riid,[out, iid_is (riid)] IUnknown **ppvObject);
+  HRESULT onDebugOutput ([in] LPCOLESTR pstr);
+  HRESULT onHandleBreakPoint ([in] IRemoteDebugApplicationThread *prpt,[in] BREAKREASON br,[in] IActiveScriptErrorDebug *pError);
+  HRESULT onClose (void);
+  HRESULT onDebuggerEvent ([in] REFIID riid,[in] IUnknown *punk);
+};
+
+[object, uuid (51973c2b-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IApplicationDebuggerUI : IUnknown {
+  HRESULT BringDocumentToTop ([in] IDebugDocumentText *pddt);
+  HRESULT BringDocumentContextToTop ([in] IDebugDocumentContext *pddc);
+};
+
+[object, uuid (51973c2c-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IMachineDebugManager : IUnknown {
+  HRESULT AddApplication ([in] IRemoteDebugApplication *pda,[out] DWORD *pdwAppCookie);
+  HRESULT RemoveApplication ([in] DWORD dwAppCookie);
+  HRESULT EnumApplications ([out] IEnumRemoteDebugApplications **ppeda);
+};
+
+[object, uuid (51973c2d-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IMachineDebugManagerCookie : IUnknown {
+  HRESULT AddApplication ([in] IRemoteDebugApplication *pda,[in] DWORD dwDebugAppCookie,[out] DWORD *pdwAppCookie);
+  HRESULT RemoveApplication ([in] DWORD dwDebugAppCookie,[in] DWORD dwAppCookie);
+  HRESULT EnumApplications ([out] IEnumRemoteDebugApplications **ppeda);
+};
+
+[object, uuid (51973c2e-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IMachineDebugManagerEvents : IUnknown {
+  HRESULT onAddApplication ([in] IRemoteDebugApplication *pda,[in] DWORD dwAppCookie);
+  HRESULT onRemoveApplication ([in] IRemoteDebugApplication *pda,[in] DWORD dwAppCookie);
+};
+
+[object, local, uuid (51973c2f-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IProcessDebugManager32 : IUnknown {
+  HRESULT CreateApplication ([out] IDebugApplication32 **ppda);
+  HRESULT GetDefaultApplication ([out] IDebugApplication32 **ppda);
+  HRESULT AddApplication ([in] IDebugApplication32 *pda,[out] DWORD *pdwAppCookie);
+  HRESULT RemoveApplication ([in] DWORD dwAppCookie);
+  HRESULT CreateDebugDocumentHelper ([in] IUnknown *punkOuter,[out] IDebugDocumentHelper32 **pddh);
+};
+
+[object, local, uuid (56b9fc1c-63a9-4cc1-ac21-087d69a17fab), pointer_default (unique)]
+interface IProcessDebugManager64 : IUnknown {
+  HRESULT CreateApplication ([out] IDebugApplication64 **ppda);
+  HRESULT GetDefaultApplication ([out] IDebugApplication64 **ppda);
+  HRESULT AddApplication ([in] IDebugApplication64 *pda,[out] DWORD *pdwAppCookie);
+  HRESULT RemoveApplication ([in] DWORD dwAppCookie);
+  HRESULT CreateDebugDocumentHelper ([in] IUnknown *punkOuter,[out] IDebugDocumentHelper64 **pddh);
+};
+
+[object, uuid (51973c30-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IRemoteDebugApplication : IUnknown {
+  HRESULT ResumeFromBreakPoint ([in] IRemoteDebugApplicationThread *prptFocus,[in] BREAKRESUMEACTION bra,[in] ERRORRESUMEACTION era);
+  HRESULT CauseBreak (void);
+  HRESULT ConnectDebugger ([in] IApplicationDebugger *pad);
+  HRESULT DisconnectDebugger (void);
+  HRESULT GetDebugger ([out] IApplicationDebugger **pad);
+  HRESULT CreateInstanceAtApplication ([in] REFCLSID rclsid,[in] IUnknown *pUnkOuter,[in] DWORD dwClsContext,[in] REFIID riid,[out, iid_is (riid)] IUnknown **ppvObject);
+  HRESULT QueryAlive (void);
+  HRESULT EnumThreads ([out] IEnumRemoteDebugApplicationThreads **pperdat);
+  HRESULT GetName ([out] BSTR *pbstrName);
+  HRESULT GetRootNode ([out] IDebugApplicationNode **ppdanRoot);
+  HRESULT EnumGlobalExpressionContexts ([out] IEnumDebugExpressionContexts **ppedec);
+};
+
+[object, local, uuid (51973c32-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugApplication32 : IRemoteDebugApplication {
+  HRESULT SetName ([in] LPCOLESTR pstrName);
+  HRESULT StepOutComplete (void);
+  HRESULT DebugOutput ([in] LPCOLESTR pstr);
+  HRESULT StartDebugSession (void);
+  HRESULT HandleBreakPoint ([in] BREAKREASON br,[out] BREAKRESUMEACTION *pbra);
+  HRESULT Close (void);
+  HRESULT GetBreakFlags ([out] APPBREAKFLAGS *pabf,[out] IRemoteDebugApplicationThread **pprdatSteppingThread);
+  HRESULT GetCurrentThread ([out] IDebugApplicationThread **pat);
+  HRESULT CreateAsyncDebugOperation ([in] IDebugSyncOperation *psdo,[out] IDebugAsyncOperation **ppado);
+  HRESULT AddStackFrameSniffer ([in] IDebugStackFrameSniffer *pdsfs,[out] DWORD *pdwCookie);
+  HRESULT RemoveStackFrameSniffer ([in] DWORD dwCookie);
+  HRESULT QueryCurrentThreadIsDebuggerThread (void);
+  HRESULT SynchronousCallInDebuggerThread ([in] IDebugThreadCall32 *pptc,[in] DWORD dwParam1,[in] DWORD dwParam2,[in] DWORD dwParam3);
+  HRESULT CreateApplicationNode ([out] IDebugApplicationNode **ppdanNew);
+  HRESULT FireDebuggerEvent ([in] REFGUID riid,[in] IUnknown *punk);
+  HRESULT HandleRuntimeError ([in] IActiveScriptErrorDebug *pErrorDebug,[in] IActiveScriptSite *pScriptSite,[out] BREAKRESUMEACTION *pbra,[out] ERRORRESUMEACTION *perra,[out] BOOL *pfCallOnScriptError);
+  BOOL FCanJitDebug ();
+  BOOL FIsAutoJitDebugEnabled ();
+  HRESULT AddGlobalExpressionContextProvider ([in] IProvideExpressionContexts *pdsfs,[out] DWORD *pdwCookie);
+  HRESULT RemoveGlobalExpressionContextProvider ([in] DWORD dwCookie);
+}
+
+[object, local, uuid (4dedc754-04c7-4f10-9e60-16a390fe6e62), pointer_default (unique)]
+interface IDebugApplication64 : IRemoteDebugApplication {
+  HRESULT SetName ([in] LPCOLESTR pstrName);
+  HRESULT StepOutComplete (void);
+  HRESULT DebugOutput ([in] LPCOLESTR pstr);
+  HRESULT StartDebugSession (void);
+  HRESULT HandleBreakPoint ([in] BREAKREASON br,[out] BREAKRESUMEACTION *pbra);
+  HRESULT Close (void);
+  HRESULT GetBreakFlags ([out] APPBREAKFLAGS *pabf,[out] IRemoteDebugApplicationThread **pprdatSteppingThread);
+  HRESULT GetCurrentThread ([out] IDebugApplicationThread **pat);
+  HRESULT CreateAsyncDebugOperation ([in] IDebugSyncOperation *psdo,[out] IDebugAsyncOperation **ppado);
+  HRESULT AddStackFrameSniffer ([in] IDebugStackFrameSniffer *pdsfs,[out] DWORD *pdwCookie);
+  HRESULT RemoveStackFrameSniffer ([in] DWORD dwCookie);
+  HRESULT QueryCurrentThreadIsDebuggerThread (void);
+  HRESULT SynchronousCallInDebuggerThread ([in] IDebugThreadCall64 *pptc,[in] DWORDLONG dwParam1,[in] DWORDLONG dwParam2,[in] DWORDLONG dwParam3);
+  HRESULT CreateApplicationNode ([out] IDebugApplicationNode **ppdanNew);
+  HRESULT FireDebuggerEvent ([in] REFGUID riid,[in] IUnknown *punk);
+  HRESULT HandleRuntimeError ([in] IActiveScriptErrorDebug *pErrorDebug,[in] IActiveScriptSite *pScriptSite,[out] BREAKRESUMEACTION *pbra,[out] ERRORRESUMEACTION *perra,[out] BOOL *pfCallOnScriptError);
+  BOOL FCanJitDebug ();
+  BOOL FIsAutoJitDebugEnabled ();
+  HRESULT AddGlobalExpressionContextProvider ([in] IProvideExpressionContexts *pdsfs,[out] DWORDLONG *pdwCookie);
+  HRESULT RemoveGlobalExpressionContextProvider ([in] DWORDLONG dwCookie);
+};
+
+[object, uuid (51973c33-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IRemoteDebugApplicationEvents : IUnknown {
+  HRESULT OnConnectDebugger ([in] IApplicationDebugger *pad);
+  HRESULT OnDisconnectDebugger (void);
+  HRESULT OnSetName ([in] LPCOLESTR pstrName);
+  HRESULT OnDebugOutput ([in] LPCOLESTR pstr);
+  HRESULT OnClose (void);
+  HRESULT OnEnterBreakPoint ([in] IRemoteDebugApplicationThread *prdat);
+  HRESULT OnLeaveBreakPoint ([in] IRemoteDebugApplicationThread *prdat);
+  HRESULT OnCreateThread ([in] IRemoteDebugApplicationThread *prdat);
+  HRESULT OnDestroyThread ([in] IRemoteDebugApplicationThread *prdat);
+  HRESULT OnBreakFlagChange ([in] APPBREAKFLAGS abf,[in] IRemoteDebugApplicationThread *prdatSteppingThread);
+};
+
+[object, uuid (51973c34-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugApplicationNode : IDebugDocumentProvider {
+  HRESULT EnumChildren ([out] IEnumDebugApplicationNodes **pperddp);
+  HRESULT GetParent ([out] IDebugApplicationNode **pprddp);
+  HRESULT SetDocumentProvider ([in] IDebugDocumentProvider *pddp);
+  HRESULT Close (void);
+  HRESULT Attach ([in] IDebugApplicationNode *pdanParent);
+  HRESULT Detach (void);
+}
+
+[object, uuid (51973c35-cb0c-11d0-b5c9-00a0244a0e7a), async_uuid (a2e3aa3b-aa8d-4ebf-84cd-648b737b8c13), pointer_default (unique)]
+interface IDebugApplicationNodeEvents : IUnknown {
+  HRESULT onAddChild ([in] IDebugApplicationNode *prddpChild);
+  HRESULT onRemoveChild ([in] IDebugApplicationNode *prddpChild);
+  HRESULT onDetach (void);
+  HRESULT onAttach ([in] IDebugApplicationNode *prddpParent);
+}
+
+[object, local, uuid (51973c36-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugThreadCall32 : IUnknown {
+  HRESULT ThreadCallHandler ([in] DWORD dwParam1,[in] DWORD dwParam2,[in] DWORD dwParam3);
+}
+
+[object, local, uuid (cb3fa335-e979-42fd-9fcf-a7546a0f3905), pointer_default (unique)]
+interface IDebugThreadCall64 : IUnknown {
+  HRESULT ThreadCallHandler ([in] DWORDLONG dwParam1,[in] DWORDLONG dwParam2,[in] DWORDLONG dwParam3);
+}
+
+[object, uuid (51973c37-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IRemoteDebugApplicationThread : IUnknown {
+  typedef DWORD THREAD_STATE;
+
+  const THREAD_STATE THREAD_STATE_RUNNING = 0x1;
+  const THREAD_STATE THREAD_STATE_SUSPENDED = 0x2;
+  const THREAD_STATE THREAD_BLOCKED = 0x4;
+  const THREAD_STATE THREAD_OUT_OF_CONTEXT = 0x8;
+
+  HRESULT GetSystemThreadId ([out] DWORD *dwThreadId);
+  HRESULT GetApplication ([out] IRemoteDebugApplication **pprda);
+  HRESULT EnumStackFrames ([out] IEnumDebugStackFrames **ppedsf);
+  HRESULT GetDescription ([out] BSTR *pbstrDescription,[out] BSTR *pbstrState);
+  HRESULT SetNextStatement ([in] IDebugStackFrame *pStackFrame,[in] IDebugCodeContext *pCodeContext);
+  HRESULT GetState ([out] DWORD *pState);
+  HRESULT Suspend ([out] DWORD *pdwCount);
+  HRESULT Resume ([out] DWORD *pdwCount);
+  HRESULT GetSuspendCount ([out] DWORD *pdwCount);
+}
+
+[object, local, uuid (51973c38-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugApplicationThread : IRemoteDebugApplicationThread {
+  HRESULT SynchronousCallIntoThread32 ([in] IDebugThreadCall32 *pstcb,[in] DWORD dwParam1,[in] DWORD dwParam2,[in] DWORD dwParam3);
+  HRESULT QueryIsCurrentThread (void);
+  HRESULT QueryIsDebuggerThread (void);
+  HRESULT SetDescription ([in] LPCOLESTR pstrDescription);
+  HRESULT SetStateString ([in] LPCOLESTR pstrState);
+}
+
+[object, local, uuid (9dac5886-dbad-456d-9dee-5dec39ab3dda), pointer_default (unique)]
+interface IDebugApplicationThread64 : IDebugApplicationThread {
+  HRESULT SynchronousCallIntoThread64 ([in] IDebugThreadCall64 *pstcb,[in] DWORDLONG dwParam1,[in] DWORDLONG dwParam2,[in] DWORDLONG dwParam3);
+}
+
+[object, local, uuid (51973c39-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugCookie : IUnknown {
+  HRESULT SetDebugCookie ([in]DWORD dwDebugAppCookie);
+};
+
+[object, uuid (51973c3a-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IEnumDebugApplicationNodes : IUnknown {
+  [local] HRESULT __stdcall Next ([in] ULONG celt,[out] IDebugApplicationNode **pprddp,[out] ULONG *pceltFetched);
+  [call_as (Next)]  HRESULT __stdcall RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]IDebugApplicationNode **pprddp,[out] ULONG *pceltFetched);
+  HRESULT Skip ([in] ULONG celt);
+  HRESULT Reset (void);
+  HRESULT Clone ([out] IEnumDebugApplicationNodes **pperddp);
+};
+
+[object, uuid (51973c3b-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IEnumRemoteDebugApplications : IUnknown {
+  [local] HRESULT __stdcall Next ([in] ULONG celt,[out] IRemoteDebugApplication **ppda,[out] ULONG *pceltFetched);
+  [call_as (Next)] HRESULT __stdcall RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]IRemoteDebugApplication **ppda,[out] ULONG *pceltFetched);
+  HRESULT Skip ([in] ULONG celt);
+  HRESULT Reset (void);
+  HRESULT Clone ([out] IEnumRemoteDebugApplications **ppessd);
+}
+
+[object, uuid (51973c3c-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IEnumRemoteDebugApplicationThreads : IUnknown {
+  [local] HRESULT __stdcall Next ([in] ULONG celt,[out] IRemoteDebugApplicationThread **pprdat,[out] ULONG *pceltFetched);
+  [call_as (Next)] HRESULT __stdcall RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]IRemoteDebugApplicationThread **ppdat,[out] ULONG *pceltFetched);
+  HRESULT Skip ([in] ULONG celt);
+  HRESULT Reset (void);
+  HRESULT Clone ([out] IEnumRemoteDebugApplicationThreads **pperdat);
+}
+
+[object, local, uuid (51973c05-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugFormatter : IUnknown {
+  HRESULT GetStringForVariant ([in] VARIANT *pvar,[in] ULONG nRadix,[out] BSTR *pbstrValue);
+  HRESULT GetVariantForString ([in] LPCOLESTR pwstrValue,[out] VARIANT *pvar);
+  HRESULT GetStringForVarType ([in] VARTYPE vt,[in] TYPEDESC *ptdescArrayType,[out] BSTR *pbstr);
+}
+
+[object, local, uuid (51973c3e-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface ISimpleConnectionPoint : IUnknown {
+  HRESULT GetEventCount ([out] ULONG *pulCount);
+  HRESULT DescribeEvents ([in] ULONG iEvent,[in] ULONG cEvents,[out, size_is (cEvents), length_is (*pcEventsFetched)]DISPID *prgid,[out, size_is (cEvents), length_is (*pcEventsFetched)]BSTR *prgbstr,[out] ULONG *pcEventsFetched);
+  HRESULT Advise ([in] IDispatch *pdisp,[out] DWORD *pdwCookie);
+  HRESULT Unadvise ([in] DWORD dwCookie);
+};
+
+[object, local, uuid (51973c3f-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IDebugHelper : IUnknown {
+  HRESULT CreatePropertyBrowser ([in] VARIANT *pvar,[in] LPCOLESTR bstrName,[in] IDebugApplicationThread *pdat,[out] IDebugProperty **ppdob);
+  HRESULT CreatePropertyBrowserEx ([in] VARIANT *pvar,[in] LPCOLESTR bstrName,[in] IDebugApplicationThread *pdat,[in] IDebugFormatter *pdf,[out] IDebugProperty **ppdob);
+  HRESULT CreateSimpleConnectionPoint ([in] IDispatch *pdisp,[out] ISimpleConnectionPoint **ppscp);
+};
+
+[object, uuid (51973c40-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IEnumDebugExpressionContexts : IUnknown {
+  [local] HRESULT __stdcall Next ([in] ULONG celt,[out] IDebugExpressionContext **ppdec,[out] ULONG *pceltFetched);
+  [call_as (Next)] HRESULT __stdcall RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]IDebugExpressionContext **pprgdec,[out] ULONG *pceltFetched);
+  HRESULT Skip ([in] ULONG celt);
+  HRESULT Reset (void);
+  HRESULT Clone ([out] IEnumDebugExpressionContexts **ppedec);
+}
+
+[object, uuid (51973c41-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
+interface IProvideExpressionContexts : IUnknown {
+  HRESULT EnumExpressionContexts ([out] IEnumDebugExpressionContexts **ppedec);
+}
+
+[uuid (78a51821-51f4-11d0-8f20-00805f2cd064), version (1.0)]
+library ProcessDebugManagerLib {
+  importlib ("stdole2.tlb");
+  interface IActiveScriptDebug32;
+  interface IActiveScriptDebug64;
+  interface IActiveScriptErrorDebug;
+  interface IActiveScriptSiteDebug32;
+  interface IActiveScriptSiteDebug64;
+  interface IActiveScriptSiteDebugEx;
+  interface IApplicationDebugger;
+  interface IApplicationDebuggerUI;
+  interface IDebugApplication32;
+  interface IDebugApplication64;
+  interface IDebugApplicationNode;
+  interface IDebugApplicationNodeEvents;
+  interface IDebugApplicationThread;
+  interface IDebugAsyncOperation;
+  interface IDebugAsyncOperationCallBack;
+  interface IDebugCodeContext;
+  interface IDebugCookie;
+  interface IDebugDocument;
+  interface IDebugDocumentContext;
+  interface IDebugDocumentHelper32;
+  interface IDebugDocumentHelper64;
+  interface IDebugDocumentHost;
+  interface IDebugDocumentInfo;
+  interface IDebugDocumentProvider;
+  interface IDebugDocumentText;
+  interface IDebugDocumentTextAuthor;
+  interface IDebugDocumentTextEvents;
+  interface IDebugDocumentTextExternalAuthor;
+  interface IDebugExpression;
+  interface IDebugExpressionCallBack;
+  interface IDebugExpressionContext;
+  interface IDebugFormatter;
+  interface IDebugHelper;
+  interface IDebugSessionProvider;
+  interface IDebugStackFrame;
+  interface IDebugStackFrameSniffer;
+  interface IDebugStackFrameSnifferEx32;
+  interface IDebugStackFrameSnifferEx64;
+  interface IDebugSyncOperation;
+  interface IDebugThreadCall32;
+  interface IDebugThreadCall64;
+  interface IEnumDebugApplicationNodes;
+  interface IEnumDebugCodeContexts;
+  interface IEnumDebugExpressionContexts;
+  interface IEnumDebugStackFrames;
+  interface IEnumDebugStackFrames64;
+  interface IEnumRemoteDebugApplications;
+  interface IEnumRemoteDebugApplicationThreads;
+  interface IProcessDebugManager32;
+  interface IProcessDebugManager64;
+  interface IProvideExpressionContexts;
+  interface IMachineDebugManager;
+  interface IMachineDebugManagerCookie;
+  interface IMachineDebugManagerEvents;
+  interface IRemoteDebugApplication;
+  interface IRemoteDebugApplicationEvents;
+  interface IRemoteDebugApplicationThread;
+  interface ISimpleConnectionPoint;
+  [uuid (78a51822-51f4-11d0-8f20-00805f2cd064)]
+  coclass ProcessDebugManager {
+#ifdef _WIN64
+    [default] interface IProcessDebugManager64;
+#else
+    [default] interface IProcessDebugManager32;
+#endif
+  };
+  [uuid (0bfcc060-8c1d-11d0-ACCD-00aa0060275c)]
+  coclass DebugHelper {
+    [default] interface IDebugHelper;
+  };
+  cpp_quote("EXTERN_C const CLSID CLSID_CDebugDocumentHelper;")
+  [uuid (83b8bca6-687c-11d0-A405-00aa0060275c)]
+  coclass CDebugDocumentHelper {
+#ifdef _WIN64
+    [default] interface IDebugDocumentHelper64;
+#else
+    [default] interface IDebugDocumentHelper32;
+#endif
+    interface IDebugDocumentProvider;
+    interface IDebugDocument;
+    interface IDebugDocumentText;
+    interface IDebugDocumentTextAuthor;
+    interface IConnectionPointContainer;
+    [default, source] interface IDebugDocumentTextEvents;
+  };
+  cpp_quote("#ifdef DEBUG")
+  cpp_quote("#define MachineDebugManger MachineDebugManager_DEBUG")
+  cpp_quote("#define CLSID_MachineDebugManager CLSID_MachineDebugManager_DEBUG")
+  cpp_quote("#else")
+  cpp_quote("#define MachineDebugManger MachineDebugManager_RETAIL")
+  cpp_quote("#define CLSID_MachineDebugManager CLSID_MachineDebugManager_RETAIL")
+  cpp_quote("#endif")
+  [uuid (0c0a3666-30c9-11d0-8f20-00805f2cd064)]
+  coclass MachineDebugManager_RETAIL {
+    [default] interface IMachineDebugManager;
+  };
+  [uuid (49769cec-3a55-4bb0-B697-88fede77e8ea)]
+  coclass MachineDebugManager_DEBUG {
+    [default] interface IMachineDebugManager;
+  };
+  [uuid (834128a2-51f4-11d0-8f20-00805f2cd064)]
+  coclass DefaultDebugSessionProvider {
+    [default] interface IDebugSessionProvider;
+  };
+};
+cpp_quote("#endif")
+cpp_quote("#endif")
diff --git a/mingw-w64-headers/include/activdbg100.h b/mingw-w64-headers/include/activdbg100.h
new file mode 100644
index 0000000..00759c7
--- /dev/null
+++ b/mingw-w64-headers/include/activdbg100.h
@@ -0,0 +1,1707 @@
+/*** Autogenerated by WIDL 1.6 from activdbg100.idl - Do not edit ***/
+
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __activdbg100_h__
+#define __activdbg100_h__
+
+/* Forward declarations */
+
+#ifndef __IDebugApplicationNode100_FWD_DEFINED__
+#define __IDebugApplicationNode100_FWD_DEFINED__
+typedef interface IDebugApplicationNode100 IDebugApplicationNode100;
+#endif
+
+#ifndef __IWebAppDiagnosticsSetup_FWD_DEFINED__
+#define __IWebAppDiagnosticsSetup_FWD_DEFINED__
+typedef interface IWebAppDiagnosticsSetup IWebAppDiagnosticsSetup;
+#endif
+
+#ifndef __IRemoteDebugApplication110_FWD_DEFINED__
+#define __IRemoteDebugApplication110_FWD_DEFINED__
+typedef interface IRemoteDebugApplication110 IRemoteDebugApplication110;
+#endif
+
+#ifndef __IDebugApplication11032_FWD_DEFINED__
+#define __IDebugApplication11032_FWD_DEFINED__
+typedef interface IDebugApplication11032 IDebugApplication11032;
+#endif
+
+#ifndef __IDebugApplication11064_FWD_DEFINED__
+#define __IDebugApplication11064_FWD_DEFINED__
+typedef interface IDebugApplication11064 IDebugApplication11064;
+#endif
+
+#ifndef __IWebAppDiagnosticsObjectInitialization_FWD_DEFINED__
+#define __IWebAppDiagnosticsObjectInitialization_FWD_DEFINED__
+typedef interface IWebAppDiagnosticsObjectInitialization IWebAppDiagnosticsObjectInitialization;
+#endif
+
+#ifndef __IActiveScriptWinRTErrorDebug_FWD_DEFINED__
+#define __IActiveScriptWinRTErrorDebug_FWD_DEFINED__
+typedef interface IActiveScriptWinRTErrorDebug IActiveScriptWinRTErrorDebug;
+#endif
+
+#ifndef __IActiveScriptErrorDebug110_FWD_DEFINED__
+#define __IActiveScriptErrorDebug110_FWD_DEFINED__
+typedef interface IActiveScriptErrorDebug110 IActiveScriptErrorDebug110;
+#endif
+
+#ifndef __IDebugApplicationThreadEvents110_FWD_DEFINED__
+#define __IDebugApplicationThreadEvents110_FWD_DEFINED__
+typedef interface IDebugApplicationThreadEvents110 IDebugApplicationThreadEvents110;
+#endif
+
+#ifndef __IDebugApplicationThread11032_FWD_DEFINED__
+#define __IDebugApplicationThread11032_FWD_DEFINED__
+typedef interface IDebugApplicationThread11032 IDebugApplicationThread11032;
+#endif
+
+#ifndef __IDebugApplicationThread11064_FWD_DEFINED__
+#define __IDebugApplicationThread11064_FWD_DEFINED__
+typedef interface IDebugApplicationThread11064 IDebugApplicationThread11064;
+#endif
+
+#ifndef __IRemoteDebugCriticalErrorEvent110_FWD_DEFINED__
+#define __IRemoteDebugCriticalErrorEvent110_FWD_DEFINED__
+typedef interface IRemoteDebugCriticalErrorEvent110 IRemoteDebugCriticalErrorEvent110;
+#endif
+
+/* Headers for imported files */
+
+#include <activdbg.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+#ifndef __IWebAppDiagnosticsSetupEvent_FWD_DEFINED__
+#define __IWebAppDiagnosticsSetupEvent_FWD_DEFINED__
+typedef interface IWebAppDiagnosticsSetupEvent IWebAppDiagnosticsSetupEvent;
+#endif
+
+typedef enum tagAPPLICATION_NODE_EVENT_FILTER {
+    FILTER_EXCLUDE_NOTHING = 0x0,
+    FILTER_EXCLUDE_ANONYMOUS_CODE = 0x1,
+    FILTER_EXCLUDE_EVAL_CODE = 0x2
+} APPLICATION_NODE_EVENT_FILTER;
+typedef enum tagSCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND {
+    ETK_FIRST_CHANCE = 0x0,
+    ETK_USER_UNHANDLED = 0x1,
+    ETK_UNHANDLED = 0x2
+} SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND;
+enum SCRIPT_DEBUGGER_OPTIONS {
+    SDO_NONE = 0x0,
+    SDO_ENABLE_FIRST_CHANCE_EXCEPTIONS = 0x1,
+    SDO_ENABLE_WEB_WORKER_SUPPORT = 0x2,
+    SDO_ENABLE_NONUSER_CODE_SUPPORT = 0x4
+};
+
+typedef struct tagTEXT_DOCUMENT_ARRAY {
+    DWORD dwCount;
+    IDebugDocumentText **Members;
+} TEXT_DOCUMENT_ARRAY;
+DEFINE_ENUM_FLAG_OPERATORS(SCRIPT_DEBUGGER_OPTIONS)
+#ifndef DISABLE_ACTIVDBG_INTERFACE_WRAPPERS
+#ifdef _WIN64
+#define IDebugApplication110 IDebugApplication11064
+#define IID_IDebugApplication110 IID_IDebugApplication11064
+#define IDebugApplicationThread110 IDebugApplicationThread11064
+#define IID_IDebugApplicationThread110 IID_IDebugApplicationThread11064
+#else
+#define IDebugApplication110 IDebugApplication11032
+#define IID_IDebugApplication110 IID_IDebugApplication11032
+#define IDebugApplicationThread110 IDebugApplicationThread11032
+#define IID_IDebugApplicationThread110 IID_IDebugApplicationThread11032
+#endif
+#endif
+/*****************************************************************************
+ * IDebugApplicationNode100 interface
+ */
+#ifndef __IDebugApplicationNode100_INTERFACE_DEFINED__
+#define __IDebugApplicationNode100_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugApplicationNode100, 0x90a7734e, 0x841b, 0x4f77, 0x93,0x84, 0xa2,0x89,0x1e,0x76,0xe7,0xe2);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("90a7734e-841b-4f77-9384-a2891e76e7e2")
+IDebugApplicationNode100 : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetFilterForEventSink(
+        DWORD dwCookie,
+        APPLICATION_NODE_EVENT_FILTER filter) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetExcludedDocuments(
+        APPLICATION_NODE_EVENT_FILTER filter,
+        TEXT_DOCUMENT_ARRAY *pDocuments) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE QueryIsChildNode(
+        IDebugDocument *pSearchKey) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugApplicationNode100, 0x90a7734e, 0x841b, 0x4f77, 0x93,0x84, 0xa2,0x89,0x1e,0x76,0xe7,0xe2)
+#endif
+#else
+typedef struct IDebugApplicationNode100Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugApplicationNode100* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugApplicationNode100* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugApplicationNode100* This);
+
+    /*** IDebugApplicationNode100 methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetFilterForEventSink)(
+        IDebugApplicationNode100* This,
+        DWORD dwCookie,
+        APPLICATION_NODE_EVENT_FILTER filter);
+
+    HRESULT (STDMETHODCALLTYPE *GetExcludedDocuments)(
+        IDebugApplicationNode100* This,
+        APPLICATION_NODE_EVENT_FILTER filter,
+        TEXT_DOCUMENT_ARRAY *pDocuments);
+
+    HRESULT (STDMETHODCALLTYPE *QueryIsChildNode)(
+        IDebugApplicationNode100* This,
+        IDebugDocument *pSearchKey);
+
+    END_INTERFACE
+} IDebugApplicationNode100Vtbl;
+interface IDebugApplicationNode100 {
+    CONST_VTBL IDebugApplicationNode100Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugApplicationNode100_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugApplicationNode100_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugApplicationNode100_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugApplicationNode100 methods ***/
+#define IDebugApplicationNode100_SetFilterForEventSink(This,dwCookie,filter) (This)->lpVtbl->SetFilterForEventSink(This,dwCookie,filter)
+#define IDebugApplicationNode100_GetExcludedDocuments(This,filter,pDocuments) (This)->lpVtbl->GetExcludedDocuments(This,filter,pDocuments)
+#define IDebugApplicationNode100_QueryIsChildNode(This,pSearchKey) (This)->lpVtbl->QueryIsChildNode(This,pSearchKey)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugApplicationNode100_QueryInterface(IDebugApplicationNode100* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugApplicationNode100_AddRef(IDebugApplicationNode100* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugApplicationNode100_Release(IDebugApplicationNode100* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugApplicationNode100 methods ***/
+static FORCEINLINE HRESULT IDebugApplicationNode100_SetFilterForEventSink(IDebugApplicationNode100* This,DWORD dwCookie,APPLICATION_NODE_EVENT_FILTER filter) {
+    return This->lpVtbl->SetFilterForEventSink(This,dwCookie,filter);
+}
+static FORCEINLINE HRESULT IDebugApplicationNode100_GetExcludedDocuments(IDebugApplicationNode100* This,APPLICATION_NODE_EVENT_FILTER filter,TEXT_DOCUMENT_ARRAY *pDocuments) {
+    return This->lpVtbl->GetExcludedDocuments(This,filter,pDocuments);
+}
+static FORCEINLINE HRESULT IDebugApplicationNode100_QueryIsChildNode(IDebugApplicationNode100* This,IDebugDocument *pSearchKey) {
+    return This->lpVtbl->QueryIsChildNode(This,pSearchKey);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugApplicationNode100_SetFilterForEventSink_Proxy(
+    IDebugApplicationNode100* This,
+    DWORD dwCookie,
+    APPLICATION_NODE_EVENT_FILTER filter);
+void __RPC_STUB IDebugApplicationNode100_SetFilterForEventSink_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationNode100_GetExcludedDocuments_Proxy(
+    IDebugApplicationNode100* This,
+    APPLICATION_NODE_EVENT_FILTER filter,
+    TEXT_DOCUMENT_ARRAY *pDocuments);
+void __RPC_STUB IDebugApplicationNode100_GetExcludedDocuments_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationNode100_QueryIsChildNode_Proxy(
+    IDebugApplicationNode100* This,
+    IDebugDocument *pSearchKey);
+void __RPC_STUB IDebugApplicationNode100_QueryIsChildNode_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugApplicationNode100_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWebAppDiagnosticsSetup interface
+ */
+#ifndef __IWebAppDiagnosticsSetup_INTERFACE_DEFINED__
+#define __IWebAppDiagnosticsSetup_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWebAppDiagnosticsSetup, 0x379bfbe1, 0xc6c9, 0x432a, 0x93,0xe1, 0x6d,0x17,0x65,0x6c,0x53,0x8c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("379bfbe1-c6c9-432a-93e1-6d17656c538c")
+IWebAppDiagnosticsSetup : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE DiagnosticsSupported(
+        VARIANT_BOOL *pRetVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateObjectWithSiteAtWebApp(
+        REFCLSID rclsid,
+        DWORD dwClsContext,
+        REFIID riid,
+        DWORD_PTR hPassToObject) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWebAppDiagnosticsSetup, 0x379bfbe1, 0xc6c9, 0x432a, 0x93,0xe1, 0x6d,0x17,0x65,0x6c,0x53,0x8c)
+#endif
+#else
+typedef struct IWebAppDiagnosticsSetupVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWebAppDiagnosticsSetup* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWebAppDiagnosticsSetup* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWebAppDiagnosticsSetup* This);
+
+    /*** IWebAppDiagnosticsSetup methods ***/
+    HRESULT (STDMETHODCALLTYPE *DiagnosticsSupported)(
+        IWebAppDiagnosticsSetup* This,
+        VARIANT_BOOL *pRetVal);
+
+    HRESULT (STDMETHODCALLTYPE *CreateObjectWithSiteAtWebApp)(
+        IWebAppDiagnosticsSetup* This,
+        REFCLSID rclsid,
+        DWORD dwClsContext,
+        REFIID riid,
+        DWORD_PTR hPassToObject);
+
+    END_INTERFACE
+} IWebAppDiagnosticsSetupVtbl;
+interface IWebAppDiagnosticsSetup {
+    CONST_VTBL IWebAppDiagnosticsSetupVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWebAppDiagnosticsSetup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWebAppDiagnosticsSetup_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWebAppDiagnosticsSetup_Release(This) (This)->lpVtbl->Release(This)
+/*** IWebAppDiagnosticsSetup methods ***/
+#define IWebAppDiagnosticsSetup_DiagnosticsSupported(This,pRetVal) (This)->lpVtbl->DiagnosticsSupported(This,pRetVal)
+#define IWebAppDiagnosticsSetup_CreateObjectWithSiteAtWebApp(This,rclsid,dwClsContext,riid,hPassToObject) (This)->lpVtbl->CreateObjectWithSiteAtWebApp(This,rclsid,dwClsContext,riid,hPassToObject)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWebAppDiagnosticsSetup_QueryInterface(IWebAppDiagnosticsSetup* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWebAppDiagnosticsSetup_AddRef(IWebAppDiagnosticsSetup* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWebAppDiagnosticsSetup_Release(IWebAppDiagnosticsSetup* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWebAppDiagnosticsSetup methods ***/
+static FORCEINLINE HRESULT IWebAppDiagnosticsSetup_DiagnosticsSupported(IWebAppDiagnosticsSetup* This,VARIANT_BOOL *pRetVal) {
+    return This->lpVtbl->DiagnosticsSupported(This,pRetVal);
+}
+static FORCEINLINE HRESULT IWebAppDiagnosticsSetup_CreateObjectWithSiteAtWebApp(IWebAppDiagnosticsSetup* This,REFCLSID rclsid,DWORD dwClsContext,REFIID riid,DWORD_PTR hPassToObject) {
+    return This->lpVtbl->CreateObjectWithSiteAtWebApp(This,rclsid,dwClsContext,riid,hPassToObject);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWebAppDiagnosticsSetup_DiagnosticsSupported_Proxy(
+    IWebAppDiagnosticsSetup* This,
+    VARIANT_BOOL *pRetVal);
+void __RPC_STUB IWebAppDiagnosticsSetup_DiagnosticsSupported_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IWebAppDiagnosticsSetup_CreateObjectWithSiteAtWebApp_Proxy(
+    IWebAppDiagnosticsSetup* This,
+    REFCLSID rclsid,
+    DWORD dwClsContext,
+    REFIID riid,
+    DWORD_PTR hPassToObject);
+void __RPC_STUB IWebAppDiagnosticsSetup_CreateObjectWithSiteAtWebApp_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWebAppDiagnosticsSetup_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRemoteDebugApplication110 interface
+ */
+#ifndef __IRemoteDebugApplication110_INTERFACE_DEFINED__
+#define __IRemoteDebugApplication110_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRemoteDebugApplication110, 0xd5fe005b, 0x2836, 0x485e, 0xb1,0xf9, 0x89,0xd9,0x1a,0xa2,0x4f,0xd4);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d5fe005b-2836-485e-b1f9-89d91aa24fd4")
+IRemoteDebugApplication110 : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetDebuggerOptions(
+        enum SCRIPT_DEBUGGER_OPTIONS mask,
+        enum SCRIPT_DEBUGGER_OPTIONS value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetCurrentDebuggerOptions(
+        enum SCRIPT_DEBUGGER_OPTIONS *pCurrentOptions) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetMainThread(
+        IRemoteDebugApplicationThread **ppThread) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRemoteDebugApplication110, 0xd5fe005b, 0x2836, 0x485e, 0xb1,0xf9, 0x89,0xd9,0x1a,0xa2,0x4f,0xd4)
+#endif
+#else
+typedef struct IRemoteDebugApplication110Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRemoteDebugApplication110* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRemoteDebugApplication110* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRemoteDebugApplication110* This);
+
+    /*** IRemoteDebugApplication110 methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetDebuggerOptions)(
+        IRemoteDebugApplication110* This,
+        enum SCRIPT_DEBUGGER_OPTIONS mask,
+        enum SCRIPT_DEBUGGER_OPTIONS value);
+
+    HRESULT (STDMETHODCALLTYPE *GetCurrentDebuggerOptions)(
+        IRemoteDebugApplication110* This,
+        enum SCRIPT_DEBUGGER_OPTIONS *pCurrentOptions);
+
+    HRESULT (STDMETHODCALLTYPE *GetMainThread)(
+        IRemoteDebugApplication110* This,
+        IRemoteDebugApplicationThread **ppThread);
+
+    END_INTERFACE
+} IRemoteDebugApplication110Vtbl;
+interface IRemoteDebugApplication110 {
+    CONST_VTBL IRemoteDebugApplication110Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRemoteDebugApplication110_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRemoteDebugApplication110_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRemoteDebugApplication110_Release(This) (This)->lpVtbl->Release(This)
+/*** IRemoteDebugApplication110 methods ***/
+#define IRemoteDebugApplication110_SetDebuggerOptions(This,mask,value) (This)->lpVtbl->SetDebuggerOptions(This,mask,value)
+#define IRemoteDebugApplication110_GetCurrentDebuggerOptions(This,pCurrentOptions) (This)->lpVtbl->GetCurrentDebuggerOptions(This,pCurrentOptions)
+#define IRemoteDebugApplication110_GetMainThread(This,ppThread) (This)->lpVtbl->GetMainThread(This,ppThread)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRemoteDebugApplication110_QueryInterface(IRemoteDebugApplication110* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRemoteDebugApplication110_AddRef(IRemoteDebugApplication110* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRemoteDebugApplication110_Release(IRemoteDebugApplication110* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRemoteDebugApplication110 methods ***/
+static FORCEINLINE HRESULT IRemoteDebugApplication110_SetDebuggerOptions(IRemoteDebugApplication110* This,enum SCRIPT_DEBUGGER_OPTIONS mask,enum SCRIPT_DEBUGGER_OPTIONS value) {
+    return This->lpVtbl->SetDebuggerOptions(This,mask,value);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplication110_GetCurrentDebuggerOptions(IRemoteDebugApplication110* This,enum SCRIPT_DEBUGGER_OPTIONS *pCurrentOptions) {
+    return This->lpVtbl->GetCurrentDebuggerOptions(This,pCurrentOptions);
+}
+static FORCEINLINE HRESULT IRemoteDebugApplication110_GetMainThread(IRemoteDebugApplication110* This,IRemoteDebugApplicationThread **ppThread) {
+    return This->lpVtbl->GetMainThread(This,ppThread);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplication110_SetDebuggerOptions_Proxy(
+    IRemoteDebugApplication110* This,
+    enum SCRIPT_DEBUGGER_OPTIONS mask,
+    enum SCRIPT_DEBUGGER_OPTIONS value);
+void __RPC_STUB IRemoteDebugApplication110_SetDebuggerOptions_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplication110_GetCurrentDebuggerOptions_Proxy(
+    IRemoteDebugApplication110* This,
+    enum SCRIPT_DEBUGGER_OPTIONS *pCurrentOptions);
+void __RPC_STUB IRemoteDebugApplication110_GetCurrentDebuggerOptions_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IRemoteDebugApplication110_GetMainThread_Proxy(
+    IRemoteDebugApplication110* This,
+    IRemoteDebugApplicationThread **ppThread);
+void __RPC_STUB IRemoteDebugApplication110_GetMainThread_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IRemoteDebugApplication110_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugApplication11032 interface
+ */
+#ifndef __IDebugApplication11032_INTERFACE_DEFINED__
+#define __IDebugApplication11032_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugApplication11032, 0xbdb3b5de, 0x89f2, 0x4e11, 0x84,0xa5, 0x97,0x44,0x5f,0x94,0x1c,0x7d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("bdb3b5de-89f2-4e11-84a5-97445f941c7d")
+IDebugApplication11032 : public IRemoteDebugApplication110
+{
+    virtual HRESULT STDMETHODCALLTYPE SynchronousCallInMainThread(
+        IDebugThreadCall32 *pptc,
+        DWORD_PTR dwParam1,
+        DWORD_PTR dwParam2,
+        DWORD_PTR dwParam3) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AsynchronousCallInMainThread(
+        IDebugThreadCall32 *pptc,
+        DWORD_PTR dwParam1,
+        DWORD_PTR dwParam2,
+        DWORD_PTR dwParam3) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CallableWaitForHandles(
+        DWORD handleCount,
+        const HANDLE *pHandles,
+        DWORD *pIndex) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugApplication11032, 0xbdb3b5de, 0x89f2, 0x4e11, 0x84,0xa5, 0x97,0x44,0x5f,0x94,0x1c,0x7d)
+#endif
+#else
+typedef struct IDebugApplication11032Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugApplication11032* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugApplication11032* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugApplication11032* This);
+
+    /*** IRemoteDebugApplication110 methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetDebuggerOptions)(
+        IDebugApplication11032* This,
+        enum SCRIPT_DEBUGGER_OPTIONS mask,
+        enum SCRIPT_DEBUGGER_OPTIONS value);
+
+    HRESULT (STDMETHODCALLTYPE *GetCurrentDebuggerOptions)(
+        IDebugApplication11032* This,
+        enum SCRIPT_DEBUGGER_OPTIONS *pCurrentOptions);
+
+    HRESULT (STDMETHODCALLTYPE *GetMainThread)(
+        IDebugApplication11032* This,
+        IRemoteDebugApplicationThread **ppThread);
+
+    /*** IDebugApplication11032 methods ***/
+    HRESULT (STDMETHODCALLTYPE *SynchronousCallInMainThread)(
+        IDebugApplication11032* This,
+        IDebugThreadCall32 *pptc,
+        DWORD_PTR dwParam1,
+        DWORD_PTR dwParam2,
+        DWORD_PTR dwParam3);
+
+    HRESULT (STDMETHODCALLTYPE *AsynchronousCallInMainThread)(
+        IDebugApplication11032* This,
+        IDebugThreadCall32 *pptc,
+        DWORD_PTR dwParam1,
+        DWORD_PTR dwParam2,
+        DWORD_PTR dwParam3);
+
+    HRESULT (STDMETHODCALLTYPE *CallableWaitForHandles)(
+        IDebugApplication11032* This,
+        DWORD handleCount,
+        const HANDLE *pHandles,
+        DWORD *pIndex);
+
+    END_INTERFACE
+} IDebugApplication11032Vtbl;
+interface IDebugApplication11032 {
+    CONST_VTBL IDebugApplication11032Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugApplication11032_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugApplication11032_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugApplication11032_Release(This) (This)->lpVtbl->Release(This)
+/*** IRemoteDebugApplication110 methods ***/
+#define IDebugApplication11032_SetDebuggerOptions(This,mask,value) (This)->lpVtbl->SetDebuggerOptions(This,mask,value)
+#define IDebugApplication11032_GetCurrentDebuggerOptions(This,pCurrentOptions) (This)->lpVtbl->GetCurrentDebuggerOptions(This,pCurrentOptions)
+#define IDebugApplication11032_GetMainThread(This,ppThread) (This)->lpVtbl->GetMainThread(This,ppThread)
+/*** IDebugApplication11032 methods ***/
+#define IDebugApplication11032_SynchronousCallInMainThread(This,pptc,dwParam1,dwParam2,dwParam3) (This)->lpVtbl->SynchronousCallInMainThread(This,pptc,dwParam1,dwParam2,dwParam3)
+#define IDebugApplication11032_AsynchronousCallInMainThread(This,pptc,dwParam1,dwParam2,dwParam3) (This)->lpVtbl->AsynchronousCallInMainThread(This,pptc,dwParam1,dwParam2,dwParam3)
+#define IDebugApplication11032_CallableWaitForHandles(This,handleCount,pHandles,pIndex) (This)->lpVtbl->CallableWaitForHandles(This,handleCount,pHandles,pIndex)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugApplication11032_QueryInterface(IDebugApplication11032* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugApplication11032_AddRef(IDebugApplication11032* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugApplication11032_Release(IDebugApplication11032* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRemoteDebugApplication110 methods ***/
+static FORCEINLINE HRESULT IDebugApplication11032_SetDebuggerOptions(IDebugApplication11032* This,enum SCRIPT_DEBUGGER_OPTIONS mask,enum SCRIPT_DEBUGGER_OPTIONS value) {
+    return This->lpVtbl->SetDebuggerOptions(This,mask,value);
+}
+static FORCEINLINE HRESULT IDebugApplication11032_GetCurrentDebuggerOptions(IDebugApplication11032* This,enum SCRIPT_DEBUGGER_OPTIONS *pCurrentOptions) {
+    return This->lpVtbl->GetCurrentDebuggerOptions(This,pCurrentOptions);
+}
+static FORCEINLINE HRESULT IDebugApplication11032_GetMainThread(IDebugApplication11032* This,IRemoteDebugApplicationThread **ppThread) {
+    return This->lpVtbl->GetMainThread(This,ppThread);
+}
+/*** IDebugApplication11032 methods ***/
+static FORCEINLINE HRESULT IDebugApplication11032_SynchronousCallInMainThread(IDebugApplication11032* This,IDebugThreadCall32 *pptc,DWORD_PTR dwParam1,DWORD_PTR dwParam2,DWORD_PTR dwParam3) {
+    return This->lpVtbl->SynchronousCallInMainThread(This,pptc,dwParam1,dwParam2,dwParam3);
+}
+static FORCEINLINE HRESULT IDebugApplication11032_AsynchronousCallInMainThread(IDebugApplication11032* This,IDebugThreadCall32 *pptc,DWORD_PTR dwParam1,DWORD_PTR dwParam2,DWORD_PTR dwParam3) {
+    return This->lpVtbl->AsynchronousCallInMainThread(This,pptc,dwParam1,dwParam2,dwParam3);
+}
+static FORCEINLINE HRESULT IDebugApplication11032_CallableWaitForHandles(IDebugApplication11032* This,DWORD handleCount,const HANDLE *pHandles,DWORD *pIndex) {
+    return This->lpVtbl->CallableWaitForHandles(This,handleCount,pHandles,pIndex);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugApplication11032_SynchronousCallInMainThread_Proxy(
+    IDebugApplication11032* This,
+    IDebugThreadCall32 *pptc,
+    DWORD_PTR dwParam1,
+    DWORD_PTR dwParam2,
+    DWORD_PTR dwParam3);
+void __RPC_STUB IDebugApplication11032_SynchronousCallInMainThread_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication11032_AsynchronousCallInMainThread_Proxy(
+    IDebugApplication11032* This,
+    IDebugThreadCall32 *pptc,
+    DWORD_PTR dwParam1,
+    DWORD_PTR dwParam2,
+    DWORD_PTR dwParam3);
+void __RPC_STUB IDebugApplication11032_AsynchronousCallInMainThread_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication11032_CallableWaitForHandles_Proxy(
+    IDebugApplication11032* This,
+    DWORD handleCount,
+    const HANDLE *pHandles,
+    DWORD *pIndex);
+void __RPC_STUB IDebugApplication11032_CallableWaitForHandles_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugApplication11032_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugApplication11064 interface
+ */
+#ifndef __IDebugApplication11064_INTERFACE_DEFINED__
+#define __IDebugApplication11064_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugApplication11064, 0x2039d958, 0x4eeb, 0x496a, 0x87,0xbb, 0x2e,0x52,0x01,0xea,0xde,0xef);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("2039d958-4eeb-496a-87bb-2e5201eadeef")
+IDebugApplication11064 : public IRemoteDebugApplication110
+{
+    virtual HRESULT STDMETHODCALLTYPE SynchronousCallInMainThread(
+        IDebugThreadCall64 *pptc,
+        DWORD_PTR dwParam1,
+        DWORD_PTR dwParam2,
+        DWORD_PTR dwParam3) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AsynchronousCallInMainThread(
+        IDebugThreadCall64 *pptc,
+        DWORD_PTR dwParam1,
+        DWORD_PTR dwParam2,
+        DWORD_PTR dwParam3) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CallableWaitForHandles(
+        DWORD handleCount,
+        const HANDLE *pHandles,
+        DWORD *pIndex) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugApplication11064, 0x2039d958, 0x4eeb, 0x496a, 0x87,0xbb, 0x2e,0x52,0x01,0xea,0xde,0xef)
+#endif
+#else
+typedef struct IDebugApplication11064Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugApplication11064* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugApplication11064* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugApplication11064* This);
+
+    /*** IRemoteDebugApplication110 methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetDebuggerOptions)(
+        IDebugApplication11064* This,
+        enum SCRIPT_DEBUGGER_OPTIONS mask,
+        enum SCRIPT_DEBUGGER_OPTIONS value);
+
+    HRESULT (STDMETHODCALLTYPE *GetCurrentDebuggerOptions)(
+        IDebugApplication11064* This,
+        enum SCRIPT_DEBUGGER_OPTIONS *pCurrentOptions);
+
+    HRESULT (STDMETHODCALLTYPE *GetMainThread)(
+        IDebugApplication11064* This,
+        IRemoteDebugApplicationThread **ppThread);
+
+    /*** IDebugApplication11064 methods ***/
+    HRESULT (STDMETHODCALLTYPE *SynchronousCallInMainThread)(
+        IDebugApplication11064* This,
+        IDebugThreadCall64 *pptc,
+        DWORD_PTR dwParam1,
+        DWORD_PTR dwParam2,
+        DWORD_PTR dwParam3);
+
+    HRESULT (STDMETHODCALLTYPE *AsynchronousCallInMainThread)(
+        IDebugApplication11064* This,
+        IDebugThreadCall64 *pptc,
+        DWORD_PTR dwParam1,
+        DWORD_PTR dwParam2,
+        DWORD_PTR dwParam3);
+
+    HRESULT (STDMETHODCALLTYPE *CallableWaitForHandles)(
+        IDebugApplication11064* This,
+        DWORD handleCount,
+        const HANDLE *pHandles,
+        DWORD *pIndex);
+
+    END_INTERFACE
+} IDebugApplication11064Vtbl;
+interface IDebugApplication11064 {
+    CONST_VTBL IDebugApplication11064Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugApplication11064_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugApplication11064_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugApplication11064_Release(This) (This)->lpVtbl->Release(This)
+/*** IRemoteDebugApplication110 methods ***/
+#define IDebugApplication11064_SetDebuggerOptions(This,mask,value) (This)->lpVtbl->SetDebuggerOptions(This,mask,value)
+#define IDebugApplication11064_GetCurrentDebuggerOptions(This,pCurrentOptions) (This)->lpVtbl->GetCurrentDebuggerOptions(This,pCurrentOptions)
+#define IDebugApplication11064_GetMainThread(This,ppThread) (This)->lpVtbl->GetMainThread(This,ppThread)
+/*** IDebugApplication11064 methods ***/
+#define IDebugApplication11064_SynchronousCallInMainThread(This,pptc,dwParam1,dwParam2,dwParam3) (This)->lpVtbl->SynchronousCallInMainThread(This,pptc,dwParam1,dwParam2,dwParam3)
+#define IDebugApplication11064_AsynchronousCallInMainThread(This,pptc,dwParam1,dwParam2,dwParam3) (This)->lpVtbl->AsynchronousCallInMainThread(This,pptc,dwParam1,dwParam2,dwParam3)
+#define IDebugApplication11064_CallableWaitForHandles(This,handleCount,pHandles,pIndex) (This)->lpVtbl->CallableWaitForHandles(This,handleCount,pHandles,pIndex)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugApplication11064_QueryInterface(IDebugApplication11064* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugApplication11064_AddRef(IDebugApplication11064* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugApplication11064_Release(IDebugApplication11064* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRemoteDebugApplication110 methods ***/
+static FORCEINLINE HRESULT IDebugApplication11064_SetDebuggerOptions(IDebugApplication11064* This,enum SCRIPT_DEBUGGER_OPTIONS mask,enum SCRIPT_DEBUGGER_OPTIONS value) {
+    return This->lpVtbl->SetDebuggerOptions(This,mask,value);
+}
+static FORCEINLINE HRESULT IDebugApplication11064_GetCurrentDebuggerOptions(IDebugApplication11064* This,enum SCRIPT_DEBUGGER_OPTIONS *pCurrentOptions) {
+    return This->lpVtbl->GetCurrentDebuggerOptions(This,pCurrentOptions);
+}
+static FORCEINLINE HRESULT IDebugApplication11064_GetMainThread(IDebugApplication11064* This,IRemoteDebugApplicationThread **ppThread) {
+    return This->lpVtbl->GetMainThread(This,ppThread);
+}
+/*** IDebugApplication11064 methods ***/
+static FORCEINLINE HRESULT IDebugApplication11064_SynchronousCallInMainThread(IDebugApplication11064* This,IDebugThreadCall64 *pptc,DWORD_PTR dwParam1,DWORD_PTR dwParam2,DWORD_PTR dwParam3) {
+    return This->lpVtbl->SynchronousCallInMainThread(This,pptc,dwParam1,dwParam2,dwParam3);
+}
+static FORCEINLINE HRESULT IDebugApplication11064_AsynchronousCallInMainThread(IDebugApplication11064* This,IDebugThreadCall64 *pptc,DWORD_PTR dwParam1,DWORD_PTR dwParam2,DWORD_PTR dwParam3) {
+    return This->lpVtbl->AsynchronousCallInMainThread(This,pptc,dwParam1,dwParam2,dwParam3);
+}
+static FORCEINLINE HRESULT IDebugApplication11064_CallableWaitForHandles(IDebugApplication11064* This,DWORD handleCount,const HANDLE *pHandles,DWORD *pIndex) {
+    return This->lpVtbl->CallableWaitForHandles(This,handleCount,pHandles,pIndex);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugApplication11064_SynchronousCallInMainThread_Proxy(
+    IDebugApplication11064* This,
+    IDebugThreadCall64 *pptc,
+    DWORD_PTR dwParam1,
+    DWORD_PTR dwParam2,
+    DWORD_PTR dwParam3);
+void __RPC_STUB IDebugApplication11064_SynchronousCallInMainThread_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication11064_AsynchronousCallInMainThread_Proxy(
+    IDebugApplication11064* This,
+    IDebugThreadCall64 *pptc,
+    DWORD_PTR dwParam1,
+    DWORD_PTR dwParam2,
+    DWORD_PTR dwParam3);
+void __RPC_STUB IDebugApplication11064_AsynchronousCallInMainThread_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplication11064_CallableWaitForHandles_Proxy(
+    IDebugApplication11064* This,
+    DWORD handleCount,
+    const HANDLE *pHandles,
+    DWORD *pIndex);
+void __RPC_STUB IDebugApplication11064_CallableWaitForHandles_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugApplication11064_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWebAppDiagnosticsObjectInitialization interface
+ */
+#ifndef __IWebAppDiagnosticsObjectInitialization_INTERFACE_DEFINED__
+#define __IWebAppDiagnosticsObjectInitialization_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWebAppDiagnosticsObjectInitialization, 0x16ff3a42, 0xa5f5, 0x432b, 0xb6,0x25, 0x8e,0x8e,0x16,0xf5,0x7e,0x15);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("16ff3a42-a5f5-432b-b625-8e8e16f57e15")
+IWebAppDiagnosticsObjectInitialization : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Initialize(
+        HANDLE_PTR hPassedHandle,
+        IUnknown *pDebugApplication) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWebAppDiagnosticsObjectInitialization, 0x16ff3a42, 0xa5f5, 0x432b, 0xb6,0x25, 0x8e,0x8e,0x16,0xf5,0x7e,0x15)
+#endif
+#else
+typedef struct IWebAppDiagnosticsObjectInitializationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWebAppDiagnosticsObjectInitialization* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWebAppDiagnosticsObjectInitialization* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWebAppDiagnosticsObjectInitialization* This);
+
+    /*** IWebAppDiagnosticsObjectInitialization methods ***/
+    HRESULT (STDMETHODCALLTYPE *Initialize)(
+        IWebAppDiagnosticsObjectInitialization* This,
+        HANDLE_PTR hPassedHandle,
+        IUnknown *pDebugApplication);
+
+    END_INTERFACE
+} IWebAppDiagnosticsObjectInitializationVtbl;
+interface IWebAppDiagnosticsObjectInitialization {
+    CONST_VTBL IWebAppDiagnosticsObjectInitializationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWebAppDiagnosticsObjectInitialization_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWebAppDiagnosticsObjectInitialization_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWebAppDiagnosticsObjectInitialization_Release(This) (This)->lpVtbl->Release(This)
+/*** IWebAppDiagnosticsObjectInitialization methods ***/
+#define IWebAppDiagnosticsObjectInitialization_Initialize(This,hPassedHandle,pDebugApplication) (This)->lpVtbl->Initialize(This,hPassedHandle,pDebugApplication)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWebAppDiagnosticsObjectInitialization_QueryInterface(IWebAppDiagnosticsObjectInitialization* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWebAppDiagnosticsObjectInitialization_AddRef(IWebAppDiagnosticsObjectInitialization* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWebAppDiagnosticsObjectInitialization_Release(IWebAppDiagnosticsObjectInitialization* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWebAppDiagnosticsObjectInitialization methods ***/
+static FORCEINLINE HRESULT IWebAppDiagnosticsObjectInitialization_Initialize(IWebAppDiagnosticsObjectInitialization* This,HANDLE_PTR hPassedHandle,IUnknown *pDebugApplication) {
+    return This->lpVtbl->Initialize(This,hPassedHandle,pDebugApplication);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IWebAppDiagnosticsObjectInitialization_Initialize_Proxy(
+    IWebAppDiagnosticsObjectInitialization* This,
+    HANDLE_PTR hPassedHandle,
+    IUnknown *pDebugApplication);
+void __RPC_STUB IWebAppDiagnosticsObjectInitialization_Initialize_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IWebAppDiagnosticsObjectInitialization_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IActiveScriptWinRTErrorDebug interface
+ */
+#ifndef __IActiveScriptWinRTErrorDebug_INTERFACE_DEFINED__
+#define __IActiveScriptWinRTErrorDebug_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IActiveScriptWinRTErrorDebug, 0x73a3f82a, 0x0fe9, 0x4b33, 0xba,0x3b, 0xfe,0x09,0x5f,0x69,0x7e,0x0a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("73a3f82a-0fe9-4b33-ba3b-fe095f697e0a")
+IActiveScriptWinRTErrorDebug : public IActiveScriptError
+{
+    virtual HRESULT STDMETHODCALLTYPE GetRestrictedErrorString(
+        BSTR *errorString) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetRestrictedErrorReference(
+        BSTR *referenceString) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetCapabilitySid(
+        BSTR *capabilitySid) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IActiveScriptWinRTErrorDebug, 0x73a3f82a, 0x0fe9, 0x4b33, 0xba,0x3b, 0xfe,0x09,0x5f,0x69,0x7e,0x0a)
+#endif
+#else
+typedef struct IActiveScriptWinRTErrorDebugVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IActiveScriptWinRTErrorDebug* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IActiveScriptWinRTErrorDebug* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IActiveScriptWinRTErrorDebug* This);
+
+    /*** IActiveScriptError methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetExceptionInfo)(
+        IActiveScriptWinRTErrorDebug* This,
+        EXCEPINFO *pexcepinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetSourcePosition)(
+        IActiveScriptWinRTErrorDebug* This,
+        DWORD *pdwSourceContext,
+        ULONG *pulLineNumber,
+        LONG *plCharacterPosition);
+
+    HRESULT (STDMETHODCALLTYPE *GetSourceLineText)(
+        IActiveScriptWinRTErrorDebug* This,
+        BSTR *pbstrSourceLine);
+
+    /*** IActiveScriptWinRTErrorDebug methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetRestrictedErrorString)(
+        IActiveScriptWinRTErrorDebug* This,
+        BSTR *errorString);
+
+    HRESULT (STDMETHODCALLTYPE *GetRestrictedErrorReference)(
+        IActiveScriptWinRTErrorDebug* This,
+        BSTR *referenceString);
+
+    HRESULT (STDMETHODCALLTYPE *GetCapabilitySid)(
+        IActiveScriptWinRTErrorDebug* This,
+        BSTR *capabilitySid);
+
+    END_INTERFACE
+} IActiveScriptWinRTErrorDebugVtbl;
+interface IActiveScriptWinRTErrorDebug {
+    CONST_VTBL IActiveScriptWinRTErrorDebugVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IActiveScriptWinRTErrorDebug_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IActiveScriptWinRTErrorDebug_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IActiveScriptWinRTErrorDebug_Release(This) (This)->lpVtbl->Release(This)
+/*** IActiveScriptError methods ***/
+#define IActiveScriptWinRTErrorDebug_GetExceptionInfo(This,pexcepinfo) (This)->lpVtbl->GetExceptionInfo(This,pexcepinfo)
+#define IActiveScriptWinRTErrorDebug_GetSourcePosition(This,pdwSourceContext,pulLineNumber,plCharacterPosition) (This)->lpVtbl->GetSourcePosition(This,pdwSourceContext,pulLineNumber,plCharacterPosition)
+#define IActiveScriptWinRTErrorDebug_GetSourceLineText(This,pbstrSourceLine) (This)->lpVtbl->GetSourceLineText(This,pbstrSourceLine)
+/*** IActiveScriptWinRTErrorDebug methods ***/
+#define IActiveScriptWinRTErrorDebug_GetRestrictedErrorString(This,errorString) (This)->lpVtbl->GetRestrictedErrorString(This,errorString)
+#define IActiveScriptWinRTErrorDebug_GetRestrictedErrorReference(This,referenceString) (This)->lpVtbl->GetRestrictedErrorReference(This,referenceString)
+#define IActiveScriptWinRTErrorDebug_GetCapabilitySid(This,capabilitySid) (This)->lpVtbl->GetCapabilitySid(This,capabilitySid)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IActiveScriptWinRTErrorDebug_QueryInterface(IActiveScriptWinRTErrorDebug* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IActiveScriptWinRTErrorDebug_AddRef(IActiveScriptWinRTErrorDebug* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IActiveScriptWinRTErrorDebug_Release(IActiveScriptWinRTErrorDebug* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IActiveScriptError methods ***/
+static FORCEINLINE HRESULT IActiveScriptWinRTErrorDebug_GetExceptionInfo(IActiveScriptWinRTErrorDebug* This,EXCEPINFO *pexcepinfo) {
+    return This->lpVtbl->GetExceptionInfo(This,pexcepinfo);
+}
+static FORCEINLINE HRESULT IActiveScriptWinRTErrorDebug_GetSourcePosition(IActiveScriptWinRTErrorDebug* This,DWORD *pdwSourceContext,ULONG *pulLineNumber,LONG *plCharacterPosition) {
+    return This->lpVtbl->GetSourcePosition(This,pdwSourceContext,pulLineNumber,plCharacterPosition);
+}
+static FORCEINLINE HRESULT IActiveScriptWinRTErrorDebug_GetSourceLineText(IActiveScriptWinRTErrorDebug* This,BSTR *pbstrSourceLine) {
+    return This->lpVtbl->GetSourceLineText(This,pbstrSourceLine);
+}
+/*** IActiveScriptWinRTErrorDebug methods ***/
+static FORCEINLINE HRESULT IActiveScriptWinRTErrorDebug_GetRestrictedErrorString(IActiveScriptWinRTErrorDebug* This,BSTR *errorString) {
+    return This->lpVtbl->GetRestrictedErrorString(This,errorString);
+}
+static FORCEINLINE HRESULT IActiveScriptWinRTErrorDebug_GetRestrictedErrorReference(IActiveScriptWinRTErrorDebug* This,BSTR *referenceString) {
+    return This->lpVtbl->GetRestrictedErrorReference(This,referenceString);
+}
+static FORCEINLINE HRESULT IActiveScriptWinRTErrorDebug_GetCapabilitySid(IActiveScriptWinRTErrorDebug* This,BSTR *capabilitySid) {
+    return This->lpVtbl->GetCapabilitySid(This,capabilitySid);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IActiveScriptWinRTErrorDebug_GetRestrictedErrorString_Proxy(
+    IActiveScriptWinRTErrorDebug* This,
+    BSTR *errorString);
+void __RPC_STUB IActiveScriptWinRTErrorDebug_GetRestrictedErrorString_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptWinRTErrorDebug_GetRestrictedErrorReference_Proxy(
+    IActiveScriptWinRTErrorDebug* This,
+    BSTR *referenceString);
+void __RPC_STUB IActiveScriptWinRTErrorDebug_GetRestrictedErrorReference_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptWinRTErrorDebug_GetCapabilitySid_Proxy(
+    IActiveScriptWinRTErrorDebug* This,
+    BSTR *capabilitySid);
+void __RPC_STUB IActiveScriptWinRTErrorDebug_GetCapabilitySid_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IActiveScriptWinRTErrorDebug_INTERFACE_DEFINED__ */
+
+
+/*****************************************************************************
+ * IActiveScriptErrorDebug110 interface
+ */
+#ifndef __IActiveScriptErrorDebug110_INTERFACE_DEFINED__
+#define __IActiveScriptErrorDebug110_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IActiveScriptErrorDebug110, 0x516e42b6, 0x89a8, 0x4530, 0x93,0x7b, 0x5f,0x07,0x08,0x43,0x14,0x42);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("516e42b6-89a8-4530-937b-5f0708431442")
+IActiveScriptErrorDebug110 : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetExceptionThrownKind(
+        SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND *pExceptionKind) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IActiveScriptErrorDebug110, 0x516e42b6, 0x89a8, 0x4530, 0x93,0x7b, 0x5f,0x07,0x08,0x43,0x14,0x42)
+#endif
+#else
+typedef struct IActiveScriptErrorDebug110Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IActiveScriptErrorDebug110* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IActiveScriptErrorDebug110* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IActiveScriptErrorDebug110* This);
+
+    /*** IActiveScriptErrorDebug110 methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetExceptionThrownKind)(
+        IActiveScriptErrorDebug110* This,
+        SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND *pExceptionKind);
+
+    END_INTERFACE
+} IActiveScriptErrorDebug110Vtbl;
+interface IActiveScriptErrorDebug110 {
+    CONST_VTBL IActiveScriptErrorDebug110Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IActiveScriptErrorDebug110_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IActiveScriptErrorDebug110_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IActiveScriptErrorDebug110_Release(This) (This)->lpVtbl->Release(This)
+/*** IActiveScriptErrorDebug110 methods ***/
+#define IActiveScriptErrorDebug110_GetExceptionThrownKind(This,pExceptionKind) (This)->lpVtbl->GetExceptionThrownKind(This,pExceptionKind)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IActiveScriptErrorDebug110_QueryInterface(IActiveScriptErrorDebug110* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IActiveScriptErrorDebug110_AddRef(IActiveScriptErrorDebug110* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IActiveScriptErrorDebug110_Release(IActiveScriptErrorDebug110* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IActiveScriptErrorDebug110 methods ***/
+static FORCEINLINE HRESULT IActiveScriptErrorDebug110_GetExceptionThrownKind(IActiveScriptErrorDebug110* This,SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND *pExceptionKind) {
+    return This->lpVtbl->GetExceptionThrownKind(This,pExceptionKind);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IActiveScriptErrorDebug110_GetExceptionThrownKind_Proxy(
+    IActiveScriptErrorDebug110* This,
+    SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND *pExceptionKind);
+void __RPC_STUB IActiveScriptErrorDebug110_GetExceptionThrownKind_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IActiveScriptErrorDebug110_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugApplicationThreadEvents110 interface
+ */
+#ifndef __IDebugApplicationThreadEvents110_INTERFACE_DEFINED__
+#define __IDebugApplicationThreadEvents110_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugApplicationThreadEvents110, 0x84e5e468, 0xd5da, 0x48a8, 0x83,0xf4, 0x40,0x36,0x64,0x29,0x00,0x7b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("84e5e468-d5da-48a8-83f4-40366429007b")
+IDebugApplicationThreadEvents110 : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE OnSuspendForBreakPoint(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnResumeFromBreakPoint(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnThreadRequestComplete(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnBeginThreadRequest(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugApplicationThreadEvents110, 0x84e5e468, 0xd5da, 0x48a8, 0x83,0xf4, 0x40,0x36,0x64,0x29,0x00,0x7b)
+#endif
+#else
+typedef struct IDebugApplicationThreadEvents110Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugApplicationThreadEvents110* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugApplicationThreadEvents110* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugApplicationThreadEvents110* This);
+
+    /*** IDebugApplicationThreadEvents110 methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnSuspendForBreakPoint)(
+        IDebugApplicationThreadEvents110* This);
+
+    HRESULT (STDMETHODCALLTYPE *OnResumeFromBreakPoint)(
+        IDebugApplicationThreadEvents110* This);
+
+    HRESULT (STDMETHODCALLTYPE *OnThreadRequestComplete)(
+        IDebugApplicationThreadEvents110* This);
+
+    HRESULT (STDMETHODCALLTYPE *OnBeginThreadRequest)(
+        IDebugApplicationThreadEvents110* This);
+
+    END_INTERFACE
+} IDebugApplicationThreadEvents110Vtbl;
+interface IDebugApplicationThreadEvents110 {
+    CONST_VTBL IDebugApplicationThreadEvents110Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugApplicationThreadEvents110_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugApplicationThreadEvents110_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugApplicationThreadEvents110_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugApplicationThreadEvents110 methods ***/
+#define IDebugApplicationThreadEvents110_OnSuspendForBreakPoint(This) (This)->lpVtbl->OnSuspendForBreakPoint(This)
+#define IDebugApplicationThreadEvents110_OnResumeFromBreakPoint(This) (This)->lpVtbl->OnResumeFromBreakPoint(This)
+#define IDebugApplicationThreadEvents110_OnThreadRequestComplete(This) (This)->lpVtbl->OnThreadRequestComplete(This)
+#define IDebugApplicationThreadEvents110_OnBeginThreadRequest(This) (This)->lpVtbl->OnBeginThreadRequest(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugApplicationThreadEvents110_QueryInterface(IDebugApplicationThreadEvents110* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugApplicationThreadEvents110_AddRef(IDebugApplicationThreadEvents110* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugApplicationThreadEvents110_Release(IDebugApplicationThreadEvents110* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugApplicationThreadEvents110 methods ***/
+static FORCEINLINE HRESULT IDebugApplicationThreadEvents110_OnSuspendForBreakPoint(IDebugApplicationThreadEvents110* This) {
+    return This->lpVtbl->OnSuspendForBreakPoint(This);
+}
+static FORCEINLINE HRESULT IDebugApplicationThreadEvents110_OnResumeFromBreakPoint(IDebugApplicationThreadEvents110* This) {
+    return This->lpVtbl->OnResumeFromBreakPoint(This);
+}
+static FORCEINLINE HRESULT IDebugApplicationThreadEvents110_OnThreadRequestComplete(IDebugApplicationThreadEvents110* This) {
+    return This->lpVtbl->OnThreadRequestComplete(This);
+}
+static FORCEINLINE HRESULT IDebugApplicationThreadEvents110_OnBeginThreadRequest(IDebugApplicationThreadEvents110* This) {
+    return This->lpVtbl->OnBeginThreadRequest(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugApplicationThreadEvents110_OnSuspendForBreakPoint_Proxy(
+    IDebugApplicationThreadEvents110* This);
+void __RPC_STUB IDebugApplicationThreadEvents110_OnSuspendForBreakPoint_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationThreadEvents110_OnResumeFromBreakPoint_Proxy(
+    IDebugApplicationThreadEvents110* This);
+void __RPC_STUB IDebugApplicationThreadEvents110_OnResumeFromBreakPoint_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationThreadEvents110_OnThreadRequestComplete_Proxy(
+    IDebugApplicationThreadEvents110* This);
+void __RPC_STUB IDebugApplicationThreadEvents110_OnThreadRequestComplete_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationThreadEvents110_OnBeginThreadRequest_Proxy(
+    IDebugApplicationThreadEvents110* This);
+void __RPC_STUB IDebugApplicationThreadEvents110_OnBeginThreadRequest_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugApplicationThreadEvents110_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugApplicationThread11032 interface
+ */
+#ifndef __IDebugApplicationThread11032_INTERFACE_DEFINED__
+#define __IDebugApplicationThread11032_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugApplicationThread11032, 0x2194ac5c, 0x6561, 0x404a, 0xa2,0xe9, 0xf5,0x7d,0x72,0xde,0x37,0x02);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("2194ac5c-6561-404a-a2e9-f57d72de3702")
+IDebugApplicationThread11032 : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetActiveThreadRequestCount(
+        UINT *puiThreadRequests) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE IsSuspendedForBreakPoint(
+        WINBOOL *pfIsSuspended) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE IsThreadCallable(
+        WINBOOL *pfIsCallable) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AsynchronousCallIntoThread(
+        IDebugThreadCall32 *pptc,
+        DWORD_PTR dwParam1,
+        DWORD_PTR dwParam2,
+        DWORD_PTR dwParam3) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugApplicationThread11032, 0x2194ac5c, 0x6561, 0x404a, 0xa2,0xe9, 0xf5,0x7d,0x72,0xde,0x37,0x02)
+#endif
+#else
+typedef struct IDebugApplicationThread11032Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugApplicationThread11032* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugApplicationThread11032* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugApplicationThread11032* This);
+
+    /*** IDebugApplicationThread11032 methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetActiveThreadRequestCount)(
+        IDebugApplicationThread11032* This,
+        UINT *puiThreadRequests);
+
+    HRESULT (STDMETHODCALLTYPE *IsSuspendedForBreakPoint)(
+        IDebugApplicationThread11032* This,
+        WINBOOL *pfIsSuspended);
+
+    HRESULT (STDMETHODCALLTYPE *IsThreadCallable)(
+        IDebugApplicationThread11032* This,
+        WINBOOL *pfIsCallable);
+
+    HRESULT (STDMETHODCALLTYPE *AsynchronousCallIntoThread)(
+        IDebugApplicationThread11032* This,
+        IDebugThreadCall32 *pptc,
+        DWORD_PTR dwParam1,
+        DWORD_PTR dwParam2,
+        DWORD_PTR dwParam3);
+
+    END_INTERFACE
+} IDebugApplicationThread11032Vtbl;
+interface IDebugApplicationThread11032 {
+    CONST_VTBL IDebugApplicationThread11032Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugApplicationThread11032_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugApplicationThread11032_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugApplicationThread11032_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugApplicationThread11032 methods ***/
+#define IDebugApplicationThread11032_GetActiveThreadRequestCount(This,puiThreadRequests) (This)->lpVtbl->GetActiveThreadRequestCount(This,puiThreadRequests)
+#define IDebugApplicationThread11032_IsSuspendedForBreakPoint(This,pfIsSuspended) (This)->lpVtbl->IsSuspendedForBreakPoint(This,pfIsSuspended)
+#define IDebugApplicationThread11032_IsThreadCallable(This,pfIsCallable) (This)->lpVtbl->IsThreadCallable(This,pfIsCallable)
+#define IDebugApplicationThread11032_AsynchronousCallIntoThread(This,pptc,dwParam1,dwParam2,dwParam3) (This)->lpVtbl->AsynchronousCallIntoThread(This,pptc,dwParam1,dwParam2,dwParam3)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugApplicationThread11032_QueryInterface(IDebugApplicationThread11032* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugApplicationThread11032_AddRef(IDebugApplicationThread11032* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugApplicationThread11032_Release(IDebugApplicationThread11032* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugApplicationThread11032 methods ***/
+static FORCEINLINE HRESULT IDebugApplicationThread11032_GetActiveThreadRequestCount(IDebugApplicationThread11032* This,UINT *puiThreadRequests) {
+    return This->lpVtbl->GetActiveThreadRequestCount(This,puiThreadRequests);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread11032_IsSuspendedForBreakPoint(IDebugApplicationThread11032* This,WINBOOL *pfIsSuspended) {
+    return This->lpVtbl->IsSuspendedForBreakPoint(This,pfIsSuspended);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread11032_IsThreadCallable(IDebugApplicationThread11032* This,WINBOOL *pfIsCallable) {
+    return This->lpVtbl->IsThreadCallable(This,pfIsCallable);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread11032_AsynchronousCallIntoThread(IDebugApplicationThread11032* This,IDebugThreadCall32 *pptc,DWORD_PTR dwParam1,DWORD_PTR dwParam2,DWORD_PTR dwParam3) {
+    return This->lpVtbl->AsynchronousCallIntoThread(This,pptc,dwParam1,dwParam2,dwParam3);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugApplicationThread11032_GetActiveThreadRequestCount_Proxy(
+    IDebugApplicationThread11032* This,
+    UINT *puiThreadRequests);
+void __RPC_STUB IDebugApplicationThread11032_GetActiveThreadRequestCount_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationThread11032_IsSuspendedForBreakPoint_Proxy(
+    IDebugApplicationThread11032* This,
+    WINBOOL *pfIsSuspended);
+void __RPC_STUB IDebugApplicationThread11032_IsSuspendedForBreakPoint_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationThread11032_IsThreadCallable_Proxy(
+    IDebugApplicationThread11032* This,
+    WINBOOL *pfIsCallable);
+void __RPC_STUB IDebugApplicationThread11032_IsThreadCallable_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationThread11032_AsynchronousCallIntoThread_Proxy(
+    IDebugApplicationThread11032* This,
+    IDebugThreadCall32 *pptc,
+    DWORD_PTR dwParam1,
+    DWORD_PTR dwParam2,
+    DWORD_PTR dwParam3);
+void __RPC_STUB IDebugApplicationThread11032_AsynchronousCallIntoThread_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugApplicationThread11032_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDebugApplicationThread11064 interface
+ */
+#ifndef __IDebugApplicationThread11064_INTERFACE_DEFINED__
+#define __IDebugApplicationThread11064_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDebugApplicationThread11064, 0x420aa4cc, 0xefd8, 0x4dac, 0x98,0x3b, 0x47,0x12,0x78,0x26,0x91,0x7d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("420aa4cc-efd8-4dac-983b-47127826917d")
+IDebugApplicationThread11064 : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetActiveThreadRequestCount(
+        UINT *puiThreadRequests) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE IsSuspendedForBreakPoint(
+        WINBOOL *pfIsSuspended) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE IsThreadCallable(
+        WINBOOL *pfIsCallable) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AsynchronousCallIntoThread(
+        IDebugThreadCall64 *pptc,
+        DWORD_PTR dwParam1,
+        DWORD_PTR dwParam2,
+        DWORD_PTR dwParam3) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugApplicationThread11064, 0x420aa4cc, 0xefd8, 0x4dac, 0x98,0x3b, 0x47,0x12,0x78,0x26,0x91,0x7d)
+#endif
+#else
+typedef struct IDebugApplicationThread11064Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDebugApplicationThread11064* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDebugApplicationThread11064* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDebugApplicationThread11064* This);
+
+    /*** IDebugApplicationThread11064 methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetActiveThreadRequestCount)(
+        IDebugApplicationThread11064* This,
+        UINT *puiThreadRequests);
+
+    HRESULT (STDMETHODCALLTYPE *IsSuspendedForBreakPoint)(
+        IDebugApplicationThread11064* This,
+        WINBOOL *pfIsSuspended);
+
+    HRESULT (STDMETHODCALLTYPE *IsThreadCallable)(
+        IDebugApplicationThread11064* This,
+        WINBOOL *pfIsCallable);
+
+    HRESULT (STDMETHODCALLTYPE *AsynchronousCallIntoThread)(
+        IDebugApplicationThread11064* This,
+        IDebugThreadCall64 *pptc,
+        DWORD_PTR dwParam1,
+        DWORD_PTR dwParam2,
+        DWORD_PTR dwParam3);
+
+    END_INTERFACE
+} IDebugApplicationThread11064Vtbl;
+interface IDebugApplicationThread11064 {
+    CONST_VTBL IDebugApplicationThread11064Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDebugApplicationThread11064_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDebugApplicationThread11064_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDebugApplicationThread11064_Release(This) (This)->lpVtbl->Release(This)
+/*** IDebugApplicationThread11064 methods ***/
+#define IDebugApplicationThread11064_GetActiveThreadRequestCount(This,puiThreadRequests) (This)->lpVtbl->GetActiveThreadRequestCount(This,puiThreadRequests)
+#define IDebugApplicationThread11064_IsSuspendedForBreakPoint(This,pfIsSuspended) (This)->lpVtbl->IsSuspendedForBreakPoint(This,pfIsSuspended)
+#define IDebugApplicationThread11064_IsThreadCallable(This,pfIsCallable) (This)->lpVtbl->IsThreadCallable(This,pfIsCallable)
+#define IDebugApplicationThread11064_AsynchronousCallIntoThread(This,pptc,dwParam1,dwParam2,dwParam3) (This)->lpVtbl->AsynchronousCallIntoThread(This,pptc,dwParam1,dwParam2,dwParam3)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDebugApplicationThread11064_QueryInterface(IDebugApplicationThread11064* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDebugApplicationThread11064_AddRef(IDebugApplicationThread11064* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDebugApplicationThread11064_Release(IDebugApplicationThread11064* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDebugApplicationThread11064 methods ***/
+static FORCEINLINE HRESULT IDebugApplicationThread11064_GetActiveThreadRequestCount(IDebugApplicationThread11064* This,UINT *puiThreadRequests) {
+    return This->lpVtbl->GetActiveThreadRequestCount(This,puiThreadRequests);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread11064_IsSuspendedForBreakPoint(IDebugApplicationThread11064* This,WINBOOL *pfIsSuspended) {
+    return This->lpVtbl->IsSuspendedForBreakPoint(This,pfIsSuspended);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread11064_IsThreadCallable(IDebugApplicationThread11064* This,WINBOOL *pfIsCallable) {
+    return This->lpVtbl->IsThreadCallable(This,pfIsCallable);
+}
+static FORCEINLINE HRESULT IDebugApplicationThread11064_AsynchronousCallIntoThread(IDebugApplicationThread11064* This,IDebugThreadCall64 *pptc,DWORD_PTR dwParam1,DWORD_PTR dwParam2,DWORD_PTR dwParam3) {
+    return This->lpVtbl->AsynchronousCallIntoThread(This,pptc,dwParam1,dwParam2,dwParam3);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDebugApplicationThread11064_GetActiveThreadRequestCount_Proxy(
+    IDebugApplicationThread11064* This,
+    UINT *puiThreadRequests);
+void __RPC_STUB IDebugApplicationThread11064_GetActiveThreadRequestCount_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationThread11064_IsSuspendedForBreakPoint_Proxy(
+    IDebugApplicationThread11064* This,
+    WINBOOL *pfIsSuspended);
+void __RPC_STUB IDebugApplicationThread11064_IsSuspendedForBreakPoint_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationThread11064_IsThreadCallable_Proxy(
+    IDebugApplicationThread11064* This,
+    WINBOOL *pfIsCallable);
+void __RPC_STUB IDebugApplicationThread11064_IsThreadCallable_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDebugApplicationThread11064_AsynchronousCallIntoThread_Proxy(
+    IDebugApplicationThread11064* This,
+    IDebugThreadCall64 *pptc,
+    DWORD_PTR dwParam1,
+    DWORD_PTR dwParam2,
+    DWORD_PTR dwParam3);
+void __RPC_STUB IDebugApplicationThread11064_AsynchronousCallIntoThread_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IDebugApplicationThread11064_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRemoteDebugCriticalErrorEvent110 interface
+ */
+#ifndef __IRemoteDebugCriticalErrorEvent110_INTERFACE_DEFINED__
+#define __IRemoteDebugCriticalErrorEvent110_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRemoteDebugCriticalErrorEvent110, 0x2f69c611, 0x6b14, 0x47e8, 0x92,0x60, 0x4b,0xb7,0xc5,0x2f,0x50,0x4b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("2f69c611-6b14-47e8-9260-4bb7c52f504b")
+IRemoteDebugCriticalErrorEvent110 : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetErrorInfo(
+        BSTR *pbstrSource,
+        int *pMessageId,
+        BSTR *pbstrMessage,
+        IDebugDocumentContext **ppLocation) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRemoteDebugCriticalErrorEvent110, 0x2f69c611, 0x6b14, 0x47e8, 0x92,0x60, 0x4b,0xb7,0xc5,0x2f,0x50,0x4b)
+#endif
+#else
+typedef struct IRemoteDebugCriticalErrorEvent110Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRemoteDebugCriticalErrorEvent110* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRemoteDebugCriticalErrorEvent110* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRemoteDebugCriticalErrorEvent110* This);
+
+    /*** IRemoteDebugCriticalErrorEvent110 methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetErrorInfo)(
+        IRemoteDebugCriticalErrorEvent110* This,
+        BSTR *pbstrSource,
+        int *pMessageId,
+        BSTR *pbstrMessage,
+        IDebugDocumentContext **ppLocation);
+
+    END_INTERFACE
+} IRemoteDebugCriticalErrorEvent110Vtbl;
+interface IRemoteDebugCriticalErrorEvent110 {
+    CONST_VTBL IRemoteDebugCriticalErrorEvent110Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRemoteDebugCriticalErrorEvent110_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRemoteDebugCriticalErrorEvent110_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRemoteDebugCriticalErrorEvent110_Release(This) (This)->lpVtbl->Release(This)
+/*** IRemoteDebugCriticalErrorEvent110 methods ***/
+#define IRemoteDebugCriticalErrorEvent110_GetErrorInfo(This,pbstrSource,pMessageId,pbstrMessage,ppLocation) (This)->lpVtbl->GetErrorInfo(This,pbstrSource,pMessageId,pbstrMessage,ppLocation)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRemoteDebugCriticalErrorEvent110_QueryInterface(IRemoteDebugCriticalErrorEvent110* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRemoteDebugCriticalErrorEvent110_AddRef(IRemoteDebugCriticalErrorEvent110* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRemoteDebugCriticalErrorEvent110_Release(IRemoteDebugCriticalErrorEvent110* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRemoteDebugCriticalErrorEvent110 methods ***/
+static FORCEINLINE HRESULT IRemoteDebugCriticalErrorEvent110_GetErrorInfo(IRemoteDebugCriticalErrorEvent110* This,BSTR *pbstrSource,int *pMessageId,BSTR *pbstrMessage,IDebugDocumentContext **ppLocation) {
+    return This->lpVtbl->GetErrorInfo(This,pbstrSource,pMessageId,pbstrMessage,ppLocation);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IRemoteDebugCriticalErrorEvent110_GetErrorInfo_Proxy(
+    IRemoteDebugCriticalErrorEvent110* This,
+    BSTR *pbstrSource,
+    int *pMessageId,
+    BSTR *pbstrMessage,
+    IDebugDocumentContext **ppLocation);
+void __RPC_STUB IRemoteDebugCriticalErrorEvent110_GetErrorInfo_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IRemoteDebugCriticalErrorEvent110_INTERFACE_DEFINED__ */
+
+#endif
+/* Begin additional prototypes for all interfaces */
+
+ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
+unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
+unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
+void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __activdbg100_h__ */
diff --git a/mingw-w64-headers/include/activdbg100.idl b/mingw-w64-headers/include/activdbg100.idl
new file mode 100755
index 0000000..892696d
--- /dev/null
+++ b/mingw-w64-headers/include/activdbg100.idl
@@ -0,0 +1,134 @@
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+
+import "activdbg.idl";
+
+cpp_quote("#include <winapifamily.h>")
+cpp_quote("")
+cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
+
+interface IWebAppDiagnosticsSetupEvent;
+
+typedef enum tagAPPLICATION_NODE_EVENT_FILTER {
+  FILTER_EXCLUDE_NOTHING = 0x0,
+  FILTER_EXCLUDE_ANONYMOUS_CODE = 0x1,
+  FILTER_EXCLUDE_EVAL_CODE = 0x2
+} APPLICATION_NODE_EVENT_FILTER;
+
+typedef enum tagSCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND {
+  ETK_FIRST_CHANCE = 0x0,
+  ETK_USER_UNHANDLED = 0x1,
+  ETK_UNHANDLED = 0x2
+} SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND;
+
+enum SCRIPT_DEBUGGER_OPTIONS {
+  SDO_NONE = 0x0,
+  SDO_ENABLE_FIRST_CHANCE_EXCEPTIONS = 0x1,
+  SDO_ENABLE_WEB_WORKER_SUPPORT = 0x2,
+  SDO_ENABLE_NONUSER_CODE_SUPPORT = 0x4
+};
+
+typedef struct tagTEXT_DOCUMENT_ARRAY {
+  DWORD dwCount;
+  [size_is (dwCount)] IDebugDocumentText **Members;
+} TEXT_DOCUMENT_ARRAY;
+
+cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(SCRIPT_DEBUGGER_OPTIONS)")
+
+cpp_quote("#ifndef DISABLE_ACTIVDBG_INTERFACE_WRAPPERS")
+cpp_quote("#ifdef _WIN64")
+cpp_quote("#define IDebugApplication110 IDebugApplication11064")
+cpp_quote("#define IID_IDebugApplication110 IID_IDebugApplication11064")
+cpp_quote("#define IDebugApplicationThread110 IDebugApplicationThread11064")
+cpp_quote("#define IID_IDebugApplicationThread110 IID_IDebugApplicationThread11064")
+cpp_quote("#else")
+cpp_quote("#define IDebugApplication110 IDebugApplication11032")
+cpp_quote("#define IID_IDebugApplication110 IID_IDebugApplication11032")
+cpp_quote("#define IDebugApplicationThread110 IDebugApplicationThread11032")
+cpp_quote("#define IID_IDebugApplicationThread110 IID_IDebugApplicationThread11032")
+cpp_quote("#endif")
+cpp_quote("#endif")
+
+[object, uuid (90a7734e-841b-4f77-9384-a2891e76e7e2), pointer_default (unique)]
+interface IDebugApplicationNode100 : IUnknown {
+  HRESULT SetFilterForEventSink ([in] DWORD dwCookie,[in] APPLICATION_NODE_EVENT_FILTER filter);
+  HRESULT GetExcludedDocuments ([in] APPLICATION_NODE_EVENT_FILTER filter,[out] TEXT_DOCUMENT_ARRAY *pDocuments);
+  HRESULT QueryIsChildNode ([in] IDebugDocument *pSearchKey);
+};
+
+[object, uuid (379bfbe1-C6C9-432a-93e1-6d17656c538c), pointer_default (unique)]
+interface IWebAppDiagnosticsSetup : IUnknown {
+  HRESULT DiagnosticsSupported ([out, retval] VARIANT_BOOL *pRetVal);
+  HRESULT CreateObjectWithSiteAtWebApp ([in] REFCLSID rclsid,[in] DWORD dwClsContext,[in] REFIID riid,[in] DWORD_PTR hPassToObject);
+};
+
+[object, uuid (d5fe005b-2836-485e-b1f9-89d91aa24fd4), pointer_default (unique)]
+interface IRemoteDebugApplication110 : IUnknown {
+  HRESULT SetDebuggerOptions ([in] enum SCRIPT_DEBUGGER_OPTIONS mask,[in] enum SCRIPT_DEBUGGER_OPTIONS value);
+  HRESULT GetCurrentDebuggerOptions ([out] enum SCRIPT_DEBUGGER_OPTIONS *pCurrentOptions);
+  HRESULT GetMainThread ([out] IRemoteDebugApplicationThread **ppThread);
+}
+
+[object, uuid (bdb3b5de-89f2-4e11-84a5-97445f941c7d), local, pointer_default (unique)]
+interface IDebugApplication11032 : IRemoteDebugApplication110 {
+  HRESULT SynchronousCallInMainThread ([in] IDebugThreadCall32 *pptc,[in] DWORD_PTR dwParam1,[in] DWORD_PTR dwParam2,[in] DWORD_PTR dwParam3);
+  HRESULT AsynchronousCallInMainThread ([in] IDebugThreadCall32 *pptc,[in] DWORD_PTR dwParam1,[in] DWORD_PTR dwParam2,[in] DWORD_PTR dwParam3);
+  HRESULT CallableWaitForHandles ([in] DWORD handleCount,[in, size_is (handleCount)] const HANDLE *pHandles,[out] DWORD *pIndex);
+}
+
+[object, uuid (2039d958-4eeb-496a-87bb-2e5201eadeef), local, pointer_default (unique)]
+interface IDebugApplication11064 : IRemoteDebugApplication110 {
+  HRESULT SynchronousCallInMainThread ([in] IDebugThreadCall64 *pptc,[in] DWORD_PTR dwParam1,[in] DWORD_PTR dwParam2,[in] DWORD_PTR dwParam3);
+  HRESULT AsynchronousCallInMainThread ([in] IDebugThreadCall64 *pptc,[in] DWORD_PTR dwParam1,[in] DWORD_PTR dwParam2,[in] DWORD_PTR dwParam3);
+  HRESULT CallableWaitForHandles ([in] DWORD handleCount,[in, size_is (handleCount)] const HANDLE *pHandles,[out] DWORD *pIndex);
+}
+
+[object, uuid (16ff3a42-A5F5-432b-B625-8e8e16f57e15), local, pointer_default (unique)]
+interface IWebAppDiagnosticsObjectInitialization : IUnknown {
+  HRESULT Initialize ([in] HANDLE_PTR hPassedHandle,[in] IUnknown *pDebugApplication);
+}
+
+[object, uuid (73a3f82a-0fe9-4b33-BA3B-FE095F697E0A), pointer_default (unique)]
+interface IActiveScriptWinRTErrorDebug : IActiveScriptError {
+  HRESULT GetRestrictedErrorString ([out] BSTR *errorString);
+  HRESULT GetRestrictedErrorReference ([out] BSTR *referenceString);
+  HRESULT GetCapabilitySid ([out] BSTR *capabilitySid);
+}
+
+cpp_quote("")
+[object, uuid (516e42b6-89a8-4530-937b-5f0708431442), pointer_default (unique)]
+interface IActiveScriptErrorDebug110 : IUnknown {
+  HRESULT GetExceptionThrownKind ([out] SCRIPT_ERROR_DEBUG_EXCEPTION_THROWN_KIND *pExceptionKind);
+};
+
+[object, local, uuid (84e5e468-D5DA-48a8-83f4-40366429007b), pointer_default (unique)]
+interface IDebugApplicationThreadEvents110 : IUnknown {
+  HRESULT OnSuspendForBreakPoint (void);
+  HRESULT OnResumeFromBreakPoint (void);
+  HRESULT OnThreadRequestComplete (void);
+  HRESULT OnBeginThreadRequest (void);
+}
+
+[object, local, uuid (2194ac5c-6561-404a-a2e9-f57d72de3702), pointer_default (unique)]
+interface IDebugApplicationThread11032 : IUnknown {
+  HRESULT GetActiveThreadRequestCount ([out] UINT *puiThreadRequests);
+  HRESULT IsSuspendedForBreakPoint ([out] BOOL *pfIsSuspended);
+  HRESULT IsThreadCallable ([out] BOOL *pfIsCallable);
+  HRESULT AsynchronousCallIntoThread ([in] IDebugThreadCall32 *pptc,[in] DWORD_PTR dwParam1,[in] DWORD_PTR dwParam2,[in] DWORD_PTR dwParam3);
+}
+
+[object, local, uuid (420aa4cc-EFD8-4dac-983b-47127826917d), pointer_default (unique)]
+interface IDebugApplicationThread11064 : IUnknown {
+  HRESULT GetActiveThreadRequestCount ([out] UINT *puiThreadRequests);
+  HRESULT IsSuspendedForBreakPoint ([out] BOOL *pfIsSuspended);
+  HRESULT IsThreadCallable ([out] BOOL *pfIsCallable);
+  HRESULT AsynchronousCallIntoThread ([in] IDebugThreadCall64 *pptc,[in] DWORD_PTR dwParam1,[in] DWORD_PTR dwParam2,[in] DWORD_PTR dwParam3);
+}
+
+[object, uuid (2f69c611-6b14-47e8-9260-4bb7c52f504b), pointer_default (unique)]
+interface IRemoteDebugCriticalErrorEvent110 : IUnknown {
+  HRESULT GetErrorInfo ([out] BSTR *pbstrSource,[out] int *pMessageId,[out] BSTR *pbstrMessage,[out] IDebugDocumentContext **ppLocation);
+};
+cpp_quote("#endif")