The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 2,230 other followers

Some odd Windows Messages for my research list (Windows 10 with a very basic Delphi application)

Posted by jpluimers on 2020/12/22

The bold messages below inside the main message loop are on my research list because:

  • they seem to be undocumented in WinUser.h and other header files
  • they are sent to Window handles that have no corresponding VCL TWinControl bound to them
  • they are WM_TIMER messages sending to a null hwnd, without the Delphi code registering a window-less timer (note the lParam indicates they have different call back procedures attached to them)

Being inside the message loop, they are either posted or created by Windows.

The hexadecimal value for WM_TIMER is documented: [Archive.is] 0x0113 site:https://docs.microsoft.com/en-us/windows/desktop/winmsg – Google Search.

Neither of the below messages are documented in either of the Undocumented Windows books (yes, there are two; the first – though rare to get – was a slightly earlier published one-person effort; the second was a tiny bit later three-person effort, but much thicker and included a diskette with tools; both books complement each other well; I am listed in both):

Messages I am looking for:

Yes, I know that Windows Messages are usually noted as 4 hexadecimal digits, but since they are UINT, the logging framework logs them as 32-bit hexadecimal values as this was a 32-bit application, see these WM_* constants and message ranges:

  • 0x0400: [WayBack] WM_USER – Windows applications | Microsoft Docs
  • 0x8000: [WayBack] WM_APP – Windows applications | Microsoft Docs

    The WM_APP constant is used to distinguish between message values that are reserved for use by the system and values that can be used by an application to send messages within a private window class. The following are the ranges of message numbers available.

    Start End Meaning Note
    0 WM_USER–1 Messages reserved for use by the system.
    WM_USER 0x7FFF Integer messages for use by private window classes. Depends on the one that called RegisterClass, see below.
    WM_APP 0xBFFF Messages available for use by applications. Depends on the one that called CreateWindow, see below.
    0xC000 0xFFFF String messages for use by applications.
    0x10000 0xFFFFFFFF Reserved by the system.

Note that [WayBack] Which message numbers belong to whom? – The Old New Thing explains more about CreateWindow and RegisterClass, which are important for the above subranges.

Similarly, the sharing of the ID space for Windows Messages, Atom Names and Clipboard Formats:

It might be that two of the messages are related to an undocumented UserAdapterWindowClass: [WayBack] Windows Creators Update Crashes old C++ Apps – Stack Overflow.

On message handling in general:

Related (as my WM_TIMER knowledge was rusty when scheduling this blog post):

The messages:

hwnd: $00D8219C, message: $0000031F(799), wParam: $00000001, lParam: $00000000, time: $6AEBD266, pt: (X,Y)=(1321,725)
hwnd: $004D0DC2(MainForm), message: $0000031F(799), wParam: $00000001, lParam: $00000000, time: $6AEBD295, pt: (X,Y)=(1321,725)
hwnd: $00F61F54(WindowMessageForm), message: $0000031F(799), wParam: $00000001, lParam: $00000000, time: $6AEBD2A5, pt: (X,Y)=(1321,725)
hwnd: $00D8219C, message: $0000B000(45056), wParam: $00000000, lParam: $00000000, time: $6AEBD2B4, pt: (X,Y)=(1321,725)
hwnd: $004E1CCE, message: $00000737(1847), wParam: $00000004, lParam: $00000000, time: $6AEBD2F3, pt: (X,Y)=(1321,725)
hwnd: $004D0DC2(MainForm), message: $0000C0C2(49346), wParam: $00000000, lParam: $00000000, time: $6AEBD4A8, pt: (X,Y)=(1321,725)
hwnd: $004E1CCE, message: $00000060(96), wParam: $00000001, lParam: $00000000, time: $6AEBD6BC, pt: (X,Y)=(1321,725)
hwnd: $004D0DC2(MainForm), message: $0000000F(15)WM_PAINT, wParam: $00000000, lParam: $00000000, time: $6AEBD6BC, pt: (X,Y)=(1321,725)
hwnd: $004E1CCE, message: $00000060(96), wParam: $00000001, lParam: $00000000, time: $6AEBD6DB, pt: (X,Y)=(1321,725)
hwnd: $001819DA(MainForm.NonHookedEdit), message: $0000000F(15)WM_PAINT, wParam: $00000000, lParam: $00000000, time: $6AEBD6EB, pt: (X,Y)=(1321,725)
hwnd: $004E1CCE, message: $00000060(96), wParam: $00000001, lParam: $00000000, time: $6AEBD6FA, pt: (X,Y)=(1321,725)
hwnd: $004E1CCE, message: $00000060(96), wParam: $00000001, lParam: $00000000, time: $6AEBD6FA, pt: (X,Y)=(1321,725)
hwnd: $004E1CCE, message: $00000738(1848), wParam: $00000000, lParam: $00000000, time: $6AEBD6FA, pt: (X,Y)=(1321,725)
hwnd: $00642D80(MainForm.MessageStaticText), message: $0000000F(15)WM_PAINT, wParam: $00000000, lParam: $00000000, time: $6AEBD70A, pt: (X,Y)=(1321,725)
hwnd: $008323F6(MainForm.ShowMessageButton), message: $0000000F(15)WM_PAINT, wParam: $00000000, lParam: $00000000, time: $6AEBD729, pt: (X,Y)=(1321,725)
hwnd: $012716D8(MainForm.MessageEdit), message: $0000000F(15)WM_PAINT, wParam: $00000000, lParam: $00000000, time: $6AEBD777, pt: (X,Y)=(1321,725)
hwnd: $00F61F54(WindowMessageForm), message: $0000000F(15)WM_PAINT, wParam: $00000000, lParam: $00000000, time: $6AEBD796, pt: (X,Y)=(1321,725)
hwnd: $00000000, message: $00000113(275)WM_TIMER, wParam: $00002318, lParam: $755F64A0, time: $6AEBD796, pt: (X,Y)=(1321,725)
hwnd: $004E1CCE, message: $00000060(96), wParam: $00000001, lParam: $00000000, time: $6AEBD7A6, pt: (X,Y)=(1321,725)
hwnd: $0068331C, message: $00000113(275)WM_TIMER, wParam: $00000001, lParam: $00000000, time: $6AEBD7A6, pt: (X,Y)=(1321,725)
hwnd: $00000000, message: $00000113(275)WM_TIMER, wParam: $00002316, lParam: $755F64A0, time: $6AEBD7B6, pt: (X,Y)=(1321,725)
hwnd: $00000000, message: $00000113(275)WM_TIMER, wParam: $00002313, lParam: $755F64A0, time: $6AEBD7B6, pt: (X,Y)=(1321,725)
hwnd: $00000000, message: $00000113(275)WM_TIMER, wParam: $00002312, lParam: $69CC05F0, time: $6AEBDA07, pt: (X,Y)=(1321,725)
hwnd: $00000000, message: $00000113(275)WM_TIMER, wParam: $0000230F, lParam: $69CC05F0, time: $6AEBDDEF, pt: (X,Y)=(1274,292)
hwnd: $00D8219C, message: $0000B001(45057), wParam: $00000000, lParam: $00000000, time: $6AEBE2B2, pt: (X,Y)=(1285,296)
hwnd: $004E1CCE, message: $00000060(96), wParam: $00000001, lParam: $00000000, time: $6AEBE2D1, pt: (X,Y)=(1285,296)
hwnd: $004E1CCE, message: $00000738(1848), wParam: $00000000, lParam: $00000000, time: $6AEBE2D1, pt: (X,Y)=(1285,296)
hwnd: $012716D8(MainForm.MessageEdit), message: $0000000F(15)WM_PAINT, wParam: $00000000, lParam: $00000000, time: $6AEBE2E1, pt: (X,Y)=(1285,296)
hwnd: $00000000, message: $00000113(275)WM_TIMER, wParam: $000022FF, lParam: $755F64A0, time: $6AEBE310, pt: (X,Y)=(1285,296)
hwnd: $0068331C, message: $00000113(275)WM_TIMER, wParam: $00000001, lParam: $00000000, time: $6AEBE40A, pt: (X,Y)=(1222,296)
hwnd: $00000000, message: $00000113(275)WM_TIMER, wParam: $00002300, lParam: $755F64A0, time: $6AEBE4E5, pt: (X,Y)=(1194,296)
hwnd: $00000000, message: $00000113(275)WM_TIMER, wParam: $000022FB, lParam: $69CC05F0, time: $6AEBE6E8, pt: (X,Y)=(1194,296)
hwnd: $00000000, message: $00000113(275)WM_TIMER, wParam: $000022F8, lParam: $69CC05F0, time: $6AEBEAD0, pt: (X,Y)=(1178,296)
hwnd: $004912FE, message: $00000400(1024)WM_USER, wParam: $0000BABE, lParam: $010D7C68, time: $6AED8101, pt: (X,Y)=(1556,317)
hwnd: $004912FE, message: $00000400(1024)WM_USER, wParam: $0000BABE, lParam: $010EBD08, time: $6AED8110, pt: (X,Y)=(1594,348)
hwnd: $004912FE, message: $00000400(1024)WM_USER, wParam: $0000BABE, lParam: $010EBD08, time: $6AED8110, pt: (X,Y)=(1594,348)
hwnd: $004912FE, message: $00000400(1024)WM_USER, wParam: $0000BABE, lParam: $010EC650, time: $6AED8120, pt: (X,Y)=(1609,359)
hwnd: $004912FE, message: $00000400(1024)WM_USER, wParam: $0000BABE, lParam: $0112A220, time: $6AED8130, pt: (X,Y)=(1638,386)
hwnd: $004912FE, message: $00000400(1024)WM_USER, wParam: $0000BABE, lParam: $01129F88, time: $6AED813F, pt: (X,Y)=(1656,403)

–jeroen

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

 
%d bloggers like this: