activdbg.idl 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830
  1. /**
  2. * This file is part of the mingw-w64 runtime package.
  3. * No warranty is given; refer to the file DISCLAIMER within this package.
  4. */
  5. #ifndef DO_NO_IMPORTS
  6. import "ocidl.idl";
  7. import "oleidl.idl";
  8. import "oaidl.idl";
  9. #ifndef AD7_NO_AD7_IMPORTS
  10. import "activscp.idl";
  11. import "dbgprop.idl";
  12. #endif
  13. #endif
  14. cpp_quote("#include <winapifamily.h>")
  15. cpp_quote("")
  16. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
  17. cpp_quote("")
  18. cpp_quote("#ifndef __ActivDbg_h")
  19. cpp_quote("#define __ActivDbg_h")
  20. interface IActiveScriptDebug32;
  21. interface IActiveScriptDebug64;
  22. interface IActiveScriptErrorDebug;
  23. interface IActiveScriptSiteDebug32;
  24. interface IActiveScriptSiteDebug64;
  25. interface IActiveScriptSiteDebugEx;
  26. interface IActiveScriptTextInfo;
  27. interface IApplicationDebugger;
  28. interface IDebugApplication32;
  29. interface IDebugApplication64;
  30. interface IDebugApplicationNode;
  31. interface IDebugApplicationNodeEvents;
  32. interface IDebugApplicationThread;
  33. interface IDebugAsyncOperation;
  34. interface IDebugAsyncOperationCallBack;
  35. interface IDebugCodeContext;
  36. interface IDebugDocument;
  37. interface IDebugDocumentContext;
  38. interface IDebugDocumentHelper32;
  39. interface IDebugDocumentHelper64;
  40. interface IDebugDocumentHost;
  41. interface IDebugDocumentInfo;
  42. interface IDebugDocumentProvider;
  43. interface IDebugDocumentText;
  44. interface IDebugDocumentTextAuthor;
  45. interface IDebugDocumentTextEvents;
  46. interface IDebugExpression;
  47. interface IDebugExpressionCallBack;
  48. interface IDebugExpressionContext;
  49. interface IDebugFormatter;
  50. interface IDebugSessionProvider;
  51. interface IDebugStackFrame;
  52. interface IDebugStackFrameSniffer;
  53. interface IDebugSyncOperation;
  54. interface IDebugThreadCall32;
  55. interface IDebugThreadCall64;
  56. interface IEnumActiveScriptDebugs;
  57. interface IEnumDebugApplicationNodes;
  58. interface IEnumDebugCodeContexts;
  59. interface IEnumDebugDocumentContexts;
  60. interface IEnumDebugExpressionContexts;
  61. interface IEnumDebugObjectBrowsers;
  62. interface IEnumDebugStackFrames;
  63. interface IEnumDebugStackFrames64;
  64. interface IEnumRemoteDebugApplications;
  65. interface IEnumRemoteDebugApplicationThreads;
  66. interface IMachineDebugManager;
  67. interface IMachineDebugManagerCookie;
  68. interface IMachineDebugManagerEvents;
  69. interface IProcessDebugManager;
  70. interface IProvideExpressionContexts;
  71. interface IRemoteDebugApplication;
  72. interface IRemoteDebugApplicationThread;
  73. typedef DWORD APPBREAKFLAGS;
  74. typedef WORD SOURCE_TEXT_ATTR;
  75. typedef DWORD TEXT_DOC_ATTR;
  76. typedef enum tagBREAKPOINT_STATE {
  77. BREAKPOINT_DELETED = 0,
  78. BREAKPOINT_DISABLED = 1,
  79. BREAKPOINT_ENABLED = 2
  80. } BREAKPOINT_STATE;
  81. typedef enum tagBREAKREASON {
  82. BREAKREASON_STEP,
  83. BREAKREASON_BREAKPOINT,
  84. BREAKREASON_DEBUGGER_BLOCK,
  85. BREAKREASON_HOST_INITIATED,
  86. BREAKREASON_LANGUAGE_INITIATED,
  87. BREAKREASON_DEBUGGER_HALT,
  88. BREAKREASON_ERROR,
  89. BREAKREASON_JIT
  90. } BREAKREASON;
  91. typedef enum tagBREAKRESUME_ACTION {
  92. BREAKRESUMEACTION_ABORT,
  93. BREAKRESUMEACTION_CONTINUE,
  94. BREAKRESUMEACTION_STEP_INTO,
  95. BREAKRESUMEACTION_STEP_OVER,
  96. BREAKRESUMEACTION_STEP_OUT,
  97. BREAKRESUMEACTION_IGNORE,
  98. } BREAKRESUMEACTION;
  99. typedef enum tagDOCUMENTNAMETYPE {
  100. DOCUMENTNAMETYPE_APPNODE,
  101. DOCUMENTNAMETYPE_TITLE,
  102. DOCUMENTNAMETYPE_FILE_TAIL,
  103. DOCUMENTNAMETYPE_URL,
  104. DOCUMENTNAMETYPE_UNIQUE_TITLE,
  105. } DOCUMENTNAMETYPE;
  106. typedef enum tagERRORRESUMEACTION {
  107. ERRORRESUMEACTION_ReexecuteErrorStatement,
  108. ERRORRESUMEACTION_AbortCallAndReturnErrorToCaller,
  109. ERRORRESUMEACTION_SkipErrorStatement,
  110. } ERRORRESUMEACTION;
  111. typedef struct tagDebugStackFrameDescriptor {
  112. IDebugStackFrame *pdsf;
  113. DWORD dwMin;
  114. DWORD dwLim;
  115. BOOL fFinal;
  116. IUnknown *punkFinal;
  117. } DebugStackFrameDescriptor;
  118. typedef struct tagDebugStackFrameDescriptor64 {
  119. IDebugStackFrame *pdsf;
  120. DWORDLONG dwMin;
  121. DWORDLONG dwLim;
  122. BOOL fFinal;
  123. IUnknown *punkFinal;
  124. } DebugStackFrameDescriptor64;
  125. const APPBREAKFLAGS APPBREAKFLAG_DEBUGGER_BLOCK = 0x00000001;
  126. const APPBREAKFLAGS APPBREAKFLAG_DEBUGGER_HALT = 0x00000002;
  127. const APPBREAKFLAGS APPBREAKFLAG_STEP = 0x00010000;
  128. const APPBREAKFLAGS APPBREAKFLAG_NESTED = 0x00020000;
  129. const APPBREAKFLAGS APPBREAKFLAG_STEPTYPE_SOURCE = 0x00000000;
  130. const APPBREAKFLAGS APPBREAKFLAG_STEPTYPE_BYTECODE = 0x00100000;
  131. const APPBREAKFLAGS APPBREAKFLAG_STEPTYPE_MACHINE = 0x00200000;
  132. const APPBREAKFLAGS APPBREAKFLAG_STEPTYPE_MASK = 0x00f00000;
  133. const APPBREAKFLAGS APPBREAKFLAG_IN_BREAKPOINT = 0x80000000;
  134. const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_KEYWORD = 0x1;
  135. const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_COMMENT = 0x2;
  136. const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_NONSOURCE = 0x4;
  137. const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_OPERATOR = 0x8;
  138. const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_NUMBER = 0x10;
  139. const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_STRING = 0x20;
  140. const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_FUNCTION_START = 0x40;
  141. const TEXT_DOC_ATTR TEXT_DOC_ATTR_READONLY = 0x1;
  142. const TEXT_DOC_ATTR TEXT_DOC_ATTR_TYPE_PRIMARY = 0x2;
  143. const TEXT_DOC_ATTR TEXT_DOC_ATTR_TYPE_WORKER = 0x4;
  144. const TEXT_DOC_ATTR TEXT_DOC_ATTR_TYPE_SCRIPT = 0x8;
  145. cpp_quote("")
  146. const DWORD DEBUG_TEXT_ISEXPRESSION = 0x1;
  147. const DWORD DEBUG_TEXT_RETURNVALUE = 0x2;
  148. const DWORD DEBUG_TEXT_NOSIDEEFFECTS = 0x4;
  149. const DWORD DEBUG_TEXT_ALLOWBREAKPOINTS = 0x8;
  150. const DWORD DEBUG_TEXT_ALLOWERRORREPORT = 0x10;
  151. const DWORD DEBUG_TEXT_EVALUATETOCODECONTEXT = 0x20;
  152. cpp_quote("#ifndef DISABLE_ACTIVDBG_INTERFACE_WRAPPERS")
  153. cpp_quote("#ifdef _WIN64")
  154. cpp_quote("#define IDebugApplication IDebugApplication64")
  155. cpp_quote("#define IID_IDebugApplication IID_IDebugApplication64")
  156. cpp_quote("#define IDebugThreadCall IDebugThreadCall64")
  157. cpp_quote("#define IID_IDebugThreadCall IID_IDebugThreadCall64")
  158. cpp_quote("#define SynchronousCallIntoThread SynchronousCallIntoThread64")
  159. cpp_quote("#define IActiveScriptDebug IActiveScriptDebug64")
  160. cpp_quote("#define IID_IActiveScriptDebug IID_IActiveScriptDebug64")
  161. cpp_quote("#define IActiveScriptSiteDebug IActiveScriptSiteDebug64")
  162. cpp_quote("#define IID_IActiveScriptSiteDebug IID_IActiveScriptSiteDebug64")
  163. cpp_quote("#define IDebugStackFrameSnifferEx IDebugStackFrameSnifferEx64")
  164. cpp_quote("#define IID_IDebugStackFrameSnifferEx IID_IDebugStackFrameSnifferEx64")
  165. cpp_quote("#define EnumStackFramesEx EnumStackFramesEx64")
  166. cpp_quote("#define IDebugDocumentHelper IDebugDocumentHelper64")
  167. cpp_quote("#define IID_IDebugDocumentHelper IID_IDebugDocumentHelper64")
  168. cpp_quote("#define IProcessDebugManager IProcessDebugManager64")
  169. cpp_quote("#define IID_IProcessDebugManager IID_IProcessDebugManager64")
  170. cpp_quote("#else")
  171. cpp_quote("#define IDebugApplication IDebugApplication32")
  172. cpp_quote("#define IID_IDebugApplication IID_IDebugApplication32")
  173. cpp_quote("#define IDebugThreadCall IDebugThreadCall32")
  174. cpp_quote("#define IID_IDebugThreadCall IID_IDebugThreadCall32")
  175. cpp_quote("#define SynchronousCallIntoThread SynchronousCallIntoThread32")
  176. cpp_quote("#define IActiveScriptDebug IActiveScriptDebug32")
  177. cpp_quote("#define IID_IActiveScriptDebug IID_IActiveScriptDebug32")
  178. cpp_quote("#define IActiveScriptSiteDebug IActiveScriptSiteDebug32")
  179. cpp_quote("#define IID_IActiveScriptSiteDebug IID_IActiveScriptSiteDebug32")
  180. cpp_quote("#define IDebugStackFrameSnifferEx IDebugStackFrameSnifferEx32")
  181. cpp_quote("#define IID_IDebugStackFrameSnifferEx IID_IDebugStackFrameSnifferEx32")
  182. cpp_quote("#define EnumStackFramesEx EnumStackFramesEx32")
  183. cpp_quote("#define IDebugDocumentHelper IDebugDocumentHelper32")
  184. cpp_quote("#define IID_IDebugDocumentHelper IID_IDebugDocumentHelper32")
  185. cpp_quote("#define IProcessDebugManager IProcessDebugManager32")
  186. cpp_quote("#define IID_IProcessDebugManager IID_IProcessDebugManager32")
  187. cpp_quote("#endif")
  188. cpp_quote("#endif")
  189. cpp_quote("EXTERN_C const CLSID CLSID_DebugHelper;")
  190. cpp_quote("EXTERN_C const CLSID CLSID_MachineDebugManager;")
  191. cpp_quote("EXTERN_C const CLSID CLSID_ProcessDebugManager;")
  192. [object, uuid (51973c10-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  193. interface IActiveScriptDebug32 : IUnknown {
  194. 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);
  195. 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);
  196. HRESULT EnumCodeContextsOfPosition ([in] DWORD dwSourceContext,[in] ULONG uCharacterOffset,[in] ULONG uNumChars,[out] IEnumDebugCodeContexts **ppescc);
  197. }
  198. [object, uuid (bc437e23-f5b8-47f4-bb79-7d1ce5483b86), pointer_default (unique)]
  199. interface IActiveScriptDebug64 : IUnknown {
  200. 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);
  201. 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);
  202. HRESULT EnumCodeContextsOfPosition ([in] DWORDLONG dwSourceContext,[in] ULONG uCharacterOffset,[in] ULONG uNumChars,[out] IEnumDebugCodeContexts **ppescc);
  203. }
  204. [object, local, uuid (51973c11-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  205. interface IActiveScriptSiteDebug32 : IUnknown {
  206. HRESULT GetDocumentContextFromPosition ([in] DWORD dwSourceContext,[in] ULONG uCharacterOffset,[in] ULONG uNumChars,[out] IDebugDocumentContext **ppsc);
  207. HRESULT GetApplication ([out] IDebugApplication32 **ppda);
  208. HRESULT GetRootApplicationNode ([out] IDebugApplicationNode **ppdanRoot);
  209. HRESULT OnScriptErrorDebug ([in] IActiveScriptErrorDebug *pErrorDebug,[out] BOOL *pfEnterDebugger,[out] BOOL *pfCallOnScriptErrorWhenContinuing);
  210. }
  211. [object, local, uuid (d6b96b0a-7463-402c-92ac-89984226942f), pointer_default (unique)]
  212. interface IActiveScriptSiteDebug64 : IUnknown {
  213. HRESULT GetDocumentContextFromPosition ([in] DWORDLONG dwSourceContext,[in] ULONG uCharacterOffset,[in] ULONG uNumChars,[out] IDebugDocumentContext **ppsc);
  214. HRESULT GetApplication ([out] IDebugApplication64 **ppda);
  215. HRESULT GetRootApplicationNode ([out] IDebugApplicationNode **ppdanRoot);
  216. HRESULT OnScriptErrorDebug ([in] IActiveScriptErrorDebug *pErrorDebug,[out] BOOL *pfEnterDebugger,[out] BOOL *pfCallOnScriptErrorWhenContinuing);
  217. }
  218. [object, local, uuid (BB722CCB-6ad2-41c6-b780-af9c03ee69f5), pointer_default (unique)]
  219. interface IActiveScriptSiteDebugEx : IUnknown {
  220. HRESULT OnCanNotJITScriptErrorDebug ([in] IActiveScriptErrorDebug *pErrorDebug,[out] BOOL *pfCallOnScriptErrorWhenContinuing);
  221. }
  222. [object, uuid (51973c12-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  223. interface IActiveScriptErrorDebug : IActiveScriptError {
  224. HRESULT GetDocumentContext ([out] IDebugDocumentContext **ppssc);
  225. HRESULT GetStackFrame ([out] IDebugStackFrame **ppdsf);
  226. }
  227. [object, uuid (51973c13-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  228. interface IDebugCodeContext : IUnknown {
  229. HRESULT GetDocumentContext ([out] IDebugDocumentContext **ppsc);
  230. HRESULT SetBreakPoint ([in] BREAKPOINT_STATE bps);
  231. }
  232. [object, uuid (51973c14-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  233. interface IDebugExpression : IUnknown {
  234. HRESULT Start ([in] IDebugExpressionCallBack *pdecb);
  235. HRESULT Abort (void);
  236. HRESULT QueryIsComplete (void);
  237. HRESULT GetResultAsString ([out] HRESULT *phrResult,[out] BSTR *pbstrResult);
  238. HRESULT GetResultAsDebugProperty ([out] HRESULT *phrResult,[out] IDebugProperty **ppdp);
  239. }
  240. [object, uuid (51973c15-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  241. interface IDebugExpressionContext : IUnknown {
  242. HRESULT ParseLanguageText ([in] LPCOLESTR pstrCode,[in] UINT nRadix,[in] LPCOLESTR pstrDelimiter,[in] DWORD dwFlags,[out] IDebugExpression **ppe);
  243. HRESULT GetLanguageInfo ([out] BSTR *pbstrLanguageName,[out] GUID *pLanguageID);
  244. }
  245. [object, uuid (51973c16-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  246. interface IDebugExpressionCallBack : IUnknown {
  247. HRESULT onComplete (void);
  248. }
  249. [object, uuid (51973c17-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  250. interface IDebugStackFrame : IUnknown {
  251. HRESULT GetCodeContext ([out] IDebugCodeContext **ppcc);
  252. HRESULT GetDescriptionString ([in] BOOL fLong,[out] BSTR *pbstrDescription);
  253. HRESULT GetLanguageString ([in] BOOL fLong,[out] BSTR *pbstrLanguage);
  254. HRESULT GetThread ([out] IDebugApplicationThread **ppat);
  255. HRESULT GetDebugProperty ([out] IDebugProperty **ppDebugProp);
  256. }
  257. [object, uuid (51973c18-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  258. interface IDebugStackFrameSniffer : IUnknown {
  259. HRESULT EnumStackFrames ([out] IEnumDebugStackFrames **ppedsf);
  260. }
  261. [object, uuid (51973c19-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  262. interface IDebugStackFrameSnifferEx32 : IDebugStackFrameSniffer {
  263. HRESULT EnumStackFramesEx32 ([in] DWORD dwSpMin,[out] IEnumDebugStackFrames **ppedsf);
  264. };
  265. [object, uuid (8cd12af4-49c1-4d52-8d8a-c146f47581aa), pointer_default (unique)]
  266. interface IDebugStackFrameSnifferEx64 : IDebugStackFrameSniffer {
  267. HRESULT EnumStackFramesEx64 ([in] DWORDLONG dwSpMin,[out] IEnumDebugStackFrames64 **ppedsf);
  268. };
  269. [object, local, uuid (51973c1a-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  270. interface IDebugSyncOperation : IUnknown {
  271. HRESULT GetTargetThread ([out] IDebugApplicationThread **ppatTarget);
  272. HRESULT Execute ([out] IUnknown **ppunkResult);
  273. HRESULT InProgressAbort (void);
  274. }
  275. [object, local, uuid (51973c1b-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  276. interface IDebugAsyncOperation : IUnknown {
  277. HRESULT GetSyncDebugOperation ([out] IDebugSyncOperation **ppsdo);
  278. HRESULT Start (IDebugAsyncOperationCallBack *padocb);
  279. HRESULT Abort (void);
  280. HRESULT QueryIsComplete (void);
  281. HRESULT GetResult ([out] HRESULT *phrResult,[out] IUnknown **ppunkResult);
  282. }
  283. [object, local, uuid (51973c1c-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  284. interface IDebugAsyncOperationCallBack : IUnknown {
  285. HRESULT onComplete (void);
  286. }
  287. [object, uuid (51973c1d-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  288. interface IEnumDebugCodeContexts : IUnknown {
  289. [local] HRESULT __stdcall Next ([in] ULONG celt,[out] IDebugCodeContext **pscc,[out] ULONG *pceltFetched);
  290. [call_as (Next)] HRESULT __stdcall RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]IDebugCodeContext **pscc,[out] ULONG *pceltFetched);
  291. HRESULT Skip ([in] ULONG celt);
  292. HRESULT Reset (void);
  293. HRESULT Clone ([out] IEnumDebugCodeContexts **ppescc);
  294. }
  295. [object, uuid (51973c1e-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  296. interface IEnumDebugStackFrames : IUnknown {
  297. [local] HRESULT __stdcall Next ([in] ULONG celt,[out] DebugStackFrameDescriptor *prgdsfd,[out] ULONG *pceltFetched);
  298. [call_as (Next)] HRESULT __stdcall RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]DebugStackFrameDescriptor *prgdsfd,[out] ULONG *pceltFetched);
  299. HRESULT Skip ([in] ULONG celt);
  300. HRESULT Reset (void);
  301. HRESULT Clone ([out] IEnumDebugStackFrames **ppedsf);
  302. }
  303. [object, uuid (0dc38853-c1b0-4176-a984-b298361027af), pointer_default (unique)]
  304. interface IEnumDebugStackFrames64 : IEnumDebugStackFrames {
  305. [local] HRESULT __stdcall Next64 ([in] ULONG celt,[out] DebugStackFrameDescriptor64 *prgdsfd,[out] ULONG *pceltFetched);
  306. [call_as (Next64)] HRESULT __stdcall RemoteNext64 ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]DebugStackFrameDescriptor64 *prgdsfd,[out] ULONG *pceltFetched);
  307. }
  308. [object, uuid (51973c1f-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  309. interface IDebugDocumentInfo : IUnknown {
  310. HRESULT GetName ([in] DOCUMENTNAMETYPE dnt,[out] BSTR *pbstrName);
  311. HRESULT GetDocumentClassId ([out] CLSID *pclsidDocument);
  312. }
  313. [object, uuid (51973c20-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  314. interface IDebugDocumentProvider : IDebugDocumentInfo {
  315. HRESULT GetDocument ([out] IDebugDocument **ppssd);
  316. }
  317. [object, uuid (51973c21-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  318. interface IDebugDocument : IDebugDocumentInfo {
  319. }
  320. [object, uuid (51973c22-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  321. interface IDebugDocumentText : IDebugDocument {
  322. HRESULT GetDocumentAttributes ([out] TEXT_DOC_ATTR *ptextdocattr);
  323. HRESULT GetSize ([out] ULONG *pcNumLines,[out] ULONG *pcNumChars);
  324. HRESULT GetPositionOfLine ([in] ULONG cLineNumber,[out] ULONG *pcCharacterPosition);
  325. HRESULT GetLineOfPosition ([in] ULONG cCharacterPosition,[out] ULONG *pcLineNumber,[out] ULONG *pcCharacterOffsetInLine);
  326. HRESULT GetText ([in] ULONG cCharacterPosition,[in, out, length_is (*pcNumChars), size_is (cMaxChars)] WCHAR *pcharText,[in, out, length_is (*pcNumChars), size_is (cMaxChars), ptr] SOURCE_TEXT_ATTR *pstaTextAttr,[in, out] ULONG *pcNumChars,[in] ULONG cMaxChars);
  327. HRESULT GetPositionOfContext ([in] IDebugDocumentContext *psc,[out] ULONG *pcCharacterPosition,[out] ULONG *cNumChars);
  328. HRESULT GetContextOfPosition ([in] ULONG cCharacterPosition,[in] ULONG cNumChars,[out] IDebugDocumentContext **ppsc);
  329. }
  330. [object, uuid (51973c23-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  331. interface IDebugDocumentTextEvents : IUnknown {
  332. HRESULT onDestroy (void);
  333. HRESULT onInsertText ([in] ULONG cCharacterPosition,[in] ULONG cNumToInsert);
  334. HRESULT onRemoveText ([in] ULONG cCharacterPosition,[in] ULONG cNumToRemove);
  335. HRESULT onReplaceText ([in] ULONG cCharacterPosition,[in] ULONG cNumToReplace);
  336. HRESULT onUpdateTextAttributes ([in] ULONG cCharacterPosition,[in] ULONG cNumToUpdate);
  337. HRESULT onUpdateDocumentAttributes ([in] TEXT_DOC_ATTR textdocattr);
  338. }
  339. [object, uuid (51973c24-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  340. interface IDebugDocumentTextAuthor : IDebugDocumentText {
  341. HRESULT InsertText ([in] ULONG cCharacterPosition,[in] ULONG cNumToInsert,[in, size_is (cNumToInsert)]OLECHAR pcharText[]);
  342. HRESULT RemoveText ([in] ULONG cCharacterPosition,[in] ULONG cNumToRemove);
  343. HRESULT ReplaceText ([in] ULONG cCharacterPosition,[in] ULONG cNumToReplace,[in, size_is (cNumToReplace)]OLECHAR pcharText[]);
  344. }
  345. [object, uuid (51973c25-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  346. interface IDebugDocumentTextExternalAuthor : IUnknown {
  347. HRESULT GetPathName ([out] BSTR *pbstrLongName,[out] BOOL *pfIsOriginalFile);
  348. HRESULT GetFileName ([out] BSTR *pbstrShortName);
  349. HRESULT NotifyChanged ();
  350. }
  351. [object, uuid (51973c26-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  352. interface IDebugDocumentHelper32 : IUnknown {
  353. HRESULT Init ([in] IDebugApplication32 *pda,[in, string] LPCOLESTR pszShortName,[in, string] LPCOLESTR pszLongName,[in] TEXT_DOC_ATTR docAttr);
  354. HRESULT Attach ([in] IDebugDocumentHelper32 *pddhParent);
  355. HRESULT Detach ();
  356. HRESULT AddUnicodeText ([in, string] LPCOLESTR pszText);
  357. HRESULT AddDBCSText ([in, string] LPCSTR pszText);
  358. HRESULT SetDebugDocumentHost ([in] IDebugDocumentHost *pddh);
  359. HRESULT AddDeferredText ([in] ULONG cChars,[in] DWORD dwTextStartCookie);
  360. HRESULT DefineScriptBlock ([in] ULONG ulCharOffset,[in] ULONG cChars,[in] IActiveScript *pas,[in] BOOL fScriptlet,[out] DWORD *pdwSourceContext);
  361. HRESULT SetDefaultTextAttr (SOURCE_TEXT_ATTR staTextAttr);
  362. HRESULT SetTextAttributes ([in] ULONG ulCharOffset,[in] ULONG cChars,[in, length_is (cChars), size_is (cChars)]SOURCE_TEXT_ATTR *pstaTextAttr);
  363. HRESULT SetLongName ([in, string] LPCOLESTR pszLongName);
  364. HRESULT SetShortName ([in, string] LPCOLESTR pszShortName);
  365. HRESULT SetDocumentAttr ([in] TEXT_DOC_ATTR pszAttributes);
  366. HRESULT GetDebugApplicationNode ([out] IDebugApplicationNode **ppdan);
  367. HRESULT GetScriptBlockInfo ([in] DWORD dwSourceContext,[out] IActiveScript **ppasd,[out] ULONG *piCharPos,[out] ULONG *pcChars);
  368. HRESULT CreateDebugDocumentContext ([in] ULONG iCharPos,[in] ULONG cChars,[out] IDebugDocumentContext **ppddc);
  369. HRESULT BringDocumentToTop ();
  370. HRESULT BringDocumentContextToTop (IDebugDocumentContext *pddc);
  371. };
  372. [object, uuid (c4c7363c-20fd-47f9-bd82-4855e0150871), pointer_default (unique)]
  373. interface IDebugDocumentHelper64 : IUnknown {
  374. HRESULT Init ([in] IDebugApplication64 *pda,[in, string] LPCOLESTR pszShortName,[in, string] LPCOLESTR pszLongName,[in] TEXT_DOC_ATTR docAttr);
  375. HRESULT Attach ([in] IDebugDocumentHelper64 *pddhParent);
  376. HRESULT Detach ();
  377. HRESULT AddUnicodeText ([in, string] LPCOLESTR pszText);
  378. HRESULT AddDBCSText ([in, string] LPCSTR pszText);
  379. HRESULT SetDebugDocumentHost ([in] IDebugDocumentHost *pddh);
  380. HRESULT AddDeferredText ([in] ULONG cChars,[in] DWORD dwTextStartCookie);
  381. HRESULT DefineScriptBlock ([in] ULONG ulCharOffset,[in] ULONG cChars,[in] IActiveScript *pas,[in] BOOL fScriptlet,[out] DWORDLONG *pdwSourceContext);
  382. HRESULT SetDefaultTextAttr (SOURCE_TEXT_ATTR staTextAttr);
  383. HRESULT SetTextAttributes ([in] ULONG ulCharOffset,[in] ULONG cChars,[in, length_is (cChars), size_is (cChars)]SOURCE_TEXT_ATTR *pstaTextAttr);
  384. HRESULT SetLongName ([in, string] LPCOLESTR pszLongName);
  385. HRESULT SetShortName ([in, string] LPCOLESTR pszShortName);
  386. HRESULT SetDocumentAttr ([in] TEXT_DOC_ATTR pszAttributes);
  387. HRESULT GetDebugApplicationNode ([out] IDebugApplicationNode **ppdan);
  388. HRESULT GetScriptBlockInfo ([in] DWORDLONG dwSourceContext,[out] IActiveScript **ppasd,[out] ULONG *piCharPos,[out] ULONG *pcChars);
  389. HRESULT CreateDebugDocumentContext ([in] ULONG iCharPos,[in] ULONG cChars,[out] IDebugDocumentContext **ppddc);
  390. HRESULT BringDocumentToTop ();
  391. HRESULT BringDocumentContextToTop (IDebugDocumentContext *pddc);
  392. };
  393. [object, uuid (51973c27-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  394. interface IDebugDocumentHost : IUnknown {
  395. HRESULT GetDeferredText ([in] DWORD dwTextStartCookie,[in, out, length_is (*pcNumChars), size_is (cMaxChars)] WCHAR *pcharText,[in, out, length_is (*pcNumChars), size_is (cMaxChars)] SOURCE_TEXT_ATTR *pstaTextAttr,[in, out] ULONG *pcNumChars,[in] ULONG cMaxChars);
  396. 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);
  397. HRESULT OnCreateDocumentContext ([out] IUnknown **ppunkOuter);
  398. HRESULT GetPathName ([out] BSTR *pbstrLongName,[out] BOOL *pfIsOriginalFile);
  399. HRESULT GetFileName ([out] BSTR *pbstrShortName);
  400. HRESULT NotifyChanged ();
  401. };
  402. [object, uuid (51973c28-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  403. interface IDebugDocumentContext : IUnknown {
  404. HRESULT GetDocument ([out] IDebugDocument **ppsd);
  405. HRESULT EnumCodeContexts ([out] IEnumDebugCodeContexts **ppescc);
  406. }
  407. [object, uuid (51973c29-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  408. interface IDebugSessionProvider : IUnknown {
  409. HRESULT StartDebugSession ([in] IRemoteDebugApplication *pda);
  410. };
  411. [object, uuid (51973c2a-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  412. interface IApplicationDebugger : IUnknown {
  413. HRESULT QueryAlive (void);
  414. HRESULT CreateInstanceAtDebugger ([in] REFCLSID rclsid,[in] IUnknown *pUnkOuter,[in] DWORD dwClsContext,[in] REFIID riid,[out, iid_is (riid)] IUnknown **ppvObject);
  415. HRESULT onDebugOutput ([in] LPCOLESTR pstr);
  416. HRESULT onHandleBreakPoint ([in] IRemoteDebugApplicationThread *prpt,[in] BREAKREASON br,[in] IActiveScriptErrorDebug *pError);
  417. HRESULT onClose (void);
  418. HRESULT onDebuggerEvent ([in] REFIID riid,[in] IUnknown *punk);
  419. };
  420. [object, uuid (51973c2b-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  421. interface IApplicationDebuggerUI : IUnknown {
  422. HRESULT BringDocumentToTop ([in] IDebugDocumentText *pddt);
  423. HRESULT BringDocumentContextToTop ([in] IDebugDocumentContext *pddc);
  424. };
  425. [object, uuid (51973c2c-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  426. interface IMachineDebugManager : IUnknown {
  427. HRESULT AddApplication ([in] IRemoteDebugApplication *pda,[out] DWORD *pdwAppCookie);
  428. HRESULT RemoveApplication ([in] DWORD dwAppCookie);
  429. HRESULT EnumApplications ([out] IEnumRemoteDebugApplications **ppeda);
  430. };
  431. [object, uuid (51973c2d-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  432. interface IMachineDebugManagerCookie : IUnknown {
  433. HRESULT AddApplication ([in] IRemoteDebugApplication *pda,[in] DWORD dwDebugAppCookie,[out] DWORD *pdwAppCookie);
  434. HRESULT RemoveApplication ([in] DWORD dwDebugAppCookie,[in] DWORD dwAppCookie);
  435. HRESULT EnumApplications ([out] IEnumRemoteDebugApplications **ppeda);
  436. };
  437. [object, uuid (51973c2e-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  438. interface IMachineDebugManagerEvents : IUnknown {
  439. HRESULT onAddApplication ([in] IRemoteDebugApplication *pda,[in] DWORD dwAppCookie);
  440. HRESULT onRemoveApplication ([in] IRemoteDebugApplication *pda,[in] DWORD dwAppCookie);
  441. };
  442. [object, local, uuid (51973c2f-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  443. interface IProcessDebugManager32 : IUnknown {
  444. HRESULT CreateApplication ([out] IDebugApplication32 **ppda);
  445. HRESULT GetDefaultApplication ([out] IDebugApplication32 **ppda);
  446. HRESULT AddApplication ([in] IDebugApplication32 *pda,[out] DWORD *pdwAppCookie);
  447. HRESULT RemoveApplication ([in] DWORD dwAppCookie);
  448. HRESULT CreateDebugDocumentHelper ([in] IUnknown *punkOuter,[out] IDebugDocumentHelper32 **pddh);
  449. };
  450. [object, local, uuid (56b9fc1c-63a9-4cc1-ac21-087d69a17fab), pointer_default (unique)]
  451. interface IProcessDebugManager64 : IUnknown {
  452. HRESULT CreateApplication ([out] IDebugApplication64 **ppda);
  453. HRESULT GetDefaultApplication ([out] IDebugApplication64 **ppda);
  454. HRESULT AddApplication ([in] IDebugApplication64 *pda,[out] DWORD *pdwAppCookie);
  455. HRESULT RemoveApplication ([in] DWORD dwAppCookie);
  456. HRESULT CreateDebugDocumentHelper ([in] IUnknown *punkOuter,[out] IDebugDocumentHelper64 **pddh);
  457. };
  458. [object, uuid (51973c30-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  459. interface IRemoteDebugApplication : IUnknown {
  460. HRESULT ResumeFromBreakPoint ([in] IRemoteDebugApplicationThread *prptFocus,[in] BREAKRESUMEACTION bra,[in] ERRORRESUMEACTION era);
  461. HRESULT CauseBreak (void);
  462. HRESULT ConnectDebugger ([in] IApplicationDebugger *pad);
  463. HRESULT DisconnectDebugger (void);
  464. HRESULT GetDebugger ([out] IApplicationDebugger **pad);
  465. HRESULT CreateInstanceAtApplication ([in] REFCLSID rclsid,[in] IUnknown *pUnkOuter,[in] DWORD dwClsContext,[in] REFIID riid,[out, iid_is (riid)] IUnknown **ppvObject);
  466. HRESULT QueryAlive (void);
  467. HRESULT EnumThreads ([out] IEnumRemoteDebugApplicationThreads **pperdat);
  468. HRESULT GetName ([out] BSTR *pbstrName);
  469. HRESULT GetRootNode ([out] IDebugApplicationNode **ppdanRoot);
  470. HRESULT EnumGlobalExpressionContexts ([out] IEnumDebugExpressionContexts **ppedec);
  471. };
  472. [object, local, uuid (51973c32-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  473. interface IDebugApplication32 : IRemoteDebugApplication {
  474. HRESULT SetName ([in] LPCOLESTR pstrName);
  475. HRESULT StepOutComplete (void);
  476. HRESULT DebugOutput ([in] LPCOLESTR pstr);
  477. HRESULT StartDebugSession (void);
  478. HRESULT HandleBreakPoint ([in] BREAKREASON br,[out] BREAKRESUMEACTION *pbra);
  479. HRESULT Close (void);
  480. HRESULT GetBreakFlags ([out] APPBREAKFLAGS *pabf,[out] IRemoteDebugApplicationThread **pprdatSteppingThread);
  481. HRESULT GetCurrentThread ([out] IDebugApplicationThread **pat);
  482. HRESULT CreateAsyncDebugOperation ([in] IDebugSyncOperation *psdo,[out] IDebugAsyncOperation **ppado);
  483. HRESULT AddStackFrameSniffer ([in] IDebugStackFrameSniffer *pdsfs,[out] DWORD *pdwCookie);
  484. HRESULT RemoveStackFrameSniffer ([in] DWORD dwCookie);
  485. HRESULT QueryCurrentThreadIsDebuggerThread (void);
  486. HRESULT SynchronousCallInDebuggerThread ([in] IDebugThreadCall32 *pptc,[in] DWORD dwParam1,[in] DWORD dwParam2,[in] DWORD dwParam3);
  487. HRESULT CreateApplicationNode ([out] IDebugApplicationNode **ppdanNew);
  488. HRESULT FireDebuggerEvent ([in] REFGUID riid,[in] IUnknown *punk);
  489. HRESULT HandleRuntimeError ([in] IActiveScriptErrorDebug *pErrorDebug,[in] IActiveScriptSite *pScriptSite,[out] BREAKRESUMEACTION *pbra,[out] ERRORRESUMEACTION *perra,[out] BOOL *pfCallOnScriptError);
  490. BOOL FCanJitDebug ();
  491. BOOL FIsAutoJitDebugEnabled ();
  492. HRESULT AddGlobalExpressionContextProvider ([in] IProvideExpressionContexts *pdsfs,[out] DWORD *pdwCookie);
  493. HRESULT RemoveGlobalExpressionContextProvider ([in] DWORD dwCookie);
  494. }
  495. [object, local, uuid (4dedc754-04c7-4f10-9e60-16a390fe6e62), pointer_default (unique)]
  496. interface IDebugApplication64 : IRemoteDebugApplication {
  497. HRESULT SetName ([in] LPCOLESTR pstrName);
  498. HRESULT StepOutComplete (void);
  499. HRESULT DebugOutput ([in] LPCOLESTR pstr);
  500. HRESULT StartDebugSession (void);
  501. HRESULT HandleBreakPoint ([in] BREAKREASON br,[out] BREAKRESUMEACTION *pbra);
  502. HRESULT Close (void);
  503. HRESULT GetBreakFlags ([out] APPBREAKFLAGS *pabf,[out] IRemoteDebugApplicationThread **pprdatSteppingThread);
  504. HRESULT GetCurrentThread ([out] IDebugApplicationThread **pat);
  505. HRESULT CreateAsyncDebugOperation ([in] IDebugSyncOperation *psdo,[out] IDebugAsyncOperation **ppado);
  506. HRESULT AddStackFrameSniffer ([in] IDebugStackFrameSniffer *pdsfs,[out] DWORD *pdwCookie);
  507. HRESULT RemoveStackFrameSniffer ([in] DWORD dwCookie);
  508. HRESULT QueryCurrentThreadIsDebuggerThread (void);
  509. HRESULT SynchronousCallInDebuggerThread ([in] IDebugThreadCall64 *pptc,[in] DWORDLONG dwParam1,[in] DWORDLONG dwParam2,[in] DWORDLONG dwParam3);
  510. HRESULT CreateApplicationNode ([out] IDebugApplicationNode **ppdanNew);
  511. HRESULT FireDebuggerEvent ([in] REFGUID riid,[in] IUnknown *punk);
  512. HRESULT HandleRuntimeError ([in] IActiveScriptErrorDebug *pErrorDebug,[in] IActiveScriptSite *pScriptSite,[out] BREAKRESUMEACTION *pbra,[out] ERRORRESUMEACTION *perra,[out] BOOL *pfCallOnScriptError);
  513. BOOL FCanJitDebug ();
  514. BOOL FIsAutoJitDebugEnabled ();
  515. HRESULT AddGlobalExpressionContextProvider ([in] IProvideExpressionContexts *pdsfs,[out] DWORDLONG *pdwCookie);
  516. HRESULT RemoveGlobalExpressionContextProvider ([in] DWORDLONG dwCookie);
  517. };
  518. [object, uuid (51973c33-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  519. interface IRemoteDebugApplicationEvents : IUnknown {
  520. HRESULT OnConnectDebugger ([in] IApplicationDebugger *pad);
  521. HRESULT OnDisconnectDebugger (void);
  522. HRESULT OnSetName ([in] LPCOLESTR pstrName);
  523. HRESULT OnDebugOutput ([in] LPCOLESTR pstr);
  524. HRESULT OnClose (void);
  525. HRESULT OnEnterBreakPoint ([in] IRemoteDebugApplicationThread *prdat);
  526. HRESULT OnLeaveBreakPoint ([in] IRemoteDebugApplicationThread *prdat);
  527. HRESULT OnCreateThread ([in] IRemoteDebugApplicationThread *prdat);
  528. HRESULT OnDestroyThread ([in] IRemoteDebugApplicationThread *prdat);
  529. HRESULT OnBreakFlagChange ([in] APPBREAKFLAGS abf,[in] IRemoteDebugApplicationThread *prdatSteppingThread);
  530. };
  531. [object, uuid (51973c34-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  532. interface IDebugApplicationNode : IDebugDocumentProvider {
  533. HRESULT EnumChildren ([out] IEnumDebugApplicationNodes **pperddp);
  534. HRESULT GetParent ([out] IDebugApplicationNode **pprddp);
  535. HRESULT SetDocumentProvider ([in] IDebugDocumentProvider *pddp);
  536. HRESULT Close (void);
  537. HRESULT Attach ([in] IDebugApplicationNode *pdanParent);
  538. HRESULT Detach (void);
  539. }
  540. [object, uuid (51973c35-cb0c-11d0-b5c9-00a0244a0e7a), async_uuid (a2e3aa3b-aa8d-4ebf-84cd-648b737b8c13), pointer_default (unique)]
  541. interface IDebugApplicationNodeEvents : IUnknown {
  542. HRESULT onAddChild ([in] IDebugApplicationNode *prddpChild);
  543. HRESULT onRemoveChild ([in] IDebugApplicationNode *prddpChild);
  544. HRESULT onDetach (void);
  545. HRESULT onAttach ([in] IDebugApplicationNode *prddpParent);
  546. }
  547. [object, local, uuid (51973c36-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  548. interface IDebugThreadCall32 : IUnknown {
  549. HRESULT ThreadCallHandler ([in] DWORD dwParam1,[in] DWORD dwParam2,[in] DWORD dwParam3);
  550. }
  551. [object, local, uuid (cb3fa335-e979-42fd-9fcf-a7546a0f3905), pointer_default (unique)]
  552. interface IDebugThreadCall64 : IUnknown {
  553. HRESULT ThreadCallHandler ([in] DWORDLONG dwParam1,[in] DWORDLONG dwParam2,[in] DWORDLONG dwParam3);
  554. }
  555. [object, uuid (51973c37-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  556. interface IRemoteDebugApplicationThread : IUnknown {
  557. typedef DWORD THREAD_STATE;
  558. const THREAD_STATE THREAD_STATE_RUNNING = 0x1;
  559. const THREAD_STATE THREAD_STATE_SUSPENDED = 0x2;
  560. const THREAD_STATE THREAD_BLOCKED = 0x4;
  561. const THREAD_STATE THREAD_OUT_OF_CONTEXT = 0x8;
  562. HRESULT GetSystemThreadId ([out] DWORD *dwThreadId);
  563. HRESULT GetApplication ([out] IRemoteDebugApplication **pprda);
  564. HRESULT EnumStackFrames ([out] IEnumDebugStackFrames **ppedsf);
  565. HRESULT GetDescription ([out] BSTR *pbstrDescription,[out] BSTR *pbstrState);
  566. HRESULT SetNextStatement ([in] IDebugStackFrame *pStackFrame,[in] IDebugCodeContext *pCodeContext);
  567. HRESULT GetState ([out] DWORD *pState);
  568. HRESULT Suspend ([out] DWORD *pdwCount);
  569. HRESULT Resume ([out] DWORD *pdwCount);
  570. HRESULT GetSuspendCount ([out] DWORD *pdwCount);
  571. }
  572. [object, local, uuid (51973c38-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  573. interface IDebugApplicationThread : IRemoteDebugApplicationThread {
  574. HRESULT SynchronousCallIntoThread32 ([in] IDebugThreadCall32 *pstcb,[in] DWORD dwParam1,[in] DWORD dwParam2,[in] DWORD dwParam3);
  575. HRESULT QueryIsCurrentThread (void);
  576. HRESULT QueryIsDebuggerThread (void);
  577. HRESULT SetDescription ([in] LPCOLESTR pstrDescription);
  578. HRESULT SetStateString ([in] LPCOLESTR pstrState);
  579. }
  580. [object, local, uuid (9dac5886-dbad-456d-9dee-5dec39ab3dda), pointer_default (unique)]
  581. interface IDebugApplicationThread64 : IDebugApplicationThread {
  582. HRESULT SynchronousCallIntoThread64 ([in] IDebugThreadCall64 *pstcb,[in] DWORDLONG dwParam1,[in] DWORDLONG dwParam2,[in] DWORDLONG dwParam3);
  583. }
  584. [object, local, uuid (51973c39-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  585. interface IDebugCookie : IUnknown {
  586. HRESULT SetDebugCookie ([in]DWORD dwDebugAppCookie);
  587. };
  588. [object, uuid (51973c3a-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  589. interface IEnumDebugApplicationNodes : IUnknown {
  590. [local] HRESULT __stdcall Next ([in] ULONG celt,[out] IDebugApplicationNode **pprddp,[out] ULONG *pceltFetched);
  591. [call_as (Next)] HRESULT __stdcall RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]IDebugApplicationNode **pprddp,[out] ULONG *pceltFetched);
  592. HRESULT Skip ([in] ULONG celt);
  593. HRESULT Reset (void);
  594. HRESULT Clone ([out] IEnumDebugApplicationNodes **pperddp);
  595. };
  596. [object, uuid (51973c3b-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  597. interface IEnumRemoteDebugApplications : IUnknown {
  598. [local] HRESULT __stdcall Next ([in] ULONG celt,[out] IRemoteDebugApplication **ppda,[out] ULONG *pceltFetched);
  599. [call_as (Next)] HRESULT __stdcall RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]IRemoteDebugApplication **ppda,[out] ULONG *pceltFetched);
  600. HRESULT Skip ([in] ULONG celt);
  601. HRESULT Reset (void);
  602. HRESULT Clone ([out] IEnumRemoteDebugApplications **ppessd);
  603. }
  604. [object, uuid (51973c3c-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  605. interface IEnumRemoteDebugApplicationThreads : IUnknown {
  606. [local] HRESULT __stdcall Next ([in] ULONG celt,[out] IRemoteDebugApplicationThread **pprdat,[out] ULONG *pceltFetched);
  607. [call_as (Next)] HRESULT __stdcall RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]IRemoteDebugApplicationThread **ppdat,[out] ULONG *pceltFetched);
  608. HRESULT Skip ([in] ULONG celt);
  609. HRESULT Reset (void);
  610. HRESULT Clone ([out] IEnumRemoteDebugApplicationThreads **pperdat);
  611. }
  612. [object, local, uuid (51973c05-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  613. interface IDebugFormatter : IUnknown {
  614. HRESULT GetStringForVariant ([in] VARIANT *pvar,[in] ULONG nRadix,[out] BSTR *pbstrValue);
  615. HRESULT GetVariantForString ([in] LPCOLESTR pwstrValue,[out] VARIANT *pvar);
  616. HRESULT GetStringForVarType ([in] VARTYPE vt,[in] TYPEDESC *ptdescArrayType,[out] BSTR *pbstr);
  617. }
  618. [object, local, uuid (51973c3e-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  619. interface ISimpleConnectionPoint : IUnknown {
  620. HRESULT GetEventCount ([out] ULONG *pulCount);
  621. HRESULT DescribeEvents ([in] ULONG iEvent,[in] ULONG cEvents,[out, size_is (cEvents), length_is (*pcEventsFetched)]DISPID *prgid,[out, size_is (cEvents), length_is (*pcEventsFetched)]BSTR *prgbstr,[out] ULONG *pcEventsFetched);
  622. HRESULT Advise ([in] IDispatch *pdisp,[out] DWORD *pdwCookie);
  623. HRESULT Unadvise ([in] DWORD dwCookie);
  624. };
  625. [object, local, uuid (51973c3f-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  626. interface IDebugHelper : IUnknown {
  627. HRESULT CreatePropertyBrowser ([in] VARIANT *pvar,[in] LPCOLESTR bstrName,[in] IDebugApplicationThread *pdat,[out] IDebugProperty **ppdob);
  628. HRESULT CreatePropertyBrowserEx ([in] VARIANT *pvar,[in] LPCOLESTR bstrName,[in] IDebugApplicationThread *pdat,[in] IDebugFormatter *pdf,[out] IDebugProperty **ppdob);
  629. HRESULT CreateSimpleConnectionPoint ([in] IDispatch *pdisp,[out] ISimpleConnectionPoint **ppscp);
  630. };
  631. [object, uuid (51973c40-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  632. interface IEnumDebugExpressionContexts : IUnknown {
  633. [local] HRESULT __stdcall Next ([in] ULONG celt,[out] IDebugExpressionContext **ppdec,[out] ULONG *pceltFetched);
  634. [call_as (Next)] HRESULT __stdcall RemoteNext ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)]IDebugExpressionContext **pprgdec,[out] ULONG *pceltFetched);
  635. HRESULT Skip ([in] ULONG celt);
  636. HRESULT Reset (void);
  637. HRESULT Clone ([out] IEnumDebugExpressionContexts **ppedec);
  638. }
  639. [object, uuid (51973c41-cb0c-11d0-b5c9-00a0244a0e7a), pointer_default (unique)]
  640. interface IProvideExpressionContexts : IUnknown {
  641. HRESULT EnumExpressionContexts ([out] IEnumDebugExpressionContexts **ppedec);
  642. }
  643. [uuid (78a51821-51f4-11d0-8f20-00805f2cd064), version (1.0)]
  644. library ProcessDebugManagerLib {
  645. importlib ("stdole2.tlb");
  646. interface IActiveScriptDebug32;
  647. interface IActiveScriptDebug64;
  648. interface IActiveScriptErrorDebug;
  649. interface IActiveScriptSiteDebug32;
  650. interface IActiveScriptSiteDebug64;
  651. interface IActiveScriptSiteDebugEx;
  652. interface IApplicationDebugger;
  653. interface IApplicationDebuggerUI;
  654. interface IDebugApplication32;
  655. interface IDebugApplication64;
  656. interface IDebugApplicationNode;
  657. interface IDebugApplicationNodeEvents;
  658. interface IDebugApplicationThread;
  659. interface IDebugAsyncOperation;
  660. interface IDebugAsyncOperationCallBack;
  661. interface IDebugCodeContext;
  662. interface IDebugCookie;
  663. interface IDebugDocument;
  664. interface IDebugDocumentContext;
  665. interface IDebugDocumentHelper32;
  666. interface IDebugDocumentHelper64;
  667. interface IDebugDocumentHost;
  668. interface IDebugDocumentInfo;
  669. interface IDebugDocumentProvider;
  670. interface IDebugDocumentText;
  671. interface IDebugDocumentTextAuthor;
  672. interface IDebugDocumentTextEvents;
  673. interface IDebugDocumentTextExternalAuthor;
  674. interface IDebugExpression;
  675. interface IDebugExpressionCallBack;
  676. interface IDebugExpressionContext;
  677. interface IDebugFormatter;
  678. interface IDebugHelper;
  679. interface IDebugSessionProvider;
  680. interface IDebugStackFrame;
  681. interface IDebugStackFrameSniffer;
  682. interface IDebugStackFrameSnifferEx32;
  683. interface IDebugStackFrameSnifferEx64;
  684. interface IDebugSyncOperation;
  685. interface IDebugThreadCall32;
  686. interface IDebugThreadCall64;
  687. interface IEnumDebugApplicationNodes;
  688. interface IEnumDebugCodeContexts;
  689. interface IEnumDebugExpressionContexts;
  690. interface IEnumDebugStackFrames;
  691. interface IEnumDebugStackFrames64;
  692. interface IEnumRemoteDebugApplications;
  693. interface IEnumRemoteDebugApplicationThreads;
  694. interface IProcessDebugManager32;
  695. interface IProcessDebugManager64;
  696. interface IProvideExpressionContexts;
  697. interface IMachineDebugManager;
  698. interface IMachineDebugManagerCookie;
  699. interface IMachineDebugManagerEvents;
  700. interface IRemoteDebugApplication;
  701. interface IRemoteDebugApplicationEvents;
  702. interface IRemoteDebugApplicationThread;
  703. interface ISimpleConnectionPoint;
  704. [uuid (78a51822-51f4-11d0-8f20-00805f2cd064)]
  705. coclass ProcessDebugManager {
  706. #ifdef _WIN64
  707. [default] interface IProcessDebugManager64;
  708. #else
  709. [default] interface IProcessDebugManager32;
  710. #endif
  711. };
  712. [uuid (0bfcc060-8c1d-11d0-ACCD-00aa0060275c)]
  713. coclass DebugHelper {
  714. [default] interface IDebugHelper;
  715. };
  716. cpp_quote("EXTERN_C const CLSID CLSID_CDebugDocumentHelper;")
  717. [uuid (83b8bca6-687c-11d0-A405-00aa0060275c)]
  718. coclass CDebugDocumentHelper {
  719. #ifdef _WIN64
  720. [default] interface IDebugDocumentHelper64;
  721. #else
  722. [default] interface IDebugDocumentHelper32;
  723. #endif
  724. interface IDebugDocumentProvider;
  725. interface IDebugDocument;
  726. interface IDebugDocumentText;
  727. interface IDebugDocumentTextAuthor;
  728. interface IConnectionPointContainer;
  729. [default, source] interface IDebugDocumentTextEvents;
  730. };
  731. cpp_quote("#ifdef DEBUG")
  732. cpp_quote("#define MachineDebugManger MachineDebugManager_DEBUG")
  733. cpp_quote("#define CLSID_MachineDebugManager CLSID_MachineDebugManager_DEBUG")
  734. cpp_quote("#else")
  735. cpp_quote("#define MachineDebugManger MachineDebugManager_RETAIL")
  736. cpp_quote("#define CLSID_MachineDebugManager CLSID_MachineDebugManager_RETAIL")
  737. cpp_quote("#endif")
  738. [uuid (0c0a3666-30c9-11d0-8f20-00805f2cd064)]
  739. coclass MachineDebugManager_RETAIL {
  740. [default] interface IMachineDebugManager;
  741. };
  742. [uuid (49769cec-3a55-4bb0-B697-88fede77e8ea)]
  743. coclass MachineDebugManager_DEBUG {
  744. [default] interface IMachineDebugManager;
  745. };
  746. [uuid (834128a2-51f4-11d0-8f20-00805f2cd064)]
  747. coclass DefaultDebugSessionProvider {
  748. [default] interface IDebugSessionProvider;
  749. };
  750. };
  751. cpp_quote("#endif")
  752. cpp_quote("#endif")