Fix RtlIpv4StringToAddressW prototype and its caller in ws2_32.
[reactos.git] / include / psdk / activdbg.idl
1 /*
2 * Copyright 2008 Jacek Caban for CodeWeavers
3 *
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.
8 *
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.
13 *
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
17 */
18
19 import "ocidl.idl";
20 import "activscp.idl";
21 /* import "dbgprop.idl"; */
22
23 interface IDebugDocumentContext;
24 interface IRemoteDebugApplication;
25 interface IEnumDebugCodeContexts;
26
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;
41
42 typedef enum tagBREAKPOINT_STATE {
43 BREAKPOINT_DELETED,
44 BREAKPOINT_DISABLED,
45 BREAKPOINT_ENABLED
46 } BREAKPOINT_STATE;
47
48 typedef DWORD APPBREAKFLAGS;
49
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;
60
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;
69
70 typedef enum tagDOCUMENTNAMETYPE {
71 DOCUMENTNAMETYPE_APPNODE,
72 DOCUMENTNAMETYPE_TITLE,
73 DOCUMENTNAMETYPE_FILE_TAIL,
74 DOCUMENTNAMETYPE_URL
75 } DOCUMENTNAMETYPE;
76
77 typedef enum tagERRORRESUMEACTION {
78 ERRORRESUMEACTION_ReexecuteErrorStatement,
79 ERRORRESUMEACTION_AbortCallAndReturnErrorToCaller,
80 ERRORRESUMEACTION_SkipErrorStatement,
81 } ERRORRESUMEACTION;
82
83 typedef WORD SOURCE_TEXT_ATTR;
84
85 #ifdef INTEROPLIB
86 enum enum_SOURCE_TEXT_ATTR
87 {
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
95 };
96 #endif
97
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;
105
106 /************************************************************
107 * interface IActiveScriptDebug32
108 */
109 [
110 object,
111 uuid(51973c10-cb0c-11d0-b5c9-00a0244a0e7a),
112 pointer_default(unique)
113 ]
114 interface IActiveScriptDebug32 : IUnknown
115 {
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);
122
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);
129
130 HRESULT EnumCodeContextsOfPosition(
131 [in] DWORD dwSourceContext,
132 [in] ULONG uCharacterOffset,
133 [in] ULONG uNumChars,
134 [out] IEnumDebugCodeContexts **ppescc);
135 }
136
137 [
138 object,
139 uuid(bc437e23-f5b8-47f4-bb79-7d1ce5483b86),
140 pointer_default(unique)
141 ]
142 interface IActiveScriptDebug64 : IUnknown
143 {
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);
150
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);
157
158 HRESULT EnumCodeContextsOfPosition(
159 [in] DWORDLONG dwSourceContext,
160 [in] ULONG uCharacterOffset,
161 [in] ULONG uNumChars,
162 [out] IEnumDebugCodeContexts **ppescc);
163 }
164
165 /************************************************************
166 * interface IDebugDocumentInfo
167 */
168 [
169 object,
170 uuid(51973c1f-cb0c-11d0-b5c9-00a0244a0e7a),
171 pointer_default(unique)
172 ]
173 interface IDebugDocumentInfo : IUnknown
174 {
175 HRESULT GetName(
176 [in] DOCUMENTNAMETYPE dnt,
177 [out] BSTR *pbstrName);
178
179 HRESULT GetDocumentClassId(
180 [out] CLSID *pclsidDocument);
181 }
182
183 /************************************************************
184 * interface IDebugDocument
185 */
186 [
187 object,
188 uuid(51973c21-cb0c-11d0-b5c9-00a0244a0e7a),
189 pointer_default(unique)
190 ]
191 interface IDebugDocument : IDebugDocumentInfo
192 {
193 }
194
195 /************************************************************
196 * interface IDebugCodeContext
197 */
198 [
199 object,
200 uuid(51973c13-cb0c-11d0-b5c9-00a0244a0e7a),
201 pointer_default(unique)
202 ]
203 interface IDebugCodeContext : IUnknown
204 {
205 HRESULT GetDocumentContext(
206 [out] IDebugDocumentContext **ppsc);
207
208 HRESULT SetBreakPoint(
209 [in] BREAKPOINT_STATE bps);
210 }
211
212 /************************************************************
213 * interface IEnumDebugCodeContexts
214 */
215 [
216 object,
217 uuid(51973c1d-cb0c-11d0-b5c9-00a0244a0e7a),
218 pointer_default(unique)
219 ]
220 interface IEnumDebugCodeContexts : IUnknown
221 {
222 HRESULT Next(
223 [in] ULONG celt,
224 [out] IDebugCodeContext **pscc,
225 [out] ULONG *pceltFetched);
226
227 HRESULT Skip(
228 [in] ULONG celt);
229
230 HRESULT Reset();
231
232 HRESULT Clone(
233 [out] IEnumDebugCodeContexts **ppescc);
234 }
235
236 /************************************************************
237 * interface IDebugDocumentContext
238 */
239 [
240 object,
241 uuid(51973c28-cb0c-11d0-b5c9-00a0244a0e7a),
242 pointer_default(unique)
243 ]
244 interface IDebugDocumentContext : IUnknown
245 {
246 HRESULT GetDocument(
247 [out] IDebugDocument **ppsd);
248
249 HRESULT EnumCodeContexts(
250 [out] IEnumDebugCodeContexts **ppescc);
251 }
252
253 /************************************************************
254 * interface IRemoteDebugApplicationThread
255 */
256 [
257 object,
258 uuid(51973c37-cb0c-11d0-b5c9-00a0244a0e7a),
259 pointer_default(unique)
260 ]
261 interface IRemoteDebugApplicationThread : IUnknown
262 {
263 HRESULT GetSystemThreadId(
264 [out] DWORD *dwThreadId);
265
266 HRESULT GetApplication(
267 [out] IRemoteDebugApplication **pprda);
268
269 HRESULT EnumStackFrames(
270 [out] IEnumDebugStackFrames **ppedsf);
271
272 HRESULT GetDescription(
273 [out] BSTR *pbstrDescription,
274 [out] BSTR *pbstrState);
275
276 HRESULT SetNextStatement(
277 [in] IDebugStackFrame *pStackFrame,
278 [in] IDebugCodeContext *pCodeContext);
279
280 HRESULT GetState(
281 [out] DWORD *pState);
282
283 HRESULT Suspend(
284 [out] DWORD *pdwCount);
285
286 HRESULT Resume(
287 [out] DWORD *pdwCount);
288
289 HRESULT GetSuspendCount(
290 [out] DWORD *pdwCount);
291 }
292
293 /************************************************************
294 * interface IRemoteDebugApplication
295 */
296 [
297 object,
298 uuid(51973c30-cb0c-11d0-b5c9-00a0244Aae7a),
299 pointer_default(unique)
300 ]
301 interface IRemoteDebugApplication : IUnknown
302 {
303 HRESULT ResumeFromBreakPoint(
304 [in] IRemoteDebugApplicationThread *prptFocus,
305 [in] BREAKRESUMEACTION bra,
306 [in] ERRORRESUMEACTION era);
307
308 HRESULT CauseBreak();
309
310 HRESULT ConnectDebugger(
311 [in] IApplicationDebugger *pad);
312
313 HRESULT DisconnectDebugger();
314
315 HRESULT GetDebugger(
316 [out] IApplicationDebugger **pad);
317
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);
324
325 HRESULT QueryAlive();
326
327 HRESULT EnumThreads(
328 [out] IEnumRemoteDebugApplicationThreads **pperdat);
329
330 HRESULT GetName(
331 [out] BSTR *pbstrName);
332
333 HRESULT GetRootNode(
334 [out] IDebugApplicationNode **ppdanRoot);
335
336 HRESULT EnumGlobalExpressionContexts(
337 [out] IEnumDebugExpressionContexts **ppedec);
338 }
339
340 /************************************************************
341 * interface IDebugApplication32
342 */
343 [
344 object,
345 uuid(51973c32-cb0c-11d0-b5c9-00a0244a0e7a),
346 pointer_default(unique),
347 local
348 ]
349 interface IDebugApplication32 : IRemoteDebugApplication
350 {
351 HRESULT SetName(
352 [in] LPCOLESTR pstrName);
353
354 HRESULT StepOutComplete();
355
356 HRESULT DebugOutput(
357 [in] LPCOLESTR pstr);
358
359 HRESULT StartDebugSession();
360
361 HRESULT HandleBreakPoint(
362 [in] BREAKREASON br,
363 [out] BREAKRESUMEACTION *pbra);
364
365 HRESULT Close();
366
367 HRESULT GetBreakFlags(
368 [out] APPBREAKFLAGS *pabf,
369 [out] IRemoteDebugApplicationThread **pprdatSteppingThread);
370
371 HRESULT GetCurrentThread(
372 [out] IDebugApplicationThread **pat);
373
374 HRESULT CreateAsyncDebugOperation(
375 [in] IDebugSyncOperation *psdo,
376 [out] IDebugAsyncOperation **ppado);
377
378 HRESULT AddStackFrameSniffer(
379 [in] IDebugStackFrameSniffer *pdsfs,
380 [out] DWORD *pdwCookie);
381
382 HRESULT RemoveStackFrameSniffer(
383 [in] DWORD dwCookie);
384
385 HRESULT QueryCurrentThreadIsDebuggerThread();
386
387 HRESULT SynchronousCallInDebuggerThread(
388 [in] IDebugThreadCall32 *pptc,
389 [in] DWORD dwParam1,
390 [in] DWORD dwParam2,
391 [in] DWORD dwParam3);
392
393 HRESULT CreateApplicationNode(
394 [out] IDebugApplicationNode **ppdanNew);
395
396 HRESULT FireDebuggerEvent(
397 [in] REFGUID riid,
398 [in] IUnknown *punk);
399
400 HRESULT HandleRuntimeError(
401 [in] IActiveScriptErrorDebug *pErrorDebug,
402 [in] IActiveScriptSite *pScriptSite,
403 [out] BREAKRESUMEACTION *pbra,
404 [out] ERRORRESUMEACTION *perra,
405 [out] BOOL *pfCallOnScriptError);
406
407 BOOL FCanJitDebug();
408
409 BOOL FIsAutoJitDebugEnabled();
410
411 HRESULT AddGlobalExpressionContextProvider(
412 [in] IProvideExpressionContexts *pdsfs,
413 [out] DWORD *pdwCookie);
414
415 HRESULT RemoveGlobalExpressionContextProvider(
416 [in] DWORD dwCookie);
417 }
418
419 /************************************************************
420 * interface IDebugApplication64
421 */
422 [
423 object,
424 uuid(4dedc754-04c7-4f10-9e60-16a390fe6e62),
425 pointer_default(unique),
426 local
427 ]
428 interface IDebugApplication64 : IRemoteDebugApplication
429 {
430 HRESULT SetName(
431 [in] LPCOLESTR pstrName);
432
433 HRESULT StepOutComplete();
434
435 HRESULT DebugOutput(
436 [in] LPCOLESTR pstr);
437
438 HRESULT StartDebugSession();
439
440 HRESULT HandleBreakPoint(
441 [in] BREAKREASON br,
442 [out] BREAKRESUMEACTION *pbra);
443
444 HRESULT Close();
445
446 HRESULT GetBreakFlags(
447 [out] APPBREAKFLAGS *pabf,
448 [out] IRemoteDebugApplicationThread **pprdatSteppingThread);
449
450 HRESULT GetCurrentThread(
451 [out] IDebugApplicationThread **pat);
452
453 HRESULT CreateAsyncDebugOperation(
454 [in] IDebugSyncOperation *psdo,
455 [out] IDebugAsyncOperation **ppado);
456
457 HRESULT AddStackFrameSniffer(
458 [in] IDebugStackFrameSniffer *pdsfs,
459 [out] DWORD *pdwCookie);
460
461 HRESULT RemoveStackFrameSniffer(
462 [in] DWORD dwCookie);
463
464 HRESULT QueryCurrentThreadIsDebuggerThread();
465
466 HRESULT SynchronousCallInDebuggerThread(
467 [in] IDebugThreadCall32 *pptc,
468 [in] DWORDLONG dwParam1,
469 [in] DWORDLONG dwParam2,
470 [in] DWORDLONG dwParam3);
471
472 HRESULT CreateApplicationNode(
473 [out] IDebugApplicationNode **ppdanNew);
474
475 HRESULT FireDebuggerEvent(
476 [in] REFGUID riid,
477 [in] IUnknown *punk);
478
479 HRESULT HandleRuntimeError(
480 [in] IActiveScriptErrorDebug *pErrorDebug,
481 [in] IActiveScriptSite *pScriptSite,
482 [out] BREAKRESUMEACTION *pbra,
483 [out] ERRORRESUMEACTION *perra,
484 [out] BOOL *pfCallOnScriptError);
485
486 BOOL FCanJitDebug();
487
488 BOOL FIsAutoJitDebugEnabled();
489
490 HRESULT AddGlobalExpressionContextProvider(
491 [in] IProvideExpressionContexts *pdsfs,
492 [out] DWORDLONG *pdwCookie);
493
494 HRESULT RemoveGlobalExpressionContextProvider(
495 [in] DWORDLONG dwCookie);
496 }
497
498 /************************************************************
499 * interface IActiveScriptSiteDebug32
500 */
501 [
502 object,
503 uuid(51973c11-cb0c-11d0-b5c9-00a0244a0e7a),
504 pointer_default(unique),
505 local
506 ]
507 interface IActiveScriptSiteDebug32 : IUnknown
508 {
509 HRESULT GetDocumentContextFromPosition(
510 [in] DWORD dwSourceContext,
511 [in] ULONG uCharacterOffset,
512 [in] ULONG uNumChars,
513 [out] IDebugDocumentContext **ppsc);
514
515 HRESULT GetApplication(
516 [out] IDebugApplication32 **ppda);
517
518 HRESULT GetRootApplicationNode(
519 [out] IDebugApplicationNode **ppdanRoot);
520
521 HRESULT OnScriptErrorDebug(
522 [in] IActiveScriptErrorDebug *pErrorDebug,
523 [out] BOOL *pfEnterDebugger,
524 [out] BOOL *pfCallOnScriptErrorWhenContinuing);
525 }
526
527 /************************************************************
528 * interface IActiveScriptSiteDebug64
529 */
530 [
531 object,
532 uuid(d6b96b0a-7463-402c-92ac-89984226942f),
533 pointer_default(unique),
534 local
535 ]
536 interface IActiveScriptSiteDebug64 : IUnknown
537 {
538 HRESULT GetDocumentContextFromPosition(
539 [in] DWORDLONG dwSourceContext,
540 [in] ULONG uCharacterOffset,
541 [in] ULONG uNumChars,
542 [out] IDebugDocumentContext **ppsc);
543
544 HRESULT GetApplication(
545 [out] IDebugApplication64 **ppda);
546
547 HRESULT GetRootApplicationNode(
548 [out] IDebugApplicationNode **ppdanRoot);
549
550 HRESULT OnScriptErrorDebug(
551 [in] IActiveScriptErrorDebug *pErrorDebug,
552 [out] BOOL *pfEnterDebugger,
553 [out] BOOL *pfCallOnScriptErrorWhenContinuing);
554 }
555
556 cpp_quote("#ifndef DISABLE_ACTIVDBG_INTERFACE_WRAPPERS")
557 cpp_quote("#ifdef _WIN64")
558
559 cpp_quote("#define IActiveScriptDebug IActiveScriptDebug64")
560 cpp_quote("#define IID_IActiveScriptDebug IID_IActiveScriptDebug64")
561
562 cpp_quote("#define IActiveScriptSiteDebug IActiveScriptSiteDebug64")
563 cpp_quote("#define IID_IActiveScriptSiteDebug IID_IActiveScriptSiteDebug64")
564
565 cpp_quote("#define IDebugApplication IDebugApplication64")
566 cpp_quote("#define IID_IDebugApplication IID_IDebugApplication64")
567
568 cpp_quote("#else")
569
570 cpp_quote("#define IActiveScriptDebug IActiveScriptDebug32")
571 cpp_quote("#define IID_IActiveScriptDebug IID_IActiveScriptDebug32")
572
573 cpp_quote("#define IActiveScriptSiteDebug IActiveScriptSiteDebug32")
574 cpp_quote("#define IID_IActiveScriptSiteDebug IID_IActiveScriptSiteDebug32")
575
576 cpp_quote("#define IDebugApplication IDebugApplication32")
577 cpp_quote("#define IID_IDebugApplication IID_IDebugApplication32")
578
579 cpp_quote("#endif")
580 cpp_quote("#endif")