Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C++ C++ Delphi Übersetzung 3DYDYoutube Filter (https://www.delphipraxis.net/198084-c-delphi-uebersetzung-3dydyoutube-filter.html)

EWeiss 2. Okt 2018 22:27


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:
  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;
Sollte eigentlich in Ordnung sein.
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 };
Die Infos sind recht spärlich und Antwort von ihm habe ich leider auch keine bekommen.

gruss

KodeZwerg 2. Okt 2018 22:46

AW: C++ Delphi Übersetzung 3DYDYoutube Filter
 
Das sollte ein Property darstellen des Typs Int.

EWeiss 2. Okt 2018 22:49

AW: C++ Delphi Übersetzung 3DYDYoutube Filter
 
Zitat:

Zitat von KodeZwerg (Beitrag 1414737)
Das sollte ein Property darstellen des Typs Int.

Versteh ich nicht. Umgesetzt?

gruss

KodeZwerg 2. Okt 2018 22:53

AW: C++ Delphi Übersetzung 3DYDYoutube Filter
 
Delphi-Quellcode:
  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;
edit
also kVersion muss etwas sein wo als wert ne 5 zurückkommt, vielleicht macht man das bei interface auch anders, per function oder so...

EWeiss 2. Okt 2018 23:01

AW: C++ Delphi Übersetzung 3DYDYoutube Filter
 
Zitat:

Zitat von KodeZwerg (Beitrag 1414740)
Delphi-Quellcode:
  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;

Heheheh.. Vielleicht.. JA! :)
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

KodeZwerg 2. Okt 2018 23:12

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:

EWeiss 2. Okt 2018 23:16

AW: C++ Delphi Übersetzung 3DYDYoutube Filter
 
Zitat:

wenn es nun läuft scheints das ja gewesen zu sein
Nein das laufen des Video hat damit nichts zu tun das ist eine andere Sache.

gruss

EWeiss 3. Okt 2018 13:42

AW: C++ Delphi Übersetzung 3DYDYoutube Filter
 
Habe immer noch ein C++ Problem. :oops:

Code:
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;
}
Kann da bitte jemand bei der Übersetzung helfen? Danke

Habe es mal auf diese weise versucht.
Delphi-Quellcode:
  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;
URL ist immer leer. :wall:


gruss

KodeZwerg 3. Okt 2018 14:07

AW: C++ Delphi Übersetzung 3DYDYoutube Filter
 
Ich bin gerade privat eingebunden, aber falls es Dich interessieren sollte, hier entnehme ich mir viele Informationen dazu.

EWeiss 3. Okt 2018 14:15

AW: C++ Delphi Übersetzung 3DYDYoutube Filter
 
Zitat:

Zitat von KodeZwerg (Beitrag 1414784)
Ich bin gerade privat eingebunden, aber falls es Dich interessieren sollte, hier entnehme ich mir viele Informationen dazu.

Finde da nichts was mir bei meinem Problem helfen könnte. Trotzdem Danke. ;)
Na ja vielleicht ist @Zacherl die Tage online.

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:00 Uhr.
Seite 1 von 5  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz