in reply to Using Win32::OLE

If you didn't know already, use OLEView and look at the IDL http://www.sapnet.ru/examples/oleview_typelib.gif . For your specific problem, a variant is used when the data can be a string/floating/point/array and the API wants to deliver all versions of it. Corion's post is probably right. If it can be done in VB AND you can find example code of it in VB, it can be done with Win32::OLE. The only limitation to Win32::OLE is when you use IUnknown interfaces, which are C only interfaces. Win32::OLE only supports IDispatch interfaces. A IUnknown interface, must be called using C on machine code level. An IDispatch interface internally, briefly described, is what in Perl is calls eval. Also, if you want to see if you truly have any data in those scalars, Data::Dumper for the light viewing and Devel::Peek for hard core viewing. I googled up GetFileAgesValue, that last 2 are probably intergerish. Also do "Win32::OLE->Option(Warn => 3);" in your code, you never checked if GetFileAgesValue succeeded.

Replies are listed 'Best First'.
Re^2: Using Win32::OLE
by BasilOfWestdene (Initiate) on Aug 24, 2012 at 11:16 UTC
    Sorry it's take so long to reply (holidays and work got in the way!). Nothing I've tried has worked but I had to move on and the easiest way was to just to call a vbs script via the command interface. Thanks for your efforts. Barry.
      Sorry it's take so long to reply (holidays and work got in the way!).
      Are you trying to set a record for longest time OP's reply to answer for OP's OP? jkjk