织梦CMS - 轻松建站从此开始!

罗索

windows ce gprs 拨号程序

jackyhwei 发布于 2010-08-15 21:51 点击:次 
落鹤生:一份在Windows CE在利用Microsoft ras API来实现 gprs 拨号上网的程序代码。
TAG:

落鹤生:一份在Windows CE在利用Microsoft ras API来实现 gprs 拨号上网的程序代码。

  1. #include "stdafx.h"  
  2. #include "ras.h"  
  3.  
  4. HANDLE hPort = INVALID_HANDLE_VALUE;  
  5. HRASCONN hRasConn = NULL;  
  6. BOOL CreatePort()  
  7. {  
  8.     DWORD dwNumBytesWritten;  
  9.     BOOL fRet;  
  10.     BYTE Bytes[]={'A','T','+','C','G','D','C','O','N',
  11. 'T','=','1',',','"','I','P','"',',','"','C','M','N','E',
  12. 'T','"',0x0D,'A','T','D','T','*','9','9','#',0x0D};  
  13.     //open the serial port  
  14.     hPort = CreateFile(TEXT("COM8:"),GENERIC_READ 
  15. | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);  
  16.  
  17.  
  18.     if ( hPort == INVALID_HANDLE_VALUE )  
  19.     {  
  20.         // Could not open the port.  
  21.         //printf("Open the serial port failed\n\r");  
  22.         return FALSE;  
  23.     }  
  24.     //BYTE Bytes[]={'A','T',0x0D};  
  25.     //DWORD CgdcontSize = sizeof(Cgdcont);  
  26.     DWORD BytesSize = sizeof(Bytes);  
  27.     //fRet = WriteFile(hPort,Cgdcont,CgdcontSize, &dwNumBytesWritten,NULL);  
  28.     fRet = WriteFile(hPort,Bytes,BytesSize, &dwNumBytesWritten,NULL);  
  29.     fRet = ReadFile(hPort,Bytes,4,&dwNumBytesWritten,NULL);  
  30.     if(fRet)  
  31.     {  
  32.         //printf("open the serial port successful \n\r");  
  33.         CloseHandle(hPort);  
  34.     }  
  35.     else  
  36.     {  
  37.         //close the serial port  
  38.         CloseHandle(hPort);  
  39.         //printf("Close serial port successful\n\r");  
  40.     }  
  41.  
  42.     return TRUE;  
  43.  
  44. }  
  45.  
  46. LRESULT CALLBACK WndProc (HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)  
  47. {  
  48.     RASCONNSTATE RasState = (RASCONNSTATE)wParam;  
  49.     switch(Msg)  
  50.     {  
  51.     case WM_RASDIALEVENT:  
  52.         switch(RasState)  
  53.         {  
  54.         case RASCS_OpenPort:  
  55.             printf("正在打开端口\n\r");  
  56.             break;  
  57.         case RASCS_PortOpened:  
  58.             printf("端口已经打开\n\r");  
  59.             break;  
  60.         case RASCS_ConnectDevice:  
  61.             printf("正在连接设备\n\r");  
  62.             break;  
  63.         case RASCS_Connected:  
  64.             //int i;  
  65.             //printf("已连接\n\r");  
  66.             //scanf("%d",i);  
  67.             //if(i==1)  
  68.             //{  
  69.             // RasHangUp(hRasConn);  
  70.             //}  
  71.             break;  
  72.         case RASCS_Disconnected:  
  73.             printf("连接已断开\n\r");  
  74.             break;  
  75.         default:  
  76.             printf("未知\n\r");  
  77.             break;  
  78.         }  
  79.         break;  
  80.     default:  
  81.         return DefWindowProc(hWnd, Msg, wParam, lParam);  
  82.     }  
  83.     return TRUE;  
  84. }  
  85.  
  86. int WINAPI WinMain( HINSTANCE hInstance,HINSTANCE hPrevInstance,  
  87. LPTSTR lpCmdLine,int nCmdShow)
  88. {
  89.     // TODO: Place code here.
  90.     HWND hwnd;
  91.     MSG msg;
  92.     WNDCLASS wc;
  93.     wc.style = 0;
  94.     wc.lpfnWndProc = (WNDPROC)WndProc;
  95.     wc.cbClsExtra = 0;
  96.     wc.cbWndExtra = 0;
  97.     wc.hInstance = hInstance;
  98.     wc.hIcon = 0;
  99.     wc.hCursor = 0;
  100.     wc.hbrBackground = NULL;
  101.     wc.lpszMenuName = 0;
  102.     wc.lpszClassName = _T("embo");  
  103.     RegisterClass(&wc);
  104.  
  105.     hwnd = CreateWindow(_T("embo"),_T("EmboConnection"),
  106. 0,0,0,0,0,NULL,NULL,hInstance,NULL);
  107.  
  108.     ShowWindow(hwnd,0);
  109.  
  110.     CreatePort();  
  111.     RASDIALPARAMS rdParams;//拨号参数
  112.     //初始化拨号参数
  113.     rdParams.dwSize=sizeof(RASDIALPARAMSW);
  114.     wcscpy(rdParams.szEntryName,_T("Embo Connection"));
  115.     wcscpy(rdParams.szPhoneNumber,_T(""));
  116.     wcscpy(rdParams.szCallbackNumber,_T(""));
  117.     wcscpy(rdParams.szUserName,_T(""));
  118.     wcscpy(rdParams.szPassword,_T(""));
  119.     wcscpy(rdParams.szDomain,_T(""));
  120.     DWORD dwRet;
  121.     //拨号连接
  122.     //printf("connecting  \n\r");
  123.     dwRet = RasDial(NULL,NULL,&rdParams,0xFFFFFFFF,hwnd ,&hRasConn);
  124.     if(dwRet != 0)//connection successful
  125.     {
  126.         RasHangUp(hRasConn);
  127.     }
  128.  
  129.     while ( GetMessage(&msg, NULL, 0, 0) != FALSE )  
  130.     {  
  131.         TranslateMessage(&msg);  
  132.         DispatchMessage(&msg);  
  133.     }  
  134.     return 0;  
  135. }  

 

(mugua)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201008/9979.html]
本文出处:博客园 作者:mugua
顶一下
(3)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容