WNetGetUniversalName UNC名の取得

Cの宣言:

DWORD WNetGetUniversalName(
	LPCTSTR LocalPath,
	DWORD InfoLevel,
	LPVOID Buf,
	LPDWORD BufSize);

説明:

LocalPathで指定したローカルのパス名を、UNC名に変換する。また、その他の情報も返却する。

本関数はNTで使用可能。95の場合、WNetEnumResourceで代用する。

引数の意味は以下の通り。
LocalPath (IN) ローカルのパス名。
InfoLevel (IN) 取得する情報の種別を指定するフラグ。後述の表を参照。
Buf (OUT) 取得結果の情報。
BufSize (IN/OUT) Bufのサイズ。関数の実行後、Bufに設定されたデータのサイズまたは必要なサイズが設定される。

InfoLevelに指定可能な値は、以下のいずれかのフラグである。
UNIVERSAL_NAME_INFO_LEVEL BufにはUNIVERSAL_NAME_INFO型のデータが返される。
REMOTE_NAME_INFO_LEVEL BufにはREMOTE_NAME_INFO型のデータが返される。

戻り値は、発生したエラーを示すエラー値である。

Cのサンプル:

ネットワークドライブ“s:”上の“s:\\hogehoge.txt”というパス名を、UNCで表したものに変換する。
void ConvertUNC()
{
	LPREMOTE_NAME_INFO pInfo;
	DWORD InfoSize = 1000;
	
	pInfo = GlobalAlloc(GMEM_FIXED, InfoSize);

	WNetGetUniversalName("s:\\hogehoge.txt", REMOTE_NAME_INFO_LEVEL, pInfo, &InfoSize);

	printf("UNC名: %s\n", pInfo->lpUniversalName);
	printf("ネットワークリソース名: %s\n", pInfo->lpConnectionName);
	printf("ドライブ名を除いたパス: %s\n", pInfo->lpRemainingPath);

	GlobalFree(pInfo);
}

(original text:1999/03/29 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。