/// <summary>
        /// Check out spatial analyst license
        /// </summary>
        /// <returns>esriLicenseStatus</returns>
        public esriLicenseStatus GetSpatialAnalystLicense()
        {
            //Check out a Spatial Analyst license with the ArcView product.
            esriLicenseProductCode productCode =
                esriLicenseProductCode.esriLicenseProductCodeAdvanced;
            IAoInitialize     pAoInitialize = new AoInitializeClass();
            esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;

            //Check the productCode.
            licenseStatus = pAoInitialize.IsProductCodeAvailable(productCode);
            if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
            {
                //Check the extensionCode.
                licenseStatus = pAoInitialize.IsExtensionCodeAvailable(productCode,
                                                                       esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);
                if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
                {
                    //Initialize the license.
                    licenseStatus = pAoInitialize.Initialize(productCode);
                    if ((licenseStatus == esriLicenseStatus.esriLicenseCheckedOut))
                    {
                        //Check out the Spatial Analyst extension.
                        licenseStatus = pAoInitialize.CheckOutExtension
                                            (esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst)
                        ;
                    }
                }
            }

            return(licenseStatus);
        }
Ejemplo n.º 2
0
        public static void AoInitialize()
        {
            ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
            IAoInitialize pAoInitialize = new AoInitializeClass();

            if (pAoInitialize == null)
            {
                throw new Exception("AO Initialize failed");
            }

            esriLicenseStatus status = pAoInitialize.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeAdvanced);

            if (status == esriLicenseStatus.esriLicenseAvailable)
            {
                pAoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);
            }
            else if (status == esriLicenseStatus.esriLicenseUnavailable)
            {
                throw new Exception("esriLicenseProductCodeAdvanced is unavailable");
            }

            //status = pAoInitialize.IsExtensionCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeAdvanced, esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);
            //if (status == esriLicenseStatus.esriLicenseAvailable)
            //{
            //    status = pAoInitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);
            //    if (status == esriLicenseStatus.esriLicenseNotInitialized) { throw new Exception("esriLicenseExtensionCodeSpatialAnalyst is not initialized"); }
            //}
            //else if (status == esriLicenseStatus.esriLicenseNotLicensed) { throw new Exception("esriLicenseExtensionCodeSpatialAnalyst is not licensed"); }
            //else if (status == esriLicenseStatus.esriLicenseUnavailable) { throw new Exception("esriLicenseExtensionCodeSpatialAnalyst is  unavailable"); }
        }
        private bool Initialize()
        {
            if (RuntimeManager.ActiveRuntime == null)
            {
                return(false);
            }

            if (m_requestedProducts == null || m_requestedProducts.Count == 0)
            {
                return(false);
            }

            bool productInitialized = false;

            m_requestedProducts.Sort();
            if (!InitializeLowerProductFirst) //Request license from highest to lowest
            {
                m_requestedProducts.Reverse();
            }

            m_AoInit = new AoInitializeClass();
            esriLicenseProductCode currentProduct = new esriLicenseProductCode();

            foreach (int prodNumber in m_requestedProducts)
            {
                esriLicenseProductCode prod   = (esriLicenseProductCode)Enum.ToObject(typeof(esriLicenseProductCode), prodNumber);
                esriLicenseStatus      status = m_AoInit.IsProductCodeAvailable(prod);
                if (status == esriLicenseStatus.esriLicenseAvailable)
                {
                    status = m_AoInit.Initialize(prod);
                    if (status == esriLicenseStatus.esriLicenseAlreadyInitialized ||
                        status == esriLicenseStatus.esriLicenseCheckedOut)
                    {
                        productInitialized = true;
                        currentProduct     = m_AoInit.InitializedProduct();
                    }
                }

                m_productStatus.Add(prod, status);

                if (productInitialized)
                {
                    break;
                }
            }

            m_hasInitializeProduct = productInitialized;
            m_requestedProducts.Clear();

            //No product is initialized after trying all requested licenses, quit
            if (!productInitialized)
            {
                return(false);
            }

            //Check out extension licenses
            return(CheckOutLicenses(currentProduct));
        }
Ejemplo n.º 4
0
 public void InitArcGISLicence()
 {
     ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
     AoInitialize aoi = new AoInitializeClass();
     esriLicenseProductCode productCode = esriLicenseProductCode.esriLicenseProductCodeAdvanced;
     if (aoi.IsProductCodeAvailable(productCode) == esriLicenseStatus.esriLicenseAvailable)
     {
         aoi.Initialize(productCode);
     }
 }
Ejemplo n.º 5
0
        private static void InitializeEngineLicense()
        {
            AoInitialize aoInitialize = new AoInitializeClass();

            const esriLicenseProductCode productCode = esriLicenseProductCode.esriLicenseProductCodeArcInfo;
            if (aoInitialize.IsProductCodeAvailable(productCode) == esriLicenseStatus.esriLicenseAvailable)
            {
                aoInitialize.Initialize(productCode);
            }
        }
Ejemplo n.º 6
0
        private static void InitializeEngineLicense()
        {
            AoInitialize aoInitialize = new AoInitializeClass();

            const esriLicenseProductCode productCode = esriLicenseProductCode.esriLicenseProductCodeArcInfo;

            if (aoInitialize.IsProductCodeAvailable(productCode) == esriLicenseStatus.esriLicenseAvailable)
            {
                aoInitialize.Initialize(productCode);
            }
        }
Ejemplo n.º 7
0
 private void InitializeEngineLicense()
 {
     ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
     AoInitialize aoi = new AoInitializeClass ();
     //more license choices could be included here
     esriLicenseProductCode productCode = esriLicenseProductCode.esriLicenseProductCodeEngine;
     if (aoi.IsProductCodeAvailable (productCode) == esriLicenseStatus.esriLicenseAvailable)
     {
         aoi.Initialize (productCode);
     }
 }
Ejemplo n.º 8
0
        public void InitArcGISLicence()
        {
            ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
            AoInitialize           aoi         = new AoInitializeClass();
            esriLicenseProductCode productCode = esriLicenseProductCode.esriLicenseProductCodeAdvanced;

            if (aoi.IsProductCodeAvailable(productCode) == esriLicenseStatus.esriLicenseAvailable)
            {
                aoi.Initialize(productCode);
            }
        }
Ejemplo n.º 9
0
        private void InitializeEngineLicense()
        {
            AoInitialize aoi = new AoInitializeClass();

            //more license choices could be included here
            esriLicenseProductCode productCode = esriLicenseProductCode.esriLicenseProductCodeArcEditor;
            if (aoi.IsProductCodeAvailable(productCode) == esriLicenseStatus.esriLicenseAvailable)
            {
                aoi.Initialize(productCode);
            }
        }
Ejemplo n.º 10
0
 public MainForm_GM()
 {
     RuntimeManager.Bind(ProductCode.EngineOrDesktop);
     IAoInitialize aoini = new AoInitializeClass();
     var licenseStatus = aoini.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeStandard);
     if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
     {
         licenseStatus = aoini.Initialize(esriLicenseProductCode.esriLicenseProductCodeStandard);
     }
     InitializeComponent();
 }
Ejemplo n.º 11
0
        internal static void InitializeEngineLicense()
        {
            RuntimeManager.Bind(ProductCode.EngineOrDesktop);
            AoInitialize aoi = new AoInitializeClass();

            //more license choices could be included here
            const esriLicenseProductCode productCode = esriLicenseProductCode.esriLicenseProductCodeEngine;
            if (aoi.IsProductCodeAvailable(productCode) == esriLicenseStatus.esriLicenseAvailable)
            {
                aoi.Initialize(productCode);
            }
        }
Ejemplo n.º 12
0
        public MainForm_GM()
        {
            RuntimeManager.Bind(ProductCode.EngineOrDesktop);
            IAoInitialize aoini         = new AoInitializeClass();
            var           licenseStatus = aoini.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeStandard);

            if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
            {
                licenseStatus = aoini.Initialize(esriLicenseProductCode.esriLicenseProductCodeStandard);
            }
            InitializeComponent();
        }
Ejemplo n.º 13
0
        private void InitializeEngineLicense()
        {
            AoInitialize aoi = new AoInitializeClass();

            //more license choices could be included here
            esriLicenseProductCode productCode = esriLicenseProductCode.esriLicenseProductCodeEngine;

            if (aoi.IsProductCodeAvailable(productCode) == esriLicenseStatus.esriLicenseAvailable)
            {
                aoi.Initialize(productCode);
            }
        }
Ejemplo n.º 14
0
 public MainForm_OP()
 {
     RuntimeManager.Bind(ProductCode.EngineOrDesktop);
     IAoInitialize aoini = new AoInitializeClass();
     var licenseStatus = aoini.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeStandard);
     if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
     {
         licenseStatus = aoini.Initialize(esriLicenseProductCode.esriLicenseProductCodeStandard);
     }
     //LicenseInitializer license = new LicenseInitializer();
     //bool islicense=license.InitializeApplication();
     InitializeComponent();
 }
Ejemplo n.º 15
0
        private void InitializeEngineLicense()
        {
            AoInitialize aoi = new AoInitializeClass();

            //Additional license choices can be included here.
            esriLicenseProductCode productCode =
                esriLicenseProductCode.esriLicenseProductCodeArcInfo;
            if (aoi.IsProductCodeAvailable(productCode) ==
                esriLicenseStatus.esriLicenseAvailable)
            {
                aoi.Initialize(productCode);
            }
        }
Ejemplo n.º 16
0
        public MainForm_OP()
        {
            RuntimeManager.Bind(ProductCode.EngineOrDesktop);
            IAoInitialize aoini         = new AoInitializeClass();
            var           licenseStatus = aoini.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeStandard);

            if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
            {
                licenseStatus = aoini.Initialize(esriLicenseProductCode.esriLicenseProductCodeStandard);
            }
            //LicenseInitializer license = new LicenseInitializer();
            //bool islicense=license.InitializeApplication();
            InitializeComponent();
        }
Ejemplo n.º 17
0
        private void InitializeEngineLicense()
        {
            ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);

            AoInitialize aoi = new AoInitializeClass();

            //more license choices could be included here
            esriLicenseProductCode productCode = esriLicenseProductCode.esriLicenseProductCodeEngine;

            if (aoi.IsProductCodeAvailable(productCode) == esriLicenseStatus.esriLicenseAvailable)
            {
                aoi.Initialize(productCode);
            }
        }
Ejemplo n.º 18
0
        public MapControlAgent()
        {
            ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);

            IAoInitialize          aoInit      = new AoInitializeClass();
            esriLicenseProductCode productCode = esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB;

            if (aoInit.IsProductCodeAvailable(productCode) == esriLicenseStatus.esriLicenseAvailable)
            {
                aoInit.Initialize(productCode);
            }

            mapCtrl = new AxMapControl();
            mapCtrl.OnDoubleClick += MapCtrl_OnDoubleClick;
        }
Ejemplo n.º 19
0
        public Form1()
        {
            if (!RuntimeManager.Bind(ProductCode.Desktop))
                MessageBox.Show("Could not bind to Desktop");

            // Usual engine initialization code follows from here (AoInitialize).
            IAoInitialize init = new AoInitializeClass();
            esriLicenseStatus licStatus = init.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeAdvanced);

            if (licStatus == esriLicenseStatus.esriLicenseAvailable)
            {
                init.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);
            }
            else
            {
                licStatus = init.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeStandard);
                if (licStatus == esriLicenseStatus.esriLicenseAvailable)
                {
                    init.Initialize(esriLicenseProductCode.esriLicenseProductCodeStandard);
                }
                else
                {
                    licStatus = init.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeBasic);
                    if (licStatus == esriLicenseStatus.esriLicenseAvailable)
                    {
                        init.Initialize(esriLicenseProductCode.esriLicenseProductCodeBasic);
                    }
                    else
                    {
                        MessageBox.Show("No license available for Basic/Standard/Advanced.");
                    }
                }
            }
            InitializeComponent();
            init.Shutdown();
        }
Ejemplo n.º 20
0
 private void InitializeEngineLicense()
 {
     try
     {
         AoInitialize aoi = new AoInitializeClass();
         const esriLicenseProductCode productCode = esriLicenseProductCode.esriLicenseProductCodeAdvanced;
         if (aoi.IsProductCodeAvailable(productCode) == esriLicenseStatus.esriLicenseAvailable)
         {
             aoi.Initialize(productCode);
         }
     }
     catch (Exception e)
     {
         _log.Fatal(e.Message);
     }
 }
			private bool InitializeEngineLicense ()
			{
					AoInitialize aoi = new AoInitializeClass ();

					//more license choices could be included here
					esriLicenseProductCode productCode = esriLicenseProductCode.esriLicenseProductCodeEngine;
          esriLicenseExtensionCode extensionCode = esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst;

          if (aoi.IsProductCodeAvailable(productCode) == esriLicenseStatus.esriLicenseAvailable  && aoi.IsExtensionCodeAvailable(productCode, extensionCode) == esriLicenseStatus.esriLicenseAvailable)
          {
              aoi.Initialize(productCode);
              aoi.CheckOutExtension(extensionCode);
              return true;
          }
          else
              return false;
			}
Ejemplo n.º 22
0
        public static IAoInitialize CheckoutESRILicense(esriLicenseProductCode pESRIProdCode)
        {
            ESRI.ArcGIS.RuntimeManager.BindLicense(ESRI.ArcGIS.ProductCode.Desktop);                                            // SET A REFERENCE TO THE ESRI DESKTOP APPLICATION

            var license = new AoInitializeClass();                                                                             // INSTANTIATE THE LICENSE

            esriLicenseStatus pLicenseStatus = (esriLicenseStatus)license.IsProductCodeAvailable(pESRIProdCode);           // DETERMINE THE STATUS OF THE REQUESTED LICENSE
            if (pLicenseStatus == esriLicenseStatus.esriLicenseCheckedOut) { return license; }                                     // RETURN IF A LICENSE IS ALREADY CHECKED OUT

            if (pLicenseStatus == esriLicenseStatus.esriLicenseAvailable)                                                       // DETERMINE IF A LICENSE IS AVAILABLE
            {
                pLicenseStatus = (esriLicenseStatus)license.Initialize(pESRIProdCode);
                if (pLicenseStatus == esriLicenseStatus.esriLicenseCheckedOut || pLicenseStatus == esriLicenseStatus.esriLicenseAlreadyInitialized)
                    return license;
            }

            return null;
        }
Ejemplo n.º 23
0
        private void InitializeEngineLicense()
        {
            try
            {
                AoInitialize aoi = new AoInitializeClass();
                const esriLicenseProductCode productCode = esriLicenseProductCode.esriLicenseProductCodeAdvanced;
                if (aoi.IsProductCodeAvailable(productCode) == esriLicenseStatus.esriLicenseAvailable)
                {
                    aoi.Initialize(productCode);
                }
            }
            catch (Exception e)
            {
                _log.Fatal(e.Message);
            }
           

        }
Ejemplo n.º 24
0
        private bool InitializeEngineLicense()
        {
            AoInitialize aoi = new AoInitializeClass();

            //more license choices could be included here
            esriLicenseProductCode   productCode   = esriLicenseProductCode.esriLicenseProductCodeEngine;
            esriLicenseExtensionCode extensionCode = esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst;

            if (aoi.IsProductCodeAvailable(productCode) == esriLicenseStatus.esriLicenseAvailable && aoi.IsExtensionCodeAvailable(productCode, extensionCode) == esriLicenseStatus.esriLicenseAvailable)
            {
                aoi.Initialize(productCode);
                aoi.CheckOutExtension(extensionCode);
                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 25
0
        /// <summary>
        /// 初始化产品,只初始化第一个
        /// </summary>
        /// <returns></returns>
        public bool InitializeProduct()
        {
            if (RuntimeManager.ActiveRuntime == null)
                return false;
            if (productCodeList == null || extensionCodeList.Count == 0)
                return false;
            bool productInitialized = false;
            productCodeList.Sort();//对于产品集合进行排序
            if (!InitializeLowerProductFirst)
            {
                productCodeList.Reverse();//反转整个集合
            }
            aoInitialize = new AoInitializeClass();

            esriLicenseProductCode currentProductCode = new esriLicenseProductCode();
            foreach (int item in productCodeList)
            {
                esriLicenseProductCode proCode = (esriLicenseProductCode)Enum.ToObject(typeof(esriLicenseProductCode), item);
                esriLicenseStatus status = aoInitialize.IsProductCodeAvailable(proCode);
                if (status == esriLicenseStatus.esriLicenseAvailable)
                {
                    status = aoInitialize.Initialize(proCode);
                    if (status == esriLicenseStatus.esriLicenseAlreadyInitialized || status == esriLicenseStatus.esriLicenseCheckedOut)
                    { 
                        productInitialized = true;
                        currentProductCode = aoInitialize.InitializedProduct();
                    }
                }
                dic_ProductStatus.Add(proCode, status);

                if (productInitialized)
                    break;//只初始化第一个成功的产品!
            }
            this.hasInitialProduct = productInitialized;
            this.productCodeList.Clear();

            if (!productInitialized)//如果所有的产品都不成功
                return false;

            return CheckOutLicense(currentProductCode);//验证扩展
        }
Ejemplo n.º 26
0
        private static bool checkLicense()
        {
            //ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);
            ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);

            IAoInitialize m_AoInitialize = new AoInitializeClass();

            esriLicenseStatus licenseStatus = (esriLicenseStatus)m_AoInitialize.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngine);

            if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
            {
                licenseStatus = (esriLicenseStatus)m_AoInitialize.IsExtensionCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngine, esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst);
                if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
                {
                    licenseStatus = (esriLicenseStatus)m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);//esriLicenseProductCodeEngine);
                    if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut)
                    {
                        System.Windows.Forms.MessageBox.Show("The initialization failed. This application cannot run!");
                        return(false);
                    }
                    else
                    {
                        licenseStatus = (esriLicenseStatus)m_AoInitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeDesigner);
                        if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut)
                        {
                            System.Windows.Forms.MessageBox.Show("Unable to check out the Designer extension. This application cannot run!");
                            return(false);
                        }
                    }
                }
                return(true);
            }
            else
            {
                System.Windows.Forms.MessageBox.Show("The ArcGIS Engine product is unavailable. This application cannot run!");
                return(false);
            }
        }
Ejemplo n.º 27
0
        static void Main()
        {
            if (!RuntimeManager.Bind(ProductCode.EngineOrDesktop))
            {
                MessageBox.Show("Unable to bind ArcGis Runtime ,Application will be shut down");
                return;
            }

            GdalConfiguration.ConfigureGdal();

            AoInitialize           aoi         = new AoInitializeClass();
            esriLicenseProductCode productcode = esriLicenseProductCode.esriLicenseProductCodeEngine;

            if (aoi.IsProductCodeAvailable(productcode) == esriLicenseStatus.esriLicenseAvailable)
            {
                aoi.Initialize(productcode);
            }

            //ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);
            //ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop);
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    private bool Initialize()
    {
      if (RuntimeManager.ActiveRuntime == null)
        return false;

      if (m_requestedProducts == null || m_requestedProducts.Count == 0)
        return false;

      bool productInitialized = false;

      m_requestedProducts.Sort();
      if (!InitializeLowerProductFirst) //Request license from highest to lowest
        m_requestedProducts.Reverse();

      m_AoInit = new AoInitializeClass();
      esriLicenseProductCode currentProduct = new esriLicenseProductCode();
      foreach (int prodNumber in m_requestedProducts)
      {
        esriLicenseProductCode prod = (esriLicenseProductCode)Enum.ToObject(typeof(esriLicenseProductCode), prodNumber);
        esriLicenseStatus status = m_AoInit.IsProductCodeAvailable(prod);
        if (status == esriLicenseStatus.esriLicenseAvailable)
        {
          status = m_AoInit.Initialize(prod);
          if (status == esriLicenseStatus.esriLicenseAlreadyInitialized ||
              status == esriLicenseStatus.esriLicenseCheckedOut)
          {
            productInitialized = true;
            currentProduct = m_AoInit.InitializedProduct();
          }
        }

        m_productStatus.Add(prod, status);

        if (productInitialized)
          break;
      }

      m_hasInitializeProduct = productInitialized;
      m_requestedProducts.Clear();

      //No product is initialized after trying all requested licenses, quit
      if (!productInitialized)
      {
        return false;
      }

      //Check out extension licenses
      return CheckOutLicenses(currentProduct);
    }
Ejemplo n.º 29
0
        /// <summary>
        /// Check out spatial analyst license
        /// </summary>
        /// <returns>esriLicenseStatus</returns>
        public esriLicenseStatus GetSpatialAnalystLicense()
        {
            //Check out a Spatial Analyst license with the ArcView product.
            esriLicenseProductCode productCode =
                esriLicenseProductCode.esriLicenseProductCodeAdvanced;
            IAoInitialize pAoInitialize = new AoInitializeClass();
            esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;
            //Check the productCode.
            licenseStatus = pAoInitialize.IsProductCodeAvailable(productCode);
            if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
            {
                //Check the extensionCode.
                licenseStatus = pAoInitialize.IsExtensionCodeAvailable(productCode,
                    esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);
                if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
                {
                    //Initialize the license.
                    licenseStatus = pAoInitialize.Initialize(productCode);
                    if ((licenseStatus == esriLicenseStatus.esriLicenseCheckedOut))
                    {
                        //Check out the Spatial Analyst extension.
                        licenseStatus = pAoInitialize.CheckOutExtension
                            (esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst)
                            ;
                    }
                }
            }

            return licenseStatus;
        }