Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re^6: Win32::API::Struct: Pointers of Pointers

by esskar (Deacon)
on Jun 29, 2006 at 15:26 UTC ( #558341=note: print w/replies, xml ) Need Help??

in reply to Re^5: Win32::API::Struct: Pointers of Pointers
in thread Win32::API::Struct: Pointers of Pointers

that's what i mean. it is a pointer of a pointer. The function alloactes the needed memory itself. here is the prove
sub query_users { my ( $self, $filename ) = @_; my $func = import_api( 'advapi32', 'QueryUsersOnEncryptedFile', 'P +P', 'N' ); die "Could not import API QueryUsersOnEncryptedFile: $!" unless defined $func; $filename = make_unicode( File::Spec->canonpath($filename) ); + my $ptr = " " x 4; # 4 == sizeof(void*) my $result = $func->Call( "$filename", $ptr ); print "result: $result\n"; return undef if $result; my $address = unpack( "L*", $ptr ); printf("0x%08x\n", $address); }
i think i have to switch to XS at this point.

Replies are listed 'Best First'.
Re^7: Win32::API::Struct: Pointers of Pointers
by BrowserUk (Pope) on Jun 29, 2006 at 18:44 UTC

    In theory, this should work...but it doesn't.

    #! perl -slw use strict; use Encode; use Devel::Peek; use Win32::API::Prototype; ApiLink( 'advapi32', q[ DWORD QueryUsersOnEncryptedFile( LPCWSTR lpFileName, ULONG pUsers ) ]) or die $^E; my $buffer = chr(0) x 4; print Dump( $buffer ); my $pointer = unpack 'L!', pack 'P', $buffer; printf "%08x\n", $pointer; my $uFile = encode( 'UTF-16LE', $_ = $ARGV[ 0 ], 1 ); print $uFile; QueryUsersOnEncryptedFile( $uFile, $pointer ) or die "$! : $^E"; print Dump( \$buffer ); print unpack 'C*',$buffer;

    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://558341]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (5)
As of 2018-06-24 01:55 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (126 votes). Check out past polls.