A version of this page is also available for

Windows Embedded CE 6.0 R3


This function sends the specified message to a window or windows. SendMessage calls the window procedure for the specified window and does not return until the window procedure has processed the message. The PostMessage function, in contrast, posts a message to a thread's message queue and returns immediately.


LRESULT SendMessage(
  HWND hWnd, 
  UINT Msg, 
  WPARAM wParam, 
  LPARAM lParam 


  • hWnd
    [in] Handle to the window whose window procedure will receive the message. If this parameter is HWND_BROADCAST, the message is sent to all top-level windows in the system, including disabled or invisible unowned windows, overlapped windows, and pop-up windows; but the message is not sent to child windows.
  • Msg
    [in] Specifies the message to be sent.
  • wParam
    [in] Specifies additional message-specific information.
  • lParam
    [in] Specifies additional message-specific information.

Return Value

The return value specifies the result of the message processing and depends on the message sent.


Applications that need to communicate using HWND_BROADCAST should use the RegisterWindowMessage function to obtain a unique message for inter-application communication.

If the specified window was created by the calling thread, the window procedure is called immediately as a subroutine. If the specified window was created by a different thread, the system switches to that thread and calls the appropriate window procedure. Messages sent between threads are processed only when the receiving thread executes message retrieval code. The sending thread is blocked until the receiving thread processes the message.

Windows Embedded CE does not support all the messages the Windows-based desktop platforms support.


Header winuser.h
Library coredll.lib
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also


Message Queue Functions