Partilhar via


Alças HINTERNET

Esta seção contém informações sobre os identificadores que são usados pelas funções WinINet e a hierarquia em que eles trabalham.

Sobre os identificadores HINTERNET

Os identificadores que são criados e usados pelas funções WinINet são do tipo HINTERNET. As funções WinINet retornam identificadores de HINTERNET que não são intercambiáveis com outros tipos de identificador. Portanto, eles não podem ser usados com funções como ReadFile ou CloseHandle. Da mesma forma, outros tipos de identificador não podem ser usados com as funções WinINet. Por exemplo, um identificador retornado por CreateFile não pode ser passado para InternetReadFile.

A função InternetCloseHandle fecha identificadores do tipo HINTERNET. Observe que os valores da alça são reciclados rapidamente; Portanto, se uma alça for fechada e uma nova alça for gerada imediatamente, há uma boa chance de que a nova alça tenha o mesmo valor que a alça recém-fechada.

Hierarquia de identificador

Os identificadores de HINTERNET são mantidos em uma hierarquia de árvore. O identificador retornado pela função InternetOpen é o nó raiz. Os identificadores retornados pela funçãoInternetConnect ocupam o próximo nível. Os identificadores retornados pelo FtpOpenFile, FtpFindFirstFilee funções de HttpOpenRequest são os nós folha.

Windows XP e Windows Server 2003 R2 e anteriores: identificadores retornados por , GopherOpenFile e GopherFindFirstFile também são nós folha.

O diagrama a seguir ilustra a hierarquia dos identificadores de HINTERNET. Cada caixa no diagrama representa uma função que retorna um identificador de HINTERNET.

funções que criam identificadores

No nível superior está a função InternetOpen, que cria o identificador raiz. O próximo nível contém o InternetOpenUrl e InternetConnect funções. As funções que usam o identificador retornado pelo InternetConnect compõem o último nível.

O diagrama a seguir mostra as funções que dependem do identificador criado por InternetOpenUrl. As caixas sombreadas representam funções que retornam identificadores de HINTERNET, enquanto as caixas simples representam funções que usam o identificador de HINTERNET criado pela função associada.

funções que usam o identificador InternetOpenURL

O InternetQueryDataAvailable , InternetReadFile e funções de InternetSetFilePointer usam o identificador de HINTERNET criado por InternetOpenUrl .

Hierarquia FTP

O diagrama a seguir mostra as funções FTP que dependem do identificador de sessão FTP retornado pelo InternetConnect. As caixas sombreadas representam funções que retornam identificadores de HINTERNET, enquanto as caixas simples representam funções que usam o identificador de HINTERNET criado pela função da qual dependem.

funções que usam o identificador de sessão FTP

As FtpCreateDirectory, FtpDeleteFile, FtpGetCurrentDirectory, FtpGetFile, FtpPutFile, FtpRemoveDirectory, FtpRenameFilee funções FtpSetCurrentDirectory usam o identificador de HINTERNET criado peloInternetConnect.

O diagrama a seguir mostra as duas funções FTP que retornam identificadores e as funções que dependem deles. As caixas sombreadas representam funções que retornam identificadores de HINTERNET, enquanto as caixas simples representam funções que usam o identificador de HINTERNET criado pela função da qual dependem.

funções que usam o identificador de ftpopen e ftpfindfirstfile

A funçãoInternetFindNextFile depende do identificador criado por FtpFindFirstFile, enquanto InternetReadFile e InternetWriteFile usam o identificador criado peloFtpOpenFile.

Hierarquia HTTP

O diagrama a seguir mostra as relações das funções que são usadas para o protocolo HTTP. As caixas sombreadas representam funções que retornam identificadores de HINTERNET, enquanto as caixas simples representam funções que usam o identificador de HINTERNET criado pela função da qual dependem.

funções que usam o identificador de httpOpenRequest

O HttpAddRequestHeaders, HttpQueryInfo, HttpSendRequest, HttpSendRequestExe funções de InternetErrorDlg dependem do identificador criado pelo HttpOpenRequest.

O diagrama a seguir mostra as funções que usam o identificador de HINTERNET criado por HttpOpenRequest depois que ele é enviado por HttpSendRequest. As caixas sombreadas representam funções que retornam identificadores de HINTERNET, enquanto as caixas simples representam funções que usam o identificador de HINTERNET criado pela função da qual dependem.

funções que usam o identificador após httpsendrequest

Depois de HttpSendRequest ter usado o identificador retornado por HttpOpenRequest, ele pode ser usado por InternetQueryDataAvailable , InternetReadFile e InternetSetFilePointer.

funções que usam o identificador após httpsendrequestex

Depois de HttpSendRequestEx ter usado o identificador retornado por HttpOpenRequest, o identificador pode ser usado por HttpEndRequest, InternetReadFileExe InternetWriteFile. Depois que HttpEndRequest tiver sido chamado, o identificador pode ser usado por InternetReadFile , InternetSetFilePointer e InternetQueryDataAvailable .

Observação

WinINet não suporta implementações de servidor. Além disso, não deve ser usado a partir de um serviço. Para implementações ou serviços de servidor, use Microsoft Windows HTTP Services (WinHTTP).