HINTERNET句柄

HINTERNET句柄包含了WinINew函数所使用句柄的相关信息和工作等级。

 

由InternetOpen返回的 HINTERNET作为根句柄。

 

由InternetConnect 返回的作为下一级句柄。

 

由 FtpOpenFile, FtpFindFirstFile, 和 HttpOpenRequest返回的则作为末节点句柄。

 

XP,2003及更早版本,GopherOpenFile, and GopherFindFirstFile 返回的同样作为末节点句柄。

 

下图显示的是HINTERNET的工作等级,每个框表示对应函数所返回的句柄。

 

HINTERNET工作等级

 

下图显示的是依赖InternetOpenUrl所创建句柄的函数。

空

 

 

FTP Hierarchy

 

下图显示的是依赖InternetConnect所返回句柄的函数。

FTP

 

下图显示的是依赖FtpOpen及FtpFindFirstFile所返回句柄的函数。

空

 

HTTP Hierarchy

 

下图显示的是依赖HttpOpenRequest所返回句柄的函数。

1

 

 

下图显示的是依赖HttpSendRequest所返回句柄的函数。

1

 

下图显示的是依赖HttpSendRequestEx所返回句柄的函数。

1

 

 

在Delphi中,HINTERNET是Wininet库中用于处理Internet Explorer (IE) 功能的一个类型,它代表了一个Internet连接句柄。这个句柄允许你在程序里执行各种网络操作,如下载文件、发送HTTP请求等。以下是使用HINTERNET的基本步骤: 1. **创建句柄**: 首先,你需要通过`InternetOpen`函数创建一个新的HINTERNET。例如,创建一个无认证的本地连接: ```delphi function ConnectToServer(const szHostName: string): HINTERNET; begin Result := InternetOpen(nil, INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0); end; ``` 2. **执行操作**: 创建了句柄后,你可以使用它调用其他Wininet函数。例如,使用`HttpOpenRequest`发起HTTP GET请求: ```delphi procedure GetPage(const szUrl: string; out ResultData: TStream); var Request: HINTERNET; begin Request := HttpOpenRequest(HINTERNET, PChar("GET"), szUrl, 'HTTP/1.1', nil, nil, INTERNET_FLAG_RELOAD, 0); if Request <> 0 then try // 发起请求并读取数据 FSession := InternetConnect(Request, nil, -1, nil, nil, INTERNET_SERVICE_HTTP, 0, 0); InternetReadFile(FSession, ResultData.Memory, ResultData.Size, ResultData.BytesRead); finally InternetCloseHandle(Request); end; end; ``` 3. **清理资源**: 当完成操作后,记得关闭所有相关的句柄,释放系统资源: ```delphi procedure CloseInternetHandles(var Internet: HINTERNET); begin InternetCloseHandle(Internet); end; ``` 使用HINTERNET时,一定要注意处理异常,并及时释放句柄,避免内存泄漏。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值