INTERNET_STATUS_CALLBACK função de retorno de chamada (wininet.h)

Protótipo de uma função de retorno de chamada status definida pelo aplicativo.

O tipo INTERNET_STATUS_CALLBACK define um ponteiro para essa função de retorno de chamada. InternetStatusCallback é um espaço reservado para o nome da função definida pelo aplicativo.

Sintaxe

INTERNET_STATUS_CALLBACK InternetStatusCallback;

void InternetStatusCallback(
  [in] HINTERNET hInternet,
  [in] DWORD_PTR dwContext,
  [in] DWORD dwInternetStatus,
  [in] LPVOID lpvStatusInformation,
  [in] DWORD dwStatusInformationLength
)
{...}

Parâmetros

[in] hInternet

O identificador para o qual a função de retorno de chamada é chamada.

[in] dwContext

Um ponteiro para uma variável que especifica o valor de contexto definido pelo aplicativo associado ao hInternet.

[in] dwInternetStatus

Um código status que indica por que a função de retorno de chamada é chamada. Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
INTERNET_STATUS_CLOSING_CONNECTION
Encerrando a conexão com o servidor. O parâmetro lpvStatusInformation é NULL.
INTERNET_STATUS_CONNECTED_TO_SERVER
Conectado com êxito ao endereço de soquete (SOCKADDR) apontado por lpvStatusInformation.
INTERNET_STATUS_CONNECTING_TO_SERVER
Conectando-se ao endereço do soquete (SOCKADDR) apontado por lpvStatusInformation.
INTERNET_STATUS_CONNECTION_CLOSED
Fechou com êxito a conexão com o servidor. O parâmetro lpvStatusInformation é NULL.
INTERNET_STATUS_COOKIE_HISTORY
Recuperando conteúdo do cache. Contém dados sobre eventos de cookie anteriores para a URL, como se os cookies fossem aceitos, rejeitados, rebaixados ou com coleira.

O parâmetro lpvStatusInformation é um ponteiro para uma estrutura InternetCookieHistory .

INTERNET_STATUS_COOKIE_RECEIVED
Indica o número de cookies que foram aceitos, rejeitados, rebaixados (alterados de cookies persistentes para de sessão) ou com leashed (serão enviados somente no contexto de 1ª parte). O parâmetro lpvStatusInformation é um DWORD com o número de cookies recebidos.
INTERNET_STATUS_COOKIE_SENT
Indica o número de cookies que foram enviados ou suprimidos quando uma solicitação é enviada. O parâmetro lpvStatusInformation é um DWORD com o número de cookies enviados ou suprimidos.
INTERNET_STATUS_CTL_RESPONSE_RECEIVED
Não implementado.
INTERNET_STATUS_DETECTING_PROXY
Notifica o aplicativo cliente de que um proxy foi detectado.
INTERNET_STATUS_HANDLE_CLOSING
Esse valor de identificador foi encerrado. pvStatusInformation contém o endereço do identificador que está sendo fechado. O parâmetro lpvStatusInformation contém o endereço do identificador que está sendo fechado.
INTERNET_STATUS_HANDLE_CREATED
Usado por InternetConnect para indicar que ele criou o novo identificador. Isso permite que o aplicativo chame InternetCloseHandle de outro thread, se a conexão estiver demorando muito. O parâmetro lpvStatusInformation contém o endereço de um identificador HINTERNET .
INTERNET_STATUS_INTERMEDIATE_RESPONSE
Recebeu uma mensagem de código intermediária (nível 100) status do servidor.
INTERNET_STATUS_NAME_RESOLVED
Encontrou com êxito o endereço IP do nome contido em lpvStatusInformation. O parâmetro lpvStatusInformation aponta para um PCTSTR que contém o nome do host.
INTERNET_STATUS_P3P_HEADER
A resposta tem um cabeçalho P3P.
INTERNET_STATUS_P3P_POLICYREF
Não implementado.
INTERNET_STATUS_PREFETCH
Não implementado.
INTERNET_STATUS_PRIVACY_IMPACTED
Não implementado.
INTERNET_STATUS_RECEIVING_RESPONSE
Aguardando o servidor responder a uma solicitação. O parâmetro lpvStatusInformation é NULL.
INTERNET_STATUS_REDIRECT
Uma solicitação HTTP está prestes a redirecionar automaticamente a solicitação. O parâmetro lpvStatusInformation aponta para a nova URL. Neste ponto, o aplicativo pode ler todos os dados retornados pelo servidor com a resposta de redirecionamento e pode consultar os cabeçalhos de resposta. Ele também pode cancelar a operação fechando o identificador. Esse retorno de chamada não será feito se a solicitação original especificada INTERNET_FLAG_NO_AUTO_REDIRECT.
INTERNET_STATUS_REQUEST_COMPLETE
Uma operação assíncrona foi concluída. O parâmetro lpvStatusInformation contém o endereço de uma estrutura INTERNET_ASYNC_RESULT .
INTERNET_STATUS_REQUEST_SENT
Enviou com êxito a solicitação de informações para o servidor. O parâmetro lpvStatusInformation aponta para um valor DWORD que contém o número de bytes enviados.
INTERNET_STATUS_RESOLVING_NAME
Pesquisando o endereço IP do nome contido em lpvStatusInformation. O parâmetro lpvStatusInformation aponta para um PCTSTR que contém o nome do host.
INTERNET_STATUS_RESPONSE_RECEIVED
Recebeu com êxito uma resposta do servidor.
INTERNET_STATUS_SENDING_REQUEST
Enviando a solicitação de informações para o servidor. O parâmetro lpvStatusInformation é NULL.
INTERNET_STATUS_STATE_CHANGE
Movido entre um site seguro (HTTPS) e um site não seguro (HTTP). O usuário deve ser informado dessa alteração; caso contrário, o usuário corre o risco de divulgar informações confidenciais involuntariamente. Quando esse sinalizador é definido, o parâmetro lpvStatusInformation aponta para um status DWORD que contém sinalizadores adicionais.

[in] lpvStatusInformation

Um ponteiro para informações de status adicionais. Quando o sinalizador INTERNET_STATUS_STATE_CHANGE é definido, lpvStatusInformation aponta para um DWORD que contém um ou mais dos seguintes sinalizadores:

Valor Significado
INTERNET_STATE_CONNECTED
Estado conectado. Mutuamente exclusivo com estado desconectado.
INTERNET_STATE_DISCONNECTED
Estado desconectado. Nenhuma conexão de rede poderia ser estabelecida.
INTERNET_STATE_DISCONNECTED_BY_USER
Desconectado pela solicitação do usuário.
INTERNET_STATE_IDLE
Nenhuma solicitação de rede está sendo feita pela Internet do Windows.
INTERNET_STATE_BUSY
Solicitações de rede estão sendo feitas pela Internet do Windows.
INTERNET_STATUS_USER_INPUT_REQUIRED
A solicitação requer que a entrada do usuário seja concluída.

[in] dwStatusInformationLength

O tamanho, em bytes, dos dados apontados por lpvStatusInformation.

Retornar valor

Nenhum

Comentários

Como os retornos de chamada são feitos durante o processamento da solicitação, o aplicativo deve gastar pouco tempo na função de retorno de chamada para evitar a degradação da taxa de transferência de dados na rede. Por exemplo, exibir uma caixa de diálogo em uma função de retorno de chamada pode ser uma operação tão longa que o servidor encerra a solicitação.

A função de retorno de chamada pode ser chamada em um contexto de thread diferente do thread que iniciou a solicitação.

Cuidado Sempre notifique o usuário quando ocorrer uma alteração de estado de um site seguro (HTTPS) para um site não seguro (HTTP), para se proteger contra a divulgação involuntária de informações.
 
Como todos os outros aspectos da API WinINet, essa função não pode ser chamada com segurança de dentro do DllMain ou dos construtores e destruidores de objetos globais.
Nota O WinINet não dá suporte a implementações de servidor. Além disso, ele não deve ser usado de um serviço. Para implementações ou serviços de servidor, use Os Serviços HTTP do Microsoft Windows (WinHTTP).
 

Requisitos

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

Confira também

Operação assíncrona

Criando funções de retorno de chamada de status

INTERNET_ASYNC_RESULT

Funções WinINet