mirror of
git://source.winehq.org/git/wine.git
synced 2024-11-01 09:50:52 +00:00
581 lines
16 KiB
Text
581 lines
16 KiB
Text
/*
|
|
* Copyright 2008 Jacek Caban for CodeWeavers
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
*/
|
|
|
|
import "ocidl.idl";
|
|
import "activscp.idl";
|
|
/* import "dbgprop.idl"; */
|
|
|
|
interface IDebugDocumentContext;
|
|
interface IRemoteDebugApplication;
|
|
interface IEnumDebugCodeContexts;
|
|
|
|
/* FIXME: */
|
|
interface IEnumDebugStackFrames;
|
|
interface IDebugStackFrame;
|
|
interface IApplicationDebugger;
|
|
interface IEnumRemoteDebugApplicationThreads;
|
|
interface IDebugApplicationNode;
|
|
interface IEnumDebugExpressionContexts;
|
|
interface IDebugApplicationThread;
|
|
interface IDebugSyncOperation;
|
|
interface IDebugAsyncOperation;
|
|
interface IDebugStackFrameSniffer;
|
|
interface IDebugThreadCall32;
|
|
interface IActiveScriptErrorDebug;
|
|
interface IProvideExpressionContexts;
|
|
|
|
typedef enum tagBREAKPOINT_STATE {
|
|
BREAKPOINT_DELETED,
|
|
BREAKPOINT_DISABLED,
|
|
BREAKPOINT_ENABLED
|
|
} BREAKPOINT_STATE;
|
|
|
|
typedef DWORD APPBREAKFLAGS;
|
|
|
|
typedef enum tagBREAKREASON {
|
|
BREAKREASON_STEP,
|
|
BREAKREASON_BREAKPOINT,
|
|
BREAKREASON_DEBUGGER_BLOCK,
|
|
BREAKREASON_HOST_INITIATED,
|
|
BREAKREASON_LANGUAGE_INITIATED,
|
|
BREAKREASON_DEBUGGER_HALT,
|
|
BREAKREASON_ERROR,
|
|
BREAKREASON_JIT
|
|
} BREAKREASON;
|
|
|
|
typedef enum tagBREAKRESUME_ACTION {
|
|
BREAKRESUMEACTION_ABORT,
|
|
BREAKRESUMEACTION_CONTINUE,
|
|
BREAKRESUMEACTION_STEP_INTO,
|
|
BREAKRESUMEACTION_STEP_OVER,
|
|
BREAKRESUMEACTION_STEP_OUT,
|
|
BREAKRESUMEACTION_IGNORE
|
|
} BREAKRESUMEACTION;
|
|
|
|
typedef enum tagDOCUMENTNAMETYPE {
|
|
DOCUMENTNAMETYPE_APPNODE,
|
|
DOCUMENTNAMETYPE_TITLE,
|
|
DOCUMENTNAMETYPE_FILE_TAIL,
|
|
DOCUMENTNAMETYPE_URL
|
|
} DOCUMENTNAMETYPE;
|
|
|
|
typedef enum tagERRORRESUMEACTION {
|
|
ERRORRESUMEACTION_ReexecuteErrorStatement,
|
|
ERRORRESUMEACTION_AbortCallAndReturnErrorToCaller,
|
|
ERRORRESUMEACTION_SkipErrorStatement,
|
|
} ERRORRESUMEACTION;
|
|
|
|
typedef WORD SOURCE_TEXT_ATTR;
|
|
|
|
#ifdef INTEROPLIB
|
|
enum enum_SOURCE_TEXT_ATTR
|
|
{
|
|
SOURCETEXT_ATTR_KEYWORD = 0x01,
|
|
SOURCETEXT_ATTR_COMMENT = 0x02,
|
|
SOURCETEXT_ATTR_NONSOURCE = 0x04,
|
|
SOURCETEXT_ATTR_OPERATOR = 0x08,
|
|
SOURCETEXT_ATTR_NUMBER = 0x10,
|
|
SOURCETEXT_ATTR_STRING = 0x20,
|
|
SOURCETEXT_ATTR_FUNCTION_START = 0x40
|
|
};
|
|
#endif
|
|
|
|
const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_KEYWORD = 0x01;
|
|
const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_COMMENT = 0x02;
|
|
const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_NONSOURCE = 0x04;
|
|
const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_OPERATOR = 0x08;
|
|
const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_NUMBER = 0x10;
|
|
const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_STRING = 0x20;
|
|
const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_FUNCTION_START = 0x40;
|
|
|
|
/************************************************************
|
|
* interface IActiveScriptDebug32
|
|
*/
|
|
[
|
|
object,
|
|
uuid(51973c10-cb0c-11d0-b5c9-00a0244a0e7a),
|
|
pointer_default(unique)
|
|
]
|
|
interface IActiveScriptDebug32 : IUnknown
|
|
{
|
|
HRESULT GetScriptTextAttributes(
|
|
[in, size_is(uNumCodeChars)] LPCOLESTR pstrCode,
|
|
[in] ULONG uNumCodeChars,
|
|
[in] LPCOLESTR pstrDelimiter,
|
|
[in] DWORD dwFlags,
|
|
[in, out, size_is(uNumCodeChars)] SOURCE_TEXT_ATTR *pattr);
|
|
|
|
HRESULT GetScriptletTextAttributes(
|
|
[in, size_is(uNumCodeChars)] LPCOLESTR pstrCode,
|
|
[in] ULONG uNumCodeChars,
|
|
[in] LPCOLESTR pstrDelimiter,
|
|
[in] DWORD dwFlags,
|
|
[in, out, size_is(uNumCodeChars)] SOURCE_TEXT_ATTR *pattr);
|
|
|
|
HRESULT EnumCodeContextsOfPosition(
|
|
[in] DWORD dwSourceContext,
|
|
[in] ULONG uCharacterOffset,
|
|
[in] ULONG uNumChars,
|
|
[out] IEnumDebugCodeContexts **ppescc);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(bc437e23-f5b8-47f4-bb79-7d1ce5483b86),
|
|
pointer_default(unique)
|
|
]
|
|
interface IActiveScriptDebug64 : IUnknown
|
|
{
|
|
HRESULT GetScriptTextAttributes(
|
|
[in, size_is(uNumCodeChars)] LPCOLESTR pstrCode,
|
|
[in] ULONG uNumCodeChars,
|
|
[in] LPCOLESTR pstrDelimiter,
|
|
[in] DWORD dwFlags,
|
|
[in, out, size_is(uNumCodeChars)] SOURCE_TEXT_ATTR *pattr);
|
|
|
|
HRESULT GetScriptletTextAttributes(
|
|
[in, size_is(uNumCodeChars)] LPCOLESTR pstrCode,
|
|
[in] ULONG uNumCodeChars,
|
|
[in] LPCOLESTR pstrDelimiter,
|
|
[in] DWORD dwFlags,
|
|
[in, out, size_is(uNumCodeChars)] SOURCE_TEXT_ATTR *pattr);
|
|
|
|
HRESULT EnumCodeContextsOfPosition(
|
|
[in] DWORDLONG dwSourceContext,
|
|
[in] ULONG uCharacterOffset,
|
|
[in] ULONG uNumChars,
|
|
[out] IEnumDebugCodeContexts **ppescc);
|
|
}
|
|
|
|
/************************************************************
|
|
* interface IDebugDocumentInfo
|
|
*/
|
|
[
|
|
object,
|
|
uuid(51973c1f-cb0c-11d0-b5c9-00a0244a0e7a),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDebugDocumentInfo : IUnknown
|
|
{
|
|
HRESULT GetName(
|
|
[in] DOCUMENTNAMETYPE dnt,
|
|
[out] BSTR *pbstrName);
|
|
|
|
HRESULT GetDocumentClassId(
|
|
[out] CLSID *pclsidDocument);
|
|
}
|
|
|
|
/************************************************************
|
|
* interface IDebugDocument
|
|
*/
|
|
[
|
|
object,
|
|
uuid(51973c21-cb0c-11d0-b5c9-00a0244a0e7a),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDebugDocument : IDebugDocumentInfo
|
|
{
|
|
}
|
|
|
|
/************************************************************
|
|
* interface IDebugCodeContext
|
|
*/
|
|
[
|
|
object,
|
|
uuid(51973c13-cb0c-11d0-b5c9-00a0244a0e7a),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDebugCodeContext : IUnknown
|
|
{
|
|
HRESULT GetDocumentContext(
|
|
[out] IDebugDocumentContext **ppsc);
|
|
|
|
HRESULT SetBreakPoint(
|
|
[in] BREAKPOINT_STATE bps);
|
|
}
|
|
|
|
/************************************************************
|
|
* interface IEnumDebugCodeContexts
|
|
*/
|
|
[
|
|
object,
|
|
uuid(51973c1d-cb0c-11d0-b5c9-00a0244a0e7a),
|
|
pointer_default(unique)
|
|
]
|
|
interface IEnumDebugCodeContexts : IUnknown
|
|
{
|
|
HRESULT Next(
|
|
[in] ULONG celt,
|
|
[out] IDebugCodeContext **pscc,
|
|
[out] ULONG *pceltFetched);
|
|
|
|
HRESULT Skip(
|
|
[in] ULONG celt);
|
|
|
|
HRESULT Reset();
|
|
|
|
HRESULT Clone(
|
|
[out] IEnumDebugCodeContexts **ppescc);
|
|
}
|
|
|
|
/************************************************************
|
|
* interface IDebugDocumentContext
|
|
*/
|
|
[
|
|
object,
|
|
uuid(51973c28-cb0c-11d0-b5c9-00a0244a0e7a),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDebugDocumentContext : IUnknown
|
|
{
|
|
HRESULT GetDocument(
|
|
[out] IDebugDocument **ppsd);
|
|
|
|
HRESULT EnumCodeContexts(
|
|
[out] IEnumDebugCodeContexts **ppescc);
|
|
}
|
|
|
|
/************************************************************
|
|
* interface IRemoteDebugApplicationThread
|
|
*/
|
|
[
|
|
object,
|
|
uuid(51973c37-cb0c-11d0-b5c9-00a0244a0e7a),
|
|
pointer_default(unique)
|
|
]
|
|
interface IRemoteDebugApplicationThread : IUnknown
|
|
{
|
|
HRESULT GetSystemThreadId(
|
|
[out] DWORD *dwThreadId);
|
|
|
|
HRESULT GetApplication(
|
|
[out] IRemoteDebugApplication **pprda);
|
|
|
|
HRESULT EnumStackFrames(
|
|
[out] IEnumDebugStackFrames **ppedsf);
|
|
|
|
HRESULT GetDescription(
|
|
[out] BSTR *pbstrDescription,
|
|
[out] BSTR *pbstrState);
|
|
|
|
HRESULT SetNextStatement(
|
|
[in] IDebugStackFrame *pStackFrame,
|
|
[in] IDebugCodeContext *pCodeContext);
|
|
|
|
HRESULT GetState(
|
|
[out] DWORD *pState);
|
|
|
|
HRESULT Suspend(
|
|
[out] DWORD *pdwCount);
|
|
|
|
HRESULT Resume(
|
|
[out] DWORD *pdwCount);
|
|
|
|
HRESULT GetSuspendCount(
|
|
[out] DWORD *pdwCount);
|
|
}
|
|
|
|
/************************************************************
|
|
* interface IRemoteDebugApplication
|
|
*/
|
|
[
|
|
object,
|
|
uuid(51973c30-cb0c-11d0-b5c9-00a0244Aae7a),
|
|
pointer_default(unique)
|
|
]
|
|
interface IRemoteDebugApplication : IUnknown
|
|
{
|
|
HRESULT ResumeFromBreakPoint(
|
|
[in] IRemoteDebugApplicationThread *prptFocus,
|
|
[in] BREAKRESUMEACTION bra,
|
|
[in] ERRORRESUMEACTION era);
|
|
|
|
HRESULT CauseBreak();
|
|
|
|
HRESULT ConnectDebugger(
|
|
[in] IApplicationDebugger *pad);
|
|
|
|
HRESULT DisconnectDebugger();
|
|
|
|
HRESULT GetDebugger(
|
|
[out] IApplicationDebugger **pad);
|
|
|
|
HRESULT CreateInstanceAtApplication(
|
|
[in] REFCLSID rclsid,
|
|
[in] IUnknown *pUnkOuter,
|
|
[in] DWORD dwClsContext,
|
|
[in] REFIID riid,
|
|
[out, iid_is(riid)] IUnknown **ppvObject);
|
|
|
|
HRESULT QueryAlive();
|
|
|
|
HRESULT EnumThreads(
|
|
[out] IEnumRemoteDebugApplicationThreads **pperdat);
|
|
|
|
HRESULT GetName(
|
|
[out] BSTR *pbstrName);
|
|
|
|
HRESULT GetRootNode(
|
|
[out] IDebugApplicationNode **ppdanRoot);
|
|
|
|
HRESULT EnumGlobalExpressionContexts(
|
|
[out] IEnumDebugExpressionContexts **ppedec);
|
|
}
|
|
|
|
/************************************************************
|
|
* interface IDebugApplication32
|
|
*/
|
|
[
|
|
object,
|
|
uuid(51973c32-cb0c-11d0-b5c9-00a0244a0e7a),
|
|
pointer_default(unique),
|
|
local
|
|
]
|
|
interface IDebugApplication32 : IRemoteDebugApplication
|
|
{
|
|
HRESULT SetName(
|
|
[in] LPCOLESTR pstrName);
|
|
|
|
HRESULT StepOutComplete();
|
|
|
|
HRESULT DebugOutput(
|
|
[in] LPCOLESTR pstr);
|
|
|
|
HRESULT StartDebugSession();
|
|
|
|
HRESULT HandleBreakPoint(
|
|
[in] BREAKREASON br,
|
|
[out] BREAKRESUMEACTION *pbra);
|
|
|
|
HRESULT Close();
|
|
|
|
HRESULT GetBreakFlags(
|
|
[out] APPBREAKFLAGS *pabf,
|
|
[out] IRemoteDebugApplicationThread **pprdatSteppingThread);
|
|
|
|
cpp_quote("#undef GetCurrentThread")
|
|
HRESULT GetCurrentThread(
|
|
[out] IDebugApplicationThread **pat);
|
|
|
|
HRESULT CreateAsyncDebugOperation(
|
|
[in] IDebugSyncOperation *psdo,
|
|
[out] IDebugAsyncOperation **ppado);
|
|
|
|
HRESULT AddStackFrameSniffer(
|
|
[in] IDebugStackFrameSniffer *pdsfs,
|
|
[out] DWORD *pdwCookie);
|
|
|
|
HRESULT RemoveStackFrameSniffer(
|
|
[in] DWORD dwCookie);
|
|
|
|
HRESULT QueryCurrentThreadIsDebuggerThread();
|
|
|
|
HRESULT SynchronousCallInDebuggerThread(
|
|
[in] IDebugThreadCall32 *pptc,
|
|
[in] DWORD dwParam1,
|
|
[in] DWORD dwParam2,
|
|
[in] DWORD dwParam3);
|
|
|
|
HRESULT CreateApplicationNode(
|
|
[out] IDebugApplicationNode **ppdanNew);
|
|
|
|
HRESULT FireDebuggerEvent(
|
|
[in] REFGUID riid,
|
|
[in] IUnknown *punk);
|
|
|
|
HRESULT HandleRuntimeError(
|
|
[in] IActiveScriptErrorDebug *pErrorDebug,
|
|
[in] IActiveScriptSite *pScriptSite,
|
|
[out] BREAKRESUMEACTION *pbra,
|
|
[out] ERRORRESUMEACTION *perra,
|
|
[out] BOOL *pfCallOnScriptError);
|
|
|
|
BOOL FCanJitDebug();
|
|
|
|
BOOL FIsAutoJitDebugEnabled();
|
|
|
|
HRESULT AddGlobalExpressionContextProvider(
|
|
[in] IProvideExpressionContexts *pdsfs,
|
|
[out] DWORD *pdwCookie);
|
|
|
|
HRESULT RemoveGlobalExpressionContextProvider(
|
|
[in] DWORD dwCookie);
|
|
}
|
|
|
|
/************************************************************
|
|
* interface IDebugApplication64
|
|
*/
|
|
[
|
|
object,
|
|
uuid(4dedc754-04c7-4f10-9e60-16a390fe6e62),
|
|
pointer_default(unique),
|
|
local
|
|
]
|
|
interface IDebugApplication64 : IRemoteDebugApplication
|
|
{
|
|
HRESULT SetName(
|
|
[in] LPCOLESTR pstrName);
|
|
|
|
HRESULT StepOutComplete();
|
|
|
|
HRESULT DebugOutput(
|
|
[in] LPCOLESTR pstr);
|
|
|
|
HRESULT StartDebugSession();
|
|
|
|
HRESULT HandleBreakPoint(
|
|
[in] BREAKREASON br,
|
|
[out] BREAKRESUMEACTION *pbra);
|
|
|
|
HRESULT Close();
|
|
|
|
HRESULT GetBreakFlags(
|
|
[out] APPBREAKFLAGS *pabf,
|
|
[out] IRemoteDebugApplicationThread **pprdatSteppingThread);
|
|
|
|
HRESULT GetCurrentThread(
|
|
[out] IDebugApplicationThread **pat);
|
|
|
|
HRESULT CreateAsyncDebugOperation(
|
|
[in] IDebugSyncOperation *psdo,
|
|
[out] IDebugAsyncOperation **ppado);
|
|
|
|
HRESULT AddStackFrameSniffer(
|
|
[in] IDebugStackFrameSniffer *pdsfs,
|
|
[out] DWORD *pdwCookie);
|
|
|
|
HRESULT RemoveStackFrameSniffer(
|
|
[in] DWORD dwCookie);
|
|
|
|
HRESULT QueryCurrentThreadIsDebuggerThread();
|
|
|
|
HRESULT SynchronousCallInDebuggerThread(
|
|
[in] IDebugThreadCall32 *pptc,
|
|
[in] DWORDLONG dwParam1,
|
|
[in] DWORDLONG dwParam2,
|
|
[in] DWORDLONG dwParam3);
|
|
|
|
HRESULT CreateApplicationNode(
|
|
[out] IDebugApplicationNode **ppdanNew);
|
|
|
|
HRESULT FireDebuggerEvent(
|
|
[in] REFGUID riid,
|
|
[in] IUnknown *punk);
|
|
|
|
HRESULT HandleRuntimeError(
|
|
[in] IActiveScriptErrorDebug *pErrorDebug,
|
|
[in] IActiveScriptSite *pScriptSite,
|
|
[out] BREAKRESUMEACTION *pbra,
|
|
[out] ERRORRESUMEACTION *perra,
|
|
[out] BOOL *pfCallOnScriptError);
|
|
|
|
BOOL FCanJitDebug();
|
|
|
|
BOOL FIsAutoJitDebugEnabled();
|
|
|
|
HRESULT AddGlobalExpressionContextProvider(
|
|
[in] IProvideExpressionContexts *pdsfs,
|
|
[out] DWORDLONG *pdwCookie);
|
|
|
|
HRESULT RemoveGlobalExpressionContextProvider(
|
|
[in] DWORDLONG dwCookie);
|
|
}
|
|
|
|
/************************************************************
|
|
* interface IActiveScriptSiteDebug32
|
|
*/
|
|
[
|
|
object,
|
|
uuid(51973c11-cb0c-11d0-b5c9-00a0244a0e7a),
|
|
pointer_default(unique),
|
|
local
|
|
]
|
|
interface IActiveScriptSiteDebug32 : IUnknown
|
|
{
|
|
HRESULT GetDocumentContextFromPosition(
|
|
[in] DWORD dwSourceContext,
|
|
[in] ULONG uCharacterOffset,
|
|
[in] ULONG uNumChars,
|
|
[out] IDebugDocumentContext **ppsc);
|
|
|
|
HRESULT GetApplication(
|
|
[out] IDebugApplication32 **ppda);
|
|
|
|
HRESULT GetRootApplicationNode(
|
|
[out] IDebugApplicationNode **ppdanRoot);
|
|
|
|
HRESULT OnScriptErrorDebug(
|
|
[in] IActiveScriptErrorDebug *pErrorDebug,
|
|
[out] BOOL *pfEnterDebugger,
|
|
[out] BOOL *pfCallOnScriptErrorWhenContinuing);
|
|
}
|
|
|
|
/************************************************************
|
|
* interface IActiveScriptSiteDebug64
|
|
*/
|
|
[
|
|
object,
|
|
uuid(d6b96b0a-7463-402c-92ac-89984226942f),
|
|
pointer_default(unique),
|
|
local
|
|
]
|
|
interface IActiveScriptSiteDebug64 : IUnknown
|
|
{
|
|
HRESULT GetDocumentContextFromPosition(
|
|
[in] DWORDLONG dwSourceContext,
|
|
[in] ULONG uCharacterOffset,
|
|
[in] ULONG uNumChars,
|
|
[out] IDebugDocumentContext **ppsc);
|
|
|
|
HRESULT GetApplication(
|
|
[out] IDebugApplication64 **ppda);
|
|
|
|
HRESULT GetRootApplicationNode(
|
|
[out] IDebugApplicationNode **ppdanRoot);
|
|
|
|
HRESULT OnScriptErrorDebug(
|
|
[in] IActiveScriptErrorDebug *pErrorDebug,
|
|
[out] BOOL *pfEnterDebugger,
|
|
[out] BOOL *pfCallOnScriptErrorWhenContinuing);
|
|
}
|
|
|
|
cpp_quote("#ifndef DISABLE_ACTIVDBG_INTERFACE_WRAPPERS")
|
|
cpp_quote("#ifdef _WIN64")
|
|
|
|
cpp_quote("#define IActiveScriptDebug IActiveScriptDebug64")
|
|
cpp_quote("#define IID_IActiveScriptDebug IID_IActiveScriptDebug64")
|
|
|
|
cpp_quote("#define IActiveScriptSiteDebug IActiveScriptSiteDebug64")
|
|
cpp_quote("#define IID_IActiveScriptSiteDebug IID_IActiveScriptSiteDebug64")
|
|
|
|
cpp_quote("#define IDebugApplication IDebugApplication64")
|
|
cpp_quote("#define IID_IDebugApplication IID_IDebugApplication64")
|
|
|
|
cpp_quote("#else")
|
|
|
|
cpp_quote("#define IActiveScriptDebug IActiveScriptDebug32")
|
|
cpp_quote("#define IID_IActiveScriptDebug IID_IActiveScriptDebug32")
|
|
|
|
cpp_quote("#define IActiveScriptSiteDebug IActiveScriptSiteDebug32")
|
|
cpp_quote("#define IID_IActiveScriptSiteDebug IID_IActiveScriptSiteDebug32")
|
|
|
|
cpp_quote("#define IDebugApplication IDebugApplication32")
|
|
cpp_quote("#define IID_IDebugApplication IID_IDebugApplication32")
|
|
|
|
cpp_quote("#endif")
|
|
cpp_quote("#endif")
|