-/*\r
- * Copyright 2008 Jacek Caban for CodeWeavers\r
- *\r
- * This library is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU Lesser General Public\r
- * License as published by the Free Software Foundation; either\r
- * version 2.1 of the License, or (at your option) any later version.\r
- *\r
- * This library is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * Lesser General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU Lesser General Public\r
- * License along with this library; if not, write to the Free Software\r
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA\r
- */\r
-\r
-import "ocidl.idl";\r
-import "activscp.idl";\r
-/* import "dbgprop.idl"; */\r
-\r
-interface IDebugDocumentContext;\r
-interface IRemoteDebugApplication;\r
-\r
-/* FIXME: */\r
-interface IEnumDebugStackFrames;\r
-interface IDebugStackFrame;\r
-interface IApplicationDebugger;\r
-interface IEnumRemoteDebugApplicationThreads;\r
-interface IDebugApplicationNode;\r
-interface IEnumDebugExpressionContexts;\r
-interface IDebugApplicationThread;\r
-interface IDebugSyncOperation;\r
-interface IDebugAsyncOperation;\r
-interface IDebugStackFrameSniffer;\r
-interface IDebugThreadCall32;\r
-interface IActiveScriptErrorDebug;\r
-interface IProvideExpressionContexts;\r
-\r
-typedef enum tagBREAKPOINT_STATE {\r
- BREAKPOINT_DELETED,\r
- BREAKPOINT_DISABLED,\r
- BREAKPOINT_ENABLED\r
-} BREAKPOINT_STATE;\r
-\r
-typedef DWORD APPBREAKFLAGS;\r
-\r
-typedef enum tagBREAKREASON {\r
- BREAKREASON_STEP,\r
- BREAKREASON_BREAKPOINT,\r
- BREAKREASON_DEBUGGER_BLOCK,\r
- BREAKREASON_HOST_INITIATED,\r
- BREAKREASON_LANGUAGE_INITIATED,\r
- BREAKREASON_DEBUGGER_HALT,\r
- BREAKREASON_ERROR,\r
- BREAKREASON_JIT\r
-} BREAKREASON;\r
-\r
-typedef enum tagBREAKRESUME_ACTION {\r
- BREAKRESUMEACTION_ABORT,\r
- BREAKRESUMEACTION_CONTINUE,\r
- BREAKRESUMEACTION_STEP_INTO,\r
- BREAKRESUMEACTION_STEP_OVER,\r
- BREAKRESUMEACTION_STEP_OUT,\r
- BREAKRESUMEACTION_IGNORE\r
-} BREAKRESUMEACTION;\r
-\r
-typedef enum tagDOCUMENTNAMETYPE {\r
- DOCUMENTNAMETYPE_APPNODE,\r
- DOCUMENTNAMETYPE_TITLE,\r
- DOCUMENTNAMETYPE_FILE_TAIL,\r
- DOCUMENTNAMETYPE_URL\r
-} DOCUMENTNAMETYPE;\r
-\r
-typedef enum tagERRORRESUMEACTION {\r
- ERRORRESUMEACTION_ReexecuteErrorStatement,\r
- ERRORRESUMEACTION_AbortCallAndReturnErrorToCaller,\r
- ERRORRESUMEACTION_SkipErrorStatement,\r
-} ERRORRESUMEACTION;\r
-\r
-/************************************************************\r
- * interface IDebugDocumentInfo\r
- */\r
-[\r
- object,\r
- uuid(51973c1f-cb0c-11d0-b5c9-00a0244a0e7a),\r
- pointer_default(unique)\r
-]\r
-interface IDebugDocumentInfo : IUnknown\r
-{\r
- HRESULT GetName(\r
- [in] DOCUMENTNAMETYPE dnt,\r
- [out] BSTR *pbstrName);\r
-\r
- HRESULT GetDocumentClassId(\r
- [out] CLSID *pclsidDocument);\r
-}\r
-\r
-/************************************************************\r
- * interface IDebugDocument\r
- */\r
-[\r
- object,\r
- uuid(51973c21-cb0c-11d0-b5c9-00a0244a0e7a),\r
- pointer_default(unique)\r
-]\r
-interface IDebugDocument : IDebugDocumentInfo\r
-{\r
-}\r
-\r
-/************************************************************\r
- * interface IDebugCodeContext\r
- */\r
-[\r
- object,\r
- uuid(51973c13-cb0c-11d0-b5c9-00a0244a0e7a),\r
- pointer_default(unique)\r
-]\r
-interface IDebugCodeContext : IUnknown\r
-{\r
- HRESULT GetDocumentContext(\r
- [out] IDebugDocumentContext **ppsc);\r
-\r
- HRESULT SetBreakPoint(\r
- [in] BREAKPOINT_STATE bps);\r
-}\r
-\r
-/************************************************************\r
- * interface IEnumDebugCodeContexts\r
- */\r
-[\r
- object,\r
- uuid(51973c1d-cb0c-11d0-b5c9-00a0244a0e7a),\r
- pointer_default(unique)\r
-]\r
-interface IEnumDebugCodeContexts : IUnknown\r
-{\r
- HRESULT Next(\r
- [in] ULONG celt,\r
- [out] IDebugCodeContext **pscc,\r
- [out] ULONG *pceltFetched);\r
-\r
- HRESULT Skip(\r
- [in] ULONG celt);\r
-\r
- HRESULT Reset();\r
-\r
- HRESULT Clone(\r
- [out] IEnumDebugCodeContexts **ppescc);\r
-}\r
-\r
-/************************************************************\r
- * interface IDebugDocumentContext\r
- */\r
-[\r
- object,\r
- uuid(51973c28-cb0c-11d0-b5c9-00a0244a0e7a),\r
- pointer_default(unique)\r
-]\r
-interface IDebugDocumentContext : IUnknown\r
-{\r
- HRESULT GetDocument(\r
- [out] IDebugDocument **ppsd);\r
-\r
- HRESULT EnumCodeContexts(\r
- [out] IEnumDebugCodeContexts **ppescc);\r
-}\r
-\r
-/************************************************************\r
- * interface IRemoteDebugApplicationThread\r
- */\r
-[\r
- object,\r
- uuid(51973c37-cb0c-11d0-b5c9-00a0244a0e7a),\r
- pointer_default(unique)\r
-]\r
-interface IRemoteDebugApplicationThread : IUnknown\r
-{\r
- HRESULT GetSystemThreadId(\r
- [out] DWORD *dwThreadId);\r
-\r
- HRESULT GetApplication(\r
- [out] IRemoteDebugApplication **pprda);\r
-\r
- HRESULT EnumStackFrames(\r
- [out] IEnumDebugStackFrames **ppedsf);\r
-\r
- HRESULT GetDescription(\r
- [out] BSTR *pbstrDescription,\r
- [out] BSTR *pbstrState);\r
-\r
- HRESULT SetNextStatement(\r
- [in] IDebugStackFrame *pStackFrame,\r
- [in] IDebugCodeContext *pCodeContext);\r
-\r
- HRESULT GetState(\r
- [out] DWORD *pState);\r
-\r
- HRESULT Suspend(\r
- [out] DWORD *pdwCount);\r
-\r
- HRESULT Resume(\r
- [out] DWORD *pdwCount);\r
-\r
- HRESULT GetSuspendCount(\r
- [out] DWORD *pdwCount);\r
-}\r
-\r
-/************************************************************\r
- * interface IRemoteDebugApplication\r
- */\r
-[\r
- object,\r
- uuid(51973c30-cb0c-11d0-b5c9-00a0244Aae7a),\r
- pointer_default(unique)\r
-]\r
-interface IRemoteDebugApplication : IUnknown\r
-{\r
- HRESULT ResumeFromBreakPoint(\r
- [in] IRemoteDebugApplicationThread *prptFocus,\r
- [in] BREAKRESUMEACTION bra,\r
- [in] ERRORRESUMEACTION era);\r
-\r
- HRESULT CauseBreak();\r
-\r
- HRESULT ConnectDebugger(\r
- [in] IApplicationDebugger *pad);\r
-\r
- HRESULT DisconnectDebugger();\r
-\r
- HRESULT GetDebugger(\r
- [out] IApplicationDebugger **pad);\r
-\r
- HRESULT CreateInstanceAtApplication(\r
- [in] REFCLSID rclsid,\r
- [in] IUnknown *pUnkOuter,\r
- [in] DWORD dwClsContext,\r
- [in] REFIID riid,\r
- [out, iid_is(riid)] IUnknown **ppvObject);\r
-\r
- HRESULT QueryAlive();\r
-\r
- HRESULT EnumThreads(\r
- [out] IEnumRemoteDebugApplicationThreads **pperdat);\r
-\r
- HRESULT GetName(\r
- [out] BSTR *pbstrName);\r
-\r
- HRESULT GetRootNode(\r
- [out] IDebugApplicationNode **ppdanRoot);\r
-\r
- HRESULT EnumGlobalExpressionContexts(\r
- [out] IEnumDebugExpressionContexts **ppedec);\r
-}\r
-\r
-/************************************************************\r
- * interface IDebugApplication32\r
- */\r
-[\r
- object,\r
- uuid(51973c32-cb0c-11d0-b5c9-00a0244a0e7a),\r
- pointer_default(unique),\r
- local\r
-]\r
-interface IDebugApplication32 : IRemoteDebugApplication\r
-{\r
- HRESULT SetName(\r
- [in] LPCOLESTR pstrName);\r
-\r
- HRESULT StepOutComplete();\r
-\r
- HRESULT DebugOutput(\r
- [in] LPCOLESTR pstr);\r
-\r
- HRESULT StartDebugSession();\r
-\r
- HRESULT HandleBreakPoint(\r
- [in] BREAKREASON br,\r
- [out] BREAKRESUMEACTION *pbra);\r
-\r
- HRESULT Close();\r
-\r
- HRESULT GetBreakFlags(\r
- [out] APPBREAKFLAGS *pabf,\r
- [out] IRemoteDebugApplicationThread **pprdatSteppingThread);\r
-\r
- HRESULT GetCurrentThread(\r
- [out] IDebugApplicationThread **pat);\r
-\r
- HRESULT CreateAsyncDebugOperation(\r
- [in] IDebugSyncOperation *psdo,\r
- [out] IDebugAsyncOperation **ppado);\r
-\r
- HRESULT AddStackFrameSniffer(\r
- [in] IDebugStackFrameSniffer *pdsfs,\r
- [out] DWORD *pdwCookie);\r
-\r
- HRESULT RemoveStackFrameSniffer(\r
- [in] DWORD dwCookie);\r
-\r
- HRESULT QueryCurrentThreadIsDebuggerThread();\r
-\r
- HRESULT SynchronousCallInDebuggerThread(\r
- [in] IDebugThreadCall32 *pptc,\r
- [in] DWORD dwParam1,\r
- [in] DWORD dwParam2,\r
- [in] DWORD dwParam3);\r
-\r
- HRESULT CreateApplicationNode(\r
- [out] IDebugApplicationNode **ppdanNew);\r
-\r
- HRESULT FireDebuggerEvent(\r
- [in] REFGUID riid,\r
- [in] IUnknown *punk);\r
-\r
- HRESULT HandleRuntimeError(\r
- [in] IActiveScriptErrorDebug *pErrorDebug,\r
- [in] IActiveScriptSite *pScriptSite,\r
- [out] BREAKRESUMEACTION *pbra,\r
- [out] ERRORRESUMEACTION *perra,\r
- [out] BOOL *pfCallOnScriptError);\r
-\r
- BOOL FCanJitDebug();\r
-\r
- BOOL FIsAutoJitDebugEnabled();\r
-\r
- HRESULT AddGlobalExpressionContextProvider(\r
- [in] IProvideExpressionContexts *pdsfs,\r
- [out] DWORD *pdwCookie);\r
-\r
- HRESULT RemoveGlobalExpressionContextProvider(\r
- [in] DWORD dwCookie);\r
-}\r
-\r
-/************************************************************\r
- * interface IActiveScriptSiteDebug32\r
- */\r
-[\r
- object,\r
- uuid(51973c11-cb0c-11d0-b5c9-00a0244a0e7a),\r
- pointer_default(unique),\r
- local\r
-]\r
-interface IActiveScriptSiteDebug32 : IUnknown\r
-{\r
- HRESULT GetDocumentContextFromPosition(\r
- [in] DWORD dwSourceContext,\r
- [in] ULONG uCharacterOffset,\r
- [in] ULONG uNumChars,\r
- [out] IDebugDocumentContext **ppsc);\r
-\r
- HRESULT GetApplication(\r
- [out] IDebugApplication32 **ppda);\r
-\r
- HRESULT GetRootApplicationNode(\r
- [out] IDebugApplicationNode **ppdanRoot);\r
-\r
- HRESULT OnScriptErrorDebug(\r
- [in] IActiveScriptErrorDebug *pErrorDebug,\r
- [out] BOOL *pfEnterDebugger,\r
- [out] BOOL *pfCallOnScriptErrorWhenContinuing);\r
-}\r
-\r
-cpp_quote("#ifndef DISABLE_ACTIVDBG_INTERFACE_WRAPPERS")\r
-cpp_quote("#ifdef _WIN64")\r
-\r
-cpp_quote("#define IActiveScriptSiteDebug IActiveScriptSiteDebug64")\r
-cpp_quote("#define IID_IActiveScriptSiteDebug IID_IActiveScriptSiteDebug64")\r
-\r
-cpp_quote("#define IDebugApplication IDebugApplication64")\r
-cpp_quote("#define IID_IDebugApplication IID_IDebugApplication64")\r
-\r
-cpp_quote("#else")\r
-\r
-cpp_quote("#define IActiveScriptSiteDebug IActiveScriptSiteDebug32")\r
-cpp_quote("#define IID_IActiveScriptSiteDebug IID_IActiveScriptSiteDebug32")\r
-\r
-cpp_quote("#define IDebugApplication IDebugApplication32")\r
-cpp_quote("#define IID_IDebugApplication IID_IDebugApplication32")\r
-\r
-cpp_quote("#endif")\r
-cpp_quote("#endif")\r
+/*
+ * 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);
+}
+
+[
+ object,
+ uuid(51973C17-CB0C-11d0-B5C9-00A0244A0E7A),
+ pointer_default(unique)
+]
+interface IDebugStackFrame : IUnknown
+{
+ /* FIXME: fill me! */
+}
+
+[
+ object,
+ uuid(51973C1e-CB0C-11d0-B5C9-00A0244A0E7A),
+ pointer_default(unique)
+]
+interface IEnumDebugStackFrames : IUnknown
+{
+ /* FIXME: fill me! */
+}
+
+[
+ object,
+ uuid(51973C2a-CB0C-11d0-B5C9-00A0244A0E7A),
+ pointer_default(unique)
+]
+interface IApplicationDebugger : IUnknown
+{
+ /* FIXME: fill me! */
+};
+
+[
+ object,
+ uuid(51973C3c-CB0C-11d0-B5C9-00A0244A0E7A),
+ pointer_default(unique)
+]
+interface IEnumRemoteDebugApplicationThreads : IUnknown
+{
+ /* FIXME: fill me! */
+}
+
+[
+ object,
+ uuid(51973C34-CB0C-11d0-B5C9-00A0244A0E7A),
+ pointer_default(unique)
+]
+interface IDebugApplicationNode : IUnknown
+{
+ /* FIXME: fill me! */
+}
+
+[
+ object,
+ uuid(51973C40-CB0C-11d0-B5C9-00A0244A0E7A),
+ pointer_default(unique)
+]
+interface IEnumDebugExpressionContexts : IUnknown
+{
+ /* FIXME: fill me! */
+}
+
+[
+ object,
+ uuid(51973c38-cb0c-11d0-b5c9-00a0244a0e7a),
+ pointer_default(unique),
+ local
+]
+interface IDebugApplicationThread : IRemoteDebugApplicationThread
+{
+ /* FIXME: fill me! */
+}
+
+[
+ object,
+ uuid(51973C1a-cb0c-11d0-b5c9-00a0244a0e7a),
+ pointer_default(unique),
+ local
+]
+interface IDebugSyncOperation : IUnknown
+{
+ /* FIXME: fill me! */
+}
+
+[
+ object,
+ uuid(51973c1b-cb0c-11d0-b5c9-00a0244a0e7a),
+ pointer_default(unique),
+ local
+]
+interface IDebugAsyncOperation : IUnknown
+{
+ /* FIXME: fill me! */
+}
+
+[
+ object,
+ uuid(51973c18-cb0c-11d0-b5c9-00a0244a0e7a),
+ pointer_default(unique)
+]
+interface IDebugStackFrameSniffer : IUnknown
+{
+ /* FIXME: fill me! */
+}
+
+[
+ object,
+ uuid(51973C36-CB0C-11d0-B5C9-00A0244A0E7A),
+ pointer_default(unique),
+ local
+]
+interface IDebugThreadCall32 : IUnknown
+{
+ /* FIXME: fill me! */
+}
+
+[
+ object,
+ uuid(51973C12-CB0C-11d0-B5C9-00A0244A0E7A),
+ pointer_default(unique)
+]
+interface IActiveScriptErrorDebug : IActiveScriptError
+{
+ /* FIXME: fill me! */
+}
+
+[
+ object,
+ uuid(51973C41-CB0C-11d0-B5C9-00A0244A0E7A),
+ pointer_default(unique)
+]
+interface IProvideExpressionContexts : IUnknown
+{
+ /* FIXME: fill me! */
+}
+
+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")