From 1ab87d4dee37800b3f44a01dda66e430a7d0d92c Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Tue, 1 Apr 2008 11:48:29 +0000 Subject: [PATCH] include: Added activedbg.idl. --- .gitignore | 1 + dlls/uuid/uuid.c | 1 + include/Makefile.in | 1 + include/activdbg.idl | 383 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 386 insertions(+) create mode 100644 include/activdbg.idl diff --git a/.gitignore b/.gitignore index da8d139a1bb..7837b5b7d78 100644 --- a/.gitignore +++ b/.gitignore @@ -479,6 +479,7 @@ dlls/ws2_32/tests/ws2_32_crosstest.exe dlls/wsock32/libwsock32.def dlls/wtsapi32/libwtsapi32.def include/activaut.h +include/activdbg.h include/activscp.h include/amstream.h include/amvideo.h diff --git a/dlls/uuid/uuid.c b/dlls/uuid/uuid.c index 4608d723108..ecac2659878 100644 --- a/dlls/uuid/uuid.c +++ b/dlls/uuid/uuid.c @@ -52,6 +52,7 @@ DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0); #include "urlmon.h" #define _NO_AUTHOR_GUIDS #include "activaut.h" +#include "activdbg.h" #define _NO_SCRIPT_GUIDS #include "activscp.h" #include "dispex.h" diff --git a/include/Makefile.in b/include/Makefile.in index 50af56b9bd1..efcd92caa0e 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -6,6 +6,7 @@ MODULE = none IDL_H_SRCS = \ activaut.idl \ + activdbg.idl \ activscp.idl \ amstream.idl \ amvideo.idl \ diff --git a/include/activdbg.idl b/include/activdbg.idl new file mode 100644 index 00000000000..b41ae0906b7 --- /dev/null +++ b/include/activdbg.idl @@ -0,0 +1,383 @@ +/* + * 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")