类定义
在ATL对象的类定义中,必须进行以下更改:
•该类必须从IXMLSpyPlugIn派生
•“接口映射”需要一个IXMLSpyPlugIn的条目
•必须声明IDE插件接口的方法
可以进行这些更改,如下所示:
#ifndef __XMLSPYIDEPLUGIN_H_
#define __XMLSPYIDEPLUGIN_H_
#include "resource.h" // main symbols
/////////////////////////////////////////////////////////////////////////////
// CXMLSpyIDEPlugIn
class ATL_NO_VTABLE CXMLSpyIDEPlugIn :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CXMLSpyIDEPlugIn, &CLSID_XMLSpyIDEPlugIn>,
public IXMLSpyPlugIn
{
public:
CXMLSpyIDEPlugIn()
{
}
DECLARE_REGISTRY_RESOURCEID(IDR_XMLSPYIDEPLUGIN)
DECLARE_NOT_AGGREGATABLE(CXMLSpyIDEPlugIn)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CXMLSpyIDEPlugIn)
COM_INTERFACE_ENTRY(IXMLSpyPlugIn)
END_COM_MAP()
// IXMLSpyIDEPlugIn
public:
virtual HRESULT _stdcall OnCommand(long nID, IDispatch* pXMLSpy);
virtual HRESULT _stdcall OnUpdateCommand(long nID, IDispatch* pXMLSpy, SPYUpdateAction* pAction);
virtual HRESULT _stdcall OnEvent(long nEventID, SAFEARRAY **arrayParameters, IDispatch* pXMLSpy, VARIANT* pReturnValue);
virtual HRESULT _stdcall GetUIModifications(BSTR* pModificationsXML);
virtual HRESULT _stdcall GetDescription(BSTR* pDescription);
};
#endif //__XMLSPYIDEPLUGIN_H_