Функция 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.

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

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

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

Код возврата Описание
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 [только классические приложения]
Целевая платформа Windows
Header npapi.h

См. также раздел

NPAddConnection