[英]Check if there is a TCP/IP connection and if it's WiFi or 3G - Windows Mobile 6.5 - C/C++
[英]Windows Mobile 6.5 C++ - Determining internet connection
我的應用程序需要每30分鍾發送一些數據包,但我不想通過GPRS / EDGE /等收費服務發送。我只想在WiFi / ActiveSync啟用時發送。
我如何確定是否:
解決
好的,發現工作正常:
void TEST()
{
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(0,TEXT(""),_T("CM_CONNSUBTYPE_NIC_WIFI"),MB_OK);
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(0,TEXT(""),_T("CM_CONNSUBTYPE_CELLULAR_GPRS"),MB_OK);
break;
case CM_CONNSUBTYPE_CELLULAR_1XRTT :
MessageBox(0,TEXT(""),_T("CM_CONNSUBTYPE_CELLULAR_1XRTT"),MB_OK);
break;
case CM_CONNSUBTYPE_CELLULAR_1XEVDO :
MessageBox(0,TEXT(""),_T("CM_CONNSUBTYPE_CELLULAR_1XEVDO"),MB_OK);
break;
case CM_CONNSUBTYPE_CELLULAR_1XEVDV :
break;
case CM_CONNSUBTYPE_CELLULAR_EDGE :
MessageBox(0,TEXT(""),_T("CM_CONNSUBTYPE_CELLULAR_EDGE"),MB_OK);
break;
case CM_CONNSUBTYPE_CELLULAR_UMTS :
MessageBox(0,TEXT(""),_T("CM_CONNSUBTYPE_CELLULAR_UMTS"),MB_OK);
break;
case CM_CONNSUBTYPE_CELLULAR_VOICE :
MessageBox(0,TEXT(""),_T("CM_CONNSUBTYPE_CELLULAR_VOICE"),MB_OK);
break;
case CM_CONNSUBTYPE_CELLULAR_PTT :
break;
case CM_CONNSUBTYPE_CELLULAR_HSDPA :
MessageBox(0,TEXT(""),_T("CM_CONNSUBTYPE_CELLULAR_HSDPA"),MB_OK);
break;
}
}
if(StatusBufferTemp->dwType == CM_CONNTYPE_PROXY)
{
switch(StatusBufferTemp->dwSubtype)
{
case CM_CONNSUBTYPE_PROXY_WAP :
MessageBox(0,TEXT(""),_T("CM_CONNSUBTYPE_PROXY_WAP"),MB_OK);
break;
case CM_CONNSUBTYPE_PROXY_HTTP :
MessageBox(0,TEXT(""),_T("CM_CONNSUBTYPE_PROXY_HTTP"),MB_OK);
break;
}
}
if(StatusBufferTemp->dwType == CM_CONNTYPE_PC)
{
switch(StatusBufferTemp->dwSubtype)
{
case CM_CONNSUBTYPE_PC_DESKTOPPASSTHROUGH :
MessageBox(0,TEXT(""),_T("CM_CONNSUBTYPE_PC_DESKTOPPASSTHROUGH"),MB_OK);
break;
case CM_CONNSUBTYPE_PC_UNKNOWN :
break;
}
}
}
StatusBufferTemp = StatusBufferTemp->pNext;
}
delete StatusBuffer;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.