views:

68

answers:

1
+1  Q: 

COM types question

I have this vendor-supplied TLB file, which I've used to generate a Ruby proxy class. However, the TLB in question describes 6 interfaces and 3 classes:

AcdAutomationServer (I)

AcdAutomationServerClass (C)

AcdEvent (I)

AcdEventClass (C)

AcdObject (I)

AcdObjectClass (C)

IAcdAutomationServer (I)

IAcdEvent (I)

IAcdObject (I)

But running the OLEGEN tool of Ruby's 1.8.6 win32ole library class (located in \doc\ruby\ruby-1.8.6\sample\win32ole) generates a Ruby proxy class containing:

module IAcdAutomationServer (...)

class Ccs_Application (...)

module IAcdEvent (...)

module AcdEvent (...)

module IAcdObject (...)

module AcdObject (...)

I need to instantiate objects of types other than Ccs_Application! With only modules, how can I execute, for example, AcdEvent's method Connect that has to be run on AcdEvent objects?

Anyone with Ruby COM experience? Thanks in advance!

A: 

The answer, with help from Masaki Suketa, is shown here. This is only possible in Ruby 1.9's WIN32OLE module, since it requires instantiating WIN32OLE::VARIANT objects.

sardaukar