views:

24

answers:

1

If you create a COMClass, I've noticed that the values in the XML Summary tag do not show in the object browser of VB6/VBA when you reference the resulting tlb file. Is there a way to have these values show up?

+3  A: 

No, 12 years of IntelliSense evolution prevents this from working. The XML documentation comments generates an .xml file that IntelliSense can pick up. In VB6/A, documentation is present in the type library with the helpstring attribute. For example:

[
  odl,
  uuid(2334D2B1-713E-11CF-8AE5-00AA00C00905),
  hidden,
  dual,
  nonextensible,
  oleautomation
]
interface IVBDataObject : IDispatch {
    [id(0x00000001), helpstring("Clears all data and formats in a DataObject object."), helpcontext(0x00033693)]
    HRESULT Clear();
    // etc...
};

Unfortunately, .NET is missing an attribute to generate this helpstring. Bit of an oversight, frankly.

Technically it is possible but it is extraordinarily painful. You can open the .tlb file with the OleView.exe SDK tool, File + View Type Library. Copy and paste the IDL into a .idl file. Edit the file, inserting the helpstring attributes. Then compile it with midl.exe to regenerate the type library.

The pain-point being that you have to redo this when you change an interface declaration. Not practical, at least not without tooling support.

Hans Passant
Well that's bad news, but I'd upvote it twice if I could for the work-around. Thanks again.
Oorang