Force a .NET cast (COM Interop)

I have an Interop’ed COM object (System.__ComObject) that I’m trying to
use
from an IronRuby script.
Because the way that you seem to QueryInterface from .NET is to use
casting,
I therefore need to cast from within IronRuby.

Basically:

comobject = Activator.create_instance(base_com_type) # returns a base
type
which is IUnknown + not much else
comobject.do_stuff # throws NoMethodError.

In C#, I’d then do ((ICanDoStuff)comObject).do_stuff; which calls
QueryInterface, so the do_stuff method will now actually exist.

Is there any way I can do this?

Does the COM object implement IDispatch?

Does the DLR / IronRuby invoke operations against IDispatch
automagically?

2009/3/26 Orion E. [email protected]

I’m not using IDispatch here. These are all statically generated proxy
classes from some custom C++ COM Interfaces.
Hopefully if I can get casting to work, I’ll be good to go

2009/3/27 Brannon J. [email protected]