AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein C++ C++ Delphi Übersetzung 3DYDYoutube Filter
Thema durchsuchen
Ansicht
Themen-Optionen

C++ Delphi Übersetzung 3DYDYoutube Filter

Ein Thema von EWeiss · begonnen am 2. Okt 2018 · letzter Beitrag vom 20. Nov 2020
Antwort Antwort
Seite 3 von 5     123 45      
EWeiss
(Gast)

n/a Beiträge
 
#21

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 5. Okt 2018, 01:42
       hr := SupportedSites.Test(PWideChar(MediaFile), false, POleStr(url));
ICh stocher hier auch nur im Dunkeln, so eventuell?
Danke!
Zitat:
Nene, das ist Murks
Könnte das mit dem OleStr nachher auch noch mal versuchen wenn PWideChar nichts bringt.
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:
Ist der String tatsächlich valide, aber leer, oder nil ?
Leer bzw. NIL

Zitat:
You must query it from the filter instance. Example (C++):
Code:
 if (FAILED(hr = source.CoCreateInstance(__uuidof(IYoutubeSource)))) {
      return VLC_EGENERIC;
Zitat:
solltest du mit QueryInterface()
Er erstellt den Source über CoCreateInstance.

Hmmm...

gruss

Geändert von EWeiss ( 5. Okt 2018 um 01:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#22

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 5. Okt 2018, 01:49
[QUOTE=EWeiss;1414962]
       hr := OleCheck(SupportedSites.Test(PWideChar(MediaFile), false, url));
ICh stocher hier auch nur im Dunkeln, so eventuell? Bin Wiederholungstäter im Murksen
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#23

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 5. Okt 2018, 01:50
Zitat:
 hr := OleCheck(SupportedSites.Test(PWideChar(MediaFile), false, url));
Nee
Ich brauche kein OleCheck hr ist mein OleCheck!
Ist hr = 0 dann sollte normalerweise alles in Ordnung sein.

gruss

Geändert von EWeiss ( 5. Okt 2018 um 01:55 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#24

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 5. Okt 2018, 03:30
So bin etwas weiter.. Mist wenn man alles selbst herausfinden muss ohne vernünftiges SDK

Habe eine IID_angelegt und zwar die des Interface ISupportedSites.
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:
  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;
Die Url bei SupportedSites.Test ist immer noch Nil sei's drum.
So wie ich das hier verstehe..
Zitat:
When S_OK is returned, canonical_url will contain canonical page url, otherwise
it will not be changed
Wenn S_OK also die Rückgabe 0 ist dann müsste mir die URL einen wert zurück liefern, tut sie aber nicht.
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:
    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;
gruss

Geändert von EWeiss (11. Jul 2019 um 16:53 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.094 Beiträge
 
Delphi 12 Athens
 
#25

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 5. Okt 2018, 12:31
Zitat:
Habe leider auch nicht wirklich Ahnung, wie BSTR* definiert ist (die wäre wichtig),
Hat mich jetzt auch interessiert, was ich hier finde ist allerdings gruselig

Ist das wohl aktuell ?
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#26

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 5. Okt 2018, 13:20
Also BSTR ist WideString auf Delphi Seite.
Delphi-Quellcode:
function GetName(index: UINT): WideString; stdcall;
function Test(url: PWideChar; explicitly: BOOL; out canonical_url: WideString): HRESULT; stdcall;
wäre meines Wissens nach die richtige Übersetzung
Fritz Westermann
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#27

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 5. Okt 2018, 13:43
Zitat:
Habe leider auch nicht wirklich Ahnung, wie BSTR* definiert ist (die wäre wichtig),
Hat mich jetzt auch interessiert, was ich hier finde ist allerdings gruselig
Also BSTR ist WideString auf Delphi Seite.
Delphi-Quellcode:
function GetName(index: UINT): WideString; stdcall;
function Test(url: PWideChar; explicitly: BOOL; out canonical_url: WideString): HRESULT; stdcall;
Mhh, schwer zu sagen, was hier stimmt. Ich hatte ein paar Posts zuvor eine andere Definition gefunden. Das WideString kommt mir allerdings sehr komisch vor, da dies ein Delphi Typ mit Ref-Counter und allem drum und dran ist.

So oder so ist der Output Zeiger ja nil . Entsprechend der Dokumentation der Funktion ist das ja in Ordnung, falls S_FALSE zurückgeliefert wird. Jetzt kommt der Knackpunkt:
Zitat von MSDN:
The constants S_OK and S_FALSE are both success codes
Entsprechend liefert das SUCCEEDED() Makro jeweils true zurück. Hier müsstest du also nachher noch explizit auf S_OK oder S_FALSE testen.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#28

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 5. Okt 2018, 14:11
http://docwiki.embarcadero.com/Libra...tem.WideString

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.
Fritz Westermann
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#29

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 5. Okt 2018, 14:17
Dann hätten wir wohl auch hier jetzt die korrekte Übersetzung
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#30

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 5. Okt 2018, 15:28
Ok Danke euch..
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

Geändert von EWeiss ( 5. Okt 2018 um 15:33 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 5     123 45      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:15 Uhr.
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