Поделиться через


Функция 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 , указывающую сетевой ресурс для подключения. При подключении необходимо задать следующие поля. Остальные игнорируются.

Ценность Meaning
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 , которые могут быть заданы.

Ценность Meaning
CONNECT_TEMPORARY
Подключение устанавливается в целях просмотра и, вероятно, будет выпущено быстро.
CONNECT_INTERACTIVE
Подключение может взаимодействовать с пользователем в целях проверки подлинности.
CONNECT_PROMPT
Не используйте значения по умолчанию для имен пользователей или паролей, не предлагая пользователю возможность предоставить альтернативу. Этот флаг действителен только в том случае, если CONNECT_INTERACTIVE также задан.
CONNECT_DEFERRED
Не выполняйте никаких удаленных сетевых операций, чтобы сделать сетевое подключение; вместо этого восстановите подключение в "отключенном состоянии". Попробуйте фактическое подключение только в том случае, если некоторый процесс пытается использовать подключение. Если задан этот бит, вызывающий объект должен указать lpLocalName.

Эта функция используется для ускорения восстановления сетевых подключений при входе. Поставщик, поддерживающий его, должен возвращать WNNC_CON_DEFERRED бит в NPGetCaps.

Возвращаемое значение

Если функция выполнена успешно, она вернет WN_SUCCESS. В противном случае он вернет код ошибки. Это может быть одно из следующих вариантов.

Код возврата Description
WN_BAD_NETNAME
Значение элемента lpRemoteName структуры, переданного в lpNetResource , недопустимо для этого поставщика.
WN_BAD_LOCALNAME
Недопустимое значение элемента lpLocalName структуры, переданного в lpNetResource .
WN_BAD_PASSWORD
Указанный пароль недопустим.
WN_ALREADY_CONNECTED
Устройство, указанное в элементе lpLocalName структуры, переданной в lpNetResource , уже подключено.
WN_ACCESS_DENIED
Разрешение на установку подключения запрещено.
WN_NO_NETWORK
Сеть отсутствует.
WN_CANCEL
Попытка сделать подключение отменена пользователем с помощью диалогового окна, отображаемого поставщиком.

Замечания

Если поставщик отображает диалоговое окно с паролем, так как указанные учетные данные недостаточно, а флаг CONNECT_INTERACTIVE задан, поставщик может не вернуть код ошибки, отказано в доступе (один из ERROR_LOGON_FAILURE, WN_BAD_PASSWORD, WN_ACCESS_DENIED). Предлагаемое поведение предназначено для того, чтобы поставщик продолжал запрашивать у пользователя допустимые учетные данные, пока пользователь не предоставляет им или нажимает кнопку "Отмена". Если вызывается NPAddConnection3, чтобы сделать подключение запрошенным во время функции WNetConnectionDialog или WNetConnectionDialog1 и возвращается код, отказано в доступе, функция WNetConnectionDialog или WNetConnectionDialog1, сама по себе отобразит диалоговое окно пароля.

Требования

Требование Ценность
Минимальный поддерживаемый клиент Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
Header npapi.h
Library davclnt.lib

См. также

NPAddConnection