Macro For Stepping Into #import Wrapped COM Methods

When using #import to create wrapper classes for your own C++ COM objects, debugging and stepping into the COM methods can be tedious because you have to first step into the wrapper class and then COM object wrappers for many of the method's paramenters (e.g. _bstr_t and _variant_t), before you finally get to the raw method. To solve this I have written the macro StepInComFunc to do all the stepping in and out automatically for you, effectively stepping you directly into the source code for the method being called. Obviously the COM object will have to have been built with debug information. I find it useful to map this macro to the shortcut key ALT+F11.
Sub StepInComFunc()
'DESCRIPTION: A description was not provided.

 Application.Debugger.StepInto

 Dim nMaxParams, nCount
 nCount = 0
 nMaxParams = 20

 Do While ((ActiveDocument.Name = "COMUTIL.H" 
 Or ActiveDocument.Name = "ATLBASE.H") 
 And nCount < nMaxParams)

  Application.Debugger.StepOut
  Application.Debugger.StepInto
  nCount = nCount + 1
 Loop

 if (ActiveDocument.Name = "COMIP.H") then
  Application.Debugger.StepOut
  Application.Debugger.StepInto
 End If

 if (ActiveDocument.Name = "COMIP.H") then
  Application.Debugger.StepOut
  Application.Debugger.StepInto
 End If

 if (InStr(ActiveDocument.Name, ".tli") > 0) then
  Application.Debugger.StepOver
  Application.Debugger.StepInto
 End If

 nCount = 0
 Do While ((ActiveDocument.Name = "COMUTIL.H" 
 Or ActiveDocument.Name = "ATLBASE.H") 
 And nCount < nMaxParams)
  Application.Debugger.StepOut
  Application.Debugger.StepInto
  nCount = nCount + 1
 Loop

End Sub


Comments

  • That's is pretty cool!

    Posted by Legacy on 07/13/2001 12:00am

    Originally posted by: hn

    If you want to close those files as well, add ActiveDocument.Close

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • 10 Rules that Make or Break Enterprise App Development Projects In today's app-driven world, application development is a top priority. Even so, 68% of enterprise application delivery projects fail. Designing and building applications that pay for themselves and adapt to future needs is incredibly difficult. Executing one successful project is lucky, but making it a repeatable process and strategic advantage? That's where the money is. With help from our most experienced project leads and software engineers, …

  • As everyone scrambles to protect customers and consumers from the Heartbleed virus, there will be a variety of mitigating solutions offered up to address this pesky bug. There are a variety of points within the data path where solutions could be put into place to mitigate this (and similar) vulnerabilities and customers must choose the most strategic point in the network at which to deploy their selected mitigation. Read this white paper to learn the ins and outs of mitigating the risk of Heartbleed and the …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds