Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .386
- .model flat,stdcall
- option casemap:none
- include \masm32\INCLUDE\windows.INC
- include \masm32\include\gdi32.inc
- include \masm32\include\user32.inc
- include \masm32\include\kernel32.inc
- include \masm32\INCLUDE\advapi32.INC
- includelib \masm32\lib\gdi32.lib
- includelib \masm32\lib\user32.lib
- includelib \masm32\lib\kernel32.lib
- includelib \masm32\lib\advapi32.lib
- includelib \masm32\lib\comctl32.lib
- .DATA
- hinst DWORD 0
- hwnd DWORD 0
- WindowClass db "Window", 0
- WindowName db "Caption", 0
- MSG_Handle MSG <0>
- .CODE
- START:
- invoke GetModuleHandle, 0
- mov hinst, eax
- call Reg_Win_Class
- test eax,eax
- jz EXIT
- invoke CreateWindowEx, 0, addr WindowClass, addr WindowName, \
- WS_VISIBLE + WS_SYSMENU, 640, 480, 640, 480, 0, 0, hinst, 0
- mov hwnd, eax
- invoke ShowWindow, hwnd, 1
- invoke UpdateWindow, hwnd
- Msg_Loop:
- invoke GetMessage, addr MSG_Handle, 0, 0, 0
- test eax,eax
- jz EXIT
- invoke TranslateMessage, addr MSG_Handle
- invoke DispatchMessage, addr MSG_Handle
- jmp Msg_Loop
- EXIT:
- invoke ExitProcess, 0
- Reg_Win_Class proc
- local _WndClassStruct : WNDCLASS
- mov _WndClassStruct.style, 0
- mov _WndClassStruct.lpfnWndProc, WinProc
- mov _WndClassStruct.cbClsExtra, 0
- mov _WndClassStruct.cbWndExtra, 0
- push hinst
- pop _WndClassStruct.hInstance
- mov _WndClassStruct.lpszMenuName, 0
- mov _WndClassStruct.lpszClassName, offset WindowClass
- invoke LoadIcon, 0, 0
- mov _WndClassStruct.hIcon, eax
- invoke LoadCursor, 0, IDC_ARROW
- mov _WndClassStruct.hCursor, eax
- invoke CreateSolidBrush, 0ffffffh
- mov _WndClassStruct.hbrBackground, eax
- invoke RegisterClassA, addr _WndClassStruct
- ret
- Reg_Win_Class endp
- WinProc proc \
- uses ebx esi edi hWnd :DWORD, MESS :DWORD, wParam :DWORD, lParam :DWORD
- cmp MESS, WM_DESTROY
- je DESTROY_WIN
- invoke DefWindowProc, hWnd, MESS, wParam, lParam
- jmp ENDPROCEDURE
- DESTROY_WIN:
- invoke PostQuitMessage, 0
- ENDPROCEDURE:
- ret 16
- WinProc endp
- END START
Advertisement
Add Comment
Please, Sign In to add comment