《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;
分享到:
相关推荐
这是PPC上面的自定义表格控件源代码,演示了如何通过
ppc上面的任务管理器源代码,演示了cpu和内存监控的细节技术
偶然的,在一个外文网站,发现一个NetBubbles的源程序,写的很好, 效果比系统自带的那款泡泡游戏还要好,至少,你可以直接退出,而不需要通过进程关闭了。呵呵! 不过可惜代码是VB的,在我习惯C#多年的人来说,看...
同济大学嵌入式课程的作品 基于WinCE,用C#完成, 包含所有项目文档和源代码
开发环境与上面不同的读者只能阅读源代码并自己在相应的IDE中进行构建了 我的手机屏幕为:240*320,ARM的CPU,触摸屏,要求你的电脑中要安装Mobile 6 Professional开发包(Standard 标准版的开发包不支持触摸,所以...
同济大学嵌入式课程的作品 基于WinCE,用C++完成, 包含所有项目文档和源代码
一个运行于WinCE/PPC平台的带源代码和文档的sip客户端,使用一个高层的sip库. PS: 因为没有在vs里面设置debug路径,因此不能在vs里面直接运行或是调试,需要将编译好以后的ppce.exe和ppsip.dll拷贝到simulator或是ppc...
一个非常好的改良的PPC上打开窗口的源代码,界面友好,可以突破默认OPENFILEDLG无法选择任意目录的限制
这是一个ppc上的开源的播放器,cpp文件源代码,对于学习ppc软件的朋友有大帮助...
同济大学嵌入式课程的作品 基于WinCE,用C++完成, 包含所有项目文档和源代码
这里是一个完整的移动GIS系统,在Windows Mobile上运行的,使用的是ArcGIS 10.0 for Windows Mobile,开发平台上VS2008,完整代码都在包中,欢迎交流,谢谢!
PPC上的USB Function驱动,包括RNDIS、串口、Storage Card三个驱动程序的源代码
德维森 PPC22控制器使用手册pdf,德维森 PPC22控制器使用手册
PPC编程Basic4ppc Desktop中文chm手册
PPC 通过网络同步时间 PPC 通过网络同步时间 PPC 通过网络同步时间
PPC中文说明书,3O印刷机的说明书 印刷机CIP3
高手汉化的basic4ppc中文帮助,转载换分,不要见怪!
PPC和MIPS指令集下二进制代码中函数参数个数的识别方法.docx
若干个代码,可供新手参考使用,很好的,请指点.谢谢.