On Nov 14, 2007 6:05 PM, zxem <david.zxem / gmail.com> wrote: > > On Nov 14, 2007 1:10 PM, zxem <david.z... / gmail.com> wrote: > > > > > All, > > > > > I am using Ruby 1.8.6 now and trying to so a pass by reference COM > > > call through win32ole. > > > > > The code looks like this: (I am not really calling Excel) > > > > > ------------------------------------------------------ > > > excel = WIN32OLE.new("excel") > > > excel.getCell(cell, column, row) > > > --------------------------------------------------- > > > > > The first parameter I need to pass into getCell on line2 is a complex > > > object(not String/double). > > > Could anyone please teach me how to do this call in Ruby? > > Hi, > > I went through all the existing threads before I posted this one > because I did not fully understand them. Could anyone give me some > more detailed examples. Can you specify the problem in more detail? Is it that (1) you need to pass an object to the method, or (2) the method returns the complex object, and you actually do not need to pass it in, or (3) both? If you can specify the exact API (if it is public) it would be easier to help you. So for now: for (1) I think that's easy. WIN32OLE.new(type) for (2): try passing 0 or nil as the parameter, and read the result from WIN32OLE::ARGV.first if 0/nil doesn't work then create an empty object and pass that. Try inspecting ARGV to find out what stuff does it contain. (I don't remember why but) in some cases I used WIN32OLE#invoke(method, *args) to call the COM object.