InfoCity
InfoCity - виртуальный город компьютерной документации
Реклама на сайте







Размещение сквозной ссылки

 

Шаг 7 - Следим за процессом соединения


Создание проекта


Для изучения данного вопроса Вам необходимо создать проект с диалоговым окном, как главным окном программы и с кнопкой. У кнопки должна обрабатываться процедура нажатия. Как это сделать? Смотри шаг 30-31 MFC по шагам.

Создаем код


В файле DiaDlg.cpp создать код процедуры.

 void OnRas(UINT unMsg,RASCONNSTATE rasconnstate,DWORD dwError)
 {   switch (rasconnstate)
   {   case RASCS_OpenPort : AfxMessageBox("RASCS_OpenPort"); break;
   case RASCS_PortOpened: AfxMessageBox("RASCS_PortOpened"); break;
   case RASCS_ConnectDevice: AfxMessageBox("RASCS_ConnectDevice"); break;
   case RASCS_DeviceConnected: AfxMessageBox("RASCS_DeviceConnected"); break;
   default: AfxMessageBox("?");   } } 

Изменить реакцию на нажатие кнопки.

 void CDiaDlg::OnDial()
  {   HRASCONN hrascon=NULL;
   RASDIALPARAMS rc[1];
   rc[0].dwSize = sizeof(RASDIALPARAMS);
   GetPrivateProfileString("Ras","EntryName",
    "not ready",rc[0].szEntryName,99,"Ras.ini");
   GetPrivateProfileString("Ras","Phone",
    "not ready",rc[0].szPhoneNumber,99,"Ras.ini");
   GetPrivateProfileString("Ras","UserName",
    "not ready",rc[0].szUserName,99,"Ras.ini");
   GetPrivateProfileString("Ras","Password",
    "not ready",rc[0].szPassword,99,"Ras.ini");
   strcpy(rc[0].szDomain,"");
      RasDial(NULL,NULL,rc,0,OnRas,&hrascon);
  	 } 

Описание


Обратите внимание на RasDial. Общая идея такова. После выполнения каждого шага соединения. Например получения доступа к порту, или набора номера происходит вызов некоторой процедуры, куда передаются парамеры о шаге выполения и успехе операции.

Указатель на эту процедуру и тип параметров указан здесь (жирные) RasDial(NULL,NULL,rc,0,OnRas,&hrascon);

Если в данной позиции стоит ноль, то функция должна иметь такие параметры:

 VOID WINAPI RasDialFunc( UINT unMsg, RASCONNSTATE 
 rasconnstate, DWORD dwError);
  

Если 1, то

 VOID WINAPI RasDialFunc1( HRASCONN hrasconn, 
 UINT unMsg, RASCONNSTATE rascs,DWORD
 dwError,DWORD dwExtendedError);
  

А параметр 2 используеться для NT.

В параметры Вашей функции передается тип операции в переменной rasconnstate, которую и анализируем для вывода сообщений на экран.

Делайте всё необходимое и запускате. Сначала программа будет сообщять Вам о том, что порт открыт, потом о том, что устанавливается соединение и потом знаки вопроса. Список событий довольно длинный и я всё пока перечислять на стал.

Шпаргалка


Для контроля процесса соединения создайте функцию

 void OnRas(UINT unMsg,RASCONNSTATE
 rasconnstate,DWORD dwError)
 { ........ } 

Свяжите эту функцию с вызовом соединения

   RasDial(NULL,NULL,rc,0,OnRas,&hrascon);
   

Не забудте, что параметры зависят от кода

[Назад][Содержание]


Реклама на InfoCity

Яндекс цитирования



Финансы: форекс для тебя








1999-2009 © InfoCity.kiev.ua