home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / objmodel / dbgauto.h < prev    next >
C/C++ Source or Header  |  1998-05-05  |  8KB  |  276 lines

  1. // Microsoft Visual Studio Object Model
  2. // Copyright (C) 1996-1997 Microsoft Corporation
  3. // All rights reserved.
  4.  
  5. /////////////////////////////////////////////////////////////////////////////
  6. // dbgauto.h
  7.  
  8. // Declaration of dual interfaces to objects found in the type library
  9. //  VISUAL STUDIO 97 DEBUGGER (SharedIDE\bin\ide\devdbg.pkg)
  10.  
  11. #ifndef __DBGAUTO_H__
  12. #define __DBGAUTO_H__
  13.  
  14. #include "dbgdefs.h"
  15.  
  16. #ifndef BEGIN_INTERFACE
  17. #define BEGIN_INTERFACE
  18. #endif
  19.  
  20. /////////////////////////////////////////////////////////////////////////////
  21. // Interfaces declared in this file:
  22.  
  23. interface IDebugger;
  24. interface IDebuggerEvents;
  25.  
  26. interface IBreakpoint;
  27. interface IBreakpoints;
  28.  
  29.  
  30. /////////////////////////////////////////////////////////////////////////////
  31. // Debugger object
  32.  
  33. // IDebugger interface
  34.  
  35. #undef INTERFACE
  36. #define INTERFACE IDebugger
  37.  
  38. DECLARE_INTERFACE_(IDebugger, IDispatch)
  39. {
  40. BEGIN_INTERFACE
  41. #ifndef NO_BASEINTERFACE_FUNCS
  42.  
  43.     /* IUnknown methods */
  44.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  45.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  46.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  47.  
  48.     /* IDispatch methods */
  49.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  50.  
  51.     STDMETHOD(GetTypeInfo)(
  52.       THIS_
  53.       UINT itinfo,
  54.       LCID lcid,
  55.       ITypeInfo FAR* FAR* pptinfo) PURE;
  56.  
  57.     STDMETHOD(GetIDsOfNames)(
  58.       THIS_
  59.       REFIID riid,
  60.       OLECHAR FAR* FAR* rgszNames,
  61.       UINT cNames,
  62.       LCID lcid,
  63.       DISPID FAR* rgdispid) PURE;
  64.  
  65.     STDMETHOD(Invoke)(
  66.       THIS_
  67.       DISPID dispidMember,
  68.       REFIID riid,
  69.       LCID lcid,
  70.       WORD wFlags,
  71.       DISPPARAMS FAR* pdispparams,
  72.       VARIANT FAR* pvarResult,
  73.       EXCEPINFO FAR* pexcepinfo,
  74.       UINT FAR* puArgErr) PURE;
  75. #endif
  76.  
  77.     /* IDebugger methods */
  78.     STDMETHOD(get_Application)(THIS_ IDispatch * FAR* ppDispatch) PURE;
  79.     STDMETHOD(get_Parent)(THIS_ IDispatch * FAR* ppDispatch) PURE;
  80.     STDMETHOD(get_Breakpoints)(THIS_ IDispatch * FAR* ppDispatch) PURE;
  81.     STDMETHOD(get_DefaultRadix)(THIS_ long FAR* pLong) PURE;
  82.     STDMETHOD(put_DefaultRadix)(THIS_ long l) PURE;
  83.     STDMETHOD(get_State)(THIS_ DsExecutionState FAR* pState) PURE;
  84.     STDMETHOD(get_JustInTimeDebugging)(THIS_ VARIANT_BOOL FAR* pBoolean) PURE;
  85.     STDMETHOD(put_JustInTimeDebugging)(THIS_ VARIANT_BOOL bool) PURE;
  86.     STDMETHOD(get_RemoteProcedureCallDebugging)(THIS_ VARIANT_BOOL FAR* pBoolean) PURE;
  87.     STDMETHOD(put_RemoteProcedureCallDebugging)(THIS_ VARIANT_BOOL bool) PURE;
  88.     STDMETHOD(Go)(THIS) PURE;
  89.     STDMETHOD(StepInto)(THIS) PURE;
  90.     STDMETHOD(StepOver)(THIS) PURE;
  91.     STDMETHOD(StepOut)(THIS) PURE;
  92.     STDMETHOD(Restart)(THIS) PURE;
  93.     STDMETHOD(Stop)(THIS) PURE;
  94.     STDMETHOD(Break)(THIS) PURE;
  95.     STDMETHOD(Evaluate)(THIS_ BSTR expr, BSTR FAR* pBSTR) PURE;
  96.     STDMETHOD(ShowNextStatement)(THIS) PURE;
  97.     STDMETHOD(RunToCursor)(THIS) PURE;
  98.     STDMETHOD(SetNextStatement)(THIS_ VARIANT Selection) PURE;
  99. };
  100.  
  101. // IDebuggerEvents interface
  102.  
  103. #undef INTERFACE
  104. #define INTERFACE IDebuggerEvents
  105.  
  106. DECLARE_INTERFACE_(IDebuggerEvents, IDispatch)
  107. {
  108. BEGIN_INTERFACE
  109. #ifndef NO_BASEINTERFACE_FUNCS
  110.  
  111.     /* IUnknown methods */
  112.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  113.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  114.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  115.  
  116.     /* IDispatch methods */
  117.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  118.  
  119.     STDMETHOD(GetTypeInfo)(
  120.       THIS_
  121.       UINT itinfo,
  122.       LCID lcid,
  123.       ITypeInfo FAR* FAR* pptinfo) PURE;
  124.  
  125.     STDMETHOD(GetIDsOfNames)(
  126.       THIS_
  127.       REFIID riid,
  128.       OLECHAR FAR* FAR* rgszNames,
  129.       UINT cNames,
  130.       LCID lcid,
  131.       DISPID FAR* rgdispid) PURE;
  132.  
  133.     STDMETHOD(Invoke)(
  134.       THIS_
  135.       DISPID dispidMember,
  136.       REFIID riid,
  137.       LCID lcid,
  138.       WORD wFlags,
  139.       DISPPARAMS FAR* pdispparams,
  140.       VARIANT FAR* pvarResult,
  141.       EXCEPINFO FAR* pexcepinfo,
  142.       UINT FAR* puArgErr) PURE;
  143. #endif
  144.  
  145.     /* IDebuggerEvents methods */
  146.     STDMETHOD(BreakpointHit)(THIS_ IDispatch * pBreakpoint) PURE;
  147. };
  148.  
  149.  
  150. /////////////////////////////////////////////////////////////////////////////
  151. // Breakpoint object
  152.  
  153. // IBreakpoint interface
  154.  
  155. #undef INTERFACE
  156. #define INTERFACE IBreakpoint
  157.  
  158. DECLARE_INTERFACE_(IBreakpoint, IDispatch)
  159. {
  160. BEGIN_INTERFACE
  161. #ifndef NO_BASEINTERFACE_FUNCS
  162.  
  163.     /* IUnknown methods */
  164.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  165.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  166.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  167.  
  168.     /* IDispatch methods */
  169.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  170.  
  171.     STDMETHOD(GetTypeInfo)(
  172.       THIS_
  173.       UINT itinfo,
  174.       LCID lcid,
  175.       ITypeInfo FAR* FAR* pptinfo) PURE;
  176.  
  177.     STDMETHOD(GetIDsOfNames)(
  178.       THIS_
  179.       REFIID riid,
  180.       OLECHAR FAR* FAR* rgszNames,
  181.       UINT cNames,
  182.       LCID lcid,
  183.       DISPID FAR* rgdispid) PURE;
  184.  
  185.     STDMETHOD(Invoke)(
  186.       THIS_
  187.       DISPID dispidMember,
  188.       REFIID riid,
  189.       LCID lcid,
  190.       WORD wFlags,
  191.       DISPPARAMS FAR* pdispparams,
  192.       VARIANT FAR* pvarResult,
  193.       EXCEPINFO FAR* pexcepinfo,
  194.       UINT FAR* puArgErr) PURE;
  195. #endif
  196.  
  197.     /* IBreakpoint methods */
  198.     STDMETHOD(get_Application)(THIS_ IDispatch * FAR* ppDispatch) PURE;
  199.     STDMETHOD(get_Parent)(THIS_ IDispatch * FAR* ppDispatch) PURE;
  200.     STDMETHOD(get_Enabled)(THIS_ VARIANT_BOOL FAR* pBool) PURE;
  201.     STDMETHOD(put_Enabled)(THIS_ VARIANT_BOOL bool) PURE;
  202.     STDMETHOD(get_Location)(THIS_ BSTR FAR* pBSTR) PURE;
  203.     STDMETHOD(get_File)(THIS_ BSTR FAR* pBSTR) PURE;
  204.     STDMETHOD(get_Function)(THIS_ BSTR FAR* pBSTR) PURE;
  205.     STDMETHOD(get_Executable)(THIS_ BSTR FAR* pBSTR) PURE;
  206.     STDMETHOD(get_Condition)(THIS_ BSTR FAR* pBSTR) PURE;
  207.     STDMETHOD(put_Condition)(THIS_ BSTR bstr) PURE;
  208.     STDMETHOD(get_Elements)(THIS_ long FAR* pLong) PURE;
  209.     STDMETHOD(get_PassCount)(THIS_ long FAR* pLong) PURE;
  210.     STDMETHOD(get_Message)(THIS_ long FAR* pLong) PURE;
  211.     STDMETHOD(get_WindowProcedure)(THIS_ BSTR FAR* pBSTR) PURE;
  212.     STDMETHOD(get_Type)(THIS_ long FAR* pLong) PURE;
  213.     STDMETHOD(Remove)(THIS) PURE;
  214. };
  215.  
  216.  
  217. /////////////////////////////////////////////////////////////////////////////
  218. // Breakpoints object
  219.  
  220. // IBreakpoints interface
  221.  
  222. #undef INTERFACE
  223. #define INTERFACE IBreakpoints
  224.  
  225. DECLARE_INTERFACE_(IBreakpoints, IDispatch)
  226. {
  227. BEGIN_INTERFACE
  228. #ifndef NO_BASEINTERFACE_FUNCS
  229.  
  230.     /* IUnknown methods */
  231.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  232.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  233.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  234.  
  235.     /* IDispatch methods */
  236.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  237.  
  238.     STDMETHOD(GetTypeInfo)(
  239.       THIS_
  240.       UINT itinfo,
  241.       LCID lcid,
  242.       ITypeInfo FAR* FAR* pptinfo) PURE;
  243.  
  244.     STDMETHOD(GetIDsOfNames)(
  245.       THIS_
  246.       REFIID riid,
  247.       OLECHAR FAR* FAR* rgszNames,
  248.       UINT cNames,
  249.       LCID lcid,
  250.       DISPID FAR* rgdispid) PURE;
  251.  
  252.     STDMETHOD(Invoke)(
  253.       THIS_
  254.       DISPID dispidMember,
  255.       REFIID riid,
  256.       LCID lcid,
  257.       WORD wFlags,
  258.       DISPPARAMS FAR* pdispparams,
  259.       VARIANT FAR* pvarResult,
  260.       EXCEPINFO FAR* pexcepinfo,
  261.       UINT FAR* puArgErr) PURE;
  262. #endif
  263.  
  264.     /* IBreakpoints methods */
  265.     STDMETHOD(get_Count)(THIS_ long FAR* Count) PURE;
  266.     STDMETHOD(get_Application)(THIS_ IDispatch * FAR* ppDispatch) PURE;
  267.     STDMETHOD(get_Parent)(THIS_ IDispatch * FAR* ppDispatch) PURE;
  268.     STDMETHOD(get__NewEnum)(THIS_ IUnknown * FAR* _NewEnum) PURE;
  269.     STDMETHOD(Item)(THIS_ VARIANT index, IDispatch * FAR* Item) PURE;
  270.     STDMETHOD(RemoveAllBreakpoints)(THIS) PURE;    
  271.     STDMETHOD(RemoveBreakpointAtLine)(THIS_ VARIANT sel, VARIANT_BOOL FAR* bool) PURE;
  272.     STDMETHOD(AddBreakpointAtLine)(THIS_ VARIANT sel, IDispatch * FAR* Item) PURE;
  273. };
  274.  
  275. #endif //__DBGAUTO_H__
  276.