.386
.model flat,stdcall
option casemap:none
include C:\masm32\include\windows.inc
include C:\masm32\include\kernel32.inc
includelib C:\masm32\lib\kernel32.lib
include C:\masm32\include\user32.inc
includelib C:\masm32\lib\user32.lib
WinMain proto :DWORD,:DWORD,:DWORD,:DWORD
.data
ClassName db "class name",NULL
AppName db "application name",NULL
.data?
hInstance HINSTANCE?
CommandLine LPSTR?
.code
start:
invoke GetModuleHandle,NULL
mov hInstance,eax ; now we have the handle in hInstance
invoke GetCommandLine
mov CommandLine,eax ; command line stored in CommandLine
invoke WinMain,hInstance,NULL,CommandLine,SW_SHOWDEFAULT
invoke ExitProcess,eax
; -------------------------------------------------------------------------
WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,cmdLine:LPSTR,CmdShow:DWORD
LOCAL wc:WNDCLASSEX
LOCAL msg:MSG
LOCAL hwnd:HWND
mov wc.cbSize, SIZEOF WNDCLASSEX
mov wc.style, CS_HREDRAW OR CS_VREDRAW
mov wc.lpfnWndProc, OFFSET WndProc
mov wc.cbWndExtra, NULL
mov wc.cbClsExtra, NULL
push hInstance
pop wc.hInstance
; ... more to come
; -------------------------------------------------------------------------
end start