Статьи по Assembler


Main.cpp для mycall (c++) - часть 9


"AllDevicesConnected",

"Authenticate",

"AuthNotify",

"AuthRetry",

"AuthCallback",

"AuthChangePassword",

"AuthProject",

"AuthLinkSpeed",

"AuthAck",

"ReAuthenticate",

"Authenticated",

"PrepareForCallback",

"WaitForModemReset",

"WaitForCallback",

"Projected",

"StartAuthentication",

"CallbackComplete",

"LogonNetwork",

"SubEntryConnected",

"SubEntryDisconnected",

"Interactive",

"RetryAuthentication",

"CallbackSetByCaller",

"PasswordExpired",

"Connected",

"Disconnected",

"Unknown state"};

if(online){

//Показ состояния соединения в строке статуса

UINT ras_message_num=rasconnstate;

if(ras_message_num>=RASCS_Connected){ras_message_num-=RASCS_Connected-28;}

else{if(ras_message_num>=RASCS_Interactive){ras_message_num-=RASCS_Interactive-24;}}

if(ras_message_num>30){ras_message_num=30;}

SendMessage(stat_window,WM_SETTEXT,0,(LPARAM)ras_state_text[ras_message_num]);

//Если соединение установлено - запуск нити контроля

if(rasconnstate==RASCS_Connected){

CreateThread(NULL,0,ras_monitor_func,0,0,&ras_monitor_id);

//Если соединение не установлено - передача сообщения WM_USER для

//повтора дозвона

}else{

if(rasconnstate==RASCS_Disconnected){

PostMessage(main_window,WM_USER,0,0);

}

}

}

}


//НИТЬ МОНИТОРА РАЗРЫВА

//Каждые 200 мс опрашивает состояние установленного соединения.

//При обнаружении факта разъединения посылает сообщение WM_USER

//и завершается

//============================================================= Нить монитора разрыва

DWORD WINAPI ras_monitor_func(LPVOID param){

RASCONNSTATUS ras_connect_status;

while(online){

ras_connect_status.dwSize=sizeof(RASCONNSTATUS);

if(RasGetConnectStatus(ras_conn,&ras_connect_status)){break;}

if(ras_connect_status.rasconnstate==RASCS_Disconnected){break;}

Sleep(200);

}

PostMessage(main_window,WM_USER,0,1);

return 0;

}


//ПОЛОЖИТЬ ТРУБКУ

//Если происходит дозвон, или соединение установлено,

//дает команду на разрыв и ожидает, когда RAS ее выполнит

/////////////////////////////////////////////////////////////// Положить трубку

VOID ras_hangup(){

RASCONNSTATUS ras_connect_status;

online=FALSE;

if(ras_conn){

RasHangUp(ras_conn);

while(TRUE){

ras_connect_status.dwSize=sizeof(RASCONNSTATUS);

if(RasGetConnectStatus(ras_conn,&ras_connect_status)==ERROR_INVALID_HANDLE){break;}

Sleep(0);

}

ras_conn=0;

Sleep(1000);

}

}








- Начало -  - Назад -  - Вперед -



Книжный магазин