Learn how to streamline SOLIDWORKS add-in development using C# and VB.NET via free and open-source SwEx.AddIn Framework
Accessibility of certain interface can be found in the Accessors section of specific interface in the SOLIDWORKS API Help documentation.
For example, the snapshot below is an Accessors section of the IAnnotation Interface
Some of the interfaces can be explicitly or implicitly cast from one to another. For example IModelDoc2 represents the parent interface (although there is no direct inheritance) for IPartDoc, IAssemblyDoc, IDrawingDoc interfaces.
Which means that both parent and specific object would be pointing to the same object in memory.
Dim swModel As SldWorks.ModelDoc2 ... Dim swPart As SldWorks.PartDoc Set swPart = swModel
Dim swModel As IModelDoc2 ... Dim swPart As IPartDoc = CType(swModel, IPartDoc)
IModelDoc2 model; ... IPartDoc part = model as IPartDoc;
LPMODELDOC2 pModelDoc; ... LPPARTDOC pPartDoc = NULL; hres = pModelDoc->QueryInterface(IID_IPartDoc, (LPVOID*)&pPartDoc);