Статьи по Assembler


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


mov eax,w_param

and eax,0ffffh

@if(ax==1000)

mov eax,conn_window

and current_con,0ffh

mov esi,offset current_con

@elseif(ax==1001)

mov eax,phon_window

mov esi,offset con_phone

add esi,current_con

@elseif(ax==1002)

mov eax,user_window

mov esi,offset con_user

add esi,current_con

@else

jmp sp_nok

@endif

push esi

invoke SendMessageA,eax,CB_GETCURSEL,0,0

pop esi

@if(eax==CB_ERR)

xor eax,eax

@endif

mov [esi],al

call change_con

jmp sp_ok

@endif

;Обработка уведомления BN_CLICKED, передаваемого кнопкой при клике:

;в состоянии online=TRUE прекращает дозвон (разрывает соединение) и включает списки

;в состоянии online=FALSE отключает списки и начинает дозвон

@if(eax==BN_CLICKED)

mov eax,w_param

and eax,0ffffh

@if(eax==1003)

@if(online)

invoke EnableWindow,butt_window,FALSE

call ras_hangup

invoke EnableWindow,butt_window,TRUE

push FALSE

call disable_controls

@else

push TRUE

call disable_controls

call ras_dial

@endif

jmp sp_ok

@endif

@endif

jmp sp_nok

;Обработка сообщения WM_USER, используемого в MyCall нитью монитора разрыва.

;Обнаружив факт разрыва соединения, нить монитора передает WM_USER. Если был коннект,

;то включаются списки, в противном случает выполняется повторный дозвон

@elseif(eax==WM_USER)

call ras_hangup

@if(l_param)

push FALSE

call disable_controls

@else

call ras_dial

@endif

jmp sp_ok

;Обработка сообщения WM_MOVE: запоминание новой позиции окна

;для последующей записи ее в файл mycall.ini

@elseif(eax==WM_MOVE)

invoke GetWindowRect,main_window,offset win_pos

@if(eax)

push win_pos.left

pop main_win_left

push win_pos.top

pop main_win_top

@else

mov eax,l_param

and eax,0ffffh

mov main_win_left,eax

mov eax,l_param

mov cl,16

rcr eax,cl

and eax,0ffffh

mov main_win_top,eax

@endif

jmp sp_ok

;При завершении работы приложения записать файл mycall.ini,

;и освободить память

@elseif(eax==WM_DESTROY)

call save_ini

@if(dat_buffer)

invoke GlobalFree,dat_buffer

@endif

invoke PostQuitMessage,EXIT_NORMAL




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



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