Função NPAddConnection3 (npapi.h)

A função NPAddConnection3 conecta um dispositivo local a um recurso de rede. Ele executa a mesma operação que NPAddConnection , mas, além disso, permite especificar um identificador para a janela que deve possuir quaisquer caixas de diálogo resultantes e especificar como a conexão deve ser estabelecida.

Sintaxe

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

Parâmetros

[in] hwndOwner

Um identificador para uma janela que deve possuir mensagens ou caixas de diálogo. Esse identificador só será válido se CONNECT_INTERACTIVE estiver definido em dwFlags e o identificador só deverá ser usado para produzir caixas de diálogo necessárias para autenticação.

[in] lpNetResource

Ponteiro para uma estrutura NETRESOURCE que especifica o recurso de rede ao qual se conectar. Os campos a seguir devem ser definidos ao fazer uma conexão. Os outros são ignorados.

Valor Significado
Lpremotename
Especifica o recurso de rede ao qual se conectar.
Lplocalname
Especifica o nome de um dispositivo local a ser redirecionado, como "F:" ou "LPT1". Esse nome é tratado como não diferencia maiúsculas de minúsculas e pode ser a cadeia de caracteres vazia ou o ponteiro NULL . Se a cadeia de caracteres estiver vazia ou NULL, a função se conectará ao recurso de rede sem fazer um redirecionamento.
Dwtype
Especifica o tipo de recurso ao qual se conectar. Isso pode ser RESOURCETYPE_DISK, RESOURCETYPE_PRINT ou RESOURCETYPE_ANY. O valor RESOURCETYPE_ANY será usado se o chamador não se importar ou não souber.

[in] lpPassword

Ponteiro para a senha a ser usada para fazer a conexão, normalmente a senha associada a lpUserName. O valor NULL pode ser passado para fazer com que a função use a senha padrão. Uma cadeia de caracteres vazia pode ser usada para indicar nenhuma senha. Quando terminar de usar a senha, limpe-a da memória chamando a função SecureZeroMemory . Para obter mais informações sobre como proteger a senha, consulte Manipulando senhas.

[in] lpUserName

Ponteiro para o nome de usuário usado para fazer a conexão. Se FOR NULL, o nome de usuário padrão (o do usuário conectado no momento) será aplicado. Isso é usado quando o usuário deseja se conectar a um recurso, mas tem um nome de usuário ou conta atribuído diferente para esse recurso.

[in] dwFlags

Qualquer combinação dos valores a seguir. O provedor deve ignorar quaisquer outros bits de dwFlags que possam ser definidos.

Valor Significado
CONNECT_TEMPORARY
A conexão está sendo estabelecida para fins de navegação e provavelmente será liberada rapidamente.
CONNECT_INTERACTIVE
A conexão pode ter interação com o usuário para fins de autenticação.
CONNECT_PROMPT
Não use nenhum padrão para nomes de usuário ou senhas sem oferecer ao usuário a chance de fornecer uma alternativa. Esse sinalizador só será válido se CONNECT_INTERACTIVE também estiver definido.
CONNECT_DEFERRED
Não execute nenhuma operação de rede remota para fazer a conexão de rede; Em vez disso, restaure a conexão em um "estado desconectado". Tente a conexão real somente quando algum processo tentar usar a conexão. Se esse bit estiver definido, o chamador deverá fornecer lpLocalName.

Esse recurso é usado para acelerar a restauração de conexões de rede no logon. Um provedor que dá suporte a ele deve retornar o WNNC_CON_DEFERRED bit em NPGetCaps.

Retornar valor

Se a função for bem-sucedida, ela retornará WN_SUCCESS. Caso contrário, ele retornará um código de erro. Isso pode incluir um dos seguintes.

Código de retorno Descrição
WN_BAD_NETNAME
O valor do membro lpRemoteName da estrutura passada para lpNetResource não é válido para esse provedor.
WN_BAD_LOCALNAME
O valor do membro lpLocalName da estrutura passada para lpNetResource não é válido.
WN_BAD_PASSWORD
A senha especificada não é válida.
WN_ALREADY_CONNECTED
O dispositivo especificado no membro lpLocalName da estrutura passada para lpNetResource já está conectado.
WN_ACCESS_DENIED
A permissão para estabelecer a conexão foi negada.
WN_NO_NETWORK
A rede não está presente.
WN_CANCEL
A tentativa de fazer a conexão foi cancelada pelo usuário usando uma caixa de diálogo exibida pelo provedor.

Comentários

Se um provedor exibir uma caixa de diálogo de senha porque as credenciais especificadas são insuficientes e o sinalizador CONNECT_INTERACTIVE está definido, o provedor pode não retornar um código de erro negado pelo acesso (um dos ERROR_LOGON_FAILURE, WN_BAD_PASSWORD WN_ACCESS_DENIED). O comportamento sugerido é que o provedor continue solicitando credenciais válidas ao usuário até que o usuário as forneça ou pressione um botão "cancelar". Se NPAddConnection3 for chamado para fazer a conexão solicitada durante a função WNetConnectionDialog ou WNetConnectionDialog1 e um código de acesso negado for retornado, a função WNetConnectionDialog ou WNetConnectionDialog1 exibirá, por si só, uma caixa de diálogo de senha.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho npapi.h

Confira também

NPAddConnection