SendMessage wird direkt im GetMessage verarbeitet ... nur PostMessage wird zurückgegeben und anschließend im DispatchMessage verarbeitet.
An SendMessage kommt man nur via Hooks an WndProc/GWL_WNDPROC oder ala
WH_GETMESSAGE dran.
Noch besser sind Timer-Messages, welche man in der MessageQueue vergebens sucht, da sie erst im GetMessage/PeekMessage erzugt werden.
Und ja, ich dachte mir auch erst, was das denn für ein Schwachsinn sei,
denn im
Application. TApplicationEvents.OnMessage kommen so viele der Events garnicht erst an.
Ach ja, WM_QUIT beendet garnichts.
Es sagt nur, dass sich der Empfänger doch bitte beenden möge, was er nur macht, wenn der Entwickler (hier Du oder Emba in der
VCL) dieses dort auch eingebaut hat.
Aus diesen beiden Gründen wird nun auch klar, warum viele Messages auch mit dem jeweils richtigen Befehl verschickt werden müssen (SendMessage, PostMessage oder PostThreadMessage)