我遇到了 WIN32OLE#ole_query_interface 函数的问题。
我使用相同的源代码,如doc of the function中所述:
ie = WIN32OLE.new('InternetExplorer.Application')
ie_web_app = ie.ole_query_interface('{0002DF05-0000-0000-C000-000000000046}')
puts "ie_web_app: = #{ie_web_app.ole_type}"
,输出为:
# => ie_web_app: = IWebBrowser2
但我希望输出为 IWebBrowserApp 。我错过了什么?
BTW:我正在使用64位Win7,现在我已经使用了2个解释器进行测试:这是来自tlb的coclass供参考:
uuid(0002DF01-0000-0000-C000-000000000046), helpstring("Internet Explorer Application.") ] coclass InternetExplorer {
[default] interface IWebBrowser2;
interface IWebBrowserApp;
[default, source] dispinterface DWebBrowserEvents2;
[source] dispinterface DWebBrowserEvents; };
以及IWebBrowserApp的相关部分:
[
uuid(0002DF05-0000-0000-C000-000000000046),
helpstring("Web Browser Application Interface."),
hidden,
dual
]
dispinterface IWebBrowserApp {
答案 0 :(得分:0)
coclass说它实现了IWebBrowser2
作为默认接口。我怀疑ruby的.ole_type
方法正在使用它来生成可打印的名称。你能在结果界面上调用IWebBrowserApp
方法吗?如果是这样的话,无论打印什么,它都是IWebBrowserApp
。