Hi,
ich hab hier ein massives Problem.
Ich greife aus .NET heraus auf einige Netzwerkfunktionen der Windows
API zu. Das ist soweit auch kein Problem. Aber ab und zu tritt eine Fehlersituation auf. Die
Exception die ich in .NET erhalte ist vom Typ COMException und die Message sieht z.B. so aus:
Zitat von
COMException:
Das angegebene Netzwerkkennwort ist falsch. (
Exception from HRESULT: 0x80070056)
Das ganze hat hier - wie man sieht - zwei Probleme:
1.) ist die Meldung auf Deutsch. Das ganze läuft auf einem deutschen Server, aber für internationale Kunden. Das heisst, die Meldung muss mindestens auf englisch sein.
2.) Steht der HRESULT hinten dran. Den will ich natürlich nicht draussen anzeigen.
Ich bekomme bei der COMException genau diesen HRESULT-Code mit. Wenn ich den an die Windows-
API Funktion FormatMessage übergebe, dann bekomme ich die Meldung ohne (
Exception from...) zurück. Okay, Problem 2 gelöst.
Leider ist die Nachricht immer noch auf deutsch. Und wenn ich FormatMessage mit der LangID für Englisch aufrufe, bekomme ich gar nichts zurück.
Wie bekomme ich also für einen Fehlercode zwingend den Englischen Fehlertext, egal welche Sprachversion vom Betriebssystem installiert ist?