NPAddConnection3 関数 (npapi.h)

NPAddConnection3 関数は、ローカル デバイスをネットワーク リソースに接続します。 NPAddConnection と同じ操作を実行しますが、結果のダイアログ ボックスを所有するウィンドウへのハンドルを指定し、接続の確立方法を指定することもできます。

構文

DWORD NPAddConnection3(
  [in] HWND           hwndOwner,
  [in] LPNETRESOURCEW lpNetResource,
  [in] LPWSTR         lpPassword,
  [in] LPWSTR         lpUserName,
  [in] DWORD          dwFlags
);

パラメーター

[in] hwndOwner

メッセージまたはダイアログ ボックスを所有するウィンドウへのハンドル。 このハンドルは、 CONNECT_INTERACTIVEが dwFlags で設定されていて、認証に必要なダイアログ ボックスの生成にのみハンドルを使用する必要がある場合にのみ有効です。

[in] lpNetResource

接続するネットワーク リソースを指定する NETRESOURCE 構造体へのポインター。 接続を行うときは、次のフィールドを設定する必要があります。 他の属性は無視されます。

意味
lpRemoteName
接続するネットワーク リソースを指定します。
lpLocalName
リダイレクトするローカル デバイスの名前 ("F:" や "LPT1" など) を指定します。 この名前は大文字と小文字が区別されず、空の文字列または NULL ポインターである可能性があります。 文字列が空または NULL の場合、関数はリダイレクトを行わずにネットワーク リソースに接続します。
dwType
接続するリソースの種類を指定します。 これは、RESOURCETYPE_DISK、RESOURCETYPE_PRINT、またはRESOURCETYPE_ANYできます。 呼び出し元が気にしないか、知らない場合は、RESOURCETYPE_ANY値が使用されます。

[in] lpPassword

接続に使用するパスワードへのポインター。通常は lpUserName に関連付けられているパスワード。 NULL 値を渡して、関数が既定のパスワードを使用するようにすることができます。 パスワードを指定しない場合は、空の文字列を使用できます。 パスワードの使用が完了したら、 SecureZeroMemory 関数を呼び出してメモリからクリアします。 パスワードの保護の詳細については、「パスワードの 処理」を参照してください。

[in] lpUserName

接続に使用するユーザー名へのポインター。 NULL の場合、既定のユーザー名 (現在ログオンしているユーザーの名前) が適用されます。 これは、ユーザーがリソースに接続したいが、そのリソースに割り当てられたユーザー名またはアカウントが異なる場合に使用されます。

[in] dwFlags

次の値の任意の組み合わせ。 プロバイダーは、設定できる dwFlags の他のビットを無視する必要があります。

意味
CONNECT_TEMPORARY
接続は閲覧目的で確立されており、おそらくすぐに解放されます。
CONNECT_INTERACTIVE
接続には、認証目的でユーザーとの対話が行われる場合があります。
CONNECT_PROMPT
ユーザーに代替手段を提供せずに、ユーザー名またはパスワードに既定値を使用しないでください。 このフラグは、CONNECT_INTERACTIVEも設定されている場合にのみ有効です。
CONNECT_DEFERRED
ネットワーク接続を確立するためにリモート ネットワーク操作を実行しないでください。代わりに、接続を "切断状態" で復元します。 一部のプロセスで接続の使用が試行された場合にのみ、実際の接続を試行します。 このビットが設定されている場合、呼び出し元は lpLocalName を指定する必要があります。

この機能は、ログオン時のネットワーク接続の復元を高速化するために使用されます。 それをサポートするプロバイダーは、 NPGetCaps でWNNC_CON_DEFERRED ビットを返す必要があります。

戻り値

関数が成功すると、WN_SUCCESSが返されます。 それ以外の場合は、エラー コードが返されます。 これには、次のいずれかが含まれる場合があります。

リターン コード 説明
WN_BAD_NETNAME
lpNetResource に渡される構造体の lpRemoteName メンバーの値は、このプロバイダーでは無効です。
WN_BAD_LOCALNAME
lpNetResource に渡される構造体の lpLocalName メンバーの値が無効です。
WN_BAD_PASSWORD
指定されたパスワードが無効です。
WN_ALREADY_CONNECTED
lpNetResource に渡される構造体の lpLocalName メンバーで指定されたデバイスは既に接続されています。
WN_ACCESS_DENIED
接続を確立するためのアクセス許可が拒否されました。
WN_NO_NETWORK
ネットワークが存在しません。
WN_CANCEL
プロバイダーによって表示されるダイアログ ボックスを使用して、ユーザーによる接続の試行が取り消されました。

注釈

指定した資格情報が不十分で、CONNECT_INTERACTIVE フラグが設定されているためにプロバイダーがパスワード ダイアログ ボックスを表示する場合、プロバイダーはアクセス拒否エラー コード (ERROR_LOGON_FAILURE、WN_BAD_PASSWORD、WN_ACCESS_DENIEDのいずれか) を返さない可能性があります。 推奨される動作は、プロバイダーが有効な資格情報をユーザーに提供するか、"キャンセル" ボタンを押すまでユーザーに引き続き要求することです。 WNetConnectionDialog 関数または WNetConnectionDialog1 関数の間に要求された接続を作成するために NPAddConnection3 が呼び出され、アクセス拒否コードが返された場合、WNetConnectionDialog または WNetConnectionDialog1 関数自体にパスワード ダイアログ ボックスが表示されます。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー npapi.h

こちらもご覧ください

NPAddConnection