#define INTERNET_CONNECTION_OFFLINE  20
BOOL CNetwork::IsConnected() const
{
DWORD dwState = 0;
BOOL bIsConnect = FALSE;
if ( InternetGetConnectedState( &dwState, 0 ) )
{
if (!(dwState & INTERNET_CONNECTION_OFFLINE ) ) bIsConnect =  TRUE;
}
return bIsConnect;
}
在编程时候,遇到这样一个代码,突然想起来MSDN 中有in/out属性,InternetGetConnectedState的第一个参数是【out】的
突然不明白,dwState在执行完InternetGetConnectedState后的值变成多少了?
我在程序中单步时,执行完了dwState=0x12,这是怎么回事?
所为的【out】属性,是指初始化一个值后让系统执行函数,完了再返回给这个变量一个值吗?

解决方案 »

  1.   

    就是利用这个out参数来实现交互,由于某种原因,这个函数没有使用返回值,或者返回值已经被占用了,但是还有需要返回的信息
    函数执行之后,dwState等于多少,msdn应该都有说明
    我觉得这个out可以当成另一种形式的函数返回值
      

  2.   

    MSDN里所指的out一般指的是对象的非cosnt的reference,或者是一个对象的指针的指针
    这样通过传入引用和指针的指针,一个API函数可以有多个返回值。
    一般out参数返回值返回数据,而函数返回值返回函数执行后的状态。
      

  3.   

    out参数返回值返回数据是固定的值吗?dwState=0x12