no se que estoy haciendo mal, a ver si alguien me dice donde meto la pata.
Quiero saber el nombre de red de un disco. Para eso esta la funcion WNetGetConnectionA en mpr.dll
La declaracion segun los manuales de la API son
Code: Select all
Private Declare Function WNetGetConnection Lib "mpr.dll" Alias "WNetGetConnectionA" (ByVal lpszLocalName As String, ByVal lpszRemoteName As String, cbRemoteName As Long) As Long
Code: Select all
dll32 static function ;
WNetGetCon( @cLocalName AS STRING, @cRemoteName AS STRING, nLength AS LONG ) ;
AS LONG PASCAL FROM "WNetGetConnectionA" ;
Lib "mpr.dll"
Code: Select all
function GetNetDriveName( cDrive )
local x := 0
local cName := Space( 128 )
cDrive := Left( cDrive, 3 )+Chr(0)
x:= WNetGetCon( @cDrive, @cName, 128 )
debug x, cDrive, Len(cname)
If x != 0
cDrive := Left( cDrive, 2 )+Chr(0)
x:= WNetGetCon( @cDrive, @cName, 128 )
debug x, cDrive, Len(cname)
If x != 0
cDrive := Left( cDrive, 1 )+Chr(0)
x:= WNetGetCon( @cDrive, @cName, 128 )
debug x, cDrive, Len(cname)
EndIf
EndIf
el comando debug me hace un Outputdebugstring de cada parametro en el dbwin
x siempre me trae el codigo de error 487
que en winerror.h dice:
Code: Select all
//
// MessageId: ERROR_INVALID_ADDRESS
//
// MessageText:
//
// Attempt to access invalid address.
//
#define ERROR_INVALID_ADDRESS 487L
Alguna idea?
Saludos