<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Toggling JITExtension in C# in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507933#M13643</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Just implement IExtension like you normally would, but instead of implementing IExtensionConfig - which would make it show up in the Extensions window - write a static method called Enabled.&amp;nbsp; It would follow the singleton pattern, with a static member variable reference to to m_MyExtension.&amp;nbsp; If the m_MyExtension == null, Enabled would return false, otherwise it would use another boolean member variable m_Enabled. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You'll need to write a command to toggle it for you, since it won't appear in the Extensions window.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 08 Apr 2010 16:28:20 GMT</pubDate>
    <dc:creator>KirkKuykendall</dc:creator>
    <dc:date>2010-04-08T16:28:20Z</dc:date>
    <item>
      <title>Toggling JITExtension in C#</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507930#M13640</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;ArcObjects /C#.NET/ArcMap 9.3.1 SP1&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have created a JITExtension that must NOT appear in the Extension Manager.&amp;nbsp; How can it be toggled on and off from code?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Apr 2010 22:43:05 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507930#M13640</guid>
      <dc:creator>RobChasan</dc:creator>
      <dc:date>2010-04-07T22:43:05Z</dc:date>
    </item>
    <item>
      <title>Toggling JITExtension in C#</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507931#M13641</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;If you don't implement IExtensionConfig, then I don't think it will show up in the Extension Manager window.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any tools/commands etc. that need to see if the extension is toggled on, should first check to see if it is loaded using IJITExtensionManager.IsLoaded, if it is not loaded I guess that means it isn't "on" - otherwise access access an Enabled method.&amp;nbsp; This could be done as a static method on your extension.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Apr 2010 15:41:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507931#M13641</guid>
      <dc:creator>KirkKuykendall</dc:creator>
      <dc:date>2010-04-08T15:41:47Z</dc:date>
    </item>
    <item>
      <title>Toggling JITExtension in C#</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507932#M13642</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks for the quick reply Kirk.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;As we don't want to give the users access to this extension via the Configuration Manager, implementing IExtensionConfig is out.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Not sure if I completely get what you are saying about accessing an Enabled method.&amp;nbsp; IExtension does not have one.&amp;nbsp; Are you suggesting that the JITExtension do something like inherit from ICommand in addition to IExtension and then use the ICommand's Enabled property?&amp;nbsp; Or am I complicating this?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Apr 2010 16:09:35 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507932#M13642</guid>
      <dc:creator>RobChasan</dc:creator>
      <dc:date>2010-04-08T16:09:35Z</dc:date>
    </item>
    <item>
      <title>Toggling JITExtension in C#</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507933#M13643</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Just implement IExtension like you normally would, but instead of implementing IExtensionConfig - which would make it show up in the Extensions window - write a static method called Enabled.&amp;nbsp; It would follow the singleton pattern, with a static member variable reference to to m_MyExtension.&amp;nbsp; If the m_MyExtension == null, Enabled would return false, otherwise it would use another boolean member variable m_Enabled. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You'll need to write a command to toggle it for you, since it won't appear in the Extensions window.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Apr 2010 16:28:20 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507933#M13643</guid>
      <dc:creator>KirkKuykendall</dc:creator>
      <dc:date>2010-04-08T16:28:20Z</dc:date>
    </item>
    <item>
      <title>Toggling JITExtension in C#</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507934#M13644</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Could I trouble you to provide a snippet of how the Enabled method should be coded?&amp;nbsp; (I still have trouble converting OOP-speak into code).&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Apr 2010 16:44:35 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507934#M13644</guid>
      <dc:creator>RobChasan</dc:creator>
      <dc:date>2010-04-08T16:44:35Z</dc:date>
    </item>
    <item>
      <title>Toggling JITExtension in C#</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507935#M13645</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Here's a command that toggles the extension:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;#region Overriden Class Methods

/// &amp;lt;summary&amp;gt;
/// Occurs when this command is created
/// &amp;lt;/summary&amp;gt;
/// &amp;lt;param name="hook"&amp;gt;Instance of the application&amp;lt;/param&amp;gt;
public override void OnCreate(object hook)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; m_application = hook as IApplication;
}

/// &amp;lt;summary&amp;gt;
/// Occurs when this command is clicked
/// &amp;lt;/summary&amp;gt;
public override void OnClick()
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; JITExtension1.SetEnabled(m_application, !JITExtension1.GetEnabled());
}
public override bool Checked
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; get
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return JITExtension1.GetEnabled();
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}
#endregion&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here's the extension:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Framework;
using ESRI.ArcGIS.ADF.CATIDs;

namespace Forums
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; [Guid("7c6aee7a-5e63-497d-a897-551ab8f6f761")]
&amp;nbsp;&amp;nbsp;&amp;nbsp; [ClassInterface(ClassInterfaceType.None)]
&amp;nbsp;&amp;nbsp;&amp;nbsp; [ProgId("Forums.JITExtension1")]
&amp;nbsp;&amp;nbsp;&amp;nbsp; public class JITExtension1 : IExtension
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region COM Registration Function(s)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ComRegisterFunction()]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ComVisible(false)]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void RegisterFunction(Type registerType)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Required for ArcGIS Component Category Registrar support
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ArcGISCategoryRegistration(registerType);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // TODO: Add any COM registration code here
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ComUnregisterFunction()]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ComVisible(false)]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void UnregisterFunction(Type registerType)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Required for ArcGIS Component Category Registrar support
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ArcGISCategoryUnregistration(registerType);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // TODO: Add any COM unregistration code here
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region ArcGIS Component Category Registrar generated code
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Required method for ArcGIS Component Category registration -
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Do not modify the contents of this method with the code editor.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static void ArcGISCategoryRegistration(Type registerType)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string regKey = string.Format("HKEY_CLASSES_ROOT\\CLSID\\{{{0}}}", registerType.GUID);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MxExtensionJIT.Register(regKey);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Required method for ArcGIS Component Category unregistration -
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Do not modify the contents of this method with the code editor.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static void ArcGISCategoryUnregistration(Type registerType)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string regKey = string.Format("HKEY_CLASSES_ROOT\\CLSID\\{{{0}}}", registerType.GUID);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MxExtensionJIT.Unregister(regKey);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private IApplication m_application;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private bool m_Enabled;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static JITExtension1 m_instance;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public bool Enabled
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return m_Enabled; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set { m_Enabled = value; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static bool GetEnabled()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(m_instance == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return m_instance.Enabled;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void SetEnabled(IApplication app, bool enabled)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (m_instance == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UID uid = new UIDClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uid.Value = "{7c6aee7a-5e63-497d-a897-551ab8f6f761}";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // this will cause instantiation (and Startup will get called)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JITExtension1 ext =&amp;nbsp; app.FindExtensionByCLSID(uid) as JITExtension1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ext.Enabled = enabled;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_instance.Enabled = enabled;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #region IExtension Members

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Name of extension. Do not exceed 31 characters
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Name
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TODO: Modify string to uniquely identify extension
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "JITExtension1";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Shutdown()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //TODO: Clean up resources

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_application = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_instance = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Startup(ref object initializationData)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_instance = this;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_application = initializationData as IApplication;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 22:15:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507935#M13645</guid>
      <dc:creator>KirkKuykendall</dc:creator>
      <dc:date>2021-12-11T22:15:47Z</dc:date>
    </item>
    <item>
      <title>Toggling JITExtension in C#</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507936#M13646</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Kirk, you make it look so easy!&amp;nbsp; I probably would not have figured this out on my own, certainly not in any reasonable amount of time.&amp;nbsp; Thanks again.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Apr 2010 18:17:12 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507936#M13646</guid>
      <dc:creator>RobChasan</dc:creator>
      <dc:date>2010-04-08T18:17:12Z</dc:date>
    </item>
    <item>
      <title>Re: Toggling JITExtension in C#</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507937#M13647</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I am replying to this thread since it is the only hit I got on a forum search of IJITExtensionManager. My question is much more fundamental. First, I am coding in C++ but conceptually this should have no bearing on the answer. The question is related to what "loading" means for an ArcMap extention. As far as I can tell, even though our extention implementation contains the code below, the DLL is still being loaded when ArcMap starts up.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;BEGIN_CATEGORY_MAP(CSfaExt)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IMPLEMENTED_CATEGORY(__uuidof(CATID_MxExtensionJIT))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;END_CATEGORY_MAP()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If it is being loaded, meaning that LoadLibrary() or LoadLibraryEx() has been called on our DLL, then this is not truly Just-In-Time loading. If we need to change the WINDOWS registration of a library once ArcMap has started, how can we truly control the loading of the DLL? Do we need to skip registration entirely and call LoadLibrary() ourselves in a seed DLL that is registered? Would this approach work with ArcMap? Having spent a week trying different approaches, and getting nowhere fast, your help would be greatly appreciated!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Gail&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 May 2010 00:19:08 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507937#M13647</guid>
      <dc:creator>GailNagle</dc:creator>
      <dc:date>2010-05-04T00:19:08Z</dc:date>
    </item>
    <item>
      <title>Re: Toggling JITExtension in C#</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507938#M13648</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I think "loaded" means IExtension.Startup has been called.&amp;nbsp; Of course the dll containing the extension will be loaded into memory before that.&amp;nbsp; If you have a DLL that is expensive to load (e.g. big) then maybe you could have a small light-weight DLL containing the class that implements IExtension, and have it load the large DLL when Startup is called.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 May 2010 12:35:16 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507938#M13648</guid>
      <dc:creator>KirkKuykendall</dc:creator>
      <dc:date>2010-05-04T12:35:16Z</dc:date>
    </item>
    <item>
      <title>Re: Toggling JITExtension in C#</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507939#M13649</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello Kirk,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for the reply. This is exactly what I hoped to do but was not sure how to exactly "load" the larger DLL. Of course I can call LoadLibrary(). In this scenario, I would not call regsvr32 to register the DLL since then it will be automatically loaded by ESRI. But I assume there must be some code that must run to allow ArcMap to handle its bookkeeping on a DLL. So I am not sure how this would work. But if you can shed any more light, I would be most grateful!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks again,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Gail Nagle&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 May 2010 23:07:12 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/toggling-jitextension-in-c/m-p/507939#M13649</guid>
      <dc:creator>GailNagle</dc:creator>
      <dc:date>2010-05-05T23:07:12Z</dc:date>
    </item>
  </channel>
</rss>

