чтобы использовать путь для AutoCAD,
Удостоверитесь, чтобы использовать путь для AutoCAD, установленного на вашей системе:
#import "c:\\acad\\acad.tlb" no_implementation \
Raw_interfaces_only named_guids
6 Решают, который связывает с помощью интерфейса Вас, будет должен обратиться. Так как этот пример использует строку меню AutoCAD, это требует большинства объектов меню. Они объявлены в функции addMenuThroughCom следующим образом:
AutoCAD::IAcadApplication *pAcad;
AutoCAD::IAcadMenuBar *pMenuBar;
AutoCAD::IAcadMenuGroups *pMenuGroups;
AutoCAD::IAcadMenuGroup *pMenuGroup;
AutoCAD::IAcadPopupMenus *pPopUpMenus;
AutoCAD::IAcadPopupMenu *pPopUpMenu;
AutoCAD::IAcadPopupMenuItem *pPopUpMenuItem;
7 более прямой подход COM обращаться к интерфейсам Автоматизации использует QueryInterface. Следующий код возвращает IUNKNOWN для AutoCAD:
HRESULT hr = NOERROR;
CLSID clsid;
LPUNKNOWN pUnk = NULL;
LPDISPATCH pAcadDisp = NULL;
hr = ::CLSIDFromProgID(L"AutoCAD.Application", &clsid);
if (SUCCEEDED(hr))
{
if(::GetActiveObject(clsid, NULL, &pUnk) == S_OK)
{
if (pUnk->QueryInterface(IID_IDispatch, (LPVOID*) &pAcadDisp) != S_OK)
return;
pUnk->Release();
}
}
8 Использования IUnknown, чтобы получить объект приложения AutoCAD. Также, удостоверитесь, что AutoCAD видим и получать объекты IACADMENUBAR И IACADMENUGROUPS.
Этому показывают в следующем коде:
if (SUCCEEDED(pAcadDisp->QueryInterface (AutoCAD::IID_IAcadApplication,(void**)&pAcad)))
{
pAcad->put_Visible(true);
}
else {
acutPrintf("\nQueryInterface trouble.");
return;
}
9 С приложением AutoCAD, получите строку меню и коллекции групп меню.
Определите, сколько меню текущие на строке меню:
pAcad->get_MenuBar(&pMenuBar);
pAcad->get_MenuGroups(&pMenuGroups);
pAcad->Release();
long numberOfMenus;
pMenuBar->get_Count(&numberOfMenus);
pMenuBar->Release();
10 Получают первое меню от коллекции групп меню. Это будет обычно ACAD, но могло быть кое-что еще. Тогда получите коллекцию всплывающих меню от первой группы меню:
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий