NPAddConnection3 函式會將本機裝置連線到網路資源。 它會執行與 NPAddConnection 相同的作業,但除此之外,可讓您指定視窗的控制碼,該視窗應該擁有任何產生的對話方塊,並指定應該如何建立連線。
語法
DWORD NPAddConnection3(
[in] HWND hwndOwner,
[in] LPNETRESOURCEW lpNetResource,
[in] LPWSTR lpPassword,
[in] LPWSTR lpUserName,
[in] DWORD dwFlags
);
參數
[in] hwndOwner
應該擁有任何訊息或對話方塊之視窗的控制碼。 只有在 dwFlags 中設定CONNECT_INTERACTIVE時,此控制碼才有效,而且控制碼應該只用來產生驗證所需的對話方塊。
[in] lpNetResource
指定要連線的網路資源的 NETRESOURCE 結構指標。 建立連線時必須設定下列欄位。 其他人則被忽略。
[in] lpPassword
要用來建立連線的密碼指標,通常是與 lpUserName 相關聯的密碼。 可以傳入 NULL 值,以導致函式使用預設密碼。 空字串可用來表示沒有密碼。 當您使用完密碼時,請呼叫 SecureZeroMemory 函式,將其從記憶體中清除。 如需有關保護密碼的詳細資訊,請參閱 處理密碼。
[in] lpUserName
用來建立連線的使用者名稱指標。 如果為 Null,則會套用預設使用者名稱 (目前登入使用者的使用者名稱)。 當使用者想要連線到資源,但該資源有不同的指派使用者名稱或帳戶時,會使用此選項。
[in] dwFlags
下列值的任意組合。 提供者應該忽略可能設定的任何其他 dwFlags 位。
| 價值觀 | Meaning |
|---|---|
|
該連接正在出於瀏覽目的而建立,並且可能會很快釋放。 |
|
連線可能會與使用者互動,以進行驗證。 |
|
請勿在未提供使用者提供替代方案的機會之前,對使用者名稱或密碼使用任何預設值。 只有在同時設定CONNECT_INTERACTIVE時,此旗標才有效。 |
|
請勿執行任何遠端網路操作來建立網路連線;相反地,請在「斷開連線狀態」中還原連線。 只有在某些進程嘗試使用連線時,才嘗試實際連線。 如果設定此位,呼叫端必須提供 lpLocalName。
此功能可用來加速登入時還原網路連線。 支援它的提供者應該傳回 NPGetCaps 中的WNNC_CON_DEFERRED位。 |
返回值
如果函數成功,它將傳回WN_SUCCESS。 否則,它將返回錯誤代碼。 這可能包括以下其中一項。
| 回傳碼 | Description |
|---|---|
|
傳遞至 lpNetResource 之結構的 lpRemoteName 成員值對此提供者無效。 |
|
傳遞至 lpNetResource 之結構的 lpLocalName 成員值無效。 |
|
指定的密碼無效。 |
|
傳遞至 lpNetResource 之結構的 lpLocalName 成員中指定的裝置已連線。 |
|
建立連線的權限被拒絕。 |
|
網路不存在。 |
|
使用者使用提供者所顯示的對話方塊取消了建立連線的嘗試。 |
備註
如果提供者因為指定的認證不足且已設定CONNECT_INTERACTIVE旗標而顯示密碼對話框,則提供者可能不會傳回拒絕存取的錯誤碼 (ERROR_LOGON_FAILURE、WN_BAD_PASSWORD WN_ACCESS_DENIED) 之一。 建議的行為是提供者繼續要求使用者提供有效的認證,直到使用者提供認證或按下「取消」按鈕為止。 如果呼叫 NPAddConnection3 以在 WNetConnectionDialog 或 WNetConnectionDialog1 函式期間要求連線,並傳回拒絕存取的程式代碼,則 WNetConnectionDialog 或 WNetConnectionDialog1 函式本身會顯示密碼對話方塊。
需求
| Requirement | 價值觀 |
|---|---|
| 最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
| 支援的最低伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
| 目標平臺 | 窗戶 |
| Header | npapi.h |
| Library | davclnt.lib |