簡體   English   中英

Windows Mobile 6.5 C ++-確定Internet連接

[英]Windows Mobile 6.5 C++ - Determining internet connection

我的應用程序需要每30分鍾發送一些數據包,但我不想通過GPRS / EDGE /等收費服務發送。我只想在WiFi / ActiveSync啟用時發送。

我如何確定是否:

  • 當前有Wifi用作網絡
  • 當前有GPRS / EDGE / UMTS ...用作網絡
  • 當前使用了活動同步

解決

好的,發現工作正常:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM