| /* |
| * 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; |
| |
| /* 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; |
| |
| /************************************************************ |
| * 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 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); |
| } |
| |
| cpp_quote("#ifndef DISABLE_ACTIVDBG_INTERFACE_WRAPPERS") |
| cpp_quote("#ifdef _WIN64") |
| |
| 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 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") |