Wie definiere ich private Basis-Anwendungsnachrichten?

Ich habe in meiner Anwendung für ein Jahr wie folgt private Nachrichten verwendet:

UM_APP_BASE = WM_APP; // WM_APP is declared as WM_APP = $8000; in "Controls" unit.

und dann meine privaten Nachrichten definiert:

UM_EXPLORER_MSG = UM_APP_BASE + 1;
UM_LICENSE_CHANGE_MSG = UM_APP_BASE + 2;
etc...

Und benutze sie in meiner Klasse so:

procedure UMLicenseChanged(var Message: TMessage); message UM_LICENSE_CHANGE_MSG;

Ich benutze auchRegisterWindowMessage mit meinen anderen Anwendungen "reden", aber das ist eine andere Geschichte)

Ich erinnere mich nicht, warum ich mich für die Verwendung entschieden habeWM_APP eher, alsWM_USER als Basis in erster Linie.
Die Dokumentation sagt:

Die WM_USER-Konstante wird verwendet, um zwischen Nachrichtenwerten zu unterscheiden, die für Windows reserviert sind, und Werten, die von einer Anwendung zum Senden von Nachrichten innerhalb einer privaten Fensterklasse verwendet werden können. Es gibt fünf Bereiche von Nachrichtennummern:

Range   Meaning
0 through WM_USER - 1   Messages reserved for use by Windows.
WM_USER through 0x7FFF  Integer messages for use by private window classes.
0x8000 through 0xBFFF   Messages reserved for future use by Windows.
0xC000 through 0xFFFF   String messages for use by applications.
Greater than 0xFFFF Reserved by Windows for future use.

Was bedeutet, dassWM_APP ist für die zukünftige Verwendung durch Windows reserviert. Auf der anderen Seite verwendet DelphiCM_BASE = $B000; Das ist in diesem Bereich. und auchCN_BASE = $BC00;

Wie definiere ich die Basisnachricht, damit sie nicht mit anderen von Windows / Delphi / Other-Steuerelementen verwendeten Nachrichten kollidiert? Welche Basisnachricht wird für meine Anwendung als privat bevorzugt? und warum?
Sollte ich es benutzenWM_USER anstattWM_APP? Beachten Sie, dassWM_USER base wird in CommCtrl von Windows verwendet, z.TB_ENABLEBUTTON = WM_USER + 1. usw...

Ich brauche einige Einblicke in dieses Thema.

Ich habe dies auf meiner Delphi-Hilfe-API (D5) gelesen. das ist natürlich obsolet!
Dies ist wahrscheinlich der Grund, warum ich mich für die Verwendung entschieden habeWM_APP.
Trotzdem wäre eine Erklärung über den Unterschied zwischen den beiden nett :)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage