dbghelp: Use local declaration for 64-bit macho nlist.
[wine.git] / include / activdbg.idl
blobe10066c1f268de8319da7667b5d1c8cf2c1f5d53
1 /*
2 * Copyright 2008 Jacek Caban for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 import "ocidl.idl";
20 import "activscp.idl";
21 /* import "dbgprop.idl"; */
23 interface IDebugDocumentContext;
24 interface IRemoteDebugApplication;
25 interface IEnumDebugCodeContexts;
27 /* FIXME: */
28 interface IEnumDebugStackFrames;
29 interface IDebugStackFrame;
30 interface IApplicationDebugger;
31 interface IEnumRemoteDebugApplicationThreads;
32 interface IDebugApplicationNode;
33 interface IEnumDebugExpressionContexts;
34 interface IDebugApplicationThread;
35 interface IDebugSyncOperation;
36 interface IDebugAsyncOperation;
37 interface IDebugStackFrameSniffer;
38 interface IDebugThreadCall32;
39 interface IActiveScriptErrorDebug;
40 interface IProvideExpressionContexts;
42 typedef enum tagBREAKPOINT_STATE {
43 BREAKPOINT_DELETED,
44 BREAKPOINT_DISABLED,
45 BREAKPOINT_ENABLED
46 } BREAKPOINT_STATE;
48 typedef DWORD APPBREAKFLAGS;
50 typedef enum tagBREAKREASON {
51 BREAKREASON_STEP,
52 BREAKREASON_BREAKPOINT,
53 BREAKREASON_DEBUGGER_BLOCK,
54 BREAKREASON_HOST_INITIATED,
55 BREAKREASON_LANGUAGE_INITIATED,
56 BREAKREASON_DEBUGGER_HALT,
57 BREAKREASON_ERROR,
58 BREAKREASON_JIT
59 } BREAKREASON;
61 typedef enum tagBREAKRESUME_ACTION {
62 BREAKRESUMEACTION_ABORT,
63 BREAKRESUMEACTION_CONTINUE,
64 BREAKRESUMEACTION_STEP_INTO,
65 BREAKRESUMEACTION_STEP_OVER,
66 BREAKRESUMEACTION_STEP_OUT,
67 BREAKRESUMEACTION_IGNORE
68 } BREAKRESUMEACTION;
70 typedef enum tagDOCUMENTNAMETYPE {
71 DOCUMENTNAMETYPE_APPNODE,
72 DOCUMENTNAMETYPE_TITLE,
73 DOCUMENTNAMETYPE_FILE_TAIL,
74 DOCUMENTNAMETYPE_URL
75 } DOCUMENTNAMETYPE;
77 typedef enum tagERRORRESUMEACTION {
78 ERRORRESUMEACTION_ReexecuteErrorStatement,
79 ERRORRESUMEACTION_AbortCallAndReturnErrorToCaller,
80 ERRORRESUMEACTION_SkipErrorStatement,
81 } ERRORRESUMEACTION;
83 typedef WORD SOURCE_TEXT_ATTR;
85 #ifdef INTEROPLIB
86 enum enum_SOURCE_TEXT_ATTR
88 SOURCETEXT_ATTR_KEYWORD = 0x01,
89 SOURCETEXT_ATTR_COMMENT = 0x02,
90 SOURCETEXT_ATTR_NONSOURCE = 0x04,
91 SOURCETEXT_ATTR_OPERATOR = 0x08,
92 SOURCETEXT_ATTR_NUMBER = 0x10,
93 SOURCETEXT_ATTR_STRING = 0x20,
94 SOURCETEXT_ATTR_FUNCTION_START = 0x40
96 #endif
98 const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_KEYWORD = 0x01;
99 const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_COMMENT = 0x02;
100 const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_NONSOURCE = 0x04;
101 const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_OPERATOR = 0x08;
102 const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_NUMBER = 0x10;
103 const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_STRING = 0x20;
104 const SOURCE_TEXT_ATTR SOURCETEXT_ATTR_FUNCTION_START = 0x40;
106 /************************************************************
107 * interface IActiveScriptDebug32
110 object,
111 uuid(51973c10-cb0c-11d0-b5c9-00a0244a0e7a),
112 pointer_default(unique)
114 interface IActiveScriptDebug32 : IUnknown
116 HRESULT GetScriptTextAttributes(
117 [in, size_is(uNumCodeChars)] LPCOLESTR pstrCode,
118 [in] ULONG uNumCodeChars,
119 [in] LPCOLESTR pstrDelimiter,
120 [in] DWORD dwFlags,
121 [in, out, size_is(uNumCodeChars)] SOURCE_TEXT_ATTR *pattr);
123 HRESULT GetScriptletTextAttributes(
124 [in, size_is(uNumCodeChars)] LPCOLESTR pstrCode,
125 [in] ULONG uNumCodeChars,
126 [in] LPCOLESTR pstrDelimiter,
127 [in] DWORD dwFlags,
128 [in, out, size_is(uNumCodeChars)] SOURCE_TEXT_ATTR *pattr);
130 HRESULT EnumCodeContextsOfPosition(
131 [in] DWORD dwSourceContext,
132 [in] ULONG uCharacterOffset,
133 [in] ULONG uNumChars,
134 [out] IEnumDebugCodeContexts **ppescc);
138 object,
139 uuid(bc437e23-f5b8-47f4-bb79-7d1ce5483b86),
140 pointer_default(unique)
142 interface IActiveScriptDebug64 : IUnknown
144 HRESULT GetScriptTextAttributes(
145 [in, size_is(uNumCodeChars)] LPCOLESTR pstrCode,
146 [in] ULONG uNumCodeChars,
147 [in] LPCOLESTR pstrDelimiter,
148 [in] DWORD dwFlags,
149 [in, out, size_is(uNumCodeChars)] SOURCE_TEXT_ATTR *pattr);
151 HRESULT GetScriptletTextAttributes(
152 [in, size_is(uNumCodeChars)] LPCOLESTR pstrCode,
153 [in] ULONG uNumCodeChars,
154 [in] LPCOLESTR pstrDelimiter,
155 [in] DWORD dwFlags,
156 [in, out, size_is(uNumCodeChars)] SOURCE_TEXT_ATTR *pattr);
158 HRESULT EnumCodeContextsOfPosition(
159 [in] DWORDLONG dwSourceContext,
160 [in] ULONG uCharacterOffset,
161 [in] ULONG uNumChars,
162 [out] IEnumDebugCodeContexts **ppescc);
165 /************************************************************
166 * interface IDebugDocumentInfo
169 object,
170 uuid(51973c1f-cb0c-11d0-b5c9-00a0244a0e7a),
171 pointer_default(unique)
173 interface IDebugDocumentInfo : IUnknown
175 HRESULT GetName(
176 [in] DOCUMENTNAMETYPE dnt,
177 [out] BSTR *pbstrName);
179 HRESULT GetDocumentClassId(
180 [out] CLSID *pclsidDocument);
183 /************************************************************
184 * interface IDebugDocument
187 object,
188 uuid(51973c21-cb0c-11d0-b5c9-00a0244a0e7a),
189 pointer_default(unique)
191 interface IDebugDocument : IDebugDocumentInfo
195 /************************************************************
196 * interface IDebugCodeContext
199 object,
200 uuid(51973c13-cb0c-11d0-b5c9-00a0244a0e7a),
201 pointer_default(unique)
203 interface IDebugCodeContext : IUnknown
205 HRESULT GetDocumentContext(
206 [out] IDebugDocumentContext **ppsc);
208 HRESULT SetBreakPoint(
209 [in] BREAKPOINT_STATE bps);
212 /************************************************************
213 * interface IEnumDebugCodeContexts
216 object,
217 uuid(51973c1d-cb0c-11d0-b5c9-00a0244a0e7a),
218 pointer_default(unique)
220 interface IEnumDebugCodeContexts : IUnknown
222 HRESULT Next(
223 [in] ULONG celt,
224 [out] IDebugCodeContext **pscc,
225 [out] ULONG *pceltFetched);
227 HRESULT Skip(
228 [in] ULONG celt);
230 HRESULT Reset();
232 HRESULT Clone(
233 [out] IEnumDebugCodeContexts **ppescc);
236 /************************************************************
237 * interface IDebugDocumentContext
240 object,
241 uuid(51973c28-cb0c-11d0-b5c9-00a0244a0e7a),
242 pointer_default(unique)
244 interface IDebugDocumentContext : IUnknown
246 HRESULT GetDocument(
247 [out] IDebugDocument **ppsd);
249 HRESULT EnumCodeContexts(
250 [out] IEnumDebugCodeContexts **ppescc);
253 /************************************************************
254 * interface IRemoteDebugApplicationThread
257 object,
258 uuid(51973c37-cb0c-11d0-b5c9-00a0244a0e7a),
259 pointer_default(unique)
261 interface IRemoteDebugApplicationThread : IUnknown
263 HRESULT GetSystemThreadId(
264 [out] DWORD *dwThreadId);
266 HRESULT GetApplication(
267 [out] IRemoteDebugApplication **pprda);
269 HRESULT EnumStackFrames(
270 [out] IEnumDebugStackFrames **ppedsf);
272 HRESULT GetDescription(
273 [out] BSTR *pbstrDescription,
274 [out] BSTR *pbstrState);
276 HRESULT SetNextStatement(
277 [in] IDebugStackFrame *pStackFrame,
278 [in] IDebugCodeContext *pCodeContext);
280 HRESULT GetState(
281 [out] DWORD *pState);
283 HRESULT Suspend(
284 [out] DWORD *pdwCount);
286 HRESULT Resume(
287 [out] DWORD *pdwCount);
289 HRESULT GetSuspendCount(
290 [out] DWORD *pdwCount);
293 /************************************************************
294 * interface IRemoteDebugApplication
297 object,
298 uuid(51973c30-cb0c-11d0-b5c9-00a0244Aae7a),
299 pointer_default(unique)
301 interface IRemoteDebugApplication : IUnknown
303 HRESULT ResumeFromBreakPoint(
304 [in] IRemoteDebugApplicationThread *prptFocus,
305 [in] BREAKRESUMEACTION bra,
306 [in] ERRORRESUMEACTION era);
308 HRESULT CauseBreak();
310 HRESULT ConnectDebugger(
311 [in] IApplicationDebugger *pad);
313 HRESULT DisconnectDebugger();
315 HRESULT GetDebugger(
316 [out] IApplicationDebugger **pad);
318 HRESULT CreateInstanceAtApplication(
319 [in] REFCLSID rclsid,
320 [in] IUnknown *pUnkOuter,
321 [in] DWORD dwClsContext,
322 [in] REFIID riid,
323 [out, iid_is(riid)] IUnknown **ppvObject);
325 HRESULT QueryAlive();
327 HRESULT EnumThreads(
328 [out] IEnumRemoteDebugApplicationThreads **pperdat);
330 HRESULT GetName(
331 [out] BSTR *pbstrName);
333 HRESULT GetRootNode(
334 [out] IDebugApplicationNode **ppdanRoot);
336 HRESULT EnumGlobalExpressionContexts(
337 [out] IEnumDebugExpressionContexts **ppedec);
340 /************************************************************
341 * interface IDebugApplication32
344 object,
345 uuid(51973c32-cb0c-11d0-b5c9-00a0244a0e7a),
346 pointer_default(unique),
347 local
349 interface IDebugApplication32 : IRemoteDebugApplication
351 HRESULT SetName(
352 [in] LPCOLESTR pstrName);
354 HRESULT StepOutComplete();
356 HRESULT DebugOutput(
357 [in] LPCOLESTR pstr);
359 HRESULT StartDebugSession();
361 HRESULT HandleBreakPoint(
362 [in] BREAKREASON br,
363 [out] BREAKRESUMEACTION *pbra);
365 HRESULT Close();
367 HRESULT GetBreakFlags(
368 [out] APPBREAKFLAGS *pabf,
369 [out] IRemoteDebugApplicationThread **pprdatSteppingThread);
371 cpp_quote("#undef GetCurrentThread")
372 HRESULT GetCurrentThread(
373 [out] IDebugApplicationThread **pat);
375 HRESULT CreateAsyncDebugOperation(
376 [in] IDebugSyncOperation *psdo,
377 [out] IDebugAsyncOperation **ppado);
379 HRESULT AddStackFrameSniffer(
380 [in] IDebugStackFrameSniffer *pdsfs,
381 [out] DWORD *pdwCookie);
383 HRESULT RemoveStackFrameSniffer(
384 [in] DWORD dwCookie);
386 HRESULT QueryCurrentThreadIsDebuggerThread();
388 HRESULT SynchronousCallInDebuggerThread(
389 [in] IDebugThreadCall32 *pptc,
390 [in] DWORD dwParam1,
391 [in] DWORD dwParam2,
392 [in] DWORD dwParam3);
394 HRESULT CreateApplicationNode(
395 [out] IDebugApplicationNode **ppdanNew);
397 HRESULT FireDebuggerEvent(
398 [in] REFGUID riid,
399 [in] IUnknown *punk);
401 HRESULT HandleRuntimeError(
402 [in] IActiveScriptErrorDebug *pErrorDebug,
403 [in] IActiveScriptSite *pScriptSite,
404 [out] BREAKRESUMEACTION *pbra,
405 [out] ERRORRESUMEACTION *perra,
406 [out] BOOL *pfCallOnScriptError);
408 BOOL FCanJitDebug();
410 BOOL FIsAutoJitDebugEnabled();
412 HRESULT AddGlobalExpressionContextProvider(
413 [in] IProvideExpressionContexts *pdsfs,
414 [out] DWORD *pdwCookie);
416 HRESULT RemoveGlobalExpressionContextProvider(
417 [in] DWORD dwCookie);
420 /************************************************************
421 * interface IDebugApplication64
424 object,
425 uuid(4dedc754-04c7-4f10-9e60-16a390fe6e62),
426 pointer_default(unique),
427 local
429 interface IDebugApplication64 : IRemoteDebugApplication
431 HRESULT SetName(
432 [in] LPCOLESTR pstrName);
434 HRESULT StepOutComplete();
436 HRESULT DebugOutput(
437 [in] LPCOLESTR pstr);
439 HRESULT StartDebugSession();
441 HRESULT HandleBreakPoint(
442 [in] BREAKREASON br,
443 [out] BREAKRESUMEACTION *pbra);
445 HRESULT Close();
447 HRESULT GetBreakFlags(
448 [out] APPBREAKFLAGS *pabf,
449 [out] IRemoteDebugApplicationThread **pprdatSteppingThread);
451 HRESULT GetCurrentThread(
452 [out] IDebugApplicationThread **pat);
454 HRESULT CreateAsyncDebugOperation(
455 [in] IDebugSyncOperation *psdo,
456 [out] IDebugAsyncOperation **ppado);
458 HRESULT AddStackFrameSniffer(
459 [in] IDebugStackFrameSniffer *pdsfs,
460 [out] DWORD *pdwCookie);
462 HRESULT RemoveStackFrameSniffer(
463 [in] DWORD dwCookie);
465 HRESULT QueryCurrentThreadIsDebuggerThread();
467 HRESULT SynchronousCallInDebuggerThread(
468 [in] IDebugThreadCall32 *pptc,
469 [in] DWORDLONG dwParam1,
470 [in] DWORDLONG dwParam2,
471 [in] DWORDLONG dwParam3);
473 HRESULT CreateApplicationNode(
474 [out] IDebugApplicationNode **ppdanNew);
476 HRESULT FireDebuggerEvent(
477 [in] REFGUID riid,
478 [in] IUnknown *punk);
480 HRESULT HandleRuntimeError(
481 [in] IActiveScriptErrorDebug *pErrorDebug,
482 [in] IActiveScriptSite *pScriptSite,
483 [out] BREAKRESUMEACTION *pbra,
484 [out] ERRORRESUMEACTION *perra,
485 [out] BOOL *pfCallOnScriptError);
487 BOOL FCanJitDebug();
489 BOOL FIsAutoJitDebugEnabled();
491 HRESULT AddGlobalExpressionContextProvider(
492 [in] IProvideExpressionContexts *pdsfs,
493 [out] DWORDLONG *pdwCookie);
495 HRESULT RemoveGlobalExpressionContextProvider(
496 [in] DWORDLONG dwCookie);
499 /************************************************************
500 * interface IActiveScriptSiteDebug32
503 object,
504 uuid(51973c11-cb0c-11d0-b5c9-00a0244a0e7a),
505 pointer_default(unique),
506 local
508 interface IActiveScriptSiteDebug32 : IUnknown
510 HRESULT GetDocumentContextFromPosition(
511 [in] DWORD dwSourceContext,
512 [in] ULONG uCharacterOffset,
513 [in] ULONG uNumChars,
514 [out] IDebugDocumentContext **ppsc);
516 HRESULT GetApplication(
517 [out] IDebugApplication32 **ppda);
519 HRESULT GetRootApplicationNode(
520 [out] IDebugApplicationNode **ppdanRoot);
522 HRESULT OnScriptErrorDebug(
523 [in] IActiveScriptErrorDebug *pErrorDebug,
524 [out] BOOL *pfEnterDebugger,
525 [out] BOOL *pfCallOnScriptErrorWhenContinuing);
528 /************************************************************
529 * interface IActiveScriptSiteDebug64
532 object,
533 uuid(d6b96b0a-7463-402c-92ac-89984226942f),
534 pointer_default(unique),
535 local
537 interface IActiveScriptSiteDebug64 : IUnknown
539 HRESULT GetDocumentContextFromPosition(
540 [in] DWORDLONG dwSourceContext,
541 [in] ULONG uCharacterOffset,
542 [in] ULONG uNumChars,
543 [out] IDebugDocumentContext **ppsc);
545 HRESULT GetApplication(
546 [out] IDebugApplication64 **ppda);
548 HRESULT GetRootApplicationNode(
549 [out] IDebugApplicationNode **ppdanRoot);
551 HRESULT OnScriptErrorDebug(
552 [in] IActiveScriptErrorDebug *pErrorDebug,
553 [out] BOOL *pfEnterDebugger,
554 [out] BOOL *pfCallOnScriptErrorWhenContinuing);
557 cpp_quote("#ifndef DISABLE_ACTIVDBG_INTERFACE_WRAPPERS")
558 cpp_quote("#ifdef _WIN64")
560 cpp_quote("#define IActiveScriptDebug IActiveScriptDebug64")
561 cpp_quote("#define IID_IActiveScriptDebug IID_IActiveScriptDebug64")
563 cpp_quote("#define IActiveScriptSiteDebug IActiveScriptSiteDebug64")
564 cpp_quote("#define IID_IActiveScriptSiteDebug IID_IActiveScriptSiteDebug64")
566 cpp_quote("#define IDebugApplication IDebugApplication64")
567 cpp_quote("#define IID_IDebugApplication IID_IDebugApplication64")
569 cpp_quote("#else")
571 cpp_quote("#define IActiveScriptDebug IActiveScriptDebug32")
572 cpp_quote("#define IID_IActiveScriptDebug IID_IActiveScriptDebug32")
574 cpp_quote("#define IActiveScriptSiteDebug IActiveScriptSiteDebug32")
575 cpp_quote("#define IID_IActiveScriptSiteDebug IID_IActiveScriptSiteDebug32")
577 cpp_quote("#define IDebugApplication IDebugApplication32")
578 cpp_quote("#define IID_IDebugApplication IID_IDebugApplication32")
580 cpp_quote("#endif")
581 cpp_quote("#endif")