Es ist einfach ärgerlich, dass die Änderungen, die an der API mit den Common-Control 6.0 so mies dokumentiert sind.
Wir haben eine neu programmierte Standardklasse in ein selten benutzes (uraltes) Tool übernommen.
Auf einmal funktionierten Teile der UI nicht mehr richtig, die in unseren Produkten bisher fehlerfrei gearbeitet haben. Speziell hatten wir Probleme mit der Anzeige von Comboboxen.
Die Ursache war schnell gefunden:
GetComboBoxInfo liefert für hwndItem immer NULL, wenn die Applikation kein Common-Control 6.0 benutzt.
Es wäre alles viel schneller entdeckt worden, wären passende ASSERTs eingebaut worden an den Stellen, an denen man auch etwas bestimmtest erwartet. Eben hier, dass hWndItem nicht NULL ist. Aber vermutlich dachte der Programmierer: Wenn ich schon eine Information bekomme, dann ist diese Information bestimmt auch richtig und vollständig.
Pustekuchen … 🙁 … aber wer will ihm das übel nehmen.
Das steht in der Doku zu COMBOBOXINFO natürlich nirgends drin (bzw. jetzt natürlich schon, weil ich eine entsprechende Community Addition gemacht habe).
http://msdn.microsoft.com/en-us/library/windows/desktop/bb775798(v=vs.85).aspx