![]() |
This document is archived and information here might be outdated. Recommended version. |
| ArcObjects Help for .NET developers > ESRI.ArcGIS.Snippets > Snippets > Display Extension State on Status Bar Snippet (ArcObjects .NET 10.4 SDK) |
Display the state of the specified ArcGIS extension on the status bar when a CLSID or ProgID is supplied.
///<summary>Display the state of the specified ArcGIS extension on the status bar when a CLSID or ProgID is supplied.</summary>
///
///<param name="application">An IApplication interface.</param>
///<param name="extensionName">A System.String that is the CLSID or ProgID for the ArcGIS extension to be returned. Example: "{3C5059FE-9F15-401A-94ED-EED914D73E3E}" or "esriSpatialAnalystUI.SAExtension"</param>
///
///<remarks>A listing of available ArcGIS extensions CLSID and ProgID values can be found at: http://edndoc.esri.com/arcobjects/9.1/default.asp?URL=/arcobjects/9.1/ArcGISDevHelp/TechnicalDocuments/Guids/ESRIExtIds.htm</remarks>
public void DisplayExtensionStateOnStatusBar(ESRI.ArcGIS.Framework.IApplication application, System.String extensionName)
{
ESRI.ArcGIS.esriSystem.UID uid=new ESRI.ArcGIS.esriSystem.UIDClass();
uid.Value=extensionName; // example: "esriPublisherUI.Publisher"
ESRI.ArcGIS.esriSystem.esriExtensionState extensionState=ESRI.ArcGIS.esriSystem.esriExtensionState.esriESUnavailable;
ESRI.ArcGIS.esriSystem.IExtensionManager extensionManager=application as ESRI.ArcGIS.esriSystem.IExtensionManager; // dynamic cast
ESRI.ArcGIS.esriSystem.IExtension extension=extensionManager.FindExtension(uid);
if (extension != null)
{
if (extension is ESRI.ArcGIS.esriSystem.IExtensionConfig)
{
ESRI.ArcGIS.esriSystem.IExtensionConfig extensionConfig=(ESRI.ArcGIS.esriSystem.IExtensionConfig)extension; // explicit cast
extensionState=extensionConfig.State;
}
else
extensionState=ESRI.ArcGIS.esriSystem.esriExtensionState.esriESEnabled;
}
else
{
ESRI.ArcGIS.esriSystem.IJITExtensionManager jitExtensionManager=application as ESRI.ArcGIS.esriSystem.IJITExtensionManager; // dynamic cast
if (jitExtensionManager.IsLoaded(uid))
{
ESRI.ArcGIS.esriSystem.IExtension jitExtension=application.FindExtensionByCLSID(uid);
if (jitExtension is ESRI.ArcGIS.esriSystem.IExtensionConfig)
{
ESRI.ArcGIS.esriSystem.IExtensionConfig jitExtensionConfig=(ESRI.ArcGIS.esriSystem.IExtensionConfig)jitExtension; // explicit cast
extensionState=jitExtensionConfig.State;
}
else
{
extensionState=ESRI.ArcGIS.esriSystem.esriExtensionState.esriESEnabled;
}
}
else
{
for (int i=0; i < jitExtensionManager.JITExtensionCount; i++)
{
if (jitExtensionManager.get_JITExtensionCLSID(i).Compare(uid))
{
if (jitExtensionManager.IsExtensionEnabled(uid))
{
extensionState=ESRI.ArcGIS.esriSystem.esriExtensionState.esriESEnabled;
}
else
{
extensionState=ESRI.ArcGIS.esriSystem.esriExtensionState.esriESDisabled;
}
break;
}
}
}
}
if (extensionState == ESRI.ArcGIS.esriSystem.esriExtensionState.esriESEnabled)
{
application.StatusBar.set_Message(0, "Extension is enabled");
}
else if (extensionState == ESRI.ArcGIS.esriSystem.esriExtensionState.esriESDisabled)
{
application.StatusBar.set_Message(0, "Extension is disabled");
}
else if (extensionState == ESRI.ArcGIS.esriSystem.esriExtensionState.esriESUnavailable)
{
application.StatusBar.set_Message(0, "Extension is unavailable");
}
else
{
application.StatusBar.set_Message(0, "Extension state is unknown.");
}
}
'''<summary>Display the state of the specified ArcGIS extension on the status bar when a CLSID or ProgID is supplied.</summary>
'''
'''<param name="application">An IApplication interface.</param>
'''<param name="extensionName">A System.String that is the CLSID or ProgID for the ArcGIS extension to be returned. Example: "{3C5059FE-9F15-401A-94ED-EED914D73E3E}" or "esriSpatialAnalystUI.SAExtension"</param>
'''
'''<remarks>A listing of available ArcGIS extensions CLSID and ProgID values can be found at: http://edndoc.esri.com/arcobjects/9.1/default.asp?URL=/arcobjects/9.1/ArcGISDevHelp/TechnicalDocuments/Guids/ESRIExtIds.htm</remarks>
Public Sub DisplayExtensionStateOnStatusBar(ByVal application As ESRI.ArcGIS.Framework.IApplication, ByVal extensionName As System.String)
Dim uid As ESRI.ArcGIS.esriSystem.UID=New ESRI.ArcGIS.esriSystem.UIDClass ' example: "esriPublisherUI.Publisher"
UID.Value=extensionName
Dim extensionState As ESRI.ArcGIS.esriSystem.esriExtensionState=ESRI.ArcGIS.esriSystem.esriExtensionState.esriESUnavailable
Dim extensionManager As ESRI.ArcGIS.esriSystem.IExtensionManager=CType(application, ESRI.ArcGIS.esriSystem.IExtensionManager) ' Explicit Cast
Dim extension As ESRI.ArcGIS.esriSystem.IExtension=extensionManager.FindExtension(UID)
If Not (extension Is Nothing) Then
If TypeOf extension Is ESRI.ArcGIS.esriSystem.IExtensionConfig Then
Dim extensionConfig As ESRI.ArcGIS.esriSystem.IExtensionConfig=CType(extension, ESRI.ArcGIS.esriSystem.IExtensionConfig) ' Explicit Cast
extensionState=extensionConfig.State
Else
extensionState=ESRI.ArcGIS.esriSystem.esriExtensionState.esriESEnabled
End If
Else
Dim jitExtensionManager As ESRI.ArcGIS.esriSystem.IJITExtensionManager=CType(application, ESRI.ArcGIS.esriSystem.IJITExtensionManager) ' Explicit Cast
If jitExtensionManager.IsLoaded(UID) Then
Dim jitExtension As ESRI.ArcGIS.esriSystem.IExtension=application.FindExtensionByCLSID(UID)
If TypeOf jitExtension Is ESRI.ArcGIS.esriSystem.IExtensionConfig Then
Dim jitExtensionConfig As ESRI.ArcGIS.esriSystem.IExtensionConfig=CType(jitExtension, ESRI.ArcGIS.esriSystem.IExtensionConfig) ' Explicit Cast
extensionState=jitExtensionConfig.State
Else
extensionState=ESRI.ArcGIS.esriSystem.esriExtensionState.esriESEnabled
End If
Else
Dim i As Integer=0
For i=0 To jitExtensionManager.JITExtensionCount - 1
If jitExtensionManager.JITExtensionCLSID(i).Compare(UID) Then
If jitExtensionManager.IsExtensionEnabled(UID) Then
extensionState=ESRI.ArcGIS.esriSystem.esriExtensionState.esriESEnabled
Else
extensionState=ESRI.ArcGIS.esriSystem.esriExtensionState.esriESDisabled
End If
End If
Next i
End If
End If
If extensionState=ESRI.ArcGIS.esriSystem.esriExtensionState.esriESEnabled Then
application.StatusBar.Message(0)="Extension is enabled"
Else
If extensionState=ESRI.ArcGIS.esriSystem.esriExtensionState.esriESDisabled Then
application.StatusBar.Message(0)="Extension is disabled"
Else
If extensionState=ESRI.ArcGIS.esriSystem.esriExtensionState.esriESUnavailable Then
application.StatusBar.Message(0)="Extension is unavailable"
Else
application.StatusBar.Message(0)="Extension state is unknown"
End If
End If
End If
End Sub