<?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 ICommandBar.CreateMacroItem only for built in commands? in Developers Questions</title>
    <link>https://community.esri.com/t5/developers-questions/icommandbar-createmacroitem-only-for-built-in/m-p/695426#M4767</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I am converting VBA code to a 10.2 addin. The code contains several context menus that are populated with IcommandBar.CreateMacroItem calling various different routines.&lt;/P&gt;&lt;P&gt;Called with a left click from from OnMouseDown the context menus are displayed but when I select an entry from the context menu I receive the following error message:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;This method can only be called for built in commands&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;(or at least how I'guess how it should be translated from my OS message).&lt;/P&gt;&lt;P&gt;My code looks like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;Sub CreateContextMenuExample()&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim mApp As IApplication = TryCast(Me.Hook, ESRI.ArcGIS.Framework.IApplication)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim commandBars As ESRI.ArcGIS.Framework.ICommandBars = mApp.Document.CommandBars&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pCMenuBar As ICommandBar&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pCmdItem As ICommandItem&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim sContextMenuName As String = "time period"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim sPeriod()&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim sTitel As String&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim sMacroName As String&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim j As Integer&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sPeriod = {sContextMenuName, "period 1", "period 2"}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pCMenuBar = commandBars.Create(sContextMenuName, esriCmdBarType.esriCmdBarTypeShortcutMenu)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For j = 0 To UBound(sPeriod)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sMacroName = "View.BVE.Period" &amp;amp; Trim(j)&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;&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; 'in VBA used to be "Project.ThisDocument.period" &amp;amp; Trim(j)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sTitel = Trim(sPeriod(j))&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pCmdItem = pCMenuBar.CreateMacroItem(sTitel, j, sMacroName)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next j&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pCMenuBar.Popup()&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp; End Sub&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I do not see any information in the documentation that ICommandBar.CreateMacroItem functionality has changed and works only with built in commands - and my code worked perfect in 10.0 VBA.&lt;/P&gt;&lt;P&gt;Did I overlook something?&amp;nbsp; Any help is appreciated!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Axel&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;
Well,
it appears that CreateMacroItem only works for VBA code... I do however not see how the same functionality could be obtained with .NET code. ICommandBar.Add requires an UID while want to start my own 'macros', that is sub routines with different, specific tasks.
Any ideas on that would be extremely helpful!

Cheers,
 Axel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 02 Apr 2015 11:47:43 GMT</pubDate>
    <dc:creator>AxelThomas</dc:creator>
    <dc:date>2015-04-02T11:47:43Z</dc:date>
    <item>
      <title>ICommandBar.CreateMacroItem only for built in commands?</title>
      <link>https://community.esri.com/t5/developers-questions/icommandbar-createmacroitem-only-for-built-in/m-p/695426#M4767</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I am converting VBA code to a 10.2 addin. The code contains several context menus that are populated with IcommandBar.CreateMacroItem calling various different routines.&lt;/P&gt;&lt;P&gt;Called with a left click from from OnMouseDown the context menus are displayed but when I select an entry from the context menu I receive the following error message:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;This method can only be called for built in commands&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;(or at least how I'guess how it should be translated from my OS message).&lt;/P&gt;&lt;P&gt;My code looks like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;Sub CreateContextMenuExample()&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim mApp As IApplication = TryCast(Me.Hook, ESRI.ArcGIS.Framework.IApplication)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim commandBars As ESRI.ArcGIS.Framework.ICommandBars = mApp.Document.CommandBars&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pCMenuBar As ICommandBar&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pCmdItem As ICommandItem&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim sContextMenuName As String = "time period"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim sPeriod()&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim sTitel As String&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim sMacroName As String&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim j As Integer&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sPeriod = {sContextMenuName, "period 1", "period 2"}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pCMenuBar = commandBars.Create(sContextMenuName, esriCmdBarType.esriCmdBarTypeShortcutMenu)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For j = 0 To UBound(sPeriod)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sMacroName = "View.BVE.Period" &amp;amp; Trim(j)&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;&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; 'in VBA used to be "Project.ThisDocument.period" &amp;amp; Trim(j)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sTitel = Trim(sPeriod(j))&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pCmdItem = pCMenuBar.CreateMacroItem(sTitel, j, sMacroName)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next j&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pCMenuBar.Popup()&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: calibri,verdana,arial,sans-serif;"&gt;&amp;nbsp; End Sub&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I do not see any information in the documentation that ICommandBar.CreateMacroItem functionality has changed and works only with built in commands - and my code worked perfect in 10.0 VBA.&lt;/P&gt;&lt;P&gt;Did I overlook something?&amp;nbsp; Any help is appreciated!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Axel&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;
Well,
it appears that CreateMacroItem only works for VBA code... I do however not see how the same functionality could be obtained with .NET code. ICommandBar.Add requires an UID while want to start my own 'macros', that is sub routines with different, specific tasks.
Any ideas on that would be extremely helpful!

Cheers,
 Axel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 02 Apr 2015 11:47:43 GMT</pubDate>
      <guid>https://community.esri.com/t5/developers-questions/icommandbar-createmacroitem-only-for-built-in/m-p/695426#M4767</guid>
      <dc:creator>AxelThomas</dc:creator>
      <dc:date>2015-04-02T11:47:43Z</dc:date>
    </item>
  </channel>
</rss>

