CLSID/ProgID - Version

Nutzung, Komponenten, .NET

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

CLSID/ProgID - Version

Beitrag von AUGE_OHR »

hi,

ich hab bei dem VLC Player 3 Einträge in der Registry :

VideoLAN.VLCPlugin {9BE31822-FDAD-461B-AD51-BE1D1C159921}
VideoLAN.VLCPlugin.1 {E23FE9C6-778E-49D4-B537-38FCDE4887D8}
VideoLAN.VLCPlugin.2 {9BE31822-FDAD-461B-AD51-BE1D1C159921}

Frage : wieso 3 Einträge ?

Das man die CLSID nich unter o:CLSID eintragen kann sondern die
ProgID verwenden muss hab ich ja schon rausbekommen, aber wie
ist das mit der "Version" ?
helpfile hat geschrieben: Die Angabe von (.Version) ist optional. Wenn (.Version) nicht angegeben wurde, dann wird die höchste Version angenommen, die auf dem System installiert ist.
Danach müsste es also "VideoLAN.VLCPlugin.2" sein ?

soweit sogut, aber je nachdem ob ich nun ".1" oder ".2" verwende
"scheine" ich mal die eine Methode zu haben und dann wieder nicht .. :(

könnte es sein das man "beide Versionen" gleichzeitig laden muss ?
hat das jemand schon mal bei einem anderen OCX erlebt ?

gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag von AUGE_OHR »

hi,

also ich denke ich hab es raus bekommen :
VideoLAN.VLCPlugin.1 {E23FE9C6-778E-49D4-B537-38FCDE4887D8}
Das ist die "alte" Version deren Syntax ähnlich dem M$ v6.4 Player ist.
Die Version funktioniert ist aber sehr in den Methode "eingeschränkt"
VideoLAN.VLCPlugin.2 {9BE31822-FDAD-461B-AD51-BE1D1C159921}
Das ist nun die "neue" Version deren Syntax dem M$ v9/v10 ähnelt,
nur bekomme ich da (noch) KEINEN funktionsfähigen Player mit Xbase++
hin. Vielmehr "stürzt" Xbase++ beim APPEVENT() ab ...

"mixen" kann man die beiden natürlich nicht :(

unterm Strich muss ich leider sagen, das der VLC Player von der activeX
Seite "schlecht bestückt" ist gegenüber den M$ Produkten, sodas er sich
wohl "nur" als "reiner" Player einsetzen lässt mit activeX.

Was noch bleibt ist RUNSHELL mit Parameter, den davon gibt es "viele"
sodas man VLC auch als "Streaming Server" oder als "Capture Tool"
verwenden könnte ...

gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag von AUGE_OHR »

hi,
AUGE_OHR hat geschrieben: (noch) KEINEN funktionsfähigen Player mit Xbase++ hin.
nun hab ich es (im Prinzip) verstanden warum VLC mich ständig
angemeckert hat das er eine Methode oder Property (noch) nicht
kannte ... die ActiveX "Schnittstelle" ist "zu langsam" (oder VLC ...)

Ich erinnerte mich daran, das ich beim "upgrade" von M$ v6.4 ->
v9/v10 ähnliche Probleme hatte z.b. wenn ich die "Länge" des Video´s
ermitteln wollte. Das ging bei der M$ v9/v10 erst dann wenn das Video
"geladen" war UND "spielte".

Bei VLC ist es ähnlich, nur muss ich dort "fast überall" ein SLEEP(10)
einfügen bevor ich auf eine Methode oder Property zugreifen will ... ?!

Nur auf die Propertys aus der "Root Class" (und "o:playlist") kann ich
"immer" zugreifen, aber bei den "Sub Class" ( oVLC:SubClass:xyz )
ist immer die "verzögerrung" sodas ich "vorher" ein SLEEP(10) brauche ?!

Code: Alles auswählen

     oVLC         := XbpActiveXControl():new()
     //
     // 9BE31822-FDAD-461B-AD51-BE1D1C159921
     //
     oVLC:CLSID     := "VideoLAN.VLCPlugin.2"
     oVLC:create(oAnzeig,,,{352+4,288+4+22})
     oVLC:hide()                                  // verstecken !
...
      oVLC:Show()
      oVLC:Visible  := .T.
      oVLC:AutoPlay := .T.                     // autoplay

      // clear Playlist
      oVLC:playlist:items:clear()
      oVLC:playlist:add(cFile)
      IF oVLC:playlist:itemCount > 0
*         oVLC:playlist:playItem(1)
         oVLC:playlist:play()
      ENDIF
      //
      // you MUST have a SLEEP()
      // 
      SLEEP(10)
      //
      // else you will get a Error here ( why ??? )
      //  
      IF oVLC:input:Length > 0.0
         cTime := LTRIM(STR(oVLC:input:Length /1000,10,2))
      ELSE
         cTime := "??"
      ENDIF
      aDisplay[3]:Setcaption(" Time        "+cTime)
gruss by OHR
Jimmy
Antworten