I'm running into a snag with Win32::OLE. I'm trying to script something for CuteFTP's Transfer Engine, and one of its properties requires arguments. I know I have to use the SetProperty() method to set the values, but the question is: what's the syntax for retrieving the current value of properties with arguments? I would have thought I could use the hash syntax, and this would work (this is a snippet of my script, but runnable as-is):

use Win32::OLE qw(in with); use Win32::OLE::Const 'CuteFTPPro'; my $ftp = Win32::OLE->new('CuteFTPPro.TEConnection', 'Close'); print "autoclosemethod is currently ", $ftp->{Option}{AutoCloseMethod} +, "!\n"; $ftp->SetProperty('Option', "AutoCloseMethod", 1); print "autoclosemethod is now ", $ftp->{Option}{AutoCloseMethod}, "!\n +";

It doesn't. The output varies whether I have warnings enabled:

D:\>perl test.pl autoclosemethod is currently ! autoclosemethod is now ! D:\>perl -w test.pl Win32::OLE(0.1601) error 0x8002000e: "Invalid number of parameters" in METHOD/PROPERTYGET "Option" at test.pl line 6 Win32::OLE(0.1601) error 0x8002000e: "Invalid number of parameters" in PROPERTYPUT "Option" at test.pl line 6 autoclosemethod is currently Use of uninitialized value in print at te +st.pl line 6. ! Win32::OLE(0.1601) error 0x8002000e: "Invalid number of parameters" in METHOD/PROPERTYGET "Option" at test.pl line 8 Win32::OLE(0.1601) error 0x8002000e: "Invalid number of parameters" in PROPERTYPUT "Option" at test.pl line 8 autoclosemethod is now Use of uninitialized value in print at test.pl +line 8. !

I can't tell if this is a problem with my Win32::OLE calls, or if I'm misinterpreting the CuteFTP docs. CuteFTP says the Option property is used both to set and retrieve settings, but they don't give examples of retrieving settings (and their examples are all VBScript anyway). I'm a novice with Win32::OLE, and I don't know of any other OLE applications that have properties requiring arguments, so I can't test this with anything else.

Can anyone tell me the proper syntax for this with Win32::OLE? Better yet, does anyone happen to have working CuteFTP script examples? (Might as well shoot high :-)

Thanks!


In reply to Win32::OLE properties by EyeOpener

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.