in reply to Re: Win32-API-Prototype WNet
in thread Win32-API-Prototype WNet
Can anyone tell me what is wrong, literally nothing is returned so im not sure if im using the Win32-API-Prototype module correctly at all.#!/usr/bin/perl use strict; use Win32::API::Prototype; # WNetOpenEnum variables my $dwScope = "RESOURCE_CONNECTED"; my $dwType = "RESOURCETYPE_ANY"; my $dwUsage = "0"; my $lpNetResource = "NULL"; # assumes the ro +ot of the network my $lphEnum; # WNetEnumResource variables my $hEnum; # must be return +ed by WNetOpenEnum my $lpcCount = "-1"; # returns as ma +ny entries as possible my $lpBufferSize = "16384"; # specifies the +size of the lpBuffer parameter my $lpBuffer = AllocMemory( 16384 ); # points to the + buffer that receives the emuneration results # WNetOpenEnum ApiLink('mpr.dll', 'DWORD WNetOpenEnum(DWORD dwScope, DWORD dwType, DWORD dwUsage +, LPNETRESOURCE lpNetResource, LPHANDLE lphEnum)'); # WNetEnumResource ApiLink('mpr.dll', 'DWORD WNetEnumResource(HANDLE hEnum, LPDWORD lpcCount, LPVOID + lpBuffer, LPDWORD lpBufferSize)'); # WNetCloseEnum ApiLink('mpr.dll', 'DWORD WNetCloseEnum(HANDLE hEnum)'); WNetOpenEnum($dwScope, $dwType, $dwUsage, $lpNetResource, $lphEnum); $hEnum = $lphEnum; my $dwResultEnum = WNetEnumResource($hEnum, $lpcCount, $lpBuffer, $lpB +ufferSize); # // get remote name of resource... lpnrLocal[i].lpRemoteName) do { if($dwResultEnum eq "NO_ERROR") { for (my $i = 0; $i < $lpcCount; $i++) { CleanString( $lpBuffer ); print $lpBuffer->[$i]; } } elsif($dwResultEnum ne "ERROR_NO_MORE_ITEMS") { exit; } } while($dwResultEnum ne "ERROR_NO_MORE_ITEMS"); $lpBuffer = ''; my $dwResult = WNetCloseEnum($hEnum);
Thanks in advance, Jen
|
|---|