【转载自一起飞翔blog】PPC中如何找到正在使用中的网络(源代码)
来源:互联网 发布:淘宝童鞋店铺介绍 编辑:程序博客网 时间:2024/06/06 04:44
《PPC中如何判断网络已经连接或者断开》中已经说明了如何判断PPC的网络是否连接和断开,本篇文章讲讲如何枚举出当前的网络状态,并找到正在使用中的网络。一个比较简单的应用就是当接到系统连接到网络的通知之后,需要判断是免费网络还是收费网络,之后再作相应处理。一般免费网络就是WIFI和ActiveSync,收费网络就是CMNET和CMWAP。下面的代码就来判断当前连接的网络究竟是什么网络,要做到这一点,需要使用一个函数ConnMgrQueryDetailedStatus,这个函数可以得到网络的详细信息,从他的dwType中可得到网络的类别,dwSubtype可以知道具体的网络类型。具体代码如下,写的已经是比较详细了,如有问题可以在17feixiang.com上留言。
CONNMGR_CONNECTION_DETAILED_STATUS *StatusBuffer;
CONNMGR_CONNECTION_DETAILED_STATUS *StatusBufferTemp;
DWORD pcbBufferSize = 0;
ConnMgrQueryDetailedStatus(NULL, &pcbBufferSize);
StatusBuffer = (CONNMGR_CONNECTION_DETAILED_STATUS *)new BYTE[pcbBufferSize];
ConnMgrQueryDetailedStatus(StatusBuffer, &pcbBufferSize);
StatusBufferTemp = StatusBuffer;
while(StatusBufferTemp != NULL)
{
if(StatusBufferTemp-〉dwConnectionStatus == CONNMGR_STATUS_CONNECTED)
{
if(StatusBufferTemp-〉dwType == CM_CONNTYPE_NIC)
{
switch(StatusBufferTemp-〉dwSubtype)
{
case CM_CONNSUBTYPE_NIC_WIFI :
MessageBox(_T("WIFI"));
break;
case CM_CONNSUBTYPE_NIC_ETHERNET :
break;
}
}
if(StatusBufferTemp-〉dwType == CM_CONNTYPE_CELLULAR)
{
switch(StatusBufferTemp-〉dwSubtype)
{
case CM_CONNSUBTYPE_CELLULAR_CSD :
break;
case CM_CONNSUBTYPE_CELLULAR_GPRS :
MessageBox(_T("GPRS"));
break;
case CM_CONNSUBTYPE_CELLULAR_1XRTT :
MessageBox(_T("1XRTT"));
break;
case CM_CONNSUBTYPE_CELLULAR_1XEVDO :
MessageBox(_T("1XEVDO"));
break;
case CM_CONNSUBTYPE_CELLULAR_1XEVDV :
break;
case CM_CONNSUBTYPE_CELLULAR_EDGE :
MessageBox(_T("EDGE"));
break;
case CM_CONNSUBTYPE_CELLULAR_UMTS :
break;
case CM_CONNSUBTYPE_CELLULAR_VOICE :
MessageBox(_T("VOICE"));
break;
case CM_CONNSUBTYPE_CELLULAR_PTT :
break;
//case CM_CONNSUBTYPE_CELLULAR_HSDPA :
// break;
}
}
if(StatusBufferTemp-〉dwType == CM_CONNTYPE_PROXY)
{
switch(StatusBufferTemp-〉dwSubtype)
{
case CM_CONNSUBTYPE_PROXY_WAP :
MessageBox(_T("WAP"));
break;
case CM_CONNSUBTYPE_PROXY_HTTP :
MessageBox(_T("HTTP"));
break;
}
}
if(StatusBufferTemp-〉dwType == CM_CONNTYPE_PC)
{
switch(StatusBufferTemp-〉dwSubtype)
{
case CM_CONNSUBTYPE_PC_DESKTOPPASSTHROUGH :
MessageBox(_T("ACTIVESYNC"));
break;
case CM_CONNSUBTYPE_PC_UNKNOWN :
break;
}
}
}
StatusBufferTemp = StatusBufferTemp-〉pNext;
}
delete StatusBuffer;
转自 http://17feixiang.com/article/jishu/83.htm
- 【转载自一起飞翔blog】PPC中如何找到正在使用中的网络(源代码)
- [WM]PPC中如何找到正在使用中的网络(源代码)
- [WM][转]PPC中如何找到正在使用中的网络(源代码)
- [WM][转]PPC中如何找到正在使用中的网络
- PPC中如何找到正在使用中的网络(转)
- 转载:ppc网络接连方法
- Oracle PL/SQL中如何使用%TYPE和%ROWTYPE 转载自(王朝网络 wangchao.net.cn)
- PPC中如何判断网络已经连接或者断开
- PPC中如何判断网络已经连接或者断开
- 文件夹正在使用,如何快速找到关联进程
- Java中如何使用注释语句(转载自慕课网)
- 在Repeater控件中使用if语句(转载自Afritxia的Blog)
- 如何反编译APK(转载自网络)
- 网络通信框架Volley使用详细说明 转载自http://blog.csdn.net/xyz_lmn/article/details/12165391
- 如何删除正在使用中的dll文件
- 如何删除正在使用中的数据库
- [WM][转]PPC中如何判断网络已经连接或者断开
- [WM][转]PPC中如何判断网络已经连接或者断开
- 从CStatic类派生自己的切分窗口类
- 使用 OpenSSL API 进行安全编程
- WIN7,让光驱走开
- 精选30个优秀的CSS技术和实例
- Qt4.6和VS的集成
- 【转载自一起飞翔blog】PPC中如何找到正在使用中的网络(源代码)
- 思念如诗
- ADO.NET Entity Framework学习笔记(5)ESQL查询语句
- 移动视频监控
- Borland C++Builder 5.0教程(5)
- struts.xml和struts.properties
- Borland C++Builder 5.0教程(6)
- 今天的心情
- Borland C++Builder 5.0教程(7)