Get Properties of Entity Example (COM native C++)

This code snippet shows how to get the Layer name, LineStyle, scale factor for the LineStyle, LineWeight, and visibility of an entity.

 
class CAddinDumpManager
{
public:
    template<class EntityTypePtr>
    
static void DumpGraphicsEntity(EntityTypePtr entity, CStdioFile& fo )
    {
        CString strPrint;
        bstr_t LayerName = entity->GetLayer();
        strPrint.Format(L
"\tLayer: s\r\n", LayerName.operator const wchar_t*());
        fo.WriteString(strPrint);    

        _bstr_t LineType = entity->GetLineStyle();
        strPrint.Format(L
"\tLineStyles\r\n", LineStyle.operator const wchar_t*());
        fo.WriteString(strPrint);    

        
double LinetypeScale = entity->GetLineScale( );
        strPrint.Format(L
"\tLineScale: .4f\r\n", LineScale);
        fo.WriteString(strPrint);    

        dsLineWeight_e LineWeight = entity->GetLineWeight();
        
if( dsLnWt_ByLayer == LineWeight )
            strPrint.Format(L
"\tLineWeight: ByLayer\r\n");
        
else
            if( dsLnWt_ByBlock == LineWeight )
                strPrint.Format(L
"\tLineWeight: ByBlock\r\n");
            
else
                if( dsLnWt_ByLwDefault == LineWeight )
                    strPrint.Format(L
"\tLineWeight: ByLwDefault\r\n");
                
else
                    strPrint.Format(L"\tLineWeightd\r\n", (int)LineWeight);
        fo.WriteString(strPrint);    

        VARIANT_BOOL isVisible = entity->GetVisible();
        
if(VARIANT_TRUE == isVisible)
            strPrint.Format(L
"\tVisible: true\r\n");
        
else
            strPrint.Format(L"\tVisible: false\r\n"
);
        fo.WriteString(strPrint);    
    };

};