Статьи по Assembler


Main.asm для mycall (ассемблер) - часть 11


push edx

invoke PostMessageA,main_window,WM_USER,0,0

pop edx

@endif

@endif

pop esi

ret

ras_dial_func ENDP


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

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

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

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

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

.data?

ras_connect_status RASCONNSTATUS{}

.code

ras_monitor_func PROC PUBLIC param

rm_loop:

@if(online)

mov ras_connect_status.dwSize,sizeof(RASCONNSTATUS)

invoke RasGetConnectStatusA,ras_conn,offset ras_connect_status

@if(!eax)

@if(ras_connect_status.rasconnstate!=RASCS_Disconnected)

invoke Sleep,200

jmp rm_loop

@endif

@endif

@endif

invoke PostMessageA,main_window,WM_USER,0,1

ret

ras_monitor_func ENDP


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

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

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

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

ras_hangup PROC

mov online,FALSE

@if(ras_conn)

invoke RasHangUpA,ras_conn

rh_loop:

mov ras_connect_status.dwSize,sizeof(RASCONNSTATUS)

invoke RasGetConnectStatusA,ras_conn,offset ras_connect_status

@if(eax!=ERROR_INVALID_HANDLE)

invoke Sleep,0

jmp rh_loop

@endif

@endif

mov ras_conn,0

invoke Sleep,1000

ret

ras_hangup ENDP

br>

;#############################################################

end






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



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