ObjectARX, AutoCAD. Среда программирования библиотеки C++




Добавьте Код, чтобы Поддержать Новый Объект COM ATL


1 Теперь мы должны добавить код, чтобы поддержать новый интерфейс. Сначала добавьте включающийся для dcapi.idl файла AsdkDesignCenterSamp .idl. Это включает, должен быть сделан после двух заданного по умолчанию импорта:

import "oaidl.idl";

import "ocidl.idl";

#include "dcapi.idl"

2 Открывают AsdkDcContent .h файл заголовка и изменяют{*заменяют*} образование для нового класса, чтобы включить CWINDOWIMPLBASE и IAcDcContentView следующим образом:

class ATL_NO_VTABLE CAsdkDcContent :

public CComObjectRootEx<CComSingleThreadModel>,

public CComCoClass<CAsdkDcContent, &CLSID_AsdkDcContent>,

public ISupportErrorInfo,

public IDispatchImpl<IAsdkDcContent, &IID_IAsdkDcContent,

&LIBID_ASDKDESIGNCENTERSAMPLib>,

public CWindowImplBase,

public IAcDcContentView

{

3 Теперь вводят интерфейсы объекта в карту COM, используя макрокоманду COM_INTERFACE_ENTRY:

BEGIN_COM_MAP(CAsdkDcContent)

COM_INTERFACE_ENTRY(IAsdkDcContent)

COM_INTERFACE_ENTRY(IDispatch)

COM_INTERFACE_ENTRY(ISupportErrorInfo)

COM_INTERFACE_ENTRY(IAcDcContentView)

END_COM_MAP()

4 Добавляют карту сообщения к классу:

BEGIN_MSG_MAP(CAsdkDcContent)

END_MSG_MAP()

5 Добавляют следующие объявления для интерфейса IAcDcContentView и некоторых сервисных методов:

public:

void OpenAndDisplayTextFile();

void OpenAndInsertTextFile();

CString OpenAndReadTextFile(DWORD& length);

STDMETHOD(Initialize)(/*[in]*/ VARIANT varBrowser);

STDMETHOD(SetImageLists)();

STDMETHOD(NavigatorNodeExpanding)(

/*[in]*/ VARIANT varhNode

, /*[in]*/ BSTR bstrFullPath);

STDMETHOD(NavigatorNodeCollapsing)(

/*[in]*/ VARIANT varhNode

, /*[in]*/ BSTR bstrFullPath);

STDMETHOD(NavigatorNodeClick)(

/*[in]*/ VARIANT varhNode

, /*[in, string]*/ BSTR bstrFullPath);

STDMETHOD(NavigatorMouseUp)(

/*[in]*/ VARIANT varhNode

, /*[in, string]*/ BSTR bstrFullPath

, /*[in]*/ VARIANT varX

, /*[in]*/ VARIANT varY);

STDMETHOD(PaletteItemClick)(/*[in]*/ BSTR bstrItemText);




Содержание  Назад  Вперед