Altova XMLSpy 2024 Enterprise Edition

在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_

 

© 2017-2023 Altova GmbH