winformsvisual-studio-2013windows-10naturallyspeaking

How can I prevent VS2013 catching COM Exceptions with Dragon Naturally Speaking running


I have RSI, and when it flares up, I use Dragon Naturally Speaking 12 Home to save me a lot of typing. Generally I find it very accurate and my RSI subsides when I'm not typing so much.

However, I'm now using it on Windows 10, developing WinForms applications in Visual Studio 2013. When running with the debugger attached, I'm getting a lot of COM Exceptions.

These occur in various places, mostly when when a ToolStripMenu is shown (when running nothing at all that accesses any COM component), and I have finally tracked it down to Dragon.

If Dragon is running, even with the microphone switched off, the exceptions occur, but if I switch Dragon off, they do not.

I used the same combination of software on Windows 7 last year and had none of these problems.

Rebooting makes no difference; nor does also starting Visual Studio either before or after starting Dragon.

I want to avoid the expense of moving to a later version of Visual Studio or Dragon unless I know the problem is solved at the later version.

How can VS2013 be prevented from catching these exceptions?


Edit to provide stack trace:

System.Runtime.InteropServices.COMException crossed a native/managed boundary
  ErrorCode=-2147352573
  Message=Member not found. (Exception from HRESULT: 0x80020003 (DISP_E_MEMBERNOTFOUND))
  Source=Accessibility
  StackTrace:
       at Accessibility.IAccessible.get_accKeyboardShortcut(Object varChild)
       at System.Windows.Forms.AccessibleObject.get_accKeyboardShortcutInternal(Object childID)
  InnerException: 

The Stack trace is identical in all cases where the COM Exception is caught on show of a ToolStripMenu.


**Edited for conciseness and removal of irrelevant detail.


Solution

  • I would guess that VS 2015 isn't going to help much, because it's much more likely to be a difference in interaction between the new OS and Dragon.

    Can you enable Debug -> Windows -> Modules and check if there's something related to Dragon hooked into the process you're debugging? I'm guessing Dragon hooks in and its calls aren't being error-checked, so they bubble up to your debugging session.

    Is there something in Dragon to exclude processes? You can exclude your target if so and see if it helps.