WinMain

Windows Mobile 6.5
A version of this page is also available for
4/8/2010

This function is called by the system as the initial entry point for Windows Embedded CE-based applications.


int WINAPI WinMain(
  HINSTANCE hInstance, 
  HINSTANCE hPrevInstance, 
  LPWSTR lpCmdLine, 
  int nShowCmd 
); 

hInstance

[in] Handle to the current instance of the application.

hPrevInstance

[in] Handle to the previous instance of the application. For a Win32-based application, this parameter is always NULL.

If you need to detect whether another instance already exists, create a uniquely named mutex using the CreateMutex function. CreateMutex will succeed even if the mutex already exists, but the GetLastError function will return ERROR_ALREADY_EXISTS. This indicates that another instance of your application exists, because it created the mutex first.

lpCmdLine

[in] Pointer to a null-terminated string that specifies the command line for the application, excluding the program name.

nShowCmd

[in] Specifies how the window is to be shown. This parameter can be one of the following values:

Value Description

SW_HIDE

Hides the window and activates another window.

SW_SHOW

Activates a window and displays it in its current size and position.

SW_SHOWNA

Displays a window in its current state. The active window remains active.

SW_SHOWNOACTIVATE

Displays a window in its most recent size and position. The active window remains active.

SW_SHOWNORMAL

Activates and displays a window. If the window is minimized or maximized, the system restores it to its original size and position (same as SW_RESTORE).

The exit value contained in that message's wParam parameter indicates success, and that the function terminates when it receives a WM_QUIT message. Zero indicates that the function terminates before entering the message loop.

Your WinMain function should initialize the application, display its main window, and enter a message retrieval-and-dispatch loop that is the top-level control structure for the remainder of the application's execution. Terminate the message loop when it receives a WM_QUIT message. At that point, your WinMain should exit the application, returning the value passed in the WM_QUIT message's wParam parameter. If WM_QUIT was received as a result of calling PostQuitMessage, the value of wParam is the value of the PostQuitMessage function's nExitCode parameter.

Headerwinuser.h
Windows Embedded CEWindows CE 1.0 and later
Windows MobileWindows Mobile Version 5.0 and later

Community Additions

Show: