WNetConnectionDialog1 カスタマイズ可能な、ネットワーク接続用ダイアログボックスの表示

Cの宣言:

DWORD WNetConnectionDialog1(LPCONNECTDLGSTRUCT DlgInfo);

説明:

ネットワークリソースへの接続用のダイアログボックスを表示する。表示の際には、DlgInfoで指定された情報が使用される。

接続がローカルドライブに割り当てられた場合、DlgInfoのdwDevNumに、割り当てたドライブを表す値が返される。1が“A:”、2が“B:”を表す。ローカルドライブに割り当てられなかった場合、0xffffffffが設定される。

引数の意味は以下の通り。
DlgInfo (IN/OUT) ダイアログボックスの形式を指定する情報。

戻り値は、発生したエラーを表すエラー値である。ただし、キャンセルボタンが押された場合、0xffffffffが返される。

Cのサンプル:

ネットワークドライブの割当てダイアログボックスを表示する。ただし、ネットワークパスはユーザが選択することはできず、“\\foo\bar”というネットワークパス固定である。また、ログオン時に再接続するかどうかを選択するチェックボックスを非表示にして、必ず再接続しないようにする。ネットワークドライブの割当てが正常に行われた場合、割り当てられたネットワークドライブ名を表示する。
void DispConnectionDialog1()
{
	CONNECTDLGSTRUCT cd;
	DWORD lResult;
	NETRESOURCE nr;

	ZeroMemory(&nr, sizeof(nr));

	nr.lpRemoteName = "\\\\foo\\bar";
	nr.dwType = RESOURCETYPE_DISK;

	cd.cbStructure = sizeof(CONNECTDLGSTRUCT);
	cd.hwndOwner = (HWND)NULL;
	cd.lpConnRes = &nr;
	cd.dwFlags = 
		  CONNDLG_RO_PATH /* パスを選択するリストボックスを表示せず、“\\foo\bar”へのみ接続可能 */
		| CONNDLG_HIDE_BOX /* 次回ログオン時に接続を回復するかどうかを選択するチェックボックスを隠す */
		| CONNDLG_NOT_PERSIST; /* 次回ログオン時に接続を回復しない */

	lResult = WNetConnectionDialog1(&cd);
	
	if(lResult == 0xffffffff) printf("キャンセルされた.\n");
	else if(lResult == WN_SUCCESS) printf("正常終了(ドライブ: '%c:').\n", cd.dwDevNum + 'A' - 1);
	else printf("エラー発生(%d)\n", lResult);
}


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

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