Dennis Misener asked:
>   expression.GetOffset(pxOffset, pyOffset)
> ...
> My problem is how to the two floating point output values. See sample
> below... Any help would be certainly appreciated. Thanks
> ...
>        subnode=node.addSubtopic 'label'
>        subnode.invoke('getOffset',0.0,0.0) # How to get this to work???
>        p [:offset,WIN32OLE::ARGV]          # Seems to echo parameters
> ...
> [:offset, [0.0, 0.0]]    << mirrors the supplied inputs
> G:/work/mindmanager/demo.rb:13:in `invoke': getOffset
> (WIN32OLERuntimeError)
>    OLE error code:80040200 in MindManager.Application.6
>      Error: 'this topic is not able to execute the call'
>    HRESULT error code:0x80020009
>      Exception occurred.from C:demo.rb:13:in `randomMap'
>        from G:/work/mindmanager/demo.rb:11:in `times'
>        from G:/work/mindmanager/demo.rb:11:in `randomMap'
>        from G:/work/mindmanager/demo.rb:15:in `randomMap'
>        from G:/work/mindmanager/demo.rb:11:in `times'
>        from G:/work/mindmanager/demo.rb:11:in `randomMap'
>        from G:/work/mindmanager/demo.rb:20

This shouldn't matter, but I usually write a method invocation like
  subnode.invoke('getOffset',0.0,0.0)
as
  subnode.GetOffset(0.0, 0.0)

You're right that WIN32OLE::ARGV is the way to get output parameters. The 
problem seems to be with the method invocation itself failing with an error.

And it does looks from the stack trace as if the method has actually been 
successfully executed at least once. Have you tried without the loop, from 
IRB, for example?

Cheers,
Dave