WNetOpenEnum ネットワークリソースの列挙の開始

Cの宣言:

DWORD WNetOpenEnum(
	DWORD Scope,
	DWORD ResType,
	DWORD Usage,
	LPNETRESOURCE NetResource,
	LPHANDLE hEnum);

説明:

NetResourceで指定されたコンテナリソースの子ネットワークリソースの列挙を開始する。

引数の意味は以下の通り。
Scope 列挙する範囲を指定するフラグ。後述の表を参照。
ResType 列挙するリソースの種類を指定するビットマスク。後述の表を参照。
Usage 列挙するリソースの用途を指定するビットマスク。後述の表を参照。
NetResource 列挙の元となるコンテナリソース。NULLを指定した場合、ネットワークのルートとみなされる。
hEnum 列挙ハンドル。WNetEnumResourceによる実際のリソースの列挙時に使用する。

Scopeに指定可能な値は、以下のいずれかのフラグである。
RESOURCE_CONNECTED 現在接続されているリソースを列挙。
RESOURCE_CONTEXT 呼び出し元のネットワークコンテキスト中のリソースを列挙。Usageは無視される。
RESOURCE_GLOBALNET 全てのリソースを列挙。
RESOURCE_REMENBERED 記憶されている全ての接続を列挙。Usageは無視される。

ResTypeに指定可能な値は、以下のフラグの組み合わせである。
RESOURCETYPE_ANY 任意のリソース。このフラグを指定した場合、RESOURCETYPE_DISKとRESOURCETYPE_PRINTを指定してはならない。
RESOURCETYPE_DISK ディスクリソース。任意のリソース。このフラグを指定した場合、RESOURCETYPE_PRINTを指定してはならない。
RESOURCETYPE_PRINT 印刷リソース。

Usageに指定可能な値は、以下のフラグの組み合わせである。
0 全てのリソース。
RESOURCEUSAGE_CONNECTABLE 接続可能リソース。
RESOURCEUSAGE_CONTAINER コンテナリソース。

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

Cのサンプル:

“FOOBAR”というドメインに属している全てのマシンの名前を表示する。
void DispMachines()
{
	NETRESOURCE parent;
	LPNETRESOURCE pnr;
	HANDLE hEnum;
	DWORD BufSize;
	DWORD ResNum;

	ZeroMemory(&parent, sizeof(parent));
	pnr = GlobalAlloc(GMEM_FIXED, 1000);

	parent.dwScope = RESOURCE_GLOBALNET;
	parent.dwType = RESOURCETYPE_ANY;
	parent.dwDisplayType = RESOURCEDISPLAYTYPE_DOMAIN;
	parent.dwUsage = RESOURCEUSAGE_CONTAINER;
	parent.lpRemoteName = "FOOBAR";
	parent.lpProvider = "Microsoft Windows Network";

	WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, &parent, &hEnum);

	while(BufSize = 1000, ResNum = 1, WNetEnumResource(hEnum, &ResNum, pnr, &BufSize) == NO_ERROR) {
		printf("%s\n", pnr->lpRemoteName);
	}

	WNetCloseEnum(hEnum);

	GlobalFree(pnr);
}

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

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