Na dann viel Erfolg. Falls dein Programm wirklich so supercool sein sollte, kannst du vermutlich allerlei anstellen und MS wird sich danach bemühen die Kompatibilität zu neueren Windowsversionen für dich zu gewährleisten. So wie sie es auch in der Vergangenheit machten. Ansonsten fällst du unter Umständen durch's Raster. Aber das ist schließlich deine Sache, denn du verläßt dich auf etwas zu dem MS keinen Vertrag abgeschlossen hat. Die
API hingegen ist ein Vertrag auf den du dich verlassen kannst. Kurzum: du trägst das volle Risiko.
Im übrigen bist du mit deiner Methode dann wieder bei händischen Versionsüberprüfungen ala (Hauptversion >=5 und Unterversion >=1). Ich will nicht anzweifeln, daß du es richtig hinbekommen kannst, aber können und machen sind zwei verschiedene Handschuhe.
Die von jaenicke vorgeschlagene Methode ist aber in jedem Fall überlegen, da sie darauf abzielt, daß das Programm ermittelt welche Funktionen in der Laufzeitumgebung bereitstehen und sich dementsprechend verhält. Das hat auch nix mit
COM per-se zu tun, sondern
COM funktioniert nach diesem Blackbox-Prinzip. Will heißen wenn du eine
GUID/
CLSID hast dann kannste dich darauf verlassen, daß wenn du das Interface instanziieren kannst, es auch da ist.