tyranid / oleviewdotnet

A .net OLE/COM viewer and inspector to merge functionality of OleView and Test Container
GNU General Public License v3.0
1.14k stars 185 forks source link

Feature request: Show id and help string of methods and properties #9

Open ToniSimi opened 6 years ago

ToniSimi commented 6 years ago

For comprehensive inspection of objects if would be helpful to see the numerical id and the help string (usually contains comment/description of method if provided by the developer) of methods and properties.

tyranid commented 6 years ago

I could add the DISPID field as that's easily accessible from the converted type library, however the help string is not preserved as far as I can tell. At some point I'd like to implement a better type lib importer, which doesn't convert to assembly at all but that's some way off I'm afraid.

ToniSimi commented 6 years ago

The object browser of Visual Basic 6 (yes, really old) shows the help strings, see the example below, the very last line. Microsoft's OleView also shows them. The browser of VB6 is the most convenient one I know because it has a very clear, tidy, and handy representation with selectable items, cute icons, and internal clickable links between libraries, interfaces, enums, ...

objectbrowser

tyranid commented 6 years ago

It's not a problem of getting the information out, it just doesn't match with how I implement the type lib viewing. I convert the type library to a .NET assembly using the TypeLibConverter class which preserves DISPIDs but not the help strings so atm there's no information I can extract out to display the strings. Pulling out the help strings would require a reference back to the original TLB or emitting the TLB directly which would require a fair amount of new code.

ToniSimi commented 6 years ago

Ok, understood. Maybe you can use/modify/extend/... the TypeLibConverter from NET Core and include your desired improvements in the code instead of creating something new from scratch: https://github.com/Microsoft/referencesource/blob/master/mscorlib/system/runtime/interopservices/typelibconverter.cs

Just an idea. :-)

hakito commented 2 years ago

So could you at least implement showing the DISPIDs?