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

  1. // CommandWindow.h : Declaration of the CCommandWindow
  2.  
  3. #ifndef __COMMANDWINDOW_H_
  4. #define __COMMANDWINDOW_H_
  5.  
  6. #include "resource.h"       // main symbols
  7. #include "devcmdCP.h"
  8.  
  9. /////////////////////////////////////////////////////////////////////////////
  10. // CCommandWindow
  11. class ATL_NO_VTABLE CCommandWindow : 
  12.     public CComObjectRootEx<CComSingleThreadModel>,
  13.     public CComCoClass<CCommandWindow, &CLSID_CommandWindow>,
  14.     public ISupportErrorInfo,
  15.     public IConnectionPointContainerImpl<CCommandWindow>,
  16.     public IDispatchImpl<ICommandWindow, &IID_ICommandWindow, &LIBID_devcmdLib>,
  17.     public CProxy_ICommandWindowEvents< CCommandWindow >
  18. {
  19. public:
  20.     CCommandWindow()
  21.     {
  22.     }
  23.  
  24. DECLARE_REGISTRY_RESOURCEID(IDR_COMMANDWINDOW)
  25. DECLARE_GET_CONTROLLING_UNKNOWN()
  26.  
  27. BEGIN_COM_MAP(CCommandWindow)
  28.     COM_INTERFACE_ENTRY_IMPL(IConnectionPointContainer)
  29.     COM_INTERFACE_ENTRY(ICommandWindow)
  30.     COM_INTERFACE_ENTRY(IDispatch)
  31.     COM_INTERFACE_ENTRY(ISupportErrorInfo)
  32.     COM_INTERFACE_ENTRY(IConnectionPointContainer)
  33.     COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_pUnkMarshaler.p)
  34. END_COM_MAP()
  35. BEGIN_CONNECTION_POINT_MAP(CCommandWindow)
  36.     CONNECTION_POINT_ENTRY(DIID__ICommandWindowEvents)
  37. END_CONNECTION_POINT_MAP()
  38.  
  39.     HRESULT FinalConstruct()
  40.     {
  41.         return CoCreateFreeThreadedMarshaler(
  42.             GetControllingUnknown(), &m_pUnkMarshaler.p);
  43.     }
  44.  
  45.     void FinalRelease()
  46.     {
  47.         m_pUnkMarshaler.Release();
  48.     }
  49.  
  50.     CComPtr<IUnknown> m_pUnkMarshaler;
  51.  
  52. // ISupportsErrorInfo
  53.     STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
  54.  
  55.  
  56. // ICommandWindow
  57. public:
  58.     STDMETHOD(SetFocus)();
  59.     IApplication * GetApp();
  60.     STDMETHOD(DoClose)();
  61.     STDMETHOD(Open)(IDispatch *pDispApplication);
  62.     HRESULT FindApp();
  63.     STDMETHOD(DoFireClose)();
  64.  
  65. protected:
  66.     CComPtr<IApplication> m_spApplication;
  67. };
  68.  
  69. #endif //__COMMANDWINDOW_H_
  70.