I need to call an OLE method that takes a VARIANT argument, and fills
it with data. How can I accomplish this? Somewhere in the ruby-cvs
attic I've found WIN32OLE_VARIANT, unfortunately it is removed now.
Long obj.GetX(varX As Variant)
long is success/error, varX is the actual value for X.
invoke_kind of the method is FUNC.
Thanks
> I need to call an OLE method that takes a VARIANT argument, and fills
> it with data. How can I accomplish this? Somewhere in the ruby-cvs
> attic I've found WIN32OLE_VARIANT, unfortunately it is removed now.
No, WIN32OLE_VARIANT is Ruby 1.9 feature.
Sorry, Ruby 1.8 does not support WIN32OLE_VARIANT.
In Ruby 1.8, WIN32OLE#_invoke method may help you.
oleobj._invoke(dispid, [value], [WIN32OLE::VARIANT::VT_VARIANT])
The dispid is the dispatch id of the OLE method to call.
The value is the data which you want to pass.
Regards,
Masaki Suketa
In the meantime I have found the answer in your older answers. Thank
you for all of them. The trick was to google for 'output' instead of
'reference' ;-)
In this case, using WIN32OLE::ARGS was enough to get what I need.
I have added a doc patch (7557) to ruby tracker to document that. (I
have copied pieces from your examples if you don't mind).
Thanks again.
Jano
Jan, this is great. Enhancing the existing documentation of a library
after having solved a problem. May others (me included) be inspired by
your example.
Regards,
Pit