Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#4

Re: comObj initialisieren welches nicht registrierbar ist.

  Alt 22. Apr 2007, 22:30
Zitat von Phoenix:
Klasse wäre es, wenn Du uns auch noch kurz erzählst wie Du es hinbekommen hast.. für den Fall dass das gleiche Problem noch jemand anderes hat.
Hmmm jo hat mich 4 Stunden suche im internet gekostet

Also zuerst es hat nichts mit der wmploc.dll zu tun,
sondern damit das MS den Zugriff auf seine Visualisierungen unterbunden hat.

Alle Vis_Interface(classen) wurden als Privat deklariert so das man von außen nicht mehr drauf zugreifen kann.
Aber einen Trick gibt es trotzdem.

Die Vis befinden sich in der DLL wmppia.dll.
Auch diese ist nicht registrierbar außer man geht den umweg über RegAsm.exe

Zitat:
You must register and install the Windows Media Player PIA by using the Assembly Registration Tool (RegAsm.exe) and the Global Assembly Cache Utility (GacUtil.exe).
regasm C:\WMSDK\WMPSDK9\redist\wmppia.dll
RegAsm fügt nun in der Registry den selben Typelib Schlüssel ein wie der von der originalen Typelib.

Für Net benötigt man noch das Utility GacUtil welches den Eintrag 'GAC' für Net unter assembly registriert.

Nun kann man den Media Player (wmp.dll) in (NET) in sein Projekt einbinden und bekommt einen zusätzlichen Verweis
AxWMPLib, plus WMPLib.

Dadurch hat man nun die möglichkeit die Visualisierungen direkt aus dem Interface
heraus anzusprechen und benötigt keine Registrierung mehr.

In Delphi muss man nur noch die TypeLib einbinden und kann auch von hier aus direkt die Visualisierungen ansprechen.
Die Lib der Pia wird dann automatisch mit übernommen.

Das ganze funktioniert für den MediaPlayer 9.0
Wenn man den MediaPlayer 10 verwenden will muss man nur Player.controls nach Player.Ctlcontrols umbenennen
dann klappt das ganze auch mit dem.

Gruss Emil
  Mit Zitat antworten Zitat