DWORD WNetOpenEnum( DWORD Scope, DWORD ResType, DWORD Usage, LPNETRESOURCE NetResource, LPHANDLE hEnum);
引数の意味は以下の通り。
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 | コンテナリソース。 |
戻り値は、発生したエラーを表すエラー値である。
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); }