Identificadores HINTERNET
Esta seção contém informações sobre os identificadores usados pelas funções WinINet e a hierarquia na qual eles funcionam.
- sobre identificadores HINTERNET
- manipular de hierarquia
- da Hierarquia FTP
- de hierarquia HTTP
Sobre identificadores HINTERNET
Os identificadores criados e usados pelas funções WinINet são do tipo HINTERNET. As funções WinINet retornam identificadores 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 alças do tipo HINTERNET. Observe que os valores de identificador são reciclados rapidamente; portanto, se um identificador for fechado e um novo identificador for gerado imediatamente, haverá uma boa chance de que o novo identificador tenha o mesmo valor que o identificador acabou de fechar.
Manipular hierarquia
Os identificadores HINTERNET são mantidos em uma hierarquia de árvore. O identificador retornado pela funçãoInternetOpené o nó raiz. Os identificadores retornados pela função InternetConnect ocupam o próximo nível. Identificadores retornados peloFtpOpenFile, FtpFindFirstFile e funções HttpOpenRequest são os nós folha.
Windows XP e Windows Server 2003 R2 e anteriores: Handles retornados por, GopherOpenFilee GopherFindFirstFile também são nós folha.
O diagrama a seguir ilustra a hierarquia dos identificadores HINTERNET. Cada caixa no diagrama representa uma função que retorna um identificador HINTERNET.
No nível superior está a função InternetOpen, que cria o identificador raiz. O próximo nível contém as funções InternetOpenUrl e InternetConnect. As funções que usam o identificador retornado por 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 HINTERNET, enquanto as caixas simples representam funções que usam o identificador HINTERNET criado pela função associada.
As funções InternetQueryDataAvailable, InternetReadFilee InternetSetFilePointer usam o identificador HINTERNET criado pelo InternetOpenUrl.
Hierarquia de 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 HINTERNET, enquanto as caixas simples representam funções que usam o identificador HINTERNET criado pela função da qual elas dependem.
OFtpCreateDirectory, FtpDeleteFile, FtpGetCurrentDirectory, FtpGetFile, FtpPutFile, FtpRemoveDirectory, FtpRenameFile e funções FtpSetCurrentDirectory usam o identificador HINTERNET criado pelo InternetConnect.
O diagrama a seguir mostra as duas funções FTP que retornam identificadores e as funções que dependem delas. As caixas sombreadas representam funções que retornam identificadores HINTERNET, enquanto as caixas simples representam funções que usam o identificador HINTERNET criado pela função da qual elas dependem.
A função InternetFindNextFile depende do identificador criado por FtpFindFirstFile, enquanto InternetReadFile e InternetWriteFile usar o identificador criado pelo FtpOpenFile.
Hierarquia HTTP
O diagrama a seguir mostra as relações das funções usadas para o protocolo HTTP. As caixas sombreadas representam funções que retornam identificadores HINTERNET, enquanto as caixas simples representam funções que usam o identificador HINTERNET criado pela função da qual elas dependem.
httpopenrequest
As funções HttpAddRequestHeaders, HttpQueryInfo, HttpSendRequest, HttpSendRequestExe InternetErrorDlg dependem do identificador criado pelo httpOpenRequest.
O diagrama a seguir mostra as funções que usam o identificador HINTERNET criado por HttpOpenRequest depois de ser enviado por HttpSendRequest. As caixas sombreadas representam funções que retornam identificadores HINTERNET, enquanto as caixas simples representam funções que usam o identificador HINTERNET criado pela função da qual elas dependem.
httpsendrequest
Depois que HttpSendRequest tiver usado o identificador retornado peloHttpOpenRequest, ele pode ser usado por InternetQueryDataAvailable, InternetReadFilee InternetSetFilePointer.
httpsendrequestex
Depois que HttpSendRequestEx tiver usado o identificador retornado por HttpOpenRequest, o identificador pode ser usado por HttpEndRequest, InternetReadFileExe InternetWriteFile. Depois que HttpEndRequest tiver sido chamado, o identificador poderá ser usado por InternetReadFile, InternetSetFilePointere InternetQueryDataAvailable.
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 do Microsoft Windows HTTP Services (WinHTTP).