IDispatch |
Top Previous Next |
You often need to cast pointers to objects into IDispatch* or IDispatch** when calling functions in the Inventor C++ COM API. Here are some examples, showing how to cast from various Inventor pointers to an IDispatch* :
Add a sketch based on a workplane:
CComPtr<WorkPlane> pWorkPlane ; hRes = pSketches->Add (_variant_t((IDispatch*)pWorkPlane), VARIANT_FALSE, &pNewSketch);
Add a workplane based on an existing workplane:
CComPtr<WorkPlane> pWorkPlane... ; CComPtr<WorkPlane> pOffsetWorkPlane ; hRes = pWorkPlanesList->AddByPlaneAndOffset (_variant_t((IDispatch*)pWorkPlane),// "starting" plane CComVariant(kTubeDiam/2.0), // how much to offset VARIANT_FALSE, // Construction? &pOffsetWorkPlane) ; // Return value of this call
Add a workpoint based on a sketchpoint:
CComPtr<SketchPoint> pSketchPoint... ; CComPtr<WorkPoint> pWorkPoint ; hRes = pWorkPointsList->AddByPoint (_variant_t((IDispatch*)pSketchPoint),VARIANT_FALSE,&pWorkPoint) ; if (FAILED(hRes) || (pWorkPoint == nullptr)) { return ReturnAndShowCOMError (hRes,L"AddWorkPointAtSketchPoint, Add workpoint failed") ; }
Create a proxy geometry from an occurrence and a workplane:
CComPtr<WorkPlaneProxy> pWPProxyA ; pOccurrence->CreateGeometryProxy (pWorkPlaneA,(IDispatch**)&pWPProxyA) ;
|
Text, images and diagrams © 2021 Owen F. Ransen. All rights reserved. (But copy the source code as much as you want!)