Mapx加载tab文件

以下代码演示了如何加载指定tab文件

int  CHtGisClientView::LoadCustomLayers( char   * LayerDirPath)
{

    CMapXLayerInfo layerInfo ;

//     CMapXFields mapFields;
    
    CStringArray tabFileList ;

    
try {

        layerInfo.CreateDispatch( layerInfo.GetClsid() );
//         mapFields.CreateDispatch( mapFields.GetClsid());
//
//         mapFields.AddStringField("FID",254);                 
//
//         COleVariant vFields;
//         vFields.vt=VT_DISPATCH;
//         vFields.pdispVal=mapFields;
//          vFields.pdispVal->AddRef();

        GetFilesOfPath( LayerDirPath , tabFileList ) ;

        CString tabFileName , tabFileTitle ;

        
for  (  int  i  =   0  ; i  <  tabFileList.GetSize() ; i ++  ) {
            
            tabFileName 
=  tabFileList.GetAt( i ) ;
            tabFileTitle 
=  GetFileTitleFromFileName( tabFileName , FALSE );

            layerInfo.SetType( miLayerInfoTypeTab ) ;
            layerInfo.AddParameter(
" Filespec "  , COleVariant(tabFileName) );
            layerInfo.AddParameter(
" Name "  , COleVariant(tabFileTitle)  );
//             layerInfo.AddParameter("Fields", vFields );

            m_ctrlMapX.GetLayers().Add(layerInfo);

        }


        
return  R_OK ;
    }
    
catch (COleDispatchException *  e) {
        e
-> ReportError();
        e
-> Delete();
    } 
catch (COleException *  e) {
        e
-> ReportError();
        e
-> Delete();
    }    
    
return   R_DEFAULT ;

}
 

你可能感兴趣的:(map)