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

1

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.

winforms
visual-studio-2013
windows-10
naturallyspeaking
asked on Stack Overflow Jul 11, 2016 by ChrisA • edited Jul 14, 2016 by ChrisA

2 Answers

2

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.

answered on Stack Overflow Jul 14, 2016 by Mark Sowul
1

Ok, so following Mark's suggestions, I found that by switching off the Debug option break when exceptions cross appdomain or managed/native boundaries, the exceptions were swallowed, but there was a noticeable irritating delay as the menus came up.

Then, as he suggested in the answer that I have accepted, I looked more closely in the Dragon options. Since I had established that the main culprit was ToolStripMenus, the option to switch off voice commands for menus and buttons was an obvious candidate to try:

enter image description here

Unticking the option I've indicated in the screenshot made the whole problem go away.

answered on Stack Overflow Jul 14, 2016 by ChrisA

User contributions licensed under CC BY-SA 3.0