<?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 Re: Getting Ribbon help to call html in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/getting-ribbon-help-to-call-html/m-p/4944538#M44522</link>
    <description>&lt;P&gt;Almost there. The below solution lets me specify a URL in the RibbonToolTip's HelpTopic and show this if F1 is pressed. Only problem left is that I can't prevent AutoCAD's own help file to be opened at the same time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;private string currentTooltip = null;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void F1Handler(object sender, PreTranslateMessageEventArgs e)&lt;BR /&gt;{&lt;BR /&gt;if (e.Message.message == 0x4d)&lt;BR /&gt;{&lt;BR /&gt;if (currentTooltip != null)&lt;BR /&gt;{&lt;BR /&gt;System.Diagnostics.Process.Start(currentTooltip);&lt;BR /&gt;e.Handled = true;&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;private void ComponentManager_ToolTipOpened(object sender, EventArgs e)&lt;BR /&gt;{&lt;BR /&gt;Autodesk.Internal.Windows.ToolTip tt = sender as Autodesk.Internal.Windows.ToolTip;&lt;BR /&gt;if (tt != null)&lt;BR /&gt;{&lt;BR /&gt;Autodesk.Windows.RibbonToolTip rtt = tt.Content as Autodesk.Windows.RibbonToolTip;&lt;BR /&gt;if (rtt == null)&lt;BR /&gt;{&lt;BR /&gt;if (tt.Content is string)&lt;BR /&gt;currentTooltip = (string)tt.Content;&lt;BR /&gt;}&lt;BR /&gt;else&lt;BR /&gt;{&lt;BR /&gt;currentTooltip = rtt.HelpTopic;&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;private void ComponentManager_ToolTipClosed(object sender, EventArgs e)&lt;BR /&gt;{&lt;BR /&gt;currentTooltip = null;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the ribbons initialization:&lt;/P&gt;&lt;P&gt;Autodesk.AutoCAD.ApplicationServices.Application.PreTranslateMessage += new PreTranslateMessageEventHandler(F1Handler);&lt;BR /&gt;Autodesk.Windows.ComponentManager.ToolTipOpened += new EventHandler(ComponentManager_ToolTipOpened);&lt;BR /&gt;Autodesk.Windows.ComponentManager.ToolTipClosed += new EventHandler(ComponentManager_ToolTipClosed);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 08 Apr 2014 22:56:01 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2014-04-08T22:56:01Z</dc:date>
    <item>
      <title>Getting Ribbon help to call html</title>
      <link>https://forums.autodesk.com/t5/net-forum/getting-ribbon-help-to-call-html/m-p/4943910#M44519</link>
      <description>&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there really no way to get the tooltip F1 help for a ribbon item to open a web page (URL)? In both cui editor and in .NET api, it seems only links to chm files are provided.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there maybe some way to:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;- trick a chm link to open a web page, maybe by creating a chm file only as a redirector?&lt;/P&gt;&lt;P&gt;- catch the F1 button press in .NET before it goes to AutoCAD?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Or maybe some other clever trick?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for any help!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 08 Apr 2014 18:31:30 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/getting-ribbon-help-to-call-html/m-p/4943910#M44519</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-04-08T18:31:30Z</dc:date>
    </item>
    <item>
      <title>Re: Getting Ribbon help to call html</title>
      <link>https://forums.autodesk.com/t5/net-forum/getting-ribbon-help-to-call-html/m-p/4943950#M44520</link>
      <description>Guess I could make a F1 hook for my whole AutoCAD module, but then I would need to detect if a ribbon button is showing it's tooltip and which one...</description>
      <pubDate>Tue, 08 Apr 2014 18:43:32 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/getting-ribbon-help-to-call-html/m-p/4943950#M44520</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-04-08T18:43:32Z</dc:date>
    </item>
    <item>
      <title>Re: Getting Ribbon help to call html</title>
      <link>https://forums.autodesk.com/t5/net-forum/getting-ribbon-help-to-call-html/m-p/4944318#M44521</link>
      <description>&lt;P&gt;Getting closer! This code let's me detect F1:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;void F1Handler(object sender, PreTranslateMessageEventArgs e)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; if (e.Message.message == 0x4d)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; MessageBox.Show("F1 pressed!");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; e.Handled = true;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Autodesk.AutoCAD.ApplicationServices.Application.PreTranslateMessage += new PreTranslateMessageEventHandler(F1Handler);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But in theory (anything I can find about this on the web says the same!) the "e.Handled = true" should prevent AutoCAD from further handling of this F1 keypress. But the help file is opened anyway!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 08 Apr 2014 21:12:30 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/getting-ribbon-help-to-call-html/m-p/4944318#M44521</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-04-08T21:12:30Z</dc:date>
    </item>
    <item>
      <title>Re: Getting Ribbon help to call html</title>
      <link>https://forums.autodesk.com/t5/net-forum/getting-ribbon-help-to-call-html/m-p/4944538#M44522</link>
      <description>&lt;P&gt;Almost there. The below solution lets me specify a URL in the RibbonToolTip's HelpTopic and show this if F1 is pressed. Only problem left is that I can't prevent AutoCAD's own help file to be opened at the same time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;private string currentTooltip = null;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void F1Handler(object sender, PreTranslateMessageEventArgs e)&lt;BR /&gt;{&lt;BR /&gt;if (e.Message.message == 0x4d)&lt;BR /&gt;{&lt;BR /&gt;if (currentTooltip != null)&lt;BR /&gt;{&lt;BR /&gt;System.Diagnostics.Process.Start(currentTooltip);&lt;BR /&gt;e.Handled = true;&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;private void ComponentManager_ToolTipOpened(object sender, EventArgs e)&lt;BR /&gt;{&lt;BR /&gt;Autodesk.Internal.Windows.ToolTip tt = sender as Autodesk.Internal.Windows.ToolTip;&lt;BR /&gt;if (tt != null)&lt;BR /&gt;{&lt;BR /&gt;Autodesk.Windows.RibbonToolTip rtt = tt.Content as Autodesk.Windows.RibbonToolTip;&lt;BR /&gt;if (rtt == null)&lt;BR /&gt;{&lt;BR /&gt;if (tt.Content is string)&lt;BR /&gt;currentTooltip = (string)tt.Content;&lt;BR /&gt;}&lt;BR /&gt;else&lt;BR /&gt;{&lt;BR /&gt;currentTooltip = rtt.HelpTopic;&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;private void ComponentManager_ToolTipClosed(object sender, EventArgs e)&lt;BR /&gt;{&lt;BR /&gt;currentTooltip = null;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the ribbons initialization:&lt;/P&gt;&lt;P&gt;Autodesk.AutoCAD.ApplicationServices.Application.PreTranslateMessage += new PreTranslateMessageEventHandler(F1Handler);&lt;BR /&gt;Autodesk.Windows.ComponentManager.ToolTipOpened += new EventHandler(ComponentManager_ToolTipOpened);&lt;BR /&gt;Autodesk.Windows.ComponentManager.ToolTipClosed += new EventHandler(ComponentManager_ToolTipClosed);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 08 Apr 2014 22:56:01 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/getting-ribbon-help-to-call-html/m-p/4944538#M44522</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-04-08T22:56:01Z</dc:date>
    </item>
    <item>
      <title>Re: Getting Ribbon help to call html</title>
      <link>https://forums.autodesk.com/t5/net-forum/getting-ribbon-help-to-call-html/m-p/4962930#M44523</link>
      <description>&lt;P&gt;Hi Knut,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A way to associate online help for ribbon item is using the extended help xaml. But unfortunately it has the same behavior. The default help window opens alongside.&amp;nbsp;&lt;SPAN style="font-size: 14px; line-height: 1.2;"&gt;Sorry, I do not find a way to stop the default help window from appearing in AutoCAD 2013 / 2014. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14px; line-height: 1.2;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14px; line-height: 1.2;"&gt;In AutoCAD 2015, it is now possible to associate online help without the default help window appearing.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 14px; line-height: 1.2;"&gt;The URL can be associated with the command and the command when invoked from the ribbon item's command macro will automatically redirect F1 help.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14px; line-height: 1.2;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14px; line-height: 1.2;"&gt;For ex :&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 14px; line-height: 1.2;"&gt;[CommandMethod("MyGroup", "MyCommand", null, CommandFlags.Transparent, null, "&lt;/SPAN&gt;&lt;A style="font-size: 14px; line-height: 1.2;" href="http://www.google.com/translate" target="_blank"&gt;http://www.google.com/translate&lt;/A&gt;&lt;SPAN style="font-size: 14px; line-height: 1.2;"&gt;", "")]&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14px; line-height: 1.2;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14px; line-height: 1.2;"&gt;and have this command invoked as "^C^CMyCommand" from the ribbon item&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14px; line-height: 1.2;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14px; line-height: 1.2;"&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14px; line-height: 1.2;"&gt;Balaji&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14px; line-height: 1.2;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14px; line-height: 1.2;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Apr 2014 07:27:43 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/getting-ribbon-help-to-call-html/m-p/4962930#M44523</guid>
      <dc:creator>Balaji_Ram</dc:creator>
      <dc:date>2014-04-16T07:27:43Z</dc:date>
    </item>
    <item>
      <title>Re: Getting Ribbon help to call html</title>
      <link>https://forums.autodesk.com/t5/net-forum/getting-ribbon-help-to-call-html/m-p/4982350#M44524</link>
      <description>&lt;P&gt;I think I have found a final solution for this. By simply "NETLOAD"-ing this dll, all ribbon tooltips with a HelpTopic (which must be set programmatically) starting with "http://" will open your default internet browser with that address when you press F1. All other F1 keypresses work as normal.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It works by creating a hook procedure to catch all messages to AutoCAD. Also two event handlers help detect if a tooltip is showing at the moment. If that triggers a browser being opened for help, we filter away the message AutoCAD sends to itself to open AutoCAD default help.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Below is the code, in one cs file. Compile this to AutoCadRibbonHelp.dll.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would appreciate feedback on this solution. Are there any dangers I am overlooking? Deadlocks because of the hook, memory corruption etc.?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;// (C) Copyright 2014 by Microsoft 
//
using System;
using System.Runtime.InteropServices;
using System.Windows;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.EditorInput;

// This line is not mandatory, but improves loading performances
[assembly: ExtensionApplication(typeof(AutoCadRibbonHelp.RibbonHelpPlugin))]

namespace AutoCadRibbonHelp
{
  public class RibbonHelpPlugin : IExtensionApplication
  {
    private static bool dropNextHelpCall = false; // Flag to tell if the next message from AutoCAD to display it's own help should be ignored
    private static string currentTooltip = null; // If not null, this is the HelpTopic of the currently open tooltip. If null, no tooltip is displaying.

    // Import declarations for AutoCAD API functions
    [DllImport("accore.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl, EntryPoint = "?acedRegisterFilterWinMsg@@YAHQ6AHPEAUtagMSG@@@Z@Z")]
    private static extern int acedRegisterFilterWinMsg(WindowHookProc callBackFunc);

    [DllImport("accore.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl, EntryPoint = "?acedRemoveFilterWinMsg@@YAHQ6AHPEAUtagMSG@@@Z@Z")]
    private static extern int acedRemoveFilterWinMsg(WindowHookProc callBackFunc);

    // Windows hook declarations
    public enum WndMsg
    {
      WM_ACAD_HELP = 0x4D,
      WM_KEYDOWN = 0x100,
    }

    public enum WndKey
    {
      VK_F1 = 0x70,
    }

    [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
    public delegate int WindowHookProc(ref System.Windows.Forms.Message msg);
    private static WindowHookProc callBackFunc = null;

    private static int WindowsHook(ref System.Windows.Forms.Message msg)
    {
      if (msg.Msg == (int)WndMsg.WM_KEYDOWN)
      {
        if ((int)msg.WParam == (int)WndKey.VK_F1)
        { // F1 pressed
          if (currentTooltip != null &amp;amp;&amp;amp; currentTooltip.Length &amp;gt; 7 &amp;amp;&amp;amp; currentTooltip.Substring(0, 7) == "http://")
          { // Another implementation could be to look up the help topic in an index file matching it to URLs.
            dropNextHelpCall = true; // Even though we dont' forward this F1 keypress, AutoCAD sends a message to itself to open the AutoCAD help file
            object nomutt = Autodesk.AutoCAD.ApplicationServices.Application.GetSystemVariable("NOMUTT");
            string cmd = "._BROWSER " + currentTooltip + " _NOMUTT " + nomutt.ToString() + " ";
            Autodesk.AutoCAD.ApplicationServices.Application.SetSystemVariable("NOMUTT", 1);
            Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.SendStringToExecute(cmd, true, false, false);
            return 1;
          }
        }
        return 0;
      }
      else if (msg.Msg == (int)WndMsg.WM_ACAD_HELP &amp;amp;&amp;amp; dropNextHelpCall)
      { // Seems this is the message AutoCAD generates itself to open the help file. Drop this if help was called from a ribbon tooltip.
        dropNextHelpCall = false; // Reset state of help calls
        return 1; // Stop this message from being passed on to AutoCAD
      }
      return 0;
    }

    // AutoCAD event handlers to detect if a tooltip is open or not
    private static void ComponentManager_ToolTipOpened(object sender, EventArgs e)
    {
      Autodesk.Internal.Windows.ToolTip tt = sender as Autodesk.Internal.Windows.ToolTip;
      if (tt == null)
        return;
      Autodesk.Windows.RibbonToolTip rtt = tt.Content as Autodesk.Windows.RibbonToolTip;
      if (rtt == null)
        currentTooltip = tt.HelpTopic;
      else
        currentTooltip = rtt.HelpTopic;
    }

    private static void ComponentManager_ToolTipClosed(object sender, EventArgs e)
    {
      currentTooltip = null;
    }


    void IExtensionApplication.Initialize()
    {
      callBackFunc = new WindowHookProc(WindowsHook);
      if (acedRegisterFilterWinMsg(callBackFunc) != 0)
      {
        Autodesk.Windows.ComponentManager.ToolTipOpened += new EventHandler(ComponentManager_ToolTipOpened);
        Autodesk.Windows.ComponentManager.ToolTipClosed += new EventHandler(ComponentManager_ToolTipClosed);
      }
    }

    void IExtensionApplication.Terminate()
    {
      acedRemoveFilterWinMsg(callBackFunc);
      Autodesk.Windows.ComponentManager.ToolTipOpened -= ComponentManager_ToolTipOpened;
      Autodesk.Windows.ComponentManager.ToolTipClosed -= ComponentManager_ToolTipClosed;
    }

  }
}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 23 Apr 2014 10:53:52 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/getting-ribbon-help-to-call-html/m-p/4982350#M44524</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-04-23T10:53:52Z</dc:date>
    </item>
    <item>
      <title>Re: Getting Ribbon help to call html</title>
      <link>https://forums.autodesk.com/t5/net-forum/getting-ribbon-help-to-call-html/m-p/4982378#M44525</link>
      <description>&lt;P&gt;And exactly at the moment of posting, I realized the whole DllImport of acedRegisterFilterWinMsg method was unneccesary! A somewhat cleaner and more elegant solution here:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;// (C) Copyright 2014 by Microsoft 
//
using System;
using System.Windows;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;

// This line is not mandatory, but improves loading performances
[assembly: ExtensionApplication(typeof(AutoCadRibbonHelp.RibbonHelpPlugin))]

namespace AutoCadRibbonHelp
{
  public class RibbonHelpPlugin : IExtensionApplication
  {
    private static bool dropNextHelpCall = false; // Flag to tell if the next message from AutoCAD to display it's own help should be ignored
    private static string currentTooltip = null; // If not null, this is the HelpTopic of the currently open tooltip. If null, no tooltip is displaying.

    public enum WndMsg
    {
      WM_ACAD_HELP = 0x4D,
      WM_KEYDOWN = 0x100,
    }

    public enum WndKey
    {
      VK_F1 = 0x70,
    }

    void AutoCadMessageHandler(object sender, PreTranslateMessageEventArgs e)
    {
      if (e.Message.message == (int)WndMsg.WM_KEYDOWN)
      {
        if ((int)e.Message.wParam == (int)WndKey.VK_F1)
        { // F1 pressed
          if (currentTooltip != null &amp;amp;&amp;amp; currentTooltip.Length &amp;gt; 7 &amp;amp;&amp;amp; currentTooltip.Substring(0, 7) == "http://")
          { // Another implementation could be to look up the help topic in an index file matching it to URLs.
            dropNextHelpCall = true; // Even though we don't forward this F1 keypress, AutoCAD sends a message to itself to open the AutoCAD help file
            object nomutt = Autodesk.AutoCAD.ApplicationServices.Application.GetSystemVariable("NOMUTT");
            string cmd = "._BROWSER " + currentTooltip + " _NOMUTT " + nomutt.ToString() + " ";
            Autodesk.AutoCAD.ApplicationServices.Application.SetSystemVariable("NOMUTT", 1);
            Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.SendStringToExecute(cmd, true, false, false);
            e.Handled = true;
          }
        }
      }
      else if (e.Message.message == (int)WndMsg.WM_ACAD_HELP &amp;amp;&amp;amp; dropNextHelpCall)
      { // Seems this is the message AutoCAD generates itself to open the help file. Drop this if help was called from a ribbon tooltip.
        dropNextHelpCall = false; // Reset state of help calls
        e.Handled = true; // Stop this message from being passed on to AutoCAD
      }
    }

    // AutoCAD event handlers to detect if a tooltip is open or not
    private static void ComponentManager_ToolTipOpened(object sender, EventArgs e)
    {
      Autodesk.Internal.Windows.ToolTip tt = sender as Autodesk.Internal.Windows.ToolTip;
      if (tt == null)
        return;
      Autodesk.Windows.RibbonToolTip rtt = tt.Content as Autodesk.Windows.RibbonToolTip;
      if (rtt == null)
        currentTooltip = tt.HelpTopic;
      else
        currentTooltip = rtt.HelpTopic;
    }

    private static void ComponentManager_ToolTipClosed(object sender, EventArgs e)
    {
      currentTooltip = null;
    }


    void IExtensionApplication.Initialize()
    {
      Autodesk.AutoCAD.ApplicationServices.Application.PreTranslateMessage += new PreTranslateMessageEventHandler(AutoCadMessageHandler);
      Autodesk.Windows.ComponentManager.ToolTipOpened += new EventHandler(ComponentManager_ToolTipOpened);
      Autodesk.Windows.ComponentManager.ToolTipClosed += new EventHandler(ComponentManager_ToolTipClosed);
    }

    void IExtensionApplication.Terminate()
    {
      Autodesk.AutoCAD.ApplicationServices.Application.PreTranslateMessage -= AutoCadMessageHandler;
      Autodesk.Windows.ComponentManager.ToolTipOpened -= ComponentManager_ToolTipOpened;
      Autodesk.Windows.ComponentManager.ToolTipClosed -= ComponentManager_ToolTipClosed;
    }

  }
}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 23 Apr 2014 11:04:20 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/getting-ribbon-help-to-call-html/m-p/4982378#M44525</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-04-23T11:04:20Z</dc:date>
    </item>
  </channel>
</rss>

