现在的位置: 首页 > 综合 > 正文

arcmap中查找扩展模块和调用扩展模块

2012年07月26日 ⁄ 综合 ⁄ 共 1383字 ⁄ 字号 评论关闭
private void ExtensionList(IApplication application)
{
    List < string > loadedExtensions = new List < string > ();
    List < string > unloadedExtensions = new List < string > ();

    //All extensions returned by extension manager have been loaded at startup.
    IExtensionManager regularExtManager = application as IExtensionManager;
    for (int i = 0; i < regularExtManager.ExtensionCount; i++)
    {
        IExtension ext = regularExtManager.get_Extension(i);
        loadedExtensions.Add(ext.Name);
    }

    //Use IsLoaded to test if a JIT extension has already been loaded by request.
    IJITExtensionManager jitExtManager = application as IJITExtensionManager;
    for (int i = 0; i < jitExtManager.JITExtensionCount; i++)
    {
        UID extID = jitExtManager.get_JITExtensionCLSID(i);
        if (jitExtManager.IsLoaded(extID))
        {
            IExtension ext = application.FindExtensionByCLSID(extID);
            loadedExtensions.Add(ext.Name);
        }
        else
        //Just show the extension ID.
        {
            unloadedExtensions.Add(extID.Value.ToString());
        }
    }

    //Print extension information.
    Console.WriteLine("Extensions loaded in Application:");
    foreach (string ext in loadedExtensions)
        Console.WriteLine("\t" + ext);
    Console.WriteLine("CLSID of extensions haven't been loaded yet:");
    foreach (string extID in unloadedExtensions)
        Console.WriteLine("\t" + extID);
}

 

调用

 

private void GetEditorExtension(IApplication application)
{
    //Find extension by CLSID or ProgId.
    UID extensionID = new UIDClass();
    extensionID.Value = "esriEditor.Editor"; 
        //{F8842F20-BB23-11D0-802B-0000F8037368}.
    IExtension editExtension = application.FindExtensionByCLSID(extensionID);
}

 

抱歉!评论已关闭.