From: Masaki Suketa Date: 2007-03-03T10:33:49+09:00 Subject: Re: Win32OLE trouble (custom ocx) Hello, In message "Re: Win32OLE trouble (custom ocx)" on 07/03/03, Barry Walker writes: > require 'win32ole' > include WIN32OLE::VARIANT > qp = WIN32OLE.new("QPTNT.QPTntCtrl.1") > s= qp.Version > > gives > qptest.rb:4:in `method_missing': Version (WIN32OLERuntimeError) > OLE error code:0 in > > HRESULT error code:0x8000ffff > Catastrophic failure from qptest.rb:4 > > I tried another method, Activate2 with the same results. Sorry, I'm not sure, but this might be Win32OLE's limit. > I only get one number on one line. > > 36 Thank you. I guess olegen worked fine, and created the expected script code. Perphaps the olegen created the script code like as the following. Is that right? require 'win32ole' obj = WIN32OLE.new("QPTNT.QPTntCtrl.1") include WIN32OLE::VARIANT obj._invoke(36, [], []) # this invokes Version. But unfortunately, I think you would get the same result even if you try above script. > When I run it for the Activate2 (which requires one arguement) method I > get: > > 55 > ----- > "I4" > ["I4"] > false Perphaps, I guess olegen created as the following code. obj._invoke(55, [arg], [VT_I4]) And [IN, OUT, OPTION] tags are not needed in this case. > It was a year ago I ran the OCX with VBSript and I can't find the code. > I just remember that it worked and that it was very cumbersome so I > abandon it. As I recall I invoked QPTnt.ocx not QPTNT.QPTntCtrl.1. BTW, Does the following VBScript work? Set obj = CreateObject("QPTnt.ocx") obj.Version or Set obj = CreateObject("QPTNT.QPTntCtrl.1") obj.Version If it would not work, Win32OLE script does not work. Regards, Masaki Suketa