Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Win32OLE: how to pass parameters by reference?

11 views
Skip to first unread message

Jan Svitok

unread,
Jan 2, 2007, 11:41:32 AM1/2/07
to
Hi,

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

Masaki Suketa

unread,
Jan 3, 2007, 5:07:19 PM1/3/07
to

In message "Win32OLE: how to pass parameters by reference?"

on 07/01/03, "Jan Svitok" <jan.s...@gmail.com> writes:

> 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


Jan Svitok

unread,
Jan 3, 2007, 6:11:56 PM1/3/07
to

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

Pit Capitain

unread,
Jan 4, 2007, 2:52:34 PM1/4/07
to
Jan Svitok schrieb:

> 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).

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

0 new messages