Статьи по Assembler


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


push esi

invoke SendMessageA,phon_window,CB_RESETCONTENT,0,0

pop esi

xor edx,edx;number

@while(byte ptr[esi]!=0)

@push esi,edx

invoke SendMessageA,phon_window,CB_ADDSTRING,0,esi

@pop esi,edx

inc edx

call skip_nz

@endw

inc esi

mov ebx,current_con

@if(con_phone[ebx]>=dl)

mov byte ptr con_phone[ebx],0

@endif

xor eax,eax

mov al,con_phone[ebx]

invoke SendMessageA,phon_window,CB_SETCURSEL,eax,esi

;Формирование списка логинов для данного соединения и установка его позиции

invoke SendMessageA,user_window,CB_RESETCONTENT,0,0

xor edx,edx

@while(byte ptr[esi]!=0)

@push esi,edx

invoke SendMessageA,user_window,CB_ADDSTRING,0,esi

@pop esi,edx

inc edx

call skip_nz

call skip_nz

@endw

mov ebx,current_con

@if(con_user[ebx]>=dl)

mov byte ptr con_user[ebx],0

@endif

xor eax,eax

mov al,con_user[ebx]

invoke SendMessageA,user_window,CB_SETCURSEL,eax,esi

ret

change_con ENDP


;АВАРИЙНОЕ ЗАВЕРШЕНИЕ ПРИЛОЖЕНИЯ

;Вызывается в случае, когда продолжение работы приложения невозможно

;///////////////////////////////////////////////////////////// Фатальный аборт

.const

fatal_caption db "MyCall Error",0

fatal_txt db "Can't register main window class",0

db "Can't create main window",0

db "Can't open mycall.txt",0

db "Can't get size of mycall.txt",0

db "Can't allocate memory for mycall.txt",0

db "Can't read mycall.txt",0

db "Remote Access Service fatal error",0

.code

fatal PROC fatal_code

mov esi,offset fatal_txt

@while(fatal_code)

@while(byte ptr [esi])

inc esi

@endw

inc esi

dec fatal_code

@endw

invoke MessageBoxA,NULL,esi,offset fatal_caption,MB_OK OR MB_ICONERROR

ret

fatal ENDP


;В(Ы)КЛЮЧЕНИЕ ОРГАНОВ УПРАВЛЕНИЯ

;Меняет надпись на кнопке и активизирует списки в зависимости от того,

;находится приложение в режиме выбора или в режиме соединения

;///////////////////////////////////////////////////////////// Выключение органов управления

.const

ec_txt0 db "Call",0




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