Jump to content

Plugin und COM - der 3. Versuch ;-)


dgdg

Recommended Posts

Ich hab's immer noch nicht aufgegeben und nochmal einen Versuch gestartet, die Plugin- und COM-Schnittstelle vom DVBViewer zu verstehen. ;-)

 

Was ich ja eigentlich vorhabe, ist den DVBViewer für die Bedienung meiner Hausautomatisierung zu "missbrauchen". Wäre halt schön, wenn man mal eben mit der Fernbedienung ein paar Sachen Abfragen oder Schalten könnte.

 

Dazu muss ich ans OSD ran und von aussen über die Plugin-Schnittstelle dynamische Inhalte auf OSD-Seiten anzeigen. Das müsste doch über die Plugin-Schnittstelle (TBasePlugin) irgendwie funktionieren.

 

Jetzt habe ich aber einfach das Problem, dass ich das Debuggen von DDLs ziemlich unhandlich finde. Hier fehlt mir einfach die Erfahrung. Deswegen würde ich lieber erstmal die grundlegenden Funktionen über eine Standalone-Applikation ausprobieren. Aber über die COM-Schnittstelle komme ich vermutlich nicht ans OSD ran, oder?

Und so wie ich die Plugin-Schnittstelle verstehe, kann man die von einer Standalone-Applikation nicht nutzen.

 

Bevor ich das weiter verfolge daher erstmal die Frage

 

1. ob es überhaupt möglich ist (von einem Plugin oder einer Standalone-Applikation) eigene dynamische Inhalte über das OSD anzuzeigen bzw. auch Eingaben zu machen?

2. ob evtl. auch möglich ist, das von Standalone-Applikation aus zu machen (weil ich erstmal kein Plugin schreiben möchte)? Wenn ja, wie?

 

Wäre nett, wenn die Programmierer mir ein paar Hinweise geben könnten.

Link to comment

1. Ja, siehe myinternet Plugin.

2. Imho nein.

 

Mehr Infos wie die die Pluginschnittstelle genau benutzt werden kann habe ich leider auch nicht.

Was auch ohne Plugin funktioniert (sogar ziemlich simpel über den com server) sind eigene Popup Menüs (wie z.B. OSD Blau).

Link to comment
Aber über die COM-Schnittstelle komme ich vermutlich nicht ans OSD ran, oder?

Es ist richtig, die OSD-Schnittstelle (IOSDWindowManager) kann nur im DVBViewer-Prozessraum angesprochen werden, also über eine Plugin.DLL. Es gab dazu hier eine Diskussion:

 

http://www.DVBViewer.info/forum/index.php?...st&p=182371

 

Ein guter Startpunkt ist trotzdem auf jeden Fall das myInternet-Plugin.

 

Man könnte natürlich versuchen die DLL die OSD-Funktionalität bewerkstelligen zu lassen und die restlichen Sachen in einer Standalone-Applikation, die mit der DLL kommuniziert, zu implementieren.

 

Stefan.

Link to comment

Also so weit wie ich das überblicke kann man überblicke kann man über das COM Interface eigentlich alle schon vorhandenen Arten von Dialogen im OSD Nutzen (z.B. mit GetText das OnScreenKeyboard) und mit eigenen Texten versehen (z.B. showpopup für eine Auswahlliste hier).

 

Aber zu Kopfletten neu gestalten einer Seite habe ich noch nichts gefunden.

Link to comment
Es ist richtig, die OSD-Schnittstelle (IOSDWindowManager) kann nur im DVBViewer-Prozessraum angesprochen werden, also über eine Plugin.DLL. Es gab dazu hier eine Diskussion:

http://www.DVBViewer.info/forum/index.php?...st&p=182371

Ok, das hatte ich zwar gelesen, aber nicht verstanden. Jetzt wird es etwas klarer. ;-)

 

Ein guter Startpunkt ist trotzdem auf jeden Fall das myInternet-Plugin.

Das werde ich mir dann mal als nächstes ansehen. Ich habe erstmal versucht, das myPrograms-Plugin zu verstehen.

 

Wie debuggt ihr denn die DVBViewer-Plugins? Klar, ich habe den DVBViewer in Delphi 7 als Host-Application eingetragen. Aber dann muss bei jedem Debug-Lauf der DVBViewer hochgefahren werden und ich muss mich jedesmal durch etliche Fehler-Meldungen durchklicken (hier hatte ich das Problem schonmal beschrieben). Das ist total nervig und umständlich.

 

Geht das auch irgendwie komfortabel? ;-)

Edited by dgdg
Link to comment

Starte den DVBViewer mal mit dem Parameter -vanilla.

Ich selber habe eigentlich keine Probleme mit DLL-Debug und starte den Debugger DVBViewer mit nur -debug.

 

Für Input Plugins geht es so bei mir ohne Probleme.

 

Mit was Programierst du? Wenn Delphi 2009 dann musst du bei Version, Namen usw. (geforderte Plugin DLL Exports für DVBViewer) alles von PChar auf PAnsiChar ändern (UNICODE Umstellung).

Ansonsten wird das Plugin nicht geladen und du bekommst nie einen Callback Pointer.

Zum Debugen muss ich auch die Externen Debug Symbole mit erstellen lassen Projekt->Optionen->Delphi-Compiler->Linken

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...