mirror of
https://github.com/vim/vim.git
synced 2025-10-01 04:54:07 -04:00
updated for version 7.0001
This commit is contained in:
127
src/VisVim/Commands.h
Normal file
127
src/VisVim/Commands.h
Normal file
@@ -0,0 +1,127 @@
|
||||
// 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)
|
Reference in New Issue
Block a user