// Commands.h : header file // // Copyright (C) 1992-1998 Microsoft Corporation // All rights reserved. #if !defined(AFX_COMMANDS_H__D93F3A18_3DA9_11D0_B889_00C04FD7A0F0__INCLUDED_) #define AFX_COMMANDS_H__D93F3A18_3DA9_11D0_B889_00C04FD7A0F0__INCLUDED_ #include "AutoBldTypes.h" class CCommands : public CComDualImpl, public CComObjectRoot, public CComCoClass { protected: IApplication* m_pApplication; public: CCommands(); ~CCommands(); void SetApplicationObject(IApplication* m_pApplication); IApplication* GetApplicationObject() { return m_pApplication; } void UnadviseFromEvents(); BEGIN_COM_MAP(CCommands) COM_INTERFACE_ENTRY(IDispatch) COM_INTERFACE_ENTRY(ICommands) END_COM_MAP() DECLARE_NOT_AGGREGATABLE(CCommands) BOOL m_bTesting; int m_nTotalWarnings; int m_nTotalErrors; CString m_strFileToSend; CString m_strStatusLine; CString m_strSendTo; BOOL m_bCloseWhenDone; BOOL m_bMailOnEach; BOOL m_bSendFile; BOOL m_bIncBuildResults; BOOL m_bSendMail; CString m_strBuildingConfigurationName; BOOL m_bAutoBuilding; BOOL m_bBuildInProgres; protected: // This class template is used as the base class for the Application // event handler object and the Debugger event handler object, // which are declared below. template class XEventHandler : public CComDualImpl, public CComObjectRoot, public CComCoClass { public: BEGIN_COM_MAP(XEvents) COM_INTERFACE_ENTRY(IDispatch) COM_INTERFACE_ENTRY_IID(*piidEvents, IEvents) END_COM_MAP() DECLARE_NOT_AGGREGATABLE(XEvents) void Connect(IUnknown* pUnk) { VERIFY(SUCCEEDED(AtlAdvise(pUnk, this, *piidEvents, &m_dwAdvise))); } void Disconnect(IUnknown* pUnk) { AtlUnadvise(pUnk, *piidEvents, m_dwAdvise); } CCommands* m_pCommands; protected: DWORD m_dwAdvise; }; // This object handles events fired by the Application object class XApplicationEvents : public XEventHandler { public: // IApplicationEvents methods STDMETHOD(BeforeBuildStart)(THIS); STDMETHOD(BuildFinish)(THIS_ long nNumErrors, long nNumWarnings); STDMETHOD(BeforeApplicationShutDown)(THIS); STDMETHOD(DocumentOpen)(THIS_ IDispatch * theDocument); STDMETHOD(BeforeDocumentClose)(THIS_ IDispatch * theDocument); STDMETHOD(DocumentSave)(THIS_ IDispatch * theDocument); STDMETHOD(NewDocument)(THIS_ IDispatch * theDocument); STDMETHOD(WindowActivate)(THIS_ IDispatch * theWindow); STDMETHOD(WindowDeactivate)(THIS_ IDispatch * theWindow); STDMETHOD(WorkspaceOpen)(THIS); STDMETHOD(WorkspaceClose)(THIS); STDMETHOD(NewWorkspace)(THIS); }; typedef CComObject XApplicationEventsObj; XApplicationEventsObj* m_pApplicationEventsObj; // This object handles events fired by the Application object class XDebuggerEvents : public XEventHandler { public: // IDebuggerEvents method STDMETHOD(BreakpointHit)(THIS_ IDispatch * pBreakpoint); }; typedef CComObject XDebuggerEventsObj; XDebuggerEventsObj* m_pDebuggerEventsObj; public: // ICommands methods STDMETHOD(AutoBuildTest)(THIS); STDMETHOD(AutoBuild)(THIS); STDMETHOD(AutoBuildConfigure)(THIS); }; typedef CComObject CCommandsObj; //{{AFX_INSERT_LOCATION}} // Microsoft Developer Studio will insert additional declarations immediately before the previous line. #endif // !defined(AFX_COMMANDS_H__D93F3A18_3DA9_11D0_B889_00C04FD7A0F0__INCLUDED)