Re: properties, VT types, and Win32::OLE
Jan Dubois wrote: On Mon, 04 Feb 2008, Michael Ellery wrote: Given some object and a property: my $obj = new Win32::OLE(SOME.class); my $val = $obj-{SomeProperty}; ...is there some way to determine the VT type of $val (or of SomeProperty, equivalently). I often run into strange problems where I expect a 32 bit negative value from some property, but when I simply print it, perl shows it as a large positive value. It is bit equivalent to the expected negative value, but somehow not being interpreted with the corrected sign-ed-ness. The first thing I would like to check is the VT type that Win32::OLE thought it got -- then I'll see if I agree with how Win32::OLE is converting to perl scalars based on the VT type. I haven't tested this, but you should be able to do something like this: my $prop = Win32::OLE::Variant-new(); $obj-Dispatch('SomeProperty', $prop); print V_VT(prop)=%d\n, $prop-Type); With two minor syntax fixes to the print line, this works great. Thanks! -Mike ___ Perl-Win32-Users mailing list Perl-Win32-Users@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
RE: properties, VT types, and Win32::OLE
On Mon, 04 Feb 2008, Michael Ellery wrote: Given some object and a property: my $obj = new Win32::OLE(SOME.class); my $val = $obj-{SomeProperty}; ...is there some way to determine the VT type of $val (or of SomeProperty, equivalently). I often run into strange problems where I expect a 32 bit negative value from some property, but when I simply print it, perl shows it as a large positive value. It is bit equivalent to the expected negative value, but somehow not being interpreted with the corrected sign-ed-ness. The first thing I would like to check is the VT type that Win32::OLE thought it got -- then I'll see if I agree with how Win32::OLE is converting to perl scalars based on the VT type. I haven't tested this, but you should be able to do something like this: my $prop = Win32::OLE::Variant-new(); $obj-Dispatch('SomeProperty', $prop); print V_VT(prop)=%d\n, $prop-Type); Cheers, -Jan ___ Perl-Win32-Users mailing list Perl-Win32-Users@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs