WinMain (Windows CE 5.0)

Send Feedback

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

intWINAPIWinMain(HINSTANCEhInstance, HINSTANCEhPrevInstance, LPWSTRlpCmdLine, intnShowCmd );


  • 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).

Return Values

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.


OS Versions: Windows CE 1.0 and later.
Header: Winuser.h.

See Also

Windows Functions | DispatchMessage | GetMessage | PostQuitMessage | TranslateMessage

Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.