<Return[WXYZ]><Top>

WNetAddConnection3

Declare Function Api_WNetAddConnection3& Lib "mpr" Alias "WNetAddConnection3A" (ByVal hwndOwner&, ByRef lpNetResource As NETRESOURCE, ByVal lpPassword$, ByVal lpUserName$, ByVal dwFlags&)

Declare Function WNetAddConnection3 Lib "mpr" Alias "WNetAddConnection3A" (ByVal hwndOwner As Long, ByRef lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long

ネットワーク資源に接続する。ローカルデバイスをネットワーク資源へリダイレクトできる。
WNetAddConnection3 関数は WNetAddConnection2 関数に似ている。WNetAddConnection2 関数との違いは、ネットワーク資源のプロバイダがダイアログボックスのオーナーウィンドウとして利用できるウィンドウのハンドルという1つのパラメータが追加されていることである。WNetAddConnection2 と WNetAddConnection3 の各関数は、WNetAddConnection 関数に取って代わる。

パラメータ
hwndOwner
    [入力]ネットワーク資源のプロバイダがダイアログボックスのオーナーウィンドウとして利用できるウィンドウのハンドルを指定する。

    hwndOwner パラメータは NULL であってもかまわない。その場合は WNetAddConnection2 関数とまったく同じ働きをする。
lpNetResource
    [入力]希望の接続の詳細( ネットワーク資源、ローカルデバイス、ネットワーク資源のプロバイダの情報)を指定する 構造体へのポイ

    ンタを指定する。
    NETRESOURCE 構造体の次のメンバを設定しておく必要がある。

    メンバ                  

説明                                                                                                                                             

    dwType

 

 

 

 

接続先ネットワーク資源の種類を指定する。

lpLocalName メンバが空でない文字列を指す場合は、dwType メンバを RESOURCETYPE_DISK または

RESOURCETYPE_PRINT に設定する。
lpLocalName が NULL の場合は、dwType を RESOURCETYPE_DISK、RESOURCETYPE_PRINT、RESOURCETYPE_ANY のいずれかに設定する。

    lpLocalName

 

 

"F:"、"LPT1" など、リダイレクトしたいローカルデバイスの名前を表す、NULL で終わる文字列へのポインタである。文字列の大文字と小文字を区別しない。
この文字列が空の場合や、lpLocalName が NULL の場合は、ローカルデバイスのリダイレクトなしでネットワーク資源に接続する。

    lpRemoteName

 

接続先ネットワーク資源の名前を表す、NULL で終わる文字列へのポインタである。指定する文字列の長さは最大 MAX_PATH 文字で、ネットワークプロバイダの名前付け規則に従う必要がある。

    lpProvider

 

 

 

 

接続先ネットワークプロバイダの名前を表す、NULL で終わる文字列へのポインタである。
lpProvider が NULL である場合や、空の文字列を指す場合は、オペレーティングシステムは lpRemoteName が指す文字列を解析することによって正しいプロバイダを特定しようとする。
NULL 以外に設定すると、オペレーティングシステムは指定された名前のネットワークプロバイダにのみ接続を試みる。
使いたいネットワークプロバイダが把握できている場合にのみ、このメンバを設定するべきである。それ以外の場合は、オペレーティングシステムからネットワーク名のマップ先プロバイダを特定する。

lpPassword
    [入力]ネットワーク接続に使うパスワードを表す、NULL で終わる文字列へのポインタを指定する。
    lpPassword が NULL の場合、lpUsername パラメータで指定するユーザーの現在の既定パスワードが使われる。
    lpPassword が空の文字列を指す場合、何もパスワードを使わない。
    Windows 95/98:NULL または空の文字列を指定する。
lpUsername
    [入力]接続に使うユーザー名を表す、NULL で終わる文字列へのポインタを指定する。
    lpUserName が NULL の場合、既定のユーザー名が使われます。既定のユーザー名は、プロセスのユーザーコンテキストによって提供さ

    れる。
    lpUsername パラメータは、既定のユーザー名やアカウントとは異なるユーザー名やアカウントを割り当てたネットワーク資源に接続したい場

    合にのみ指定する。
    ユーザー名の文字列は、セキュリティコンテキストを表す。セキュリティコンテキストは、ネットワークプロバイダ固有のものでもかまわない。
    Windows 95/98:NULL または空の文字列を指定する。
dwFlags
    [入力]接続オプションを指定する 1 個の DWORD 値を指定する。現在、次の値が定義されている。

    値                                                 

意味                                                                                                                     

    CONNECT_UPDATE_PROFILE

 

 

 

 

ネットワーク資源への接続を記憶する。
このビットフラグをセットすると、ユーザーのログオン時に、オペレーティングシステムは接続の復元を試みる。
記憶されるのは、ローカルデバイスのリダイレクトに成功した接続だけである。成功しなかった接続やデバイスなしの接続は記憶されない。(lpLocalName が NULL である場合、または空の文字列を指している場合に、デバイスなしの接続が行われる。)
このビットフラグをセットしない場合、オペレーティングシステムはログイン時に接続を復元しない。


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

    値                                                                   

意味                                                                                                             

    ERROR_ACCESS_DENIED

アクセスが拒否された。

    ERROR_ALREADY_ASSIGNED

lpLocalName で指定したデバイスは既に接続されている。

    ERROR_BAD_DEV_TYPE

デバイスの種類と資源の種類が一致しない。

    ERROR_BAD_DEVICE

lpLocalName パラメータで指定した値が無効である。

    ERROR_BAD_NET_NAME

lpRemoteName パラメータで指定した値が無効か、指定した資源が見つからない。

    ERROR_BAD_PROFILE

ユーザープロファイルの形式が正しくない。

    ERROR_CANNOT_OPEN_PROFILE

恒久的な接続を処理するためのユーザープロファイルを開くことができない。

    ERROR_DEVICE_ALREADY_REMEMBERED

 

lpLocalName パラメータで指定したデバイスのエントリは既にユーザープロファイル内に存在する。

    ERROR_EXTENDED_ERROR

 

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

    ERROR_INVALID_PASSWORD

指定したパスワードが無効である。

    ERROR_NO_NET_OR_BAD_PATH

 

ネットワークコンポーネントが開始されていないか、指定した名前が使えないため、操作を実行できない。

    ERROR_NO_NETWORK

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