Click to Rate and Give Feedback
MSDN
MSDN Library
User Interface
Windowing
Functions
 RegisterWindowMessage Function

  Switch on low bandwidth view
RegisterWindowMessage Function

The RegisterWindowMessage function defines a new window message that is guaranteed to be unique throughout the system. The message value can be used when sending or posting messages.

Syntax

UINT RegisterWindowMessage(      
    LPCTSTR lpString );

Parameters

lpString
[in] Pointer to a null-terminated string that specifies the message to be registered.

Return Value

If the message is successfully registered, the return value is a message identifier in the range 0xC000 through 0xFFFF.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks

The RegisterWindowMessage function is typically used to register messages for communicating between two cooperating applications.

If two different applications register the same message string, the applications return the same message value. The message remains registered until the session ends.

Only use RegisterWindowMessage when more than one application must process the same message. For sending private messages within a window class, an application can use any integer in the range WM_USER through 0x7FFF. (Messages in this range are private to a window class, not to an application. For example, predefined control classes such as BUTTON, EDIT, LISTBOX, and COMBOBOX may use values in this range.)

Windows 95/98/Me: RegisterWindowMessageW is supported by the Microsoft Layer for Unicode (MSLU). To use this, you must add certain files to your application, as outlined in Microsoft Layer for Unicode on Windows 95/98/Me Systems.

Example

For an example, see Finding Text.

Function Information

Minimum DLL Versionuser32.dll
HeaderDeclared in Winuser.h, include Windows.h
Import libraryUser32.lib
Minimum operating systems Windows 95, Windows NT 3.1
UnicodeImplemented as ANSI and Unicode versions.

See Also

Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Inverse of RegisterWindowMessage (GetClipboardFormatName)      Giovanni Dicanio ... iohanson   |   Edit   |   Show History
If one wants to get the the message string (output) given the message identifier (input) returned by RegisterWindowMessage - i.e. a kind of inverse of RegisterWindowMessage - it is possible to use GetClipboardFormatName :

http://msdn2.microsoft.com/en-us/library/ms649040.aspx

In fact, doing a DUMPBIN /EXPORTS on user32.dll, it seems that RegisterWindowMessageA/W have the same RVA of RegisterClipboardFormatA/W.

So, basically, it seems that RegisterWindowMessage is just an "alias" for RegisterClipboardFormat...

For more details, read the thread on microsoft.public.vc.mfc newsgroup, with subject "Registered Window Message String", started on 2007, September 7th:

http://groups.google.it/group/microsoft.public.vc.mfc/browse_thread/thread/f83f7c12c80e4ada/460bc4c43a844a37

Giovanni

MSDN says: "The RegisterWindowMessage function defines a new window message that is guaranteed to be unique throughout the system."
On vista 64 RegisterWindowMessage(theSameString) function will return different values for programs run under localsystem and programs run under any other user.
::PostMessage(HWND_BROADCAST,registeredMessage) returns TRUE, but GetLastError gives access denied (error 5) when message is posted from an elevated process to a simple one.

Iohanson
Processing
© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker