Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Pascal
Expertise: Beginner
Mar 28, 1997

Universal Naming Convention (UNC)

Question:
For file-based applications, how is the Universal Naming Convention obtained for path names?

Answer:
To get the UNC name of a drive-based path, use the Windows API call WNetGetUniversalName. This function takes a drive-based path (i.e., fully qualified file name) and returns its UNC equivalent.

Be forewarned, though: This call is not supported by Windows 95. Here's something that should work if you're in NT:

function GetUNCName(PathStr : String) : String;
var
  bufSize : DWord;
  buf : TUniversalNameInfo;
  msg : String;
begin
  bufSize := SizeOf(TUniversalNameInfo);
  if (WNetGetUniversalName(PChar(PathStr), UNIVERSAL_NAME_INFO_LEVEL,  
     buf, bufSize) > 0) then
    case GetLastError of
      ERROR_BAD_DEVICE	      : msg := 'ERROR_BAD_DEVICE';
      ERROR_CONNECTION_UNAVAIL: msg := 'ERROR_CONNECTION_UNAVAIL';
      ERROR_EXTENDED_ERROR    : msg := 'ERROR_EXTENDED_ERROR';
      ERROR_MORE_DATA	      : msg := 'ERROR_MORE_DATA';
      ERROR_NOT_SUPPORTED     : msg := 'ERROR_NOT_SUPPORTED';
      ERROR_NO_NET_OR_BAD_PATH: msg := 'ERROR_NO_NET_OR_BAD_PATH';
      ERROR_NO_NETWORK	      : msg := 'ERROR_NO_NETWORK';
      ERROR_NOT_CONNECTED     : msg := 'ERROR_NOT_CONNECTED';
    end
  else
    msg := buf.lpUniversalName;  

  Result := msg;  
end;

Play around with this and see what you come up with.

DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date