I haven't followed your thread closely, but it seems like the relevant
bits from your first link are these:

my $objSecDescriptor = Win32::OLE::Variant-> new (VT_DISPATCH|VT_BYREF);
my $retval =
$objDirectorySecSetting->GetSecurityDescriptor($objSecDescriptor);

..which seems to be filling the $objSecDescriptor with an out param.

If your out param is an array, you might need to add VT_ARRAY to the
variant flags when you create it. Does something like that work for you ?

-Mike

Michael wrote:
> Hi Steven,
> 
> Well I tried your suggestion and I think that the Win32::OLE::Variant
> module might be the solution, as I have found some other examples where WMI
> [out] and variants are used.
> 
> http://www.infoqu.com/dev/perl-programming/using-perl-with-wmi-to-set-folder-level-permissions-16930-1/
> http://www.perlmonks.org/?node_id=325823
> 
> However I'm in way over my head here, so unless someone could cut it out in
> pieces , I don't think that 
> I'll get any further.
> 
> /Michael
> 
> 
> On Fri, 4 Dec 2009 02:12:03 -0700, "Steven Manross" <ste...@manross.net>
> wrote:
>> Below...
>>
>>> -----Original Message-----
>>> From: perl-win32-users-boun...@listserv.activestate.com 
>>> [mailto:perl-win32-users-boun...@listserv.activestate.com] On 
>>> Behalf Of Michael
>>> Sent: Thursday, December 03, 2009 6:45 AM
>>> To: perl-win32-users@listserv.ActiveState.com
>>> Subject: RE: WIN32::OLE WMI Out params
>>>
>>>> When troubleshooting OLE issues, it is best to have the 
>>> following code 
>>>> after each OLE command...
>>>>
>>>> If (Win32::OLE-> LastError() != 0) {
>>>>   print "error calling blah: " . Win32::OLE-> LastError() . "\n";
>>>>   exit 0;
>>>> }
>>>>
>>>> ...Or something similar, so you can see what OLE had issues 
>>> with (if 
>>>> anything).  It might lead you in a direction that fixes it.
>>>>
>>>> Steven
>>> Added to the script, but no issues reported.
>>>
>>> /Michael
>> Well, then my next guess is the use of the Variant module (because no
>> error is thrown from OLE).
>>
>> Some OLE calls require to be cast of a certain type before they work.
>>
>> use Win32::OLE::Variant;
>>
>> my $nodes = Variant(VT_ARRAY|VT_VARIANT, 0); 
>>
>> #I might also try VT_VARIANT or VT_ARRAY|VT_BSTR instead of
>> VT_ARRAY|VT_VARIANT
>>
>> #then
>> my $objChildGroups = $objGetRoot->GetChildNodeGroups($nodes, TRUE); 
>>
>> Play around with this...  I'm not the greatest Variant script writer
>> here, to know exactly which combination will work (if this is it) based
>> on the object type as I've only run into this a few times before, but
>> you can get examples from your perl install here (depending on your perl
>> build version) of similar options to try and all the VT_* types:
>>
>> C:\Perl\html\lib\Win32\OLE\Variant.html
>>
>> HTH
>>
>> P.S. I googled OV_NodeGroup and found someone else with your same
>> problem on an HP board (or so it seems).  :(
>>
>> Steven
>>
>>> _______________________________________________
>>> Perl-Win32-Users mailing list
>>> Perl-Win32-Users@listserv.ActiveState.com
>>> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
>>>
> _______________________________________________
> Perl-Win32-Users mailing list
> Perl-Win32-Users@listserv.ActiveState.com
> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
> 

_______________________________________________
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to