Emil, wenn Du keine Hilfe willst, warum fragst Du dann?
Bitte?
Muss ich alles ab nicken ohne selbst zu Denken?
Definitiv ist TBSTR nicht nötig.. ein unnötiges hin und her casten macht irgendwie keinen sinn.
Zudem wenn die
API als Ausgangsparameter var verwendet dann ist es für mich fraglich diesen nach out umzulegen.
Das hat nichts mit Hilfe wollen mehr oder weniger zu tun.
Es wäre also sinnvoller gewesen wenn du mir daraufhin eine Antwort gegeben hättest anstelle mich hier zu maßregeln.
Also!
Frage 1 warum castet man hier von var nach out
Frage 2 welchen sinn macht die Definition TBSTR wenn es am ende doch PWideChar ist.. Es bleibt am ende gleich. (Nur eine frage der Namensgebung aber gleiche Funktionalität)
Vielleicht kannst du es beantworten.
Delphi-Quellcode:
function TEVMRPlayer.GetYoutubeFilterTitle(var Title: string): HRESULT;
var
MediaContent: IAMMediaContent;
pbstrTitle: PWideChar;
begin
Result := E_FAIL;
if not Assigned(srcFilter) then
exit;
if IsUrl then
begin
if Assigned(DYDYoutubeFilter) then
begin
srcFilter.QueryInterface(IID_IAMMediaContent, MediaContent);
Result := MediaContent.get_Title(pbstrTitle);
if not SUCCEEDED(Result) then
ReportError('YoutubeFilterTitle fails', Result)
else
begin
Title := pbstrTitle;
SysFreeString(pbstrTitle);
end;
end;
end;
end;
So geht es jetzt.
War IAMMediaContent doch nicht falsch
Nochmals Danke für den Hinweis auf das Speicherleck.
gruss