SolidWorks API对象模型中提供了3种接口访问方法:
QueryInteface
是Com组件IUnknown接口中的之一,为COM组件提供接口相互访问功能,通过他可以访问组件内的任何接口。
//通过SldWorks获取当前文档的ModelDoc
CComPtr<IModelDoc2>pModel;
retval=m_iSldWorks->get_IActiveDoc2(&pModel);
ASSERT(pModel);
if(retval!=s_ok)
return ;
ccomPtr<IpartDOC>pPartDOC;
res=m_ModelDoc->QueryInterface(IID_IPartDoc,(LPVOID*)&pPartDoc);
ASSERT(pPartDoc)
if(retval!=s_ok)
return;
QueryInterface这种访问仅限于在同一个COM对象内
层级访问
如:SldWorks--ModelDoc--SelectionMgr
CComPtr<IModelDoc2>pModel;
retval=m_iSldWorks->get_IActiveDoc2(&pModel);
ASSERT(pModel);
if(retval!=S_OK)
return;
CComPtr<ISelectionMgr>pSelMgr;
retval=pModel->get_ISelectionManager(&pSelMgr);
ASSERT(retval !=S_OK)
re