/*** Autogenerated by WIDL 1.3.27 from activdbg.idl - Do not edit ***/

#include <rpc.h>
#include <rpcndr.h>

#if !defined(COM_NO_WINDOWS_H) && !defined(__WINESRC__)
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __WIDL_ACTIVDBG_H
#define __WIDL_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 __IDebugDocumentInfo_FWD_DEFINED__
#define __IDebugDocumentInfo_FWD_DEFINED__
typedef interface IDebugDocumentInfo IDebugDocumentInfo;
#endif

#ifndef __IDebugDocument_FWD_DEFINED__
#define __IDebugDocument_FWD_DEFINED__
typedef interface IDebugDocument IDebugDocument;
#endif

#ifndef __IDebugCodeContext_FWD_DEFINED__
#define __IDebugCodeContext_FWD_DEFINED__
typedef interface IDebugCodeContext IDebugCodeContext;
#endif

#ifndef __IEnumDebugCodeContexts_FWD_DEFINED__
#define __IEnumDebugCodeContexts_FWD_DEFINED__
typedef interface IEnumDebugCodeContexts IEnumDebugCodeContexts;
#endif

#ifndef __IDebugDocumentContext_FWD_DEFINED__
#define __IDebugDocumentContext_FWD_DEFINED__
typedef interface IDebugDocumentContext IDebugDocumentContext;
#endif

#ifndef __IRemoteDebugApplicationThread_FWD_DEFINED__
#define __IRemoteDebugApplicationThread_FWD_DEFINED__
typedef interface IRemoteDebugApplicationThread IRemoteDebugApplicationThread;
#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 __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

/* Headers for imported files */

#include <ocidl.h>
#include <activscp.h>

#ifdef __cplusplus
extern "C" {
#endif

#ifndef __IDebugDocumentContext_FWD_DEFINED__
#define __IDebugDocumentContext_FWD_DEFINED__
typedef interface IDebugDocumentContext IDebugDocumentContext;
#endif

#ifndef __IRemoteDebugApplication_FWD_DEFINED__
#define __IRemoteDebugApplication_FWD_DEFINED__
typedef interface IRemoteDebugApplication IRemoteDebugApplication;
#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 __IDebugStackFrame_FWD_DEFINED__
#define __IDebugStackFrame_FWD_DEFINED__
typedef interface IDebugStackFrame IDebugStackFrame;
#endif

#ifndef __IApplicationDebugger_FWD_DEFINED__
#define __IApplicationDebugger_FWD_DEFINED__
typedef interface IApplicationDebugger IApplicationDebugger;
#endif

#ifndef __IEnumRemoteDebugApplicationThreads_FWD_DEFINED__
#define __IEnumRemoteDebugApplicationThreads_FWD_DEFINED__
typedef interface IEnumRemoteDebugApplicationThreads IEnumRemoteDebugApplicationThreads;
#endif

#ifndef __IDebugApplicationNode_FWD_DEFINED__
#define __IDebugApplicationNode_FWD_DEFINED__
typedef interface IDebugApplicationNode IDebugApplicationNode;
#endif

#ifndef __IEnumDebugExpressionContexts_FWD_DEFINED__
#define __IEnumDebugExpressionContexts_FWD_DEFINED__
typedef interface IEnumDebugExpressionContexts IEnumDebugExpressionContexts;
#endif

#ifndef __IDebugApplicationThread_FWD_DEFINED__
#define __IDebugApplicationThread_FWD_DEFINED__
typedef interface IDebugApplicationThread IDebugApplicationThread;
#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 __IDebugStackFrameSniffer_FWD_DEFINED__
#define __IDebugStackFrameSniffer_FWD_DEFINED__
typedef interface IDebugStackFrameSniffer IDebugStackFrameSniffer;
#endif

#ifndef __IDebugThreadCall32_FWD_DEFINED__
#define __IDebugThreadCall32_FWD_DEFINED__
typedef interface IDebugThreadCall32 IDebugThreadCall32;
#endif

#ifndef __IActiveScriptErrorDebug_FWD_DEFINED__
#define __IActiveScriptErrorDebug_FWD_DEFINED__
typedef interface IActiveScriptErrorDebug IActiveScriptErrorDebug;
#endif

#ifndef __IProvideExpressionContexts_FWD_DEFINED__
#define __IProvideExpressionContexts_FWD_DEFINED__
typedef interface IProvideExpressionContexts IProvideExpressionContexts;
#endif

typedef enum tagBREAKPOINT_STATE {
    BREAKPOINT_DELETED = 0,
    BREAKPOINT_DISABLED = 1,
    BREAKPOINT_ENABLED = 2
} BREAKPOINT_STATE;
typedef DWORD APPBREAKFLAGS;
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;
typedef enum tagERRORRESUMEACTION {
    ERRORRESUMEACTION_ReexecuteErrorStatement = 0,
    ERRORRESUMEACTION_AbortCallAndReturnErrorToCaller = 1,
    ERRORRESUMEACTION_SkipErrorStatement = 2
} ERRORRESUMEACTION;
typedef WORD SOURCE_TEXT_ATTR;
#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)

/*****************************************************************************
 * 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
/*** 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)
#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
/*** 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)
#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__ */

/*****************************************************************************
 * 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
/*** 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)
#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__ */

/*****************************************************************************
 * 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
/*** 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)
#endif

#endif


#endif  /* __IDebugDocument_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
/*** 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)
#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__ */

/*****************************************************************************
 * 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 STDMETHODCALLTYPE 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 (STDMETHODCALLTYPE *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
/*** 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)
#endif

#endif

HRESULT STDMETHODCALLTYPE IEnumDebugCodeContexts_Next_Proxy(
    IEnumDebugCodeContexts* This,
    ULONG celt,
    IDebugCodeContext **pscc,
    ULONG *pceltFetched);
void __RPC_STUB IEnumDebugCodeContexts_Next_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);

#endif  /* __IEnumDebugCodeContexts_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
/*** 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)
#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__ */

/*****************************************************************************
 * IRemoteDebugApplicationThread interface
 */
#ifndef __IRemoteDebugApplicationThread_INTERFACE_DEFINED__
#define __IRemoteDebugApplicationThread_INTERFACE_DEFINED__

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
/*** 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)
#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__ */

/*****************************************************************************
 * IRemoteDebugApplication interface
 */
#ifndef __IRemoteDebugApplication_INTERFACE_DEFINED__
#define __IRemoteDebugApplication_INTERFACE_DEFINED__

DEFINE_GUID(IID_IRemoteDebugApplication, 0x51973c30, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0xae,0x7a);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("51973c30-cb0c-11d0-b5c9-00a0244aae7a")
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,0xae,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
/*** 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)
#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,
        BOOL *pfCallOnScriptError) = 0;

    virtual BOOL STDMETHODCALLTYPE FCanJitDebug(
        ) = 0;

    virtual BOOL 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,
        BOOL *pfCallOnScriptError);

    BOOL (STDMETHODCALLTYPE *FCanJitDebug)(
        IDebugApplication32* This);

    BOOL (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
/*** 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)
#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,
    BOOL *pfCallOnScriptError);
void __RPC_STUB IDebugApplication32_HandleRuntimeError_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
BOOL STDMETHODCALLTYPE IDebugApplication32_FCanJitDebug_Proxy(
    IDebugApplication32* This);
void __RPC_STUB IDebugApplication32_FCanJitDebug_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
BOOL 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(
        IDebugThreadCall32 *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,
        BOOL *pfCallOnScriptError) = 0;

    virtual BOOL STDMETHODCALLTYPE FCanJitDebug(
        ) = 0;

    virtual BOOL 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,
        IDebugThreadCall32 *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,
        BOOL *pfCallOnScriptError);

    BOOL (STDMETHODCALLTYPE *FCanJitDebug)(
        IDebugApplication64* This);

    BOOL (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
/*** 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)
#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,
    IDebugThreadCall32 *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,
    BOOL *pfCallOnScriptError);
void __RPC_STUB IDebugApplication64_HandleRuntimeError_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
BOOL STDMETHODCALLTYPE IDebugApplication64_FCanJitDebug_Proxy(
    IDebugApplication64* This);
void __RPC_STUB IDebugApplication64_FCanJitDebug_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
BOOL 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__ */

/*****************************************************************************
 * 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,
        BOOL *pfEnterDebugger,
        BOOL *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,
        BOOL *pfEnterDebugger,
        BOOL *pfCallOnScriptErrorWhenContinuing);

    END_INTERFACE
} IActiveScriptSiteDebug32Vtbl;
interface IActiveScriptSiteDebug32 {
    CONST_VTBL IActiveScriptSiteDebug32Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** 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)
#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,
    BOOL *pfEnterDebugger,
    BOOL *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,
        BOOL *pfEnterDebugger,
        BOOL *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,
        BOOL *pfEnterDebugger,
        BOOL *pfCallOnScriptErrorWhenContinuing);

    END_INTERFACE
} IActiveScriptSiteDebug64Vtbl;
interface IActiveScriptSiteDebug64 {
    CONST_VTBL IActiveScriptSiteDebug64Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** 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)
#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,
    BOOL *pfEnterDebugger,
    BOOL *pfCallOnScriptErrorWhenContinuing);
void __RPC_STUB IActiveScriptSiteDebug64_OnScriptErrorDebug_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IActiveScriptSiteDebug64_INTERFACE_DEFINED__ */

#ifndef DISABLE_ACTIVDBG_INTERFACE_WRAPPERS
#ifdef _WIN64
#define IActiveScriptDebug IActiveScriptDebug64
#define IID_IActiveScriptDebug IID_IActiveScriptDebug64
#define IActiveScriptSiteDebug IActiveScriptSiteDebug64
#define IID_IActiveScriptSiteDebug IID_IActiveScriptSiteDebug64
#define IDebugApplication IDebugApplication64
#define IID_IDebugApplication IID_IDebugApplication64
#else
#define IActiveScriptDebug IActiveScriptDebug32
#define IID_IActiveScriptDebug IID_IActiveScriptDebug32
#define IActiveScriptSiteDebug IActiveScriptSiteDebug32
#define IID_IActiveScriptSiteDebug IID_IActiveScriptSiteDebug32
#define IDebugApplication IDebugApplication32
#define IID_IDebugApplication IID_IDebugApplication32
#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 /* __WIDL_ACTIVDBG_H */
