2011-09-15 4 views
1

내 응용 프로그램은 30 분마다 패킷을 보내야하지만 GPRS/EDGE /와 같은 유료 서비스를 통해 보내고 싶지 않습니다 ... 나는 WiFi/ActiveSync가 작동 중입니다. 현재 와이파이 네트워크로가 사용된다 Windows Mobile 6.5 C++ - 인터넷 연결 확인

  • 현재/EDGE/UMTS ... 네트워크로 사용
  • 가있다가 GPRS있다
  • 현재 Active Sync를 사용 : 경우

    어떻게 알 수 있습니까

+0

당신이 스스로 대답하고있다하더라도, 질문에 대답하지 말고 답을 게시하십시오. – Suma

답변

0

는 확인

를 해결 발견 그 일을 :

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; 
} 
관련 문제