| /* | |
| * 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); | |
| 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") |