I have an existing Windows application which provides an OLE Automation 
(IDispatch) interface.  I'm not able to change that interface.  I'd like to 
call it from a scripting language.  I figure this would provide a nice quick 
way to invoke on the app.

I initially tried this with Windows Powershell but ran into the following 
problem.  I was able to create the object and invoke simple methods on it.  
However the interface for this app has methods which take out params.  i.e. you 
pass in a reference to a variable and the server fills in the value.  I 
couldn't get that to work.  I finally gave up and decided it was just a 
limitation of Powershell, not being able to work with those out params.

My next thought was to do it in python.  I've been reading up on python and 
I've found a decent amount of into out there on doing OLE and I'm optimistic.  
But, I thought that I'd ask the question before digging too much farther into 
it...

When calling an OLE Automation (IDispatch) server from python can I make use of 
"out params" defined by the interface?

To get more specific, here's an example from the server's IDL for one of its 
methods.

[id(15), helpstring("method GetSettingValue")] VARIANT_BOOL 
GetSettingValue(BSTR settingName, BSTR* settingValue);

As you can see, you have to pass in an out param for settingValue.  The server 
fills this in for you.  And this is what I couldn't get to work in Powershell.

Anyone know whether or not OLE from python will allow passing in out params?  
Do you think this will work?
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to