当前位置:编程学习 > VB >>

CWinInetConnection---一个封装了WinInet API函数的类

 

 

部分WinInet API函数允许你建立或断开Internet连接,定义当前Internet连接及其属性。WinInet负责控制系统在线和离线两种状态。当系统处于离线状态时,IE会从Cache中读取所需的资料,如果是在线状态,则 IE会从Internet上读取资料。

 

注意

当处于在线状态时,IE仍会首先在Cache中寻找你输入的URL是否存在。如果是,IE会检查其真实性。IE会将在Cache

中资料的日期同服务器上的资料的日期相比较。如果Cache中的资料是旧的话,则从服务器上读取资料。

 

CwinInetConnection实现了上述功能。它封装了WinInet API函数,并使你能在下一个方法或属性中创建类的实例。

 

方法 描述

 SetGlobalOnline 将系统转换到在线状态

SetGlobalOffline 将系统转换到离线状态

GoOnline 出现对话框,询问是否需要将系统转到在线状态以获取所需的资料。

AutoDial 出现建立默认连接对话框

Dial 出现建立用户自定义连接对话框

AutoDialHangUp 在使用AutoDial方法后中断当前连接

HangUp 使用Dial方法后中断当前连接

Refresh 刷新类的属性

表一、 CWinInetConnection类所包含的方法

 

 

 

如你所见,上半部分用来显示类的属性。所有属性,除ConnectionName外,都是布尔类型。并且这些属性是只读的。

 

属性 描述

IsConnected 若返回值为真,表明Internet连接已建立

ConnectionName 返回当前活动连接的名称

IsConnectionConfigured 若返回值为真,表明系统的Internet连接设置正确

IsOffline 若返回值为真,表明系统目前处于离线状态

IsRasInstalled 若返回值为真,表明系统已装了远程访问服务(RAS)

UseProxy 若返回值为真,表明系统是通过代理服务器连上Internet

UseLAN 若返回值为真,表明系统通过局域网连上Internet

UseModem 若返回值为真,表明系统通过Modem拨号上网

表二、 CWinInetConnection的属性

 

如果你想看看CWinInetConnection类是如何工作的,又或者想不用CWinInetConnection类,自己调用WinInet API函数

 

 

 

 

--------------------------------------------------------------------------------

 

在VB中用WinInet API函数并没有什么特别。你需要用到下面的几个函数。

 

InternetAutodial

InternetAutodialHangup

InternetDial

InternetHangUp

InternetGoOnline

看看类的源代码,就知道上面几个函数的用法。所以这里就不再多说。比较难的一个部分是如何判断系统是在线还是离线?这需要用到InternetGetConncedStateEx函数。该函数不仅可以判断是否已经建立了Internet连接,还能返回一大堆连接的属性。

 

在试着调用InternetGetConnectedStateEx函数,遇到了不小的麻烦。该函数的行为更象是一个C语言函数。下面是该函数的声明:

 

Declare Function InternetGetConnectedStateEx Lib "wininet.dll" Alias "InternetGetConnectedStateExA" (lpdwFlags As Long, lpszConnectionName As Long, dwNameLen As Long,                                 ByVal dwReserved As Long) As Long

 

如果系统已经连上了Internet,该函数就会返回一个非零的值。最后一个参数dwReserved,被留作以后扩展之用,在这里它必须等于零。参数lpszConnectionName返回一个字符串,即当前连接的名称。参数dwNameLen包含该字符串的大小。最后一个参数lpdwFlags返回一个类型为Long的值,其中包含一系列的属性。下面是Refresh方法的部分代码,其主要目的是要调用InternetGetConnectedStateEx函数。

 

Allocate buffer for the name of connection

strConnectionName = Space(256)

Initialize variable lNameLen - the length of the buffer

lNameLen = 256

Get the pointers to the variables were going to pass 

to the function InternetGetConnectedStateEx

lPtr = StrPtr(strConnectionName)

lNameLenPtr = VarPtr(lNameLen)

Call the InternetGetConnectedStateEx function.

Please pay attention that two parameters are

passing pass by the value (ByVal)

lRetVal = InternetGetConnectedStateEx(lConnectionFlags, _

                   

补充:软件开发 , Vb ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,