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

#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include <rpc.h>
#include <rpcndr.h>
#endif

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __activdbg_h__
#define __activdbg_h__

/* Forward declarations */

#ifndef __IActiveScriptDebug32_FWD_DEFINED__
#define __IActiveScriptDebug32_FWD_DEFINED__
typedef interface IActiveScriptDebug32 IActiveScriptDebug32;
#ifdef __cplusplus
interface IActiveScriptDebug32;
#endif /* __cplusplus */
#endif

#ifndef __IActiveScriptDebug64_FWD_DEFINED__
#define __IActiveScriptDebug64_FWD_DEFINED__
typedef interface IActiveScriptDebug64 IActiveScriptDebug64;
#ifdef __cplusplus
interface IActiveScriptDebug64;
#endif /* __cplusplus */
#endif

#ifndef __IDebugDocumentInfo_FWD_DEFINED__
#define __IDebugDocumentInfo_FWD_DEFINED__
typedef interface IDebugDocumentInfo IDebugDocumentInfo;
#ifdef __cplusplus
interface IDebugDocumentInfo;
#endif /* __cplusplus */
#endif

#ifndef __IDebugDocument_FWD_DEFINED__
#define __IDebugDocument_FWD_DEFINED__
typedef interface IDebugDocument IDebugDocument;
#ifdef __cplusplus
interface IDebugDocument;
#endif /* __cplusplus */
#endif

#ifndef __IDebugCodeContext_FWD_DEFINED__
#define __IDebugCodeContext_FWD_DEFINED__
typedef interface IDebugCodeContext IDebugCodeContext;
#ifdef __cplusplus
interface IDebugCodeContext;
#endif /* __cplusplus */
#endif

#ifndef __IEnumDebugCodeContexts_FWD_DEFINED__
#define __IEnumDebugCodeContexts_FWD_DEFINED__
typedef interface IEnumDebugCodeContexts IEnumDebugCodeContexts;
#ifdef __cplusplus
interface IEnumDebugCodeContexts;
#endif /* __cplusplus */
#endif

#ifndef __IDebugDocumentContext_FWD_DEFINED__
#define __IDebugDocumentContext_FWD_DEFINED__
typedef interface IDebugDocumentContext IDebugDocumentContext;
#ifdef __cplusplus
interface IDebugDocumentContext;
#endif /* __cplusplus */
#endif

#ifndef __IRemoteDebugApplicationThread_FWD_DEFINED__
#define __IRemoteDebugApplicationThread_FWD_DEFINED__
typedef interface IRemoteDebugApplicationThread IRemoteDebugApplicationThread;
#ifdef __cplusplus
interface IRemoteDebugApplicationThread;
#endif /* __cplusplus */
#endif

#ifndef __IRemoteDebugApplication_FWD_DEFINED__
#define __IRemoteDebugApplication_FWD_DEFINED__
typedef interface IRemoteDebugApplication IRemoteDebugApplication;
#ifdef __cplusplus
interface IRemoteDebugApplication;
#endif /* __cplusplus */
#endif

#ifndef __IDebugApplication32_FWD_DEFINED__
#define __IDebugApplication32_FWD_DEFINED__
typedef interface IDebugApplication32 IDebugApplication32;
#ifdef __cplusplus
interface IDebugApplication32;
#endif /* __cplusplus */
#endif

#ifndef __IDebugApplication64_FWD_DEFINED__
#define __IDebugApplication64_FWD_DEFINED__
typedef interface IDebugApplication64 IDebugApplication64;
#ifdef __cplusplus
interface IDebugApplication64;
#endif /* __cplusplus */
#endif

#ifndef __IActiveScriptSiteDebug32_FWD_DEFINED__
#define __IActiveScriptSiteDebug32_FWD_DEFINED__
typedef interface IActiveScriptSiteDebug32 IActiveScriptSiteDebug32;
#ifdef __cplusplus
interface IActiveScriptSiteDebug32;
#endif /* __cplusplus */
#endif

#ifndef __IActiveScriptSiteDebug64_FWD_DEFINED__
#define __IActiveScriptSiteDebug64_FWD_DEFINED__
typedef interface IActiveScriptSiteDebug64 IActiveScriptSiteDebug64;
#ifdef __cplusplus
interface IActiveScriptSiteDebug64;
#endif /* __cplusplus */
#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;
#ifdef __cplusplus
interface IDebugDocumentContext;
#endif /* __cplusplus */
#endif

#ifndef __IRemoteDebugApplication_FWD_DEFINED__
#define __IRemoteDebugApplication_FWD_DEFINED__
typedef interface IRemoteDebugApplication IRemoteDebugApplication;
#ifdef __cplusplus
interface IRemoteDebugApplication;
#endif /* __cplusplus */
#endif

#ifndef __IEnumDebugCodeContexts_FWD_DEFINED__
#define __IEnumDebugCodeContexts_FWD_DEFINED__
typedef interface IEnumDebugCodeContexts IEnumDebugCodeContexts;
#ifdef __cplusplus
interface IEnumDebugCodeContexts;
#endif /* __cplusplus */
#endif

#ifndef __IEnumDebugStackFrames_FWD_DEFINED__
#define __IEnumDebugStackFrames_FWD_DEFINED__
typedef interface IEnumDebugStackFrames IEnumDebugStackFrames;
#ifdef __cplusplus
interface IEnumDebugStackFrames;
#endif /* __cplusplus */
#endif

#ifndef __IDebugStackFrame_FWD_DEFINED__
#define __IDebugStackFrame_FWD_DEFINED__
typedef interface IDebugStackFrame IDebugStackFrame;
#ifdef __cplusplus
interface IDebugStackFrame;
#endif /* __cplusplus */
#endif

#ifndef __IApplicationDebugger_FWD_DEFINED__
#define __IApplicationDebugger_FWD_DEFINED__
typedef interface IApplicationDebugger IApplicationDebugger;
#ifdef __cplusplus
interface IApplicationDebugger;
#endif /* __cplusplus */
#endif

#ifndef __IEnumRemoteDebugApplicationThreads_FWD_DEFINED__
#define __IEnumRemoteDebugApplicationThreads_FWD_DEFINED__
typedef interface IEnumRemoteDebugApplicationThreads IEnumRemoteDebugApplicationThreads;
#ifdef __cplusplus
interface IEnumRemoteDebugApplicationThreads;
#endif /* __cplusplus */
#endif

#ifndef __IDebugApplicationNode_FWD_DEFINED__
#define __IDebugApplicationNode_FWD_DEFINED__
typedef interface IDebugApplicationNode IDebugApplicationNode;
#ifdef __cplusplus
interface IDebugApplicationNode;
#endif /* __cplusplus */
#endif

#ifndef __IEnumDebugExpressionContexts_FWD_DEFINED__
#define __IEnumDebugExpressionContexts_FWD_DEFINED__
typedef interface IEnumDebugExpressionContexts IEnumDebugExpressionContexts;
#ifdef __cplusplus
interface IEnumDebugExpressionContexts;
#endif /* __cplusplus */
#endif

#ifndef __IDebugApplicationThread_FWD_DEFINED__
#define __IDebugApplicationThread_FWD_DEFINED__
typedef interface IDebugApplicationThread IDebugApplicationThread;
#ifdef __cplusplus
interface IDebugApplicationThread;
#endif /* __cplusplus */
#endif

#ifndef __IDebugSyncOperation_FWD_DEFINED__
#define __IDebugSyncOperation_FWD_DEFINED__
typedef interface IDebugSyncOperation IDebugSyncOperation;
#ifdef __cplusplus
interface IDebugSyncOperation;
#endif /* __cplusplus */
#endif

#ifndef __IDebugAsyncOperation_FWD_DEFINED__
#define __IDebugAsyncOperation_FWD_DEFINED__
typedef interface IDebugAsyncOperation IDebugAsyncOperation;
#ifdef __cplusplus
interface IDebugAsyncOperation;
#endif /* __cplusplus */
#endif

#ifndef __IDebugStackFrameSniffer_FWD_DEFINED__
#define __IDebugStackFrameSniffer_FWD_DEFINED__
typedef interface IDebugStackFrameSniffer IDebugStackFrameSniffer;
#ifdef __cplusplus
interface IDebugStackFrameSniffer;
#endif /* __cplusplus */
#endif

#ifndef __IDebugThreadCall32_FWD_DEFINED__
#define __IDebugThreadCall32_FWD_DEFINED__
typedef interface IDebugThreadCall32 IDebugThreadCall32;
#ifdef __cplusplus
interface IDebugThreadCall32;
#endif /* __cplusplus */
#endif

#ifndef __IActiveScriptErrorDebug_FWD_DEFINED__
#define __IActiveScriptErrorDebug_FWD_DEFINED__
typedef interface IActiveScriptErrorDebug IActiveScriptErrorDebug;
#ifdef __cplusplus
interface IActiveScriptErrorDebug;
#endif /* __cplusplus */
#endif

#ifndef __IProvideExpressionContexts_FWD_DEFINED__
#define __IProvideExpressionContexts_FWD_DEFINED__
typedef interface IProvideExpressionContexts IProvideExpressionContexts;
#ifdef __cplusplus
interface IProvideExpressionContexts;
#endif /* __cplusplus */
#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
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IActiveScriptDebug32_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IActiveScriptDebug32_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IActiveScriptDebug32_Release(This) (This)->lpVtbl->Release(This)
/*** IActiveScriptDebug32 methods ***/
#define IActiveScriptDebug32_GetScriptTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr) (This)->lpVtbl->GetScriptTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr)
#define IActiveScriptDebug32_GetScriptletTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr) (This)->lpVtbl->GetScriptletTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr)
#define IActiveScriptDebug32_EnumCodeContextsOfPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppescc) (This)->lpVtbl->EnumCodeContextsOfPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppescc)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IActiveScriptDebug32_QueryInterface(IActiveScriptDebug32* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IActiveScriptDebug32_AddRef(IActiveScriptDebug32* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IActiveScriptDebug32_Release(IActiveScriptDebug32* This) {
    return This->lpVtbl->Release(This);
}
/*** IActiveScriptDebug32 methods ***/
static FORCEINLINE HRESULT IActiveScriptDebug32_GetScriptTextAttributes(IActiveScriptDebug32* This,LPCOLESTR pstrCode,ULONG uNumCodeChars,LPCOLESTR pstrDelimiter,DWORD dwFlags,SOURCE_TEXT_ATTR *pattr) {
    return This->lpVtbl->GetScriptTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr);
}
static FORCEINLINE HRESULT IActiveScriptDebug32_GetScriptletTextAttributes(IActiveScriptDebug32* This,LPCOLESTR pstrCode,ULONG uNumCodeChars,LPCOLESTR pstrDelimiter,DWORD dwFlags,SOURCE_TEXT_ATTR *pattr) {
    return This->lpVtbl->GetScriptletTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr);
}
static FORCEINLINE HRESULT IActiveScriptDebug32_EnumCodeContextsOfPosition(IActiveScriptDebug32* This,DWORD dwSourceContext,ULONG uCharacterOffset,ULONG uNumChars,IEnumDebugCodeContexts **ppescc) {
    return This->lpVtbl->EnumCodeContextsOfPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppescc);
}
#endif
#endif

#endif


#endif  /* __IActiveScriptDebug32_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IActiveScriptDebug64 interface
 */
#ifndef __IActiveScriptDebug64_INTERFACE_DEFINED__
#define __IActiveScriptDebug64_INTERFACE_DEFINED__

DEFINE_GUID(IID_IActiveScriptDebug64, 0xbc437e23, 0xf5b8, 0x47f4, 0xbb,0x79, 0x7d,0x1c,0xe5,0x48,0x3b,0x86);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("bc437e23-f5b8-47f4-bb79-7d1ce5483b86")
IActiveScriptDebug64 : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE GetScriptTextAttributes(
        LPCOLESTR pstrCode,
        ULONG uNumCodeChars,
        LPCOLESTR pstrDelimiter,
        DWORD dwFlags,
        SOURCE_TEXT_ATTR *pattr) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetScriptletTextAttributes(
        LPCOLESTR pstrCode,
        ULONG uNumCodeChars,
        LPCOLESTR pstrDelimiter,
        DWORD dwFlags,
        SOURCE_TEXT_ATTR *pattr) = 0;

    virtual HRESULT STDMETHODCALLTYPE EnumCodeContextsOfPosition(
        DWORDLONG dwSourceContext,
        ULONG uCharacterOffset,
        ULONG uNumChars,
        IEnumDebugCodeContexts **ppescc) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IActiveScriptDebug64, 0xbc437e23, 0xf5b8, 0x47f4, 0xbb,0x79, 0x7d,0x1c,0xe5,0x48,0x3b,0x86)
#endif
#else
typedef struct IActiveScriptDebug64Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IActiveScriptDebug64 *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IActiveScriptDebug64 *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IActiveScriptDebug64 *This);

    /*** IActiveScriptDebug64 methods ***/
    HRESULT (STDMETHODCALLTYPE *GetScriptTextAttributes)(
        IActiveScriptDebug64 *This,
        LPCOLESTR pstrCode,
        ULONG uNumCodeChars,
        LPCOLESTR pstrDelimiter,
        DWORD dwFlags,
        SOURCE_TEXT_ATTR *pattr);

    HRESULT (STDMETHODCALLTYPE *GetScriptletTextAttributes)(
        IActiveScriptDebug64 *This,
        LPCOLESTR pstrCode,
        ULONG uNumCodeChars,
        LPCOLESTR pstrDelimiter,
        DWORD dwFlags,
        SOURCE_TEXT_ATTR *pattr);

    HRESULT (STDMETHODCALLTYPE *EnumCodeContextsOfPosition)(
        IActiveScriptDebug64 *This,
        DWORDLONG dwSourceContext,
        ULONG uCharacterOffset,
        ULONG uNumChars,
        IEnumDebugCodeContexts **ppescc);

    END_INTERFACE
} IActiveScriptDebug64Vtbl;

interface IActiveScriptDebug64 {
    CONST_VTBL IActiveScriptDebug64Vtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IActiveScriptDebug64_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IActiveScriptDebug64_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IActiveScriptDebug64_Release(This) (This)->lpVtbl->Release(This)
/*** IActiveScriptDebug64 methods ***/
#define IActiveScriptDebug64_GetScriptTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr) (This)->lpVtbl->GetScriptTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr)
#define IActiveScriptDebug64_GetScriptletTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr) (This)->lpVtbl->GetScriptletTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr)
#define IActiveScriptDebug64_EnumCodeContextsOfPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppescc) (This)->lpVtbl->EnumCodeContextsOfPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppescc)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IActiveScriptDebug64_QueryInterface(IActiveScriptDebug64* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IActiveScriptDebug64_AddRef(IActiveScriptDebug64* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IActiveScriptDebug64_Release(IActiveScriptDebug64* This) {
    return This->lpVtbl->Release(This);
}
/*** IActiveScriptDebug64 methods ***/
static FORCEINLINE HRESULT IActiveScriptDebug64_GetScriptTextAttributes(IActiveScriptDebug64* This,LPCOLESTR pstrCode,ULONG uNumCodeChars,LPCOLESTR pstrDelimiter,DWORD dwFlags,SOURCE_TEXT_ATTR *pattr) {
    return This->lpVtbl->GetScriptTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr);
}
static FORCEINLINE HRESULT IActiveScriptDebug64_GetScriptletTextAttributes(IActiveScriptDebug64* This,LPCOLESTR pstrCode,ULONG uNumCodeChars,LPCOLESTR pstrDelimiter,DWORD dwFlags,SOURCE_TEXT_ATTR *pattr) {
    return This->lpVtbl->GetScriptletTextAttributes(This,pstrCode,uNumCodeChars,pstrDelimiter,dwFlags,pattr);
}
static FORCEINLINE HRESULT IActiveScriptDebug64_EnumCodeContextsOfPosition(IActiveScriptDebug64* This,DWORDLONG dwSourceContext,ULONG uCharacterOffset,ULONG uNumChars,IEnumDebugCodeContexts **ppescc) {
    return This->lpVtbl->EnumCodeContextsOfPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppescc);
}
#endif
#endif

#endif


#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
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDebugDocumentInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDebugDocumentInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDebugDocumentInfo_Release(This) (This)->lpVtbl->Release(This)
/*** IDebugDocumentInfo methods ***/
#define IDebugDocumentInfo_GetName(This,dnt,pbstrName) (This)->lpVtbl->GetName(This,dnt,pbstrName)
#define IDebugDocumentInfo_GetDocumentClassId(This,pclsidDocument) (This)->lpVtbl->GetDocumentClassId(This,pclsidDocument)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IDebugDocumentInfo_QueryInterface(IDebugDocumentInfo* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IDebugDocumentInfo_AddRef(IDebugDocumentInfo* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IDebugDocumentInfo_Release(IDebugDocumentInfo* This) {
    return This->lpVtbl->Release(This);
}
/*** IDebugDocumentInfo methods ***/
static FORCEINLINE HRESULT IDebugDocumentInfo_GetName(IDebugDocumentInfo* This,DOCUMENTNAMETYPE dnt,BSTR *pbstrName) {
    return This->lpVtbl->GetName(This,dnt,pbstrName);
}
static FORCEINLINE HRESULT IDebugDocumentInfo_GetDocumentClassId(IDebugDocumentInfo* This,CLSID *pclsidDocument) {
    return This->lpVtbl->GetDocumentClassId(This,pclsidDocument);
}
#endif
#endif

#endif


#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
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDebugDocument_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDebugDocument_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDebugDocument_Release(This) (This)->lpVtbl->Release(This)
/*** IDebugDocumentInfo methods ***/
#define IDebugDocument_GetName(This,dnt,pbstrName) (This)->lpVtbl->GetName(This,dnt,pbstrName)
#define IDebugDocument_GetDocumentClassId(This,pclsidDocument) (This)->lpVtbl->GetDocumentClassId(This,pclsidDocument)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IDebugDocument_QueryInterface(IDebugDocument* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IDebugDocument_AddRef(IDebugDocument* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IDebugDocument_Release(IDebugDocument* This) {
    return This->lpVtbl->Release(This);
}
/*** IDebugDocumentInfo methods ***/
static FORCEINLINE HRESULT IDebugDocument_GetName(IDebugDocument* This,DOCUMENTNAMETYPE dnt,BSTR *pbstrName) {
    return This->lpVtbl->GetName(This,dnt,pbstrName);
}
static FORCEINLINE HRESULT IDebugDocument_GetDocumentClassId(IDebugDocument* This,CLSID *pclsidDocument) {
    return This->lpVtbl->GetDocumentClassId(This,pclsidDocument);
}
#endif
#endif

#endif


#endif  /* __IDebugDocument_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDebugCodeContext interface
 */
#ifndef __IDebugCodeContext_INTERFACE_DEFINED__
#define __IDebugCodeContext_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDebugCodeContext, 0x51973c13, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("51973c13-cb0c-11d0-b5c9-00a0244a0e7a")
IDebugCodeContext : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE GetDocumentContext(
        IDebugDocumentContext **ppsc) = 0;

    virtual HRESULT STDMETHODCALLTYPE SetBreakPoint(
        BREAKPOINT_STATE bps) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IDebugCodeContext, 0x51973c13, 0xcb0c, 0x11d0, 0xb5,0xc9, 0x00,0xa0,0x24,0x4a,0x0e,0x7a)
#endif
#else
typedef struct IDebugCodeContextVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDebugCodeContext *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDebugCodeContext *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDebugCodeContext *This);

    /*** IDebugCodeContext methods ***/
    HRESULT (STDMETHODCALLTYPE *GetDocumentContext)(
        IDebugCodeContext *This,
        IDebugDocumentContext **ppsc);

    HRESULT (STDMETHODCALLTYPE *SetBreakPoint)(
        IDebugCodeContext *This,
        BREAKPOINT_STATE bps);

    END_INTERFACE
} IDebugCodeContextVtbl;

interface IDebugCodeContext {
    CONST_VTBL IDebugCodeContextVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDebugCodeContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDebugCodeContext_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDebugCodeContext_Release(This) (This)->lpVtbl->Release(This)
/*** IDebugCodeContext methods ***/
#define IDebugCodeContext_GetDocumentContext(This,ppsc) (This)->lpVtbl->GetDocumentContext(This,ppsc)
#define IDebugCodeContext_SetBreakPoint(This,bps) (This)->lpVtbl->SetBreakPoint(This,bps)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IDebugCodeContext_QueryInterface(IDebugCodeContext* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IDebugCodeContext_AddRef(IDebugCodeContext* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IDebugCodeContext_Release(IDebugCodeContext* This) {
    return This->lpVtbl->Release(This);
}
/*** IDebugCodeContext methods ***/
static FORCEINLINE HRESULT IDebugCodeContext_GetDocumentContext(IDebugCodeContext* This,IDebugDocumentContext **ppsc) {
    return This->lpVtbl->GetDocumentContext(This,ppsc);
}
static FORCEINLINE HRESULT IDebugCodeContext_SetBreakPoint(IDebugCodeContext* This,BREAKPOINT_STATE bps) {
    return This->lpVtbl->SetBreakPoint(This,bps);
}
#endif
#endif

#endif


#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
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IEnumDebugCodeContexts_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IEnumDebugCodeContexts_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IEnumDebugCodeContexts_Release(This) (This)->lpVtbl->Release(This)
/*** IEnumDebugCodeContexts methods ***/
#define IEnumDebugCodeContexts_Next(This,celt,pscc,pceltFetched) (This)->lpVtbl->Next(This,celt,pscc,pceltFetched)
#define IEnumDebugCodeContexts_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
#define IEnumDebugCodeContexts_Reset(This) (This)->lpVtbl->Reset(This)
#define IEnumDebugCodeContexts_Clone(This,ppescc) (This)->lpVtbl->Clone(This,ppescc)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IEnumDebugCodeContexts_QueryInterface(IEnumDebugCodeContexts* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IEnumDebugCodeContexts_AddRef(IEnumDebugCodeContexts* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IEnumDebugCodeContexts_Release(IEnumDebugCodeContexts* This) {
    return This->lpVtbl->Release(This);
}
/*** IEnumDebugCodeContexts methods ***/
static FORCEINLINE HRESULT IEnumDebugCodeContexts_Next(IEnumDebugCodeContexts* This,ULONG celt,IDebugCodeContext **pscc,ULONG *pceltFetched) {
    return This->lpVtbl->Next(This,celt,pscc,pceltFetched);
}
static FORCEINLINE HRESULT IEnumDebugCodeContexts_Skip(IEnumDebugCodeContexts* This,ULONG celt) {
    return This->lpVtbl->Skip(This,celt);
}
static FORCEINLINE HRESULT IEnumDebugCodeContexts_Reset(IEnumDebugCodeContexts* This) {
    return This->lpVtbl->Reset(This);
}
static FORCEINLINE HRESULT IEnumDebugCodeContexts_Clone(IEnumDebugCodeContexts* This,IEnumDebugCodeContexts **ppescc) {
    return This->lpVtbl->Clone(This,ppescc);
}
#endif
#endif

#endif


#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
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDebugDocumentContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDebugDocumentContext_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDebugDocumentContext_Release(This) (This)->lpVtbl->Release(This)
/*** IDebugDocumentContext methods ***/
#define IDebugDocumentContext_GetDocument(This,ppsd) (This)->lpVtbl->GetDocument(This,ppsd)
#define IDebugDocumentContext_EnumCodeContexts(This,ppescc) (This)->lpVtbl->EnumCodeContexts(This,ppescc)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IDebugDocumentContext_QueryInterface(IDebugDocumentContext* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IDebugDocumentContext_AddRef(IDebugDocumentContext* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IDebugDocumentContext_Release(IDebugDocumentContext* This) {
    return This->lpVtbl->Release(This);
}
/*** IDebugDocumentContext methods ***/
static FORCEINLINE HRESULT IDebugDocumentContext_GetDocument(IDebugDocumentContext* This,IDebugDocument **ppsd) {
    return This->lpVtbl->GetDocument(This,ppsd);
}
static FORCEINLINE HRESULT IDebugDocumentContext_EnumCodeContexts(IDebugDocumentContext* This,IEnumDebugCodeContexts **ppescc) {
    return This->lpVtbl->EnumCodeContexts(This,ppescc);
}
#endif
#endif

#endif


#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
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IRemoteDebugApplicationThread_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IRemoteDebugApplicationThread_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IRemoteDebugApplicationThread_Release(This) (This)->lpVtbl->Release(This)
/*** IRemoteDebugApplicationThread methods ***/
#define IRemoteDebugApplicationThread_GetSystemThreadId(This,dwThreadId) (This)->lpVtbl->GetSystemThreadId(This,dwThreadId)
#define IRemoteDebugApplicationThread_GetApplication(This,pprda) (This)->lpVtbl->GetApplication(This,pprda)
#define IRemoteDebugApplicationThread_EnumStackFrames(This,ppedsf) (This)->lpVtbl->EnumStackFrames(This,ppedsf)
#define IRemoteDebugApplicationThread_GetDescription(This,pbstrDescription,pbstrState) (This)->lpVtbl->GetDescription(This,pbstrDescription,pbstrState)
#define IRemoteDebugApplicationThread_SetNextStatement(This,pStackFrame,pCodeContext) (This)->lpVtbl->SetNextStatement(This,pStackFrame,pCodeContext)
#define IRemoteDebugApplicationThread_GetState(This,pState) (This)->lpVtbl->GetState(This,pState)
#define IRemoteDebugApplicationThread_Suspend(This,pdwCount) (This)->lpVtbl->Suspend(This,pdwCount)
#define IRemoteDebugApplicationThread_Resume(This,pdwCount) (This)->lpVtbl->Resume(This,pdwCount)
#define IRemoteDebugApplicationThread_GetSuspendCount(This,pdwCount) (This)->lpVtbl->GetSuspendCount(This,pdwCount)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IRemoteDebugApplicationThread_QueryInterface(IRemoteDebugApplicationThread* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IRemoteDebugApplicationThread_AddRef(IRemoteDebugApplicationThread* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IRemoteDebugApplicationThread_Release(IRemoteDebugApplicationThread* This) {
    return This->lpVtbl->Release(This);
}
/*** IRemoteDebugApplicationThread methods ***/
static FORCEINLINE HRESULT IRemoteDebugApplicationThread_GetSystemThreadId(IRemoteDebugApplicationThread* This,DWORD *dwThreadId) {
    return This->lpVtbl->GetSystemThreadId(This,dwThreadId);
}
static FORCEINLINE HRESULT IRemoteDebugApplicationThread_GetApplication(IRemoteDebugApplicationThread* This,IRemoteDebugApplication **pprda) {
    return This->lpVtbl->GetApplication(This,pprda);
}
static FORCEINLINE HRESULT IRemoteDebugApplicationThread_EnumStackFrames(IRemoteDebugApplicationThread* This,IEnumDebugStackFrames **ppedsf) {
    return This->lpVtbl->EnumStackFrames(This,ppedsf);
}
static FORCEINLINE HRESULT IRemoteDebugApplicationThread_GetDescription(IRemoteDebugApplicationThread* This,BSTR *pbstrDescription,BSTR *pbstrState) {
    return This->lpVtbl->GetDescription(This,pbstrDescription,pbstrState);
}
static FORCEINLINE HRESULT IRemoteDebugApplicationThread_SetNextStatement(IRemoteDebugApplicationThread* This,IDebugStackFrame *pStackFrame,IDebugCodeContext *pCodeContext) {
    return This->lpVtbl->SetNextStatement(This,pStackFrame,pCodeContext);
}
static FORCEINLINE HRESULT IRemoteDebugApplicationThread_GetState(IRemoteDebugApplicationThread* This,DWORD *pState) {
    return This->lpVtbl->GetState(This,pState);
}
static FORCEINLINE HRESULT IRemoteDebugApplicationThread_Suspend(IRemoteDebugApplicationThread* This,DWORD *pdwCount) {
    return This->lpVtbl->Suspend(This,pdwCount);
}
static FORCEINLINE HRESULT IRemoteDebugApplicationThread_Resume(IRemoteDebugApplicationThread* This,DWORD *pdwCount) {
    return This->lpVtbl->Resume(This,pdwCount);
}
static FORCEINLINE HRESULT IRemoteDebugApplicationThread_GetSuspendCount(IRemoteDebugApplicationThread* This,DWORD *pdwCount) {
    return This->lpVtbl->GetSuspendCount(This,pdwCount);
}
#endif
#endif

#endif


#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
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IRemoteDebugApplication_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IRemoteDebugApplication_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IRemoteDebugApplication_Release(This) (This)->lpVtbl->Release(This)
/*** IRemoteDebugApplication methods ***/
#define IRemoteDebugApplication_ResumeFromBreakPoint(This,prptFocus,bra,era) (This)->lpVtbl->ResumeFromBreakPoint(This,prptFocus,bra,era)
#define IRemoteDebugApplication_CauseBreak(This) (This)->lpVtbl->CauseBreak(This)
#define IRemoteDebugApplication_ConnectDebugger(This,pad) (This)->lpVtbl->ConnectDebugger(This,pad)
#define IRemoteDebugApplication_DisconnectDebugger(This) (This)->lpVtbl->DisconnectDebugger(This)
#define IRemoteDebugApplication_GetDebugger(This,pad) (This)->lpVtbl->GetDebugger(This,pad)
#define IRemoteDebugApplication_CreateInstanceAtApplication(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstanceAtApplication(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject)
#define IRemoteDebugApplication_QueryAlive(This) (This)->lpVtbl->QueryAlive(This)
#define IRemoteDebugApplication_EnumThreads(This,pperdat) (This)->lpVtbl->EnumThreads(This,pperdat)
#define IRemoteDebugApplication_GetName(This,pbstrName) (This)->lpVtbl->GetName(This,pbstrName)
#define IRemoteDebugApplication_GetRootNode(This,ppdanRoot) (This)->lpVtbl->GetRootNode(This,ppdanRoot)
#define IRemoteDebugApplication_EnumGlobalExpressionContexts(This,ppedec) (This)->lpVtbl->EnumGlobalExpressionContexts(This,ppedec)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IRemoteDebugApplication_QueryInterface(IRemoteDebugApplication* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IRemoteDebugApplication_AddRef(IRemoteDebugApplication* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IRemoteDebugApplication_Release(IRemoteDebugApplication* This) {
    return This->lpVtbl->Release(This);
}
/*** IRemoteDebugApplication methods ***/
static FORCEINLINE HRESULT IRemoteDebugApplication_ResumeFromBreakPoint(IRemoteDebugApplication* This,IRemoteDebugApplicationThread *prptFocus,BREAKRESUMEACTION bra,ERRORRESUMEACTION era) {
    return This->lpVtbl->ResumeFromBreakPoint(This,prptFocus,bra,era);
}
static FORCEINLINE HRESULT IRemoteDebugApplication_CauseBreak(IRemoteDebugApplication* This) {
    return This->lpVtbl->CauseBreak(This);
}
static FORCEINLINE HRESULT IRemoteDebugApplication_ConnectDebugger(IRemoteDebugApplication* This,IApplicationDebugger *pad) {
    return This->lpVtbl->ConnectDebugger(This,pad);
}
static FORCEINLINE HRESULT IRemoteDebugApplication_DisconnectDebugger(IRemoteDebugApplication* This) {
    return This->lpVtbl->DisconnectDebugger(This);
}
static FORCEINLINE HRESULT IRemoteDebugApplication_GetDebugger(IRemoteDebugApplication* This,IApplicationDebugger **pad) {
    return This->lpVtbl->GetDebugger(This,pad);
}
static FORCEINLINE HRESULT IRemoteDebugApplication_CreateInstanceAtApplication(IRemoteDebugApplication* This,REFCLSID rclsid,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,IUnknown **ppvObject) {
    return This->lpVtbl->CreateInstanceAtApplication(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject);
}
static FORCEINLINE HRESULT IRemoteDebugApplication_QueryAlive(IRemoteDebugApplication* This) {
    return This->lpVtbl->QueryAlive(This);
}
static FORCEINLINE HRESULT IRemoteDebugApplication_EnumThreads(IRemoteDebugApplication* This,IEnumRemoteDebugApplicationThreads **pperdat) {
    return This->lpVtbl->EnumThreads(This,pperdat);
}
static FORCEINLINE HRESULT IRemoteDebugApplication_GetName(IRemoteDebugApplication* This,BSTR *pbstrName) {
    return This->lpVtbl->GetName(This,pbstrName);
}
static FORCEINLINE HRESULT IRemoteDebugApplication_GetRootNode(IRemoteDebugApplication* This,IDebugApplicationNode **ppdanRoot) {
    return This->lpVtbl->GetRootNode(This,ppdanRoot);
}
static FORCEINLINE HRESULT IRemoteDebugApplication_EnumGlobalExpressionContexts(IRemoteDebugApplication* This,IEnumDebugExpressionContexts **ppedec) {
    return This->lpVtbl->EnumGlobalExpressionContexts(This,ppedec);
}
#endif
#endif

#endif


#endif  /* __IRemoteDebugApplication_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDebugApplication32 interface
 */
#ifndef __IDebugApplication32_INTERFACE_DEFINED__
#define __IDebugApplication32_INTERFACE_DEFINED__

#undef GetCurrentThread
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
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDebugApplication32_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDebugApplication32_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDebugApplication32_Release(This) (This)->lpVtbl->Release(This)
/*** IRemoteDebugApplication methods ***/
#define IDebugApplication32_ResumeFromBreakPoint(This,prptFocus,bra,era) (This)->lpVtbl->ResumeFromBreakPoint(This,prptFocus,bra,era)
#define IDebugApplication32_CauseBreak(This) (This)->lpVtbl->CauseBreak(This)
#define IDebugApplication32_ConnectDebugger(This,pad) (This)->lpVtbl->ConnectDebugger(This,pad)
#define IDebugApplication32_DisconnectDebugger(This) (This)->lpVtbl->DisconnectDebugger(This)
#define IDebugApplication32_GetDebugger(This,pad) (This)->lpVtbl->GetDebugger(This,pad)
#define IDebugApplication32_CreateInstanceAtApplication(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstanceAtApplication(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject)
#define IDebugApplication32_QueryAlive(This) (This)->lpVtbl->QueryAlive(This)
#define IDebugApplication32_EnumThreads(This,pperdat) (This)->lpVtbl->EnumThreads(This,pperdat)
#define IDebugApplication32_GetName(This,pbstrName) (This)->lpVtbl->GetName(This,pbstrName)
#define IDebugApplication32_GetRootNode(This,ppdanRoot) (This)->lpVtbl->GetRootNode(This,ppdanRoot)
#define IDebugApplication32_EnumGlobalExpressionContexts(This,ppedec) (This)->lpVtbl->EnumGlobalExpressionContexts(This,ppedec)
/*** IDebugApplication32 methods ***/
#define IDebugApplication32_SetName(This,pstrName) (This)->lpVtbl->SetName(This,pstrName)
#define IDebugApplication32_StepOutComplete(This) (This)->lpVtbl->StepOutComplete(This)
#define IDebugApplication32_DebugOutput(This,pstr) (This)->lpVtbl->DebugOutput(This,pstr)
#define IDebugApplication32_StartDebugSession(This) (This)->lpVtbl->StartDebugSession(This)
#define IDebugApplication32_HandleBreakPoint(This,br,pbra) (This)->lpVtbl->HandleBreakPoint(This,br,pbra)
#define IDebugApplication32_Close(This) (This)->lpVtbl->Close(This)
#define IDebugApplication32_GetBreakFlags(This,pabf,pprdatSteppingThread) (This)->lpVtbl->GetBreakFlags(This,pabf,pprdatSteppingThread)
#define IDebugApplication32_GetCurrentThread(This,pat) (This)->lpVtbl->GetCurrentThread(This,pat)
#define IDebugApplication32_CreateAsyncDebugOperation(This,psdo,ppado) (This)->lpVtbl->CreateAsyncDebugOperation(This,psdo,ppado)
#define IDebugApplication32_AddStackFrameSniffer(This,pdsfs,pdwCookie) (This)->lpVtbl->AddStackFrameSniffer(This,pdsfs,pdwCookie)
#define IDebugApplication32_RemoveStackFrameSniffer(This,dwCookie) (This)->lpVtbl->RemoveStackFrameSniffer(This,dwCookie)
#define IDebugApplication32_QueryCurrentThreadIsDebuggerThread(This) (This)->lpVtbl->QueryCurrentThreadIsDebuggerThread(This)
#define IDebugApplication32_SynchronousCallInDebuggerThread(This,pptc,dwParam1,dwParam2,dwParam3) (This)->lpVtbl->SynchronousCallInDebuggerThread(This,pptc,dwParam1,dwParam2,dwParam3)
#define IDebugApplication32_CreateApplicationNode(This,ppdanNew) (This)->lpVtbl->CreateApplicationNode(This,ppdanNew)
#define IDebugApplication32_FireDebuggerEvent(This,riid,punk) (This)->lpVtbl->FireDebuggerEvent(This,riid,punk)
#define IDebugApplication32_HandleRuntimeError(This,pErrorDebug,pScriptSite,pbra,perra,pfCallOnScriptError) (This)->lpVtbl->HandleRuntimeError(This,pErrorDebug,pScriptSite,pbra,perra,pfCallOnScriptError)
#define IDebugApplication32_FCanJitDebug(This) (This)->lpVtbl->FCanJitDebug(This)
#define IDebugApplication32_FIsAutoJitDebugEnabled(This) (This)->lpVtbl->FIsAutoJitDebugEnabled(This)
#define IDebugApplication32_AddGlobalExpressionContextProvider(This,pdsfs,pdwCookie) (This)->lpVtbl->AddGlobalExpressionContextProvider(This,pdsfs,pdwCookie)
#define IDebugApplication32_RemoveGlobalExpressionContextProvider(This,dwCookie) (This)->lpVtbl->RemoveGlobalExpressionContextProvider(This,dwCookie)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IDebugApplication32_QueryInterface(IDebugApplication32* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IDebugApplication32_AddRef(IDebugApplication32* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IDebugApplication32_Release(IDebugApplication32* This) {
    return This->lpVtbl->Release(This);
}
/*** IRemoteDebugApplication methods ***/
static FORCEINLINE HRESULT IDebugApplication32_ResumeFromBreakPoint(IDebugApplication32* This,IRemoteDebugApplicationThread *prptFocus,BREAKRESUMEACTION bra,ERRORRESUMEACTION era) {
    return This->lpVtbl->ResumeFromBreakPoint(This,prptFocus,bra,era);
}
static FORCEINLINE HRESULT IDebugApplication32_CauseBreak(IDebugApplication32* This) {
    return This->lpVtbl->CauseBreak(This);
}
static FORCEINLINE HRESULT IDebugApplication32_ConnectDebugger(IDebugApplication32* This,IApplicationDebugger *pad) {
    return This->lpVtbl->ConnectDebugger(This,pad);
}
static FORCEINLINE HRESULT IDebugApplication32_DisconnectDebugger(IDebugApplication32* This) {
    return This->lpVtbl->DisconnectDebugger(This);
}
static FORCEINLINE HRESULT IDebugApplication32_GetDebugger(IDebugApplication32* This,IApplicationDebugger **pad) {
    return This->lpVtbl->GetDebugger(This,pad);
}
static FORCEINLINE HRESULT IDebugApplication32_CreateInstanceAtApplication(IDebugApplication32* This,REFCLSID rclsid,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,IUnknown **ppvObject) {
    return This->lpVtbl->CreateInstanceAtApplication(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject);
}
static FORCEINLINE HRESULT IDebugApplication32_QueryAlive(IDebugApplication32* This) {
    return This->lpVtbl->QueryAlive(This);
}
static FORCEINLINE HRESULT IDebugApplication32_EnumThreads(IDebugApplication32* This,IEnumRemoteDebugApplicationThreads **pperdat) {
    return This->lpVtbl->EnumThreads(This,pperdat);
}
static FORCEINLINE HRESULT IDebugApplication32_GetName(IDebugApplication32* This,BSTR *pbstrName) {
    return This->lpVtbl->GetName(This,pbstrName);
}
static FORCEINLINE HRESULT IDebugApplication32_GetRootNode(IDebugApplication32* This,IDebugApplicationNode **ppdanRoot) {
    return This->lpVtbl->GetRootNode(This,ppdanRoot);
}
static FORCEINLINE HRESULT IDebugApplication32_EnumGlobalExpressionContexts(IDebugApplication32* This,IEnumDebugExpressionContexts **ppedec) {
    return This->lpVtbl->EnumGlobalExpressionContexts(This,ppedec);
}
/*** IDebugApplication32 methods ***/
static FORCEINLINE HRESULT IDebugApplication32_SetName(IDebugApplication32* This,LPCOLESTR pstrName) {
    return This->lpVtbl->SetName(This,pstrName);
}
static FORCEINLINE HRESULT IDebugApplication32_StepOutComplete(IDebugApplication32* This) {
    return This->lpVtbl->StepOutComplete(This);
}
static FORCEINLINE HRESULT IDebugApplication32_DebugOutput(IDebugApplication32* This,LPCOLESTR pstr) {
    return This->lpVtbl->DebugOutput(This,pstr);
}
static FORCEINLINE HRESULT IDebugApplication32_StartDebugSession(IDebugApplication32* This) {
    return This->lpVtbl->StartDebugSession(This);
}
static FORCEINLINE HRESULT IDebugApplication32_HandleBreakPoint(IDebugApplication32* This,BREAKREASON br,BREAKRESUMEACTION *pbra) {
    return This->lpVtbl->HandleBreakPoint(This,br,pbra);
}
static FORCEINLINE HRESULT IDebugApplication32_Close(IDebugApplication32* This) {
    return This->lpVtbl->Close(This);
}
static FORCEINLINE HRESULT IDebugApplication32_GetBreakFlags(IDebugApplication32* This,APPBREAKFLAGS *pabf,IRemoteDebugApplicationThread **pprdatSteppingThread) {
    return This->lpVtbl->GetBreakFlags(This,pabf,pprdatSteppingThread);
}
static FORCEINLINE HRESULT IDebugApplication32_GetCurrentThread(IDebugApplication32* This,IDebugApplicationThread **pat) {
    return This->lpVtbl->GetCurrentThread(This,pat);
}
static FORCEINLINE HRESULT IDebugApplication32_CreateAsyncDebugOperation(IDebugApplication32* This,IDebugSyncOperation *psdo,IDebugAsyncOperation **ppado) {
    return This->lpVtbl->CreateAsyncDebugOperation(This,psdo,ppado);
}
static FORCEINLINE HRESULT IDebugApplication32_AddStackFrameSniffer(IDebugApplication32* This,IDebugStackFrameSniffer *pdsfs,DWORD *pdwCookie) {
    return This->lpVtbl->AddStackFrameSniffer(This,pdsfs,pdwCookie);
}
static FORCEINLINE HRESULT IDebugApplication32_RemoveStackFrameSniffer(IDebugApplication32* This,DWORD dwCookie) {
    return This->lpVtbl->RemoveStackFrameSniffer(This,dwCookie);
}
static FORCEINLINE HRESULT IDebugApplication32_QueryCurrentThreadIsDebuggerThread(IDebugApplication32* This) {
    return This->lpVtbl->QueryCurrentThreadIsDebuggerThread(This);
}
static FORCEINLINE HRESULT IDebugApplication32_SynchronousCallInDebuggerThread(IDebugApplication32* This,IDebugThreadCall32 *pptc,DWORD dwParam1,DWORD dwParam2,DWORD dwParam3) {
    return This->lpVtbl->SynchronousCallInDebuggerThread(This,pptc,dwParam1,dwParam2,dwParam3);
}
static FORCEINLINE HRESULT IDebugApplication32_CreateApplicationNode(IDebugApplication32* This,IDebugApplicationNode **ppdanNew) {
    return This->lpVtbl->CreateApplicationNode(This,ppdanNew);
}
static FORCEINLINE HRESULT IDebugApplication32_FireDebuggerEvent(IDebugApplication32* This,REFGUID riid,IUnknown *punk) {
    return This->lpVtbl->FireDebuggerEvent(This,riid,punk);
}
static FORCEINLINE HRESULT IDebugApplication32_HandleRuntimeError(IDebugApplication32* This,IActiveScriptErrorDebug *pErrorDebug,IActiveScriptSite *pScriptSite,BREAKRESUMEACTION *pbra,ERRORRESUMEACTION *perra,BOOL *pfCallOnScriptError) {
    return This->lpVtbl->HandleRuntimeError(This,pErrorDebug,pScriptSite,pbra,perra,pfCallOnScriptError);
}
static FORCEINLINE BOOL IDebugApplication32_FCanJitDebug(IDebugApplication32* This) {
    return This->lpVtbl->FCanJitDebug(This);
}
static FORCEINLINE BOOL IDebugApplication32_FIsAutoJitDebugEnabled(IDebugApplication32* This) {
    return This->lpVtbl->FIsAutoJitDebugEnabled(This);
}
static FORCEINLINE HRESULT IDebugApplication32_AddGlobalExpressionContextProvider(IDebugApplication32* This,IProvideExpressionContexts *pdsfs,DWORD *pdwCookie) {
    return This->lpVtbl->AddGlobalExpressionContextProvider(This,pdsfs,pdwCookie);
}
static FORCEINLINE HRESULT IDebugApplication32_RemoveGlobalExpressionContextProvider(IDebugApplication32* This,DWORD dwCookie) {
    return This->lpVtbl->RemoveGlobalExpressionContextProvider(This,dwCookie);
}
#endif
#endif

#endif


#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
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IDebugApplication64_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDebugApplication64_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDebugApplication64_Release(This) (This)->lpVtbl->Release(This)
/*** IRemoteDebugApplication methods ***/
#define IDebugApplication64_ResumeFromBreakPoint(This,prptFocus,bra,era) (This)->lpVtbl->ResumeFromBreakPoint(This,prptFocus,bra,era)
#define IDebugApplication64_CauseBreak(This) (This)->lpVtbl->CauseBreak(This)
#define IDebugApplication64_ConnectDebugger(This,pad) (This)->lpVtbl->ConnectDebugger(This,pad)
#define IDebugApplication64_DisconnectDebugger(This) (This)->lpVtbl->DisconnectDebugger(This)
#define IDebugApplication64_GetDebugger(This,pad) (This)->lpVtbl->GetDebugger(This,pad)
#define IDebugApplication64_CreateInstanceAtApplication(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstanceAtApplication(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject)
#define IDebugApplication64_QueryAlive(This) (This)->lpVtbl->QueryAlive(This)
#define IDebugApplication64_EnumThreads(This,pperdat) (This)->lpVtbl->EnumThreads(This,pperdat)
#define IDebugApplication64_GetName(This,pbstrName) (This)->lpVtbl->GetName(This,pbstrName)
#define IDebugApplication64_GetRootNode(This,ppdanRoot) (This)->lpVtbl->GetRootNode(This,ppdanRoot)
#define IDebugApplication64_EnumGlobalExpressionContexts(This,ppedec) (This)->lpVtbl->EnumGlobalExpressionContexts(This,ppedec)
/*** IDebugApplication64 methods ***/
#define IDebugApplication64_SetName(This,pstrName) (This)->lpVtbl->SetName(This,pstrName)
#define IDebugApplication64_StepOutComplete(This) (This)->lpVtbl->StepOutComplete(This)
#define IDebugApplication64_DebugOutput(This,pstr) (This)->lpVtbl->DebugOutput(This,pstr)
#define IDebugApplication64_StartDebugSession(This) (This)->lpVtbl->StartDebugSession(This)
#define IDebugApplication64_HandleBreakPoint(This,br,pbra) (This)->lpVtbl->HandleBreakPoint(This,br,pbra)
#define IDebugApplication64_Close(This) (This)->lpVtbl->Close(This)
#define IDebugApplication64_GetBreakFlags(This,pabf,pprdatSteppingThread) (This)->lpVtbl->GetBreakFlags(This,pabf,pprdatSteppingThread)
#define IDebugApplication64_GetCurrentThread(This,pat) (This)->lpVtbl->GetCurrentThread(This,pat)
#define IDebugApplication64_CreateAsyncDebugOperation(This,psdo,ppado) (This)->lpVtbl->CreateAsyncDebugOperation(This,psdo,ppado)
#define IDebugApplication64_AddStackFrameSniffer(This,pdsfs,pdwCookie) (This)->lpVtbl->AddStackFrameSniffer(This,pdsfs,pdwCookie)
#define IDebugApplication64_RemoveStackFrameSniffer(This,dwCookie) (This)->lpVtbl->RemoveStackFrameSniffer(This,dwCookie)
#define IDebugApplication64_QueryCurrentThreadIsDebuggerThread(This) (This)->lpVtbl->QueryCurrentThreadIsDebuggerThread(This)
#define IDebugApplication64_SynchronousCallInDebuggerThread(This,pptc,dwParam1,dwParam2,dwParam3) (This)->lpVtbl->SynchronousCallInDebuggerThread(This,pptc,dwParam1,dwParam2,dwParam3)
#define IDebugApplication64_CreateApplicationNode(This,ppdanNew) (This)->lpVtbl->CreateApplicationNode(This,ppdanNew)
#define IDebugApplication64_FireDebuggerEvent(This,riid,punk) (This)->lpVtbl->FireDebuggerEvent(This,riid,punk)
#define IDebugApplication64_HandleRuntimeError(This,pErrorDebug,pScriptSite,pbra,perra,pfCallOnScriptError) (This)->lpVtbl->HandleRuntimeError(This,pErrorDebug,pScriptSite,pbra,perra,pfCallOnScriptError)
#define IDebugApplication64_FCanJitDebug(This) (This)->lpVtbl->FCanJitDebug(This)
#define IDebugApplication64_FIsAutoJitDebugEnabled(This) (This)->lpVtbl->FIsAutoJitDebugEnabled(This)
#define IDebugApplication64_AddGlobalExpressionContextProvider(This,pdsfs,pdwCookie) (This)->lpVtbl->AddGlobalExpressionContextProvider(This,pdsfs,pdwCookie)
#define IDebugApplication64_RemoveGlobalExpressionContextProvider(This,dwCookie) (This)->lpVtbl->RemoveGlobalExpressionContextProvider(This,dwCookie)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IDebugApplication64_QueryInterface(IDebugApplication64* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IDebugApplication64_AddRef(IDebugApplication64* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IDebugApplication64_Release(IDebugApplication64* This) {
    return This->lpVtbl->Release(This);
}
/*** IRemoteDebugApplication methods ***/
static FORCEINLINE HRESULT IDebugApplication64_ResumeFromBreakPoint(IDebugApplication64* This,IRemoteDebugApplicationThread *prptFocus,BREAKRESUMEACTION bra,ERRORRESUMEACTION era) {
    return This->lpVtbl->ResumeFromBreakPoint(This,prptFocus,bra,era);
}
static FORCEINLINE HRESULT IDebugApplication64_CauseBreak(IDebugApplication64* This) {
    return This->lpVtbl->CauseBreak(This);
}
static FORCEINLINE HRESULT IDebugApplication64_ConnectDebugger(IDebugApplication64* This,IApplicationDebugger *pad) {
    return This->lpVtbl->ConnectDebugger(This,pad);
}
static FORCEINLINE HRESULT IDebugApplication64_DisconnectDebugger(IDebugApplication64* This) {
    return This->lpVtbl->DisconnectDebugger(This);
}
static FORCEINLINE HRESULT IDebugApplication64_GetDebugger(IDebugApplication64* This,IApplicationDebugger **pad) {
    return This->lpVtbl->GetDebugger(This,pad);
}
static FORCEINLINE HRESULT IDebugApplication64_CreateInstanceAtApplication(IDebugApplication64* This,REFCLSID rclsid,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,IUnknown **ppvObject) {
    return This->lpVtbl->CreateInstanceAtApplication(This,rclsid,pUnkOuter,dwClsContext,riid,ppvObject);
}
static FORCEINLINE HRESULT IDebugApplication64_QueryAlive(IDebugApplication64* This) {
    return This->lpVtbl->QueryAlive(This);
}
static FORCEINLINE HRESULT IDebugApplication64_EnumThreads(IDebugApplication64* This,IEnumRemoteDebugApplicationThreads **pperdat) {
    return This->lpVtbl->EnumThreads(This,pperdat);
}
static FORCEINLINE HRESULT IDebugApplication64_GetName(IDebugApplication64* This,BSTR *pbstrName) {
    return This->lpVtbl->GetName(This,pbstrName);
}
static FORCEINLINE HRESULT IDebugApplication64_GetRootNode(IDebugApplication64* This,IDebugApplicationNode **ppdanRoot) {
    return This->lpVtbl->GetRootNode(This,ppdanRoot);
}
static FORCEINLINE HRESULT IDebugApplication64_EnumGlobalExpressionContexts(IDebugApplication64* This,IEnumDebugExpressionContexts **ppedec) {
    return This->lpVtbl->EnumGlobalExpressionContexts(This,ppedec);
}
/*** IDebugApplication64 methods ***/
static FORCEINLINE HRESULT IDebugApplication64_SetName(IDebugApplication64* This,LPCOLESTR pstrName) {
    return This->lpVtbl->SetName(This,pstrName);
}
static FORCEINLINE HRESULT IDebugApplication64_StepOutComplete(IDebugApplication64* This) {
    return This->lpVtbl->StepOutComplete(This);
}
static FORCEINLINE HRESULT IDebugApplication64_DebugOutput(IDebugApplication64* This,LPCOLESTR pstr) {
    return This->lpVtbl->DebugOutput(This,pstr);
}
static FORCEINLINE HRESULT IDebugApplication64_StartDebugSession(IDebugApplication64* This) {
    return This->lpVtbl->StartDebugSession(This);
}
static FORCEINLINE HRESULT IDebugApplication64_HandleBreakPoint(IDebugApplication64* This,BREAKREASON br,BREAKRESUMEACTION *pbra) {
    return This->lpVtbl->HandleBreakPoint(This,br,pbra);
}
static FORCEINLINE HRESULT IDebugApplication64_Close(IDebugApplication64* This) {
    return This->lpVtbl->Close(This);
}
static FORCEINLINE HRESULT IDebugApplication64_GetBreakFlags(IDebugApplication64* This,APPBREAKFLAGS *pabf,IRemoteDebugApplicationThread **pprdatSteppingThread) {
    return This->lpVtbl->GetBreakFlags(This,pabf,pprdatSteppingThread);
}
static FORCEINLINE HRESULT IDebugApplication64_GetCurrentThread(IDebugApplication64* This,IDebugApplicationThread **pat) {
    return This->lpVtbl->GetCurrentThread(This,pat);
}
static FORCEINLINE HRESULT IDebugApplication64_CreateAsyncDebugOperation(IDebugApplication64* This,IDebugSyncOperation *psdo,IDebugAsyncOperation **ppado) {
    return This->lpVtbl->CreateAsyncDebugOperation(This,psdo,ppado);
}
static FORCEINLINE HRESULT IDebugApplication64_AddStackFrameSniffer(IDebugApplication64* This,IDebugStackFrameSniffer *pdsfs,DWORD *pdwCookie) {
    return This->lpVtbl->AddStackFrameSniffer(This,pdsfs,pdwCookie);
}
static FORCEINLINE HRESULT IDebugApplication64_RemoveStackFrameSniffer(IDebugApplication64* This,DWORD dwCookie) {
    return This->lpVtbl->RemoveStackFrameSniffer(This,dwCookie);
}
static FORCEINLINE HRESULT IDebugApplication64_QueryCurrentThreadIsDebuggerThread(IDebugApplication64* This) {
    return This->lpVtbl->QueryCurrentThreadIsDebuggerThread(This);
}
static FORCEINLINE HRESULT IDebugApplication64_SynchronousCallInDebuggerThread(IDebugApplication64* This,IDebugThreadCall32 *pptc,DWORDLONG dwParam1,DWORDLONG dwParam2,DWORDLONG dwParam3) {
    return This->lpVtbl->SynchronousCallInDebuggerThread(This,pptc,dwParam1,dwParam2,dwParam3);
}
static FORCEINLINE HRESULT IDebugApplication64_CreateApplicationNode(IDebugApplication64* This,IDebugApplicationNode **ppdanNew) {
    return This->lpVtbl->CreateApplicationNode(This,ppdanNew);
}
static FORCEINLINE HRESULT IDebugApplication64_FireDebuggerEvent(IDebugApplication64* This,REFGUID riid,IUnknown *punk) {
    return This->lpVtbl->FireDebuggerEvent(This,riid,punk);
}
static FORCEINLINE HRESULT IDebugApplication64_HandleRuntimeError(IDebugApplication64* This,IActiveScriptErrorDebug *pErrorDebug,IActiveScriptSite *pScriptSite,BREAKRESUMEACTION *pbra,ERRORRESUMEACTION *perra,BOOL *pfCallOnScriptError) {
    return This->lpVtbl->HandleRuntimeError(This,pErrorDebug,pScriptSite,pbra,perra,pfCallOnScriptError);
}
static FORCEINLINE BOOL IDebugApplication64_FCanJitDebug(IDebugApplication64* This) {
    return This->lpVtbl->FCanJitDebug(This);
}
static FORCEINLINE BOOL IDebugApplication64_FIsAutoJitDebugEnabled(IDebugApplication64* This) {
    return This->lpVtbl->FIsAutoJitDebugEnabled(This);
}
static FORCEINLINE HRESULT IDebugApplication64_AddGlobalExpressionContextProvider(IDebugApplication64* This,IProvideExpressionContexts *pdsfs,DWORDLONG *pdwCookie) {
    return This->lpVtbl->AddGlobalExpressionContextProvider(This,pdsfs,pdwCookie);
}
static FORCEINLINE HRESULT IDebugApplication64_RemoveGlobalExpressionContextProvider(IDebugApplication64* This,DWORDLONG dwCookie) {
    return This->lpVtbl->RemoveGlobalExpressionContextProvider(This,dwCookie);
}
#endif
#endif

#endif


#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
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IActiveScriptSiteDebug32_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IActiveScriptSiteDebug32_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IActiveScriptSiteDebug32_Release(This) (This)->lpVtbl->Release(This)
/*** IActiveScriptSiteDebug32 methods ***/
#define IActiveScriptSiteDebug32_GetDocumentContextFromPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppsc) (This)->lpVtbl->GetDocumentContextFromPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppsc)
#define IActiveScriptSiteDebug32_GetApplication(This,ppda) (This)->lpVtbl->GetApplication(This,ppda)
#define IActiveScriptSiteDebug32_GetRootApplicationNode(This,ppdanRoot) (This)->lpVtbl->GetRootApplicationNode(This,ppdanRoot)
#define IActiveScriptSiteDebug32_OnScriptErrorDebug(This,pErrorDebug,pfEnterDebugger,pfCallOnScriptErrorWhenContinuing) (This)->lpVtbl->OnScriptErrorDebug(This,pErrorDebug,pfEnterDebugger,pfCallOnScriptErrorWhenContinuing)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IActiveScriptSiteDebug32_QueryInterface(IActiveScriptSiteDebug32* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IActiveScriptSiteDebug32_AddRef(IActiveScriptSiteDebug32* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IActiveScriptSiteDebug32_Release(IActiveScriptSiteDebug32* This) {
    return This->lpVtbl->Release(This);
}
/*** IActiveScriptSiteDebug32 methods ***/
static FORCEINLINE HRESULT IActiveScriptSiteDebug32_GetDocumentContextFromPosition(IActiveScriptSiteDebug32* This,DWORD dwSourceContext,ULONG uCharacterOffset,ULONG uNumChars,IDebugDocumentContext **ppsc) {
    return This->lpVtbl->GetDocumentContextFromPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppsc);
}
static FORCEINLINE HRESULT IActiveScriptSiteDebug32_GetApplication(IActiveScriptSiteDebug32* This,IDebugApplication32 **ppda) {
    return This->lpVtbl->GetApplication(This,ppda);
}
static FORCEINLINE HRESULT IActiveScriptSiteDebug32_GetRootApplicationNode(IActiveScriptSiteDebug32* This,IDebugApplicationNode **ppdanRoot) {
    return This->lpVtbl->GetRootApplicationNode(This,ppdanRoot);
}
static FORCEINLINE HRESULT IActiveScriptSiteDebug32_OnScriptErrorDebug(IActiveScriptSiteDebug32* This,IActiveScriptErrorDebug *pErrorDebug,BOOL *pfEnterDebugger,BOOL *pfCallOnScriptErrorWhenContinuing) {
    return This->lpVtbl->OnScriptErrorDebug(This,pErrorDebug,pfEnterDebugger,pfCallOnScriptErrorWhenContinuing);
}
#endif
#endif

#endif


#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
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define IActiveScriptSiteDebug64_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IActiveScriptSiteDebug64_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IActiveScriptSiteDebug64_Release(This) (This)->lpVtbl->Release(This)
/*** IActiveScriptSiteDebug64 methods ***/
#define IActiveScriptSiteDebug64_GetDocumentContextFromPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppsc) (This)->lpVtbl->GetDocumentContextFromPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppsc)
#define IActiveScriptSiteDebug64_GetApplication(This,ppda) (This)->lpVtbl->GetApplication(This,ppda)
#define IActiveScriptSiteDebug64_GetRootApplicationNode(This,ppdanRoot) (This)->lpVtbl->GetRootApplicationNode(This,ppdanRoot)
#define IActiveScriptSiteDebug64_OnScriptErrorDebug(This,pErrorDebug,pfEnterDebugger,pfCallOnScriptErrorWhenContinuing) (This)->lpVtbl->OnScriptErrorDebug(This,pErrorDebug,pfEnterDebugger,pfCallOnScriptErrorWhenContinuing)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT IActiveScriptSiteDebug64_QueryInterface(IActiveScriptSiteDebug64* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG IActiveScriptSiteDebug64_AddRef(IActiveScriptSiteDebug64* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG IActiveScriptSiteDebug64_Release(IActiveScriptSiteDebug64* This) {
    return This->lpVtbl->Release(This);
}
/*** IActiveScriptSiteDebug64 methods ***/
static FORCEINLINE HRESULT IActiveScriptSiteDebug64_GetDocumentContextFromPosition(IActiveScriptSiteDebug64* This,DWORDLONG dwSourceContext,ULONG uCharacterOffset,ULONG uNumChars,IDebugDocumentContext **ppsc) {
    return This->lpVtbl->GetDocumentContextFromPosition(This,dwSourceContext,uCharacterOffset,uNumChars,ppsc);
}
static FORCEINLINE HRESULT IActiveScriptSiteDebug64_GetApplication(IActiveScriptSiteDebug64* This,IDebugApplication64 **ppda) {
    return This->lpVtbl->GetApplication(This,ppda);
}
static FORCEINLINE HRESULT IActiveScriptSiteDebug64_GetRootApplicationNode(IActiveScriptSiteDebug64* This,IDebugApplicationNode **ppdanRoot) {
    return This->lpVtbl->GetRootApplicationNode(This,ppdanRoot);
}
static FORCEINLINE HRESULT IActiveScriptSiteDebug64_OnScriptErrorDebug(IActiveScriptSiteDebug64* This,IActiveScriptErrorDebug *pErrorDebug,BOOL *pfEnterDebugger,BOOL *pfCallOnScriptErrorWhenContinuing) {
    return This->lpVtbl->OnScriptErrorDebug(This,pErrorDebug,pfEnterDebugger,pfCallOnScriptErrorWhenContinuing);
}
#endif
#endif

#endif


#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 /* __activdbg_h__ */
