•°•° mikityak •°•°
Мастер
(1026)
14 лет назад
.486 ; create 32 bit code
.model flat, stdcall ; 32 bit memory model
option casemap :none ; case sensitive
;/////////////////////////////////////////////////////////////////////////////
;подключение библиотек, необходимых нам
include \MASM32\INCLUDE\Windows.inc
include \MASM32\INCLUDE\User32.inc
include \MASM32\INCLUDE\Kernel32.inc
include \MASM32\INCLUDE\Winmm.inc
include \MASM32\Macros\Macros.asm
includeLib \MASM32\LIB\User32.lib
includeLib \MASM32\LIB\Kernel32.lib
includeLib \MASM32\LIB\Winmm.lib
;/////////////////////////////////////////////////////////////////////////////
;раздел, где объявляются прототипы функций
DlgProc PROTO :DWORD, :DWORD, :DWORD, :DWORD
;/////////////////////////////////////////////////////////////////////////////
;раздел, где объявляются макросы
;/////////////////////////////////////////////////////////////////////////////
;раздел, где объявляются все константы
.const
IDD_DLG1 equ 1000
IDC_BTN1 equ 1001
IDC_BTN2 equ 1002
IDC_BTN3 equ 1003
;/////////////////////////////////////////////////////////////////////////////
;раздел, где объявляются переменные, уже имеющие какое-то значение
.data
szCaptiondb "EjectCD",0
szOpendb "Set CDAudio Door Open",0
szClosedb "Set CDAudio Door Closed",0
;/////////////////////////////////////////////////////////////////////////////
;раздел, где объявляются переменные, еще не имеющие значения
.data?
hInstanceHINSTANCE ?
hIconHICON ?
;/////////////////////////////////////////////////////////////////////////////
.code
_start: ;с этого слова начинается код программы
;/////////////////////////////////////////////////////////////////////////////
mov hInstance, FUNC(GetModuleHandle, NULL)
invoke DialogBoxParam, hInstance, IDD_DLG1, NULL, addr DlgProc, NULL
invoke ExitProcess, NULL
;/////////////////////////////////////////////////////////////////////////////
DlgProc proc hDlgMain:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
;************************
.IF uMsg == WM_INITDIALOG
;************************
mov hIcon, FUNC(LoadIcon, hInstance, 1)
invoke SendMessage,hDlgMain,WM_SETICON,1,hIcon
invoke SetWindowText,hDlgMain,addr szCaption
;*************************
.ELSEIF uMsg == WM_COMMAND
;*************************
mov eax,wParam
.IF ax==IDC_BTN1
invoke mciSendString,addr szOpen, NULL, 0, 0
.ELSEIF ax==IDC_BTN2
invoke mciSendString,addr szClose, NULL, 0, 0;
.ELSEIF ax==IDC_BTN3
invoke SendMessage,hDlgMain,WM_CLOSE,NULL,NULL
.ENDIF
;***********************
.ELSEIF uMsg == WM_CLOSE
;***********************
invoke EndDialog, hDlgMain,NULL
;****
.ELSE
;****
mov eax,FALSE
ret
;*****
.ENDIF
;*****
mov eax,TRUE
ret
DlgProc endp
;/////////////////////////////////////////////////////////////////////////////
end _start ;с этого слова заканчивается код программы
Источник: нет такова :)