![]() |
AW: C++ Delphi Übersetzung 3DYDYoutube Filter
Zitat:
Zitat:
Ok dann lieber nicht ;) Mein Problem ist das hr = 0 zurück liefert von daher geht man erst mal davon aus das alles in Ordnung ist. Nur zurückgegeben wird nix. Zitat:
Zitat:
Code:
if (FAILED(hr = source.CoCreateInstance(__uuidof(IYoutubeSource)))) {
return VLC_EGENERIC; Zitat:
Hmmm... gruss |
AW: C++ Delphi Übersetzung 3DYDYoutube Filter
[QUOTE=EWeiss;1414962]
Zitat:
|
AW: C++ Delphi Übersetzung 3DYDYoutube Filter
Zitat:
Ich brauche kein OleCheck hr ist mein OleCheck! Ist hr = 0 dann sollte normalerweise alles in Ordnung sein. gruss |
AW: C++ Delphi Übersetzung 3DYDYoutube Filter
So bin etwas weiter.. Mist wenn man alles selbst herausfinden muss ohne vernünftiges SDK :stupid:
Habe eine IID_angelegt und zwar die des Interface ISupportedSites.
Delphi-Quellcode:
IID_ISupportedSites: TGUID = '{FF762ACC-13EC-463A-A29C-FD4B0CD3E019}';
War mir jetzt nicht sicher ob ich mit dieser IID_ arbeiten kann scheint aber richtig zu sein um das Interface zu Initialisieren.
Delphi-Quellcode:
Die Url bei SupportedSites.Test ist immer noch Nil sei's drum.
IsURL := (LeftStr(MediaFile, 4) = 'http') or (LeftStr(MediaFile, 5) = 'https');
if IsUrl then begin if DYDYoutubeFilter <> nil then begin hr := CoCreateInstance(CLSID_DYDYoutube, nil, CLSCTX_INPROC_SERVER, IID_IBaseFilter, Source); if SUCCEEDED(hr) then begin Source.QueryInterface(IID_ISupportedSites, SupportedSites); Version := SupportedSites.GetVersion; hr := SupportedSites.Test(PWideChar(MediaFile), false, url); if SUCCEEDED(hr) then begin x := SupportedSites.GetCount; if x <> 0 then begin for IntI := 0 to x - 1 do Test := SupportedSites.GetName(IntI); end; end; end; end; end; So wie ich das hier verstehe.. Zitat:
GetCount hingegen stimmt genauso werden mir die unterstützten Url's zurückgegeben die der Filter unterstützt. Siehe Pic! Die werte stimmen alle. Muss jetzt noch schauen wie ich das mit der Url hinbekomme. Das stimmt jetzt schon mal!
Delphi-Quellcode:
gruss
function GetVersion: UINT; stdcall;
// Number of supported sites function GetCount: UINT; stdcall; // Get site name or NULL if index >= GetCount() function GetName(index: UINT): PWideChar; stdcall; |
AW: C++ Delphi Übersetzung 3DYDYoutube Filter
Zitat:
![]() Ist das wohl aktuell ? |
AW: C++ Delphi Übersetzung 3DYDYoutube Filter
Also BSTR ist WideString auf Delphi Seite.
Delphi-Quellcode:
wäre meines Wissens nach die richtige Übersetzung
function GetName(index: UINT): WideString; stdcall;
function Test(url: PWideChar; explicitly: BOOL; out canonical_url: WideString): HRESULT; stdcall; |
AW: C++ Delphi Übersetzung 3DYDYoutube Filter
Zitat:
Zitat:
Delphi-Quellcode:
kommt mir allerdings sehr komisch vor, da dies ein Delphi Typ mit Ref-Counter und allem drum und dran ist.
WideString
So oder so ist der Output Zeiger ja
Delphi-Quellcode:
. Entsprechend der Dokumentation der Funktion ist das ja in Ordnung, falls
nil
Delphi-Quellcode:
zurückgeliefert wird. Jetzt kommt der Knackpunkt:
S_FALSE
Zitat:
Delphi-Quellcode:
Makro jeweils
SUCCEEDED()
Delphi-Quellcode:
zurück. Hier müsstest du also nachher noch explizit auf
true
Delphi-Quellcode:
oder
S_OK
Delphi-Quellcode:
testen.
S_FALSE
|
AW: C++ Delphi Übersetzung 3DYDYoutube Filter
![]() Also wir benutzten dass hier häufig. (gemixte source VS C++ und Delphi) Das schöne daran, Windows übernimmt die Speicherverwaltung. Aber: Es ist nicht unbedingt das schnellste. |
AW: C++ Delphi Übersetzung 3DYDYoutube Filter
Zitat:
|
AW: C++ Delphi Übersetzung 3DYDYoutube Filter
Ok Danke euch..
Delphi-Quellcode:
function GetName(index: UINT): PWideChar; stdcall;
Hmm.. bin mir nicht sicher und zwar deshalb weil GetName mir die richtigen werte liefert ;) Dann gibt es noch den Unterschied BSTR und BSTR* gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz