home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / addins / cmdwnd / cmdstub / cmdwnd.h < prev    next >
C/C++ Source or Header  |  1998-04-02  |  2KB  |  87 lines

  1. // CmdWnd.h : Declaration of the CCmdWnd
  2.  
  3. #ifndef __CMDWND_H_
  4. #define __CMDWND_H_
  5.  
  6. #include "resource.h"       // main symbols
  7. #include <ObjModel\addguid.h>
  8. #include <ObjModel\appguid.h>
  9. #include <ObjModel\bldguid.h>
  10. #include <ObjModel\textguid.h>
  11. #include <ObjModel\dbgguid.h>
  12.  
  13. #include "..\msdevcmd\devcmd.h"
  14.  
  15. /////////////////////////////////////////////////////////////////////////////
  16. // CCmdWnd
  17. class ATL_NO_VTABLE CCmdWnd : 
  18.     public CComObjectRootEx<CComSingleThreadModel>,
  19.     public CComCoClass<CCmdWnd, &CLSID_CmdWnd>,
  20.     public IDispatchImpl<IApplicationEvents, &IID_IApplicationEvents, &LIBID_CMDSTUBLib>,
  21.     public IDispatchImpl<IDebuggerEvents, &IID_IDebuggerEvents, &LIBID_CMDSTUBLib>,
  22.     public IDSAddIn,
  23.     public IDispatchImpl<ICmdWnd, &IID_ICmdWnd, &LIBID_CMDSTUBLib>,
  24.     public IDispatchImpl<_ICommandWindowEvents, &DIID__ICommandWindowEvents, &LIBID_devcmdLib>
  25. {
  26. public:
  27.     CCmdWnd();
  28.     ~CCmdWnd();
  29.  
  30. DECLARE_REGISTRY_RESOURCEID(IDR_CMDWND)
  31.  
  32. BEGIN_COM_MAP(CCmdWnd)
  33.     COM_INTERFACE_ENTRY(ICmdWnd)
  34.     COM_INTERFACE_ENTRY2(IDispatch, ICmdWnd)
  35.     COM_INTERFACE_ENTRY(IDSAddIn)
  36.     COM_INTERFACE_ENTRY(IApplicationEvents)
  37.     COM_INTERFACE_ENTRY(IDebuggerEvents)
  38.     COM_INTERFACE_ENTRY(_ICommandWindowEvents)
  39. END_COM_MAP()
  40.  
  41. // _ICommandWindowEvents
  42. public:
  43.     HRESULT _stdcall OnClose();
  44.  
  45.  
  46.  
  47. // IDSAddIn methods
  48. public:
  49.     STDMETHOD(OnConnection)(IApplication* pApp, VARIANT_BOOL bFirstTime, long dwCookie, VARIANT_BOOL* bOnConnection);
  50.     STDMETHOD(OnDisconnection)(VARIANT_BOOL bLastTime);
  51.  
  52. // IApplicationEvents methods
  53. public:
  54.     STDMETHOD(BeforeBuildStart)();
  55.     STDMETHOD(BuildFinish)(long nNumErrors, long nNumWarnings);
  56.     STDMETHOD(BeforeApplicationShutDown)();
  57.     STDMETHOD(DocumentOpen)(IDispatch *pDocument);
  58.     STDMETHOD(BeforeDocumentClose)(IDispatch *pDocument);
  59.     STDMETHOD(DocumentSave)(IDispatch *pDocument);
  60.     STDMETHOD(NewDocument)(IDispatch *pDocument);
  61.     STDMETHOD(WindowActivate)(IDispatch *pWindow);
  62.     STDMETHOD(WindowDeactivate)(IDispatch *pWindow);
  63.     STDMETHOD(WorkspaceOpen)();
  64.     STDMETHOD(WorkspaceClose)();
  65.     STDMETHOD(NewWorkspace)();
  66.  
  67. // IDebuggerEvents method
  68. public:
  69.     STDMETHOD(BreakpointHit)(IDispatch *pBreakpoint);
  70.  
  71. // ICmdWnd
  72. public:
  73.     STDMETHOD(DoCmdWnd)();
  74.  
  75. protected:
  76.     CComPtr<IApplication> m_spApplication;
  77.     DWORD m_dwAddInID;
  78.     DWORD m_dwAppEvents;
  79.     DWORD m_dwDbgEvents;
  80.     CComPtr<ICommandWindow> m_pCommandWindow;
  81.     DWORD m_dwCookie;
  82.  
  83.  
  84. };
  85.  
  86. #endif //__CMDWND_H_
  87.