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



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


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

STDMETHOD(PaletteColumnClick)(/*[in]*/ VARIANT varIndex);

STDMETHOD(PaletteMouseUp)(

/*[in]*/ VARIANT varButton

, /*[in]*/ VARIANT varItemTexts

, /*[in]*/ VARIANT varX

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

STDMETHOD(PaletteMouseDown)(

/*[in]*/ VARIANT varButton

, /*[in]*/ BSTR bstrFullText

, /*[in]*/ VARIANT varX

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

STDMETHOD(RenderPreviewWindow)(

/*[in]*/ BSTR bstrFullText

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

STDMETHOD(PreviewMouseUp)(

/*[in]*/ VARIANT varButton

, /*[in]*/ VARIANT varX

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

STDMETHOD(Refresh)();

STDMETHOD(PaletteBeginDrag)(

/*[in]*/ VARIANT varItemTexts

, /*[in]*/ VARIANT varX

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

STDMETHOD(ReleaseBrowser)();

STDMETHOD(QueryContextMenu)(

/*[in]*/ VARIANT varhMenu

, /*[in]*/ VARIANT varIndex

, /*[in]*/ VARIANT varCmdFirst

, /*[in]*/ VARIANT varCmdLast

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

STDMETHOD(InvokeCommand)(/*[in]*/ VARIANT varMenuID);

STDMETHOD(IsExpandable)(

/* [string][in] */ BSTR bstrItemText

, /* [retval][out] */ VARIANT __RPC_FAR

*pvarIsExpandable);

STDMETHOD(GetLargeImage)(

/* [in] */ BSTR bstrFileName

, /* [out][in] */ VARIANT __RPC_FAR

*pvarhLargeImage);

STDMETHOD(GetSmallImageListForContent)(

/*[in]*/ BSTR bstrFileName

, /*[out]*/ VARIANT *pvarhImageList);

STDMETHOD(GetLargeImageListForContent)(

/*[in]*/ BSTR bstrFileName

, /*[out]*/ VARIANT *pvarhImageList);

private:

char * m_strSelectedItemText;

IAcDcContentBrowser* m_pBrowser;

 

6 Добавляют код, чтобы осуществить методы, только добавленные. Обратите внимание, что многие из этих методов только необходимы закончить интерфейс. Пример использует одиночный щелчок (PaletteItemClick) и двойной щелчок (PaletteItemDblClick) события.

Adesk::Boolean append(AcDbEntity* pEntity)

{

AcDbBlockTable *pBlockTable;

AcApDocument* pDoc = acDocManager->curDocument();

Acad::ErrorStatus es = acDocManager->lockDocument(pDoc);

if (es != Acad::eOk) {




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