Commands.h
资源名称:vim53src.zip [点击查看]
上传用户:gddssl
上传日期:2007-01-06
资源大小:1003k
文件大小:4k
源码类别:
编辑器/阅读器
开发平台:
DOS
- // Commands.h : header file
- //
- #if !defined(AFX_COMMANDS_H__AC726717_2977_11D1_B2F3_006008040780__INCLUDED_)
- #define AFX_COMMANDS_H__AC726717_2977_11D1_B2F3_006008040780__INCLUDED_
- #include "vsvtypes.h"
- class CCommands :
- public CComDualImpl < ICommands,
- &IID_ICommands,
- &LIBID_VisVim >,
- public CComObjectRoot,
- public CComCoClass < CCommands,
- &CLSID_Commands >
- {
- 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)
- 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 IEvents,
- const IID * piidEvents,
- const GUID * plibid,
- class XEvents,
- const CLSID * pClsidEvents >
- class XEventHandler :
- public CComDualImpl < IEvents,
- piidEvents,
- plibid >,
- public CComObjectRoot,
- public CComCoClass < XEvents,
- pClsidEvents >
- {
- 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 < IApplicationEvents,
- &IID_IApplicationEvents,
- &LIBID_VisVim,
- XApplicationEvents,
- &CLSID_ApplicationEvents >
- {
- 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 < XApplicationEvents > XApplicationEventsObj;
- XApplicationEventsObj *m_pApplicationEventsObj;
- // This object handles events fired by the Application object
- class XDebuggerEvents : public XEventHandler < IDebuggerEvents,
- &IID_IDebuggerEvents,
- &LIBID_VisVim,
- XDebuggerEvents,
- &CLSID_DebuggerEvents >
- {
- public:
- // IDebuggerEvents method
- STDMETHOD (BreakpointHit) (THIS_ IDispatch * pBreakpoint);
- };
- typedef CComObject < XDebuggerEvents > XDebuggerEventsObj;
- XDebuggerEventsObj *m_pDebuggerEventsObj;
- public:
- // ICommands methods
- STDMETHOD (VisVimDialog) (THIS);
- STDMETHOD (VisVimEnable) (THIS);
- STDMETHOD (VisVimDisable) (THIS);
- STDMETHOD (VisVimToggle) (THIS);
- STDMETHOD (VisVimLoad) (THIS);
- };
- typedef CComObject < CCommands > CCommandsObj;
- //{{AFX_INSERT_LOCATION}}
- #endif // !defined(AFX_COMMANDS_H__AC726717_2977_11D1_B2F3_006008040780__INCLUDED)