Ich habe nicht behauptet das das Interface IAMMediaContent falsch ist, ich hatte es vermutet und diese Vermutung traf nicht zu. Dieses ist auch noch nachzulesen.
Die Definition des Interfaces verwendet TBSTR (
Winapi.DirectShow9) und genau diesen Typen verwende ich dann auch. Mir egal ob das in der Konsequenz ein PWideChar ist.
Und ob man TBSTR oder PWideChar verwendet ist pupsegal, und gecastet wird da gar nichts.
Du verwendest auch ein HRESULT obwohl das eigentlich ein Cardinal ist. Warum? Eben, es ist das Gleiche. Wenn man den Code aber mit der
API Beschreibung vergleicht trifft man auf diese Namensgebung und muss nicht immer hin- und herdenken.
Darum arbeitet man mit einem Type-Alias.
Ich nehme ein
out
weil jeder Wert der in diese Methode hineinkommt niemals verwendet wird. Es macht keinen Unterschied hier einfach ein
var
zu nehmen. Es geht nur darum dem Verwender der Methode mitzuteilen, das der Wert den er hier hineingibt nicht verwendet wird. Es ist also ein reiner
out
Parameter.
Es gibt andere Methoden da ist es ein in/out Parameter, da verwende ich dann
var
und bei einem reinen in Parameter verwende ich
const
.
Es gibt halt einen Unterschied zwischen kompiliert, funktioniert und formal korrekt. Ich bin halt pingelig und jeder darf seinen Anspruch weiter rauf oder runterschrauben wie es ihm beliebt.
Von jemandem aus Unwissenheit über die formale Korrektheit anfurzen zu lassen möchte ich mir aber doch verbitten. Take it or leave it or frage freundlich nach