Falls irgend möglich würde ich auf das Abfragen der Windows Version verzichten.
Beispiel:
Die Funktion GetDefaultPrinterA() gibt es erst ab Windows 2000 (und höher).
Man könnte jetzt die Windowsversion abfragen und dann so reagieren:
Wenn WindowsVersion >= 2000 dann verwende GetDefaultPrinterA() anderfalls schau in die Registry oder die Win.ini.
Eine andere Strategie wäre mit GetProcAddress() zu prüfen, ob es die Funktion GetDefaultPrinterA() gibt.
Falls ja, benütze die Funktion, falls nein, erfolgt ein Fallback auf die älteren Alternativen.
Eine (unsichere) Abfrage der Windows Version wird hier nicht nötigt.
Übertragen auf die Firewall Geschichte heisst das:
Zuerst prüfen, ob die modernste
API verfügbar ist (also ob die ProgID 'HNetCfg.FwMgr' registriert ist).
Falls nicht arbeite mit der
API der älteren Windows Versionen.
Villeicht kommt ja ein Servicepack, der fehlende Funktionalität in den älteren Windowsversionen nachrüstet.
ok, ich glaube nicht mehr an den Weihnachtsmann, aber so ist man auf alles gerüstet