by Michael Rüsweg-Gilbert
Procedure WNetGetConnection retrieves the name of the network resource associated with a local device. In other words, it can be used to get the UNC name for a mapped network drive or printer. If K: is the drive letter of a mapped network drive, the following example finds the UNC name for this network drive.
DEFINE VARIABLE Drive_Name AS CHARACTER NO-UNDO INIT "K:".
DEFINE VARIABLE UNC_Name AS CHARACTER NO-UNDO.
DEFINE VARIABLE namelen AS INTEGER NO-UNDO INITIAL 100.
DEFINE VARIABLE retBool AS INTEGER NO-UNDO.
UNC_Name = FILL("x",namelen).
RUN WNetGetConnectionA ( Drive_Name,
OUTPUT UNC_Name,
INPUT-OUTPUT namelen,
OUTPUT retBool).
IF retBool = 0 THEN
UNC_Name = SUBSTRING(UNC_Name, 1, namelen).
ELSE
UNC_Name = "".
MESSAGE
UNC_Name
VIEW-AS ALERT-BOX.
API definitions used in this exampe, not listed in windows.p :
PROCEDURE WNetGetConnectionA EXTERNAL "mpr.dll" : DEFINE INPUT PARAMETER lpDrive AS CHARACTER. DEFINE OUTPUT PARAMETER lpUNCName AS CHARACTER. DEFINE INPUT-OUTPUT PARAMETER lpnLength AS LONG. DEFINE RETURN PARAMETER RetBool AS LONG. END PROCEDURE.