ArcObjects Library Reference

Display Product License And Extensions Information Snippet

Displays the name of the product license used to initialize the application and the names of any extension licenses currently checked out by the application.

[C#]
/// <summary>
/// Displays the name of the product license used to initialize the application and
/// the names of any extension licenses currently checked out by the application.
/// </summary>
/// <remarks>If the ArcObjects application is not initialized an exception will be thrown and error message displayed.</remarks>
public void DisplayProductLicenseAndExtensionsInformation()
{

  //Create an AOInitialize object
  ESRI.ArcGIS.esriSystem.IAoInitialize aoInitialize = new ESRI.ArcGIS.esriSystem.AoInitializeClass();

  ESRI.ArcGIS.esriSystem.ILicenseInformation licenseInformation = (ESRI.ArcGIS.esriSystem.ILicenseInformation)aoInitialize; // Explict Cast

  System.String string_Licenses = null;

  try
  {

	ESRI.ArcGIS.esriSystem.esriLicenseProductCode licenseProductCode = aoInitialize.InitializedProduct();
	System.String string_LicenseProductName = licenseInformation.GetLicenseProductName(licenseProductCode);

	//Get the name of the application's initialized product
	string_Licenses = "This application is initialized with the following product license:" + System.Environment.NewLine + string_LicenseProductName + System.Environment.NewLine + "This application has the following extension licenses checked out:";

	//Get the extension enumerator for the initialized product
	ESRI.ArcGIS.esriSystem.ILicenseInfoEnum licenseInfoEnum = licenseInformation.GetProductExtensions(licenseProductCode);

	//Reset the enumerator
	licenseInfoEnum.Reset();

	//Get the next extension code
	ESRI.ArcGIS.esriSystem.esriLicenseExtensionCode licenseExtensionCode = licenseInfoEnum.Next();

	//Loop through the extension codes
        while ( ! (System.Convert.ToInt32(licenseExtensionCode) == -1))
	{

	  //Get the name of the extension if it checked out
	  if (aoInitialize.IsExtensionCheckedOut(licenseExtensionCode) == true)
	  {

		System.String string_LicenseExtensionName = licenseInformation.GetLicenseExtensionName(licenseExtensionCode);
		string_Licenses = string_Licenses + System.Environment.NewLine + string_LicenseExtensionName;

	  }

	  //Get the next extension code
	  licenseExtensionCode = licenseInfoEnum.Next();

	}

	System.Windows.Forms.MessageBox.Show(string_Licenses);

  }
  catch (System.Exception ex)
  {

	System.Windows.Forms.MessageBox.Show(ex.ToString());

  }

}
[Visual Basic .NET]
''' <summary>
''' Displays the name of the product license used to initialize the application and
''' the names of any extension licenses currently checked out by the application.
''' </summary>
''' <remarks>If the ArcObjects application is not initialized an exception will be thrown and error message displayed.</remarks>
Public Sub DisplayProductLicenseAndExtensionsInformation()

  'Create an AOInitialize object
  Dim aoInitialize As ESRI.ArcGIS.esriSystem.IAoInitialize = New ESRI.ArcGIS.esriSystem.AoInitializeClass

  Dim licenseInformation As ESRI.ArcGIS.esriSystem.ILicenseInformation = CType(aoInitialize, ESRI.ArcGIS.esriSystem.ILicenseInformation) ' Explict Cast

  Dim string_Licenses As System.String = Nothing

  Try

    Dim licenseProductCode As ESRI.ArcGIS.esriSystem.esriLicenseProductCode = aoInitialize.InitializedProduct
    Dim string_LicenseProductName As System.String = licenseInformation.GetLicenseProductName(licenseProductCode)

    'Get the name of the application's initialized product
    string_Licenses = "This application is initialized with the following product license:" _
    + System.Environment.NewLine + string_LicenseProductName _
    + System.Environment.NewLine + "This application has the following extension licenses checked out:"

    'Get the extension enumerator for the initialized product
    Dim licenseInfoEnum As ESRI.ArcGIS.esriSystem.ILicenseInfoEnum = licenseInformation.GetProductExtensions(licenseProductCode)

    'Reset the enumerator
    licenseInfoEnum.Reset()

    'Get the next extension code
    Dim licenseExtensionCode As ESRI.ArcGIS.esriSystem.esriLicenseExtensionCode = licenseInfoEnum.Next

    'Loop through the extension codes
    Do Until System.Convert.ToInt32(licenseExtensionCode) = -1

      'Get the name of the extension if it checked out
      If aoInitialize.IsExtensionCheckedOut(licenseExtensionCode) = True Then

        Dim string_LicenseExtensionName As System.String = licenseInformation.GetLicenseExtensionName(licenseExtensionCode)
          string_Licenses = string_Licenses + System.Environment.NewLine + string_LicenseExtensionName

      End If

      'Get the next extension code
      licenseExtensionCode = licenseInfoEnum.Next

    Loop

    System.Windows.Forms.MessageBox.Show(string_Licenses)

  Catch ex As System.Exception
    System.Windows.Forms.MessageBox.Show(ex.ToString)
  End Try

End Sub


Additional Requirements
  • The code in this document requires the following References added to the Visual Studio project:
  • ESRI.ArcGIS.System
  • System
  • System.Windows.Forms