<Return[WXYZ]><Top>

WNetOpenEnum

Declare Function Api_WNetOpenEnum& Lib "mpr" Alias "WNetOpenEnumA" (ByVal dwScope&, ByVal dwType&, ByVal dwUsage&, lpNetResource As NETRESOURCE, lphEnum&)

Declare Function WNetOpenEnum Lib "mpr" Alias "WNetOpenEnumA" (ByVal dwScope As Long, ByVal dwType As Long, ByVal dwUsage As Long, lpNetResource As NETRESOURCE, lphEnum As Long) As Long

ネットワークリソースの列挙、または、現在の接続の列挙を開始する。

パラメータ
ldwScope
    [入力]列挙したいリソースのスコープを指定する。次の値のいずれかを指定する。

    値                                           

意味                                                                                                                    

    RESOURCE_CONNECTED

現在接続されているすべてのリソースを列挙する。この関数は、dwUsage パラメータを無視する。

    RESOURCE_CONTEXT

 

 

呼び出し側のネットワークコンテキスト内のリソースだけを列挙する。[ネットワークコンピュータ]または[マイネットワーク]と同じ内容を得たい場合は、この値を指定する。この関数は、dwUsage パラメータを無視する。

    RESOURCE_GLOBALNET

ネットワーク上のすべてのリソースを列挙する。

    RESOURCE_REMEMBERED

 

記憶されている( 永続的な)すべての接続を列挙する。この関数は、dwUsage パラメータを無視する。

dwType
    [入力]列挙したいリソースのタイプを指定する。次の値の任意の組み合わせを指定する。

    値                                           

意味                                                                                                                    

    RESOURCETYPE_ANY

すべてのリソース。RESOURCETYPE_DISK または RESOURCETYPE_PRINT との組み合わせは不可能である。

    RESOURCETYPE_DISK

すべてのディスクリソース。

    RESOURCETYPE_PRINT

すべての印刷リソース。

    ネットワークプロバイダが印刷リソースとディスクリソースを区別できない場合は、すべてのリソースが列挙されることがある。

dwUsage
    [入力]列挙したいリソースの用途を指定する。次の値の任意の組み合わせを指定する。

    値                                                       

意味                                                                                                                    

    0

すべてのリソース。

    RESOURCEUSAGE_CONNECTABLE

接続可能なすべてのリソース。

    RESOURCEUSAGE_CONTAINER

すべてのコンテナリソース。

    RESOURCEUSAGE_ATTACHED

 

この値をセットすると、ユーザーが認証されていない場合に WNetOpenEnum が失敗する。認証なしでの列挙をネットワークが認めている場合でも、この関数は失敗する。

    RESOURCEUSAGE_ALL

 

この値は、RESOURCEUSAGE_CONNECTABLE、RESOURCEUSAGE_CONTAINER、RESOURCEUSAGE_ATTACHED の組み合わせと同じことを意味する。

    dwScope パラメータが RESOURCE_GLOBALNET でない限り、このパラメータは無視される。
lpNetResource
    [入力]列挙したいコンテナを指定する 構造体へのポインタを指定する。dwScope パラメータが RESOURCE_GLOBALNET でない場

    合、このパラメータは NULL でなければならない。
    このパラメータが NULL の場合、ネットワークのルートが想定される。(システムはネットワークを階層形式に編成している。ルートとは、ネッ

    トワークの最上位コンテナを意味する。)
    このパラメータが NULL でない場合、NETRESOURCE 構造体を指さなければならない。この構造体は、アプリケーション側で値を書き込

    んだものでも、 WNetEnumResource 関数が返したものでもかまわない。NETRESOURCE 構造体は、コンテナリソースを指定しなければ

    ならない。つまり、dwUsage パラメータで RESOURCEUSAGE_CONTAINER 値を指定しなければならない。
    すべてのネットワークリソースを列挙するには、アプリケーションは lpNetResource パラメータに NULL を指定して WNetOpenEnum 関数を

    呼び出し、返されたハンドルを WNetEnumResource 関数に渡してリソースを列挙する。WNetEnumResource 関数が返した

    NETRESOURCE 配列のリソースの中にコンテナリソースが含まれている場合、その構造体を指定して WNetOpenEnum 関数を呼び出

    し、そのリソースを開いてさらに列挙を行う。
lphEnum
    [出力]それ以降の WNetEnumResource の呼び出しに利用できる列挙ハンドルへのポインタを指定する。

戻り値
    関数が成功すると、NO_ERROR が返る。
    関数が失敗すると、次のエラーコードのいずれかが返ることがある。

    値                                                 

意味                                                                                                                    

    ERROR_NOT_CONTAINER

lpNetResource パラメータがコンテナリソースを指していない。

    ERROR_INVALID_PARAMETER

 

dwScope パラメータまたは dwType パラメータの値が無効である。あるいは、パラメータの値の組み合わせが無効である。

    ERROR_NO_NETWORK

ネットワークが利用できない。

    ERROR_EXTENDED_ERROR

 

ネットワーク固有のエラーが発生した。エラーの詳細を取得するには、 WNetGetLastError 関数を使う。

 

解説
    WindowsNT/2000:dwScope パラメータが RESOURCE_CONNECTED のとき、そして WNetOpenEnum 関数を呼び出したアプリケーシ

     ョンとは異なるログオンセッションで動作しているアプリケーションが Microsoft LAN Manager ネットワークを使って接続を確立した場合、そ

    のネットワーク接続は列挙から除外される。Microsoft LAN Manager ネットワークを使って確立した接続を認識できるのは、その接続を確

    立したアプリケーションと同じログオンセッションで動作しているアプリケーションに限られるからである。(この接続を列挙に含めるには、この接

    続を作成したユーザーアカウントを使ってこのアプリケーションを実行するだけでは不十分である。)
    dwScope パラメータの RESOURCE_CONTEXT の厳密な解釈は、コンピュータにインストールされているネットワークに依存する。