Altova Authentic 2024 Desktop

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_

 

© 2017-2023 Altova GmbH