我有这个供应商提供的TLB文件,我用它来生成一个Ruby代理类。但是,有问题的TLB描述了6个接口和3个类:
AcdAutomationServer(I)
AcdAutomationServerClass(C)
AcdEvent(I)
AcdEventClass(C)
AcdObject(I)
AcdObjectClass(C)
IAcdAutomationServer(I)
IAcdEvent(I)
IAcdObject(I)
但是运行Ruby的1.8.6 win32ole库类(位于\ doc \ ruby \ ruby-1.8.6 \ sample \ win32ole)的OLEGEN工具会生成一个包含以下内容的Ruby代理类:
模块IAcdAutomationServer(...)
class Ccs_Application(...)
模块IAcdEvent(...)
模块AcdEvent(...)
模块IAcdObject(...)
模块AcdObject(...)
我需要实例化Ccs_Application以外的其他类型的对象!仅使用模块,我如何执行,例如,AcdEvent的方法必须在AcdEvent对象上运行Connect?
有Ruby COM经验的人吗?提前谢谢!
答案 0 :(得分:0)
在Masaki Suketa的帮助下,答案显示为here。这只能在Ruby 1.9的WIN32OLE模块中实现,因为它需要实例化WIN32OLE :: VARIANT对象。