Altova XMLSpy 2025 Professional Edition 

En la definición de clase del objeto ATL deben realizarse varios cambios. La clase debe derivarse de IXMLSpyPlugIn, el mapa de la interfaz necesita una entrada para IXMLSpyPlugIn y los métodos de la interfaz del complemento para entornos IDE debe declararse:

 

#ifndef __XMLSPYIDEPLUGIN_H_

#define __XMLSPYIDEPLUGIN_H_

 

#include "resource.h"       // símbolos principales

 

/////////////////////////////////////////////////////////////////////////////

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

 

© 2018-2024 Altova GmbH