Preview | SOLIDWORKS USER FORUM
Use your SOLIDWORKS ID or 3DEXPERIENCE ID to log in.
BLBrendan L11/08/2008
Hello all,
I am currently working on a project that runs a macro for Cosmosworks in C++. However, for some reason, When I run my code my Cosmosworks object is equal to NULL. I have supplied a section of my code to explain exactly how I am working it, could someone possibly steer me in the right direction, or inform me of any steps that I am missing.
void foo()
{
//PRE: m_iSldWorks is a pointer to the SldWorks object
CComBSTR CWBSTR = (_T("CosmosWorks.CosmosWorks));
CComPtr [ICosmosWorks] m_iCosWorks;
CComPtr[IDispatch] swDispatch;
CComPtr[ICWModelDoc] cwModel;
HRESULT hres;
if(m_iSldWorks->GetAddInObject(CWBSTR, &swDispatch) == S_OK)
{
CHECKPT
if(swDispatch)
{
hres = swDispatch->QueryInterface(__uuidof(ICosmosWorks), (void **)&m_iCosWorks);
if(hres == S_FALSE)
{
CHECKPT
return S_FALSE;
}
if(m_iCosWorks)
{
hres = m_iCosWorks->get_ActiveDoc(&cwModel);
}
}
}
...
Any help would be greatly appreciated.
Brendan L
I am currently working on a project that runs a macro for Cosmosworks in C++. However, for some reason, When I run my code my Cosmosworks object is equal to NULL. I have supplied a section of my code to explain exactly how I am working it, could someone possibly steer me in the right direction, or inform me of any steps that I am missing.
void foo()
{
//PRE: m_iSldWorks is a pointer to the SldWorks object
CComBSTR CWBSTR = (_T("CosmosWorks.CosmosWorks));
CComPtr [ICosmosWorks] m_iCosWorks;
CComPtr[IDispatch] swDispatch;
CComPtr[ICWModelDoc] cwModel;
HRESULT hres;
if(m_iSldWorks->GetAddInObject(CWBSTR, &swDispatch) == S_OK)
{
CHECKPT
if(swDispatch)
{
hres = swDispatch->QueryInterface(__uuidof(ICosmosWorks), (void **)&m_iCosWorks);
if(hres == S_FALSE)
{
CHECKPT
return S_FALSE;
}
if(m_iCosWorks)
{
hres = m_iCosWorks->get_ActiveDoc(&cwModel);
}
}
}
...
Any help would be greatly appreciated.
Brendan L