Klassendefinition

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Referenz für Programmierer > IDE Plugins > ATL-Beispieldateien >

Klassendefinition

In der Klassendefinition des ATL-Objekts müssen einige Änderungen vorgenommen werden. Die Klasse muss von IXMLSpyPlugIn abgeleitet sein, die "Interface Map" benötigt einen Eintrag für IXMLSpyPlugIn und die Methoden der IDE Plug-In-Schnittstelle müssen deklariert werden:

 

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


© 2019 Altova GmbH