.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