<Return[WXYZ]><Top>

WNetGetResourceInformation

Declare Function Api_WNetGetResourceInformation& Lib "mpr" Alias "WNetGetResourceInformationA" (ByRef lpNetResource As NETRESOURCE, lpBuffer As Any, ByRef lpcbBuffer&, ByVal lplpSystem$)

Declare Function WNetGetResourceInformation Lib "mpr" Alias "WNetGetResourceInformationA" (ByRef lpNetResource As NETRESOURCE, lpBuffer As Any, ByRef lpcbBuffer As Long, ByVal lplpSystem As String) As Long

ネットワーク資源のリモートパスから、その資源を所有するネットワークプロバイダを識別し、資源の種類に関する情報を取得する。通常、WNetGetResourceParent 関数と組み合わせて、ユーザーが入力したネットワークパスの解析と解釈を行う。

パラメータ
lpNetResource
    [入力]情報を取得したいネットワーク資源を指定する 1 個の 構造体へのポインタを指定する。
    この構造体の lpRemoteName メンバで、ネットワーク資源のリモートパス名を指定する。通常はユーザーが入力したパス名を使う。プロバイ

    ダ名と種類がわかっているときは、それぞれ lpProvider メンバと dwType メンバで指定する。この関数は、特に dwType メンバを指定しな

    いと多くのメモリを消費する可能性がある。これらのメンバの値がわかっていない場合は、NULL を指定する。NETRESOURCE 構造体

    他のすべてのメンバは無視される。
lpBuffer
    [出力]結果を受け取るバッファへのポインタを指定する。関数が成功して制御を返した場合、このバッファの先頭のパートは 1 個の 構造

    体であり、入力された資源の種類に固有のシステム関数ではなく、WNet 関数をとおしてアクセスされる入力資源のパスのパートを表す。

    (このバッファの残りのパートは、構造体が指すメンバを表す可変長の文字列を保持します。)
    たとえば、リモートパスとして \\server\share\dir1\dir2 を指定すると、出力される NETRESOURCE 構造体は、\\server\share という

    資源の情報を保持する。パスの \dir1\dir2 の部分は、「」(ファイル I/O 関数)をとおしてアクセスする。NETRESOURCE 構造体の

    lpRemoteName、lpProvider、dwType、dwDisplayType、dwUsage の 5 つのメンバにはデータが格納され、他のメンバはすべて NULL

    に設定される。
    lpRemoteName メンバの構文は、WNetEnumResource 関数を使って列挙したのと同じものである。そのため、呼び出し側はこれら2つの

    文字列を比較して、以前に WNetEnumResource 関数を使って取得した資源と、WNetGetResourceInformation 関数に渡す資源が同じ

    かどうかを調べることができる。
lpcbBuffer
    [入出力]入力時は、lpBuffer パラメータが指すバッファのサイズ(バイト数)へのポインタを指定する。割り当てるバッファは、

    NETRESOURCE 構造体と、そのメンバが指す文字列を保持できる十分な大きさでなければならない。バッファが小さすぎて結果を収容で

    きない場合は、必要なバッファのサイズが格納される。その場合、戻り値が ERROR_MORE_DATA になる。
lplpSystem
    [出力]関数が成功すると、システム関数をとおしてアクセスされる資源のパートを指定する、出力バッファ内の文字列へのポインタが格納

    される。(この文字列は、WNet 関数ではなく、資源の種類に固有の関数にのみ適用される。)
    たとえば、リモート資源の名前として \\server\share\dir1\dir2 を指定すると、出力される 構造体の lpRemoteName メンバは、

    \\server\share へのポインタを保持する。また、lplpSystem パラメータには \dir1\dir2 へのポインタが格納される。どちらの文字列も、

    lpBuffer パラメータが指すバッファに格納される。

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

    値                                          

意味                                                                                                                                   

    ERROR_BAD_NET_NAME

入力した lpRemoteName メンバで指定した名前の既存ネットワーク資源を持つネットワークはない。

    ERROR_BAD_DEV_TYPE

入力した dwType メンバで指定した種類が、lpRemoteName メンバで指定した資源の種類と一致しない。

    ERROR_EXTENDED_ERROR

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

    ERROR_MORE_DATA

lpBuffer パラメータが指すバッファが小さすぎる。

    ERROR_NO_NETWORK

ネットワークに接続されていない。