I'm defining an interface in C# which will be implemented in C#, but called from an unmanaged C++ module as a COM object.
I know what I want/need the C++ API to look like and how I'd define it via ODL:
//args is an array of BSTR e.g VT_ARRAY|VT_BSTR
HRESULT DoMethod(/*[in]*/BSTR name, /*[in]*/VARIANT args);
I'm not sure how to set this up in C# to cause the TLB definition to match this, in regards the VARIANT.
Could it be something as simple as the following?
void DoMethod(string name, string args[])
I've been looking around COM/.NET interop documentation but either I've missed the section on this, or simply don't understand what's being described!
As an aside, how can I see what COM definition is being emitted for a given C# interface? Is the DLL/TLB easily inspected?