WNetOpenEnumW 関数 (winnetwk.h)
WNetOpenEnum 関数は、ネットワーク リソースまたは既存の接続の列挙を開始します。 列挙を続行する場合は、 WNetEnumResource 関数を呼び出します。
構文
DWORD WNetOpenEnumW(
[in] DWORD dwScope,
[in] DWORD dwType,
[in] DWORD dwUsage,
[in] LPNETRESOURCEW lpNetResource,
[out] LPHANDLE lphEnum
);
パラメーター
[in] dwScope
列挙のスコープ。 このパラメーターには、次の値のいずれかを指定できます。
[in] dwType
列挙するリソースの種類。 このパラメーターは、次の値と組み合わせて使用できます。
値 | 説明 |
---|---|
|
すべてのリソース。 この値をRESOURCETYPE_DISKまたはRESOURCETYPE_PRINTと組み合わせることはできません。 |
|
すべてのディスク リソース。 |
|
すべての印刷リソース。 |
ネットワーク プロバイダーが印刷リソースとディスク リソースを区別できない場合は、すべてのリソースを列挙できます。
[in] dwUsage
列挙するリソース使用量の種類。 このパラメーターは、次の値と組み合わせて使用できます。
dwScope パラメーターが RESOURCE_GLOBALNET と等しい場合を除き、このパラメーターは無視されます。 詳細については、「解説」を参照してください。
[in] lpNetResource
列挙するコンテナーを指定する NETRESOURCE 構造体へのポインター。 dwScope パラメーターがRESOURCE_GLOBALNETされていない場合、このパラメーターは NULL である必要があります。
このパラメーターが NULL の場合、ネットワークのルートが想定されます。 (システムはネットワークを階層として編成します。ルートはネットワークの最上位のコンテナーです)。
このパラメーターが NULL でない場合は、 NETRESOURCE 構造体を指す必要があります。 この構造体は、アプリケーションによって入力することも、 WNetEnumResource 関数の呼び出しによって返すこともできます。 NETRESOURCE 構造体では、コンテナー リソースを指定する必要があります。つまり、dwUsage パラメーターでRESOURCEUSAGE_CONTAINER値を指定する必要があります。
すべてのネットワーク リソースを列挙するために、アプリケーションは lpNetResource パラメーターを NULL に設定して WNetOpenEnum を呼び出して列挙を開始し、返されたハンドルを使用して WNetEnumResource を呼び出してリソースを列挙できます。 WNetEnumResource 関数によって返される NETRESOURCE 配列内のリソースの 1 つがコンテナー リソースである場合は、WNetOpenEnum を呼び出して、さらに列挙するためにリソースを開くことができます。
[out] lphEnum
WNetEnumResource への後続の呼び出しで使用できる列挙ハンドルへのポインター。
戻り値
関数が成功した場合、戻り値はNO_ERROR。
関数が失敗した場合、戻り値は システム エラー コード (次のいずれかの値など) です。
リターン コード | 説明 |
---|---|
|
lpNetResource パラメーターはコンテナーを指していません。 |
|
dwScope パラメーターまたは dwType パラメーターが無効であるか、パラメーターの組み合わせが無効です。 |
|
ネットワークが利用できません。 |
|
ネットワーク固有のエラーが発生しました。 エラーの説明を取得するには、 WNetGetLastError 関数を呼び出します。 |
|
NETRESOURCE 構造体で指定されたリモート ネットワーク リソース名が、無効なネットワーク アドレスに解決されました。 |
解説
dwScope パラメーターが RESOURCE_CONNECTED と等しい場合、WNetOpenEnum 関数を呼び出すアプリケーションとは異なるログオン セッションで実行されているアプリケーションによって接続が行われた場合、Microsoft LAN Manager ネットワークを使用して行われたネットワーク接続は列挙から省略されます。 これは、Microsoft LAN Manager を使用して行われた接続は、接続を行ったアプリケーションと同じログオン セッションで実行されているアプリケーションにのみ表示されるためです。 (接続を列挙に含めるには、接続を作成したユーザー アカウントでアプリケーションを実行するだけでは十分ではありません)。
dwScope パラメーターでのRESOURCE_CONTEXTの正確な解釈は、コンピューターにインストールされているネットワークによって異なります。
WNetOpenEnum 関数は、1 つのコンテナー内のリソースの列挙を開始するために使用されます。 次の例は、Microsoft LAN Manager ネットワークと Novell NetWare ネットワークの階層構造を示し、コンテナーを識別します。
LanMan (container, in this case the provider)
ACCOUNTING (container, in this case the domain)
\\ACCTSPAY (container, in this case the server)
PAYFILES (disk)
LASERJET (print)
NetWare (container, in this case the provider)
MARKETING (container, in this case the server)
SYS (disk, first one on any NetWare server)
ANOTHERVOLUME (disk)
LASERJET (print)
例
ネットワーク上のすべてのリソースを列挙するアプリケーション定義関数を示すコード サンプルについては、「 ネットワーク リソースの列挙」を参照してください。
注意
winnetwk.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして WNetOpenEnum を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winnetwk.h |
Library | Mpr.lib |
[DLL] | Mpr.dll |