Noch einen gutgemeinten Style Hinweis für solche
API Programme:
- so ewig lange und auch noch verschachtelten "Endlos Switch/Case" lässt man nicht auf Dauer so im Code
- Microsoft empfahl früher MessageBreaker(Makros samt TypeCasts für weitere Nachrichtenbehandlung mit/in einzelnen "TypSicheren" Einzelfunktionen)
- ich habe es stets selbst gemacht und bin es mehr logisch funktional angegangen... also "HandleMenuMessages(...)" "HandleControlMessages(...)" "HandleScrollMessages(...)" "HandlePaintMessages(...)"...
- mein Haupt "switch" und mein innerer WMCOMMAND "switch" bestehen im ReleaseProgramm stets nur aus "case" mit "HandleXXX(...)" Aufrufen.
- ich hatte mir angewöhnt nach dem Haupt "switch" in der FensterFunktion wenn LogDebugInfo nicht voll deaktiviert, dort immer GetLastError zu prüfen und wenn was anliegt dies mit TimeStamp und samt den 4 Übergabeparametern der Fensterfunktion zu loggen... das ja mir jahrelang so gereicht um alles einigermaßen sauber(=ohne da noch ständig nicht bearbeitete LastErrors") zu verarbeiten
Klar gibt es auch Exeptions mit denen man um sich werfen kann, aber das Konzept der
WinAPI beruht nunmal mehr auf RückgabeCodes und GetLastError.. für weitere Details, und das funktioniert mit etwas mehr Handarbeit durchaus garnicht so schlecht