| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
|
Шаг 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); Не забудте, что параметры зависят от кода [Назад][Содержание] |
|
|
| ||||||||||||||||
|