![]() |
C++ Delphi Übersetzung 3DYDYoutube Filter
Ich baue gerade den Filter für YouTube in meine Library ein.
Und muss das übersetzen.
Code:
interface __declspec(uuid("FF762ACC-13EC-463A-A29C-FD4B0CD3E019"))
ISupportedSites: public IUnknown { enum { kVersion = 5 }; // Version number equals to total number of functions within the interface // (ISupportedSites::kVersion is the current version). New functions are // appended to the interface. Function signatures are never change. Therefore // version number is the way to check whether particular function is available // in the interface STDMETHOD_(UINT, GetVersion)() = 0; // Number of supported sites STDMETHOD_(UINT, GetCount)() = 0; // Get site name or NULL if index >= GetCount() STDMETHOD_(BSTR, GetName)(UINT index) = 0; // Test whether url can be analyzed for video retrieving. S_FALSE means that // url seems from the supported site but not a valid video clip page. When // S_OK is returned, canonical_url will contain canonical page url, otherwise // it will not be changed // If explicitly == TRUE then S_OK will be returned only if URL definitely // points to video page URL instead of maybe just to some other page from the // supported site. This can be determined only for few sites, for others need // page data to determine this STDMETHOD(Test)(__in LPCWSTR url, __in BOOL explicitly, __out_opt BSTR* canonical_url) = 0; // Returns clip start time encoded in URL, in milliseconds STDMETHOD_(UINT, GetStartTime)(LPCWSTR url) = 0; };
Delphi-Quellcode:
Sollte eigentlich in Ordnung sein.
ISupportedSites = interface(IUnknown)
['{FF762ACC-13EC-463A-A29C-FD4B0CD3E019}'] (* ** ISupportedSites methods ** *) function GetVersion: UINT; stdcall; function GetCount: UINT; stdcall; function GetName(index: UINT): string; stdcall; function Test(url: PWideChar; explicitly: BOOL; out canonical_url: string): HRESULT; stdcall; function GetStartTime(url: PWideChar): UINT; stdcall; end; Wenn nicht bitte mitteilen was nicht stimmt. Frage mich nur wie soll ich das Enum dazwischen klatschen. (Das ist meine Frage) ;)
Code:
enum { kVersion = 5 };
![]() gruss |
AW: C++ Delphi Übersetzung 3DYDYoutube Filter
Das sollte ein Property darstellen des Typs Int.
|
AW: C++ Delphi Übersetzung 3DYDYoutube Filter
Zitat:
gruss |
AW: C++ Delphi Übersetzung 3DYDYoutube Filter
Delphi-Quellcode:
edit
ISupportedSites = interface(IUnknown)
['{FF762ACC-13EC-463A-A29C-FD4B0CD3E019}'] kVersion = 5; // so vielleicht? (* ** ISupportedSites methods ** *) function GetVersion: UINT; stdcall; function GetCount: UINT; stdcall; function GetName(index: UINT); stdcall; procedure Test(url: PWideChar; explicitly: BOOL; var canonical_url: string); stdcall; function GetStartTime: UINT; stdcall; end; also kVersion muss etwas sein wo als wert ne 5 zurückkommt, vielleicht macht man das bei interface auch anders, per function oder so... |
AW: C++ Delphi Übersetzung 3DYDYoutube Filter
Zitat:
Nebenbei du hast zu früh kopiert habe noch etwas nachgebessert ;) Das Video läuft schon mal. Anbei ein Pic. Was mir fehlt ist die Weite\höhe, Gesamt und verstrichene Zeit. Im Moment geht es nur über eine Verknüpfung mit Dragdrop. (Habe keine Liste) Nun gut ist noch was zu tun. gruss |
AW: C++ Delphi Übersetzung 3DYDYoutube Filter
ja sorry, bin schon total schlaff auf den augen, wusste nur worauf ich hinaus wollte weil du nur das eine angefragt hattest.
aber.... ich glaube mich rar zu erinnern das man dabei ne function mit fest-ergebnis nehmen sollte.... manno... bin grad voll am grübeln/zweifeln wenn es nun läuft scheints das ja gewesen zu sein, tolle sache auch mal das richtige für dich gehabt zu haben :party: |
AW: C++ Delphi Übersetzung 3DYDYoutube Filter
Zitat:
gruss |
AW: C++ Delphi Übersetzung 3DYDYoutube Filter
Habe immer noch ein C++ Problem. :oops:
Code:
Kann da bitte jemand bei der Übersetzung helfen? Danke
CComPtr<IBaseFilter> source;
if (FAILED(hr = source.CoCreateInstance(__uuidof(IYoutubeSource)))) { return VLC_EGENERIC; } CComQIPtr<ISupportedSites> ss = source; if (!ss) { return VLC_EGENERIC; } CComBSTR url; if (S_OK != (hr = ss->Test(original_url.c_str(), FALSE, &url))) { return VLC_EGENERIC; } Habe es mal auf diese weise versucht.
Delphi-Quellcode:
URL ist immer leer. :wall:
if DYDYoutubeFilter <> nil then
begin hr := CoCreateInstance(CLSID_DYDYoutube, nil, CLSCTX_INPROC_SERVER, IID_IBaseFilter, Source); if SUCCEEDED(hr) then SupportedSites := ISupportedSites(Source); hr := SupportedSites.Test(PWideChar(MediaFile), false, url); if SUCCEEDED(hr) then begin end; end; gruss |
AW: C++ Delphi Übersetzung 3DYDYoutube Filter
Ich bin gerade privat eingebunden, aber falls es Dich interessieren sollte,
![]() |
AW: C++ Delphi Übersetzung 3DYDYoutube Filter
Zitat:
Na ja vielleicht ist @Zacherl die Tage online. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:50 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