| |
![zurück](../images/b_zurueck.gif)
Fortgeschrittene ProgrammierungCallback/Delegat Problem | | ![](../images/trans.gif) | Autor: Schü | Datum: 11.12.06 11:41 |
| Hallo Leute!
Ich hoffe Ihr könnt mir helfen, da das folgende Problem für mich nicht lösbar scheint.
Ich hatte schon in diversen anderen Foren probiert, allerdings hab' ich's nicht gerafft oder ich hab's nich richtig erklärt.
Es geht darum:
Eine fremde Anwendung (WhereIsIt) www.whereisit-soft.com gibt pfiffigen Programieren die Möglichkeit eigene
Plugins (.dll) für diese Anwendung zu schreiben und in das Hauptprogramm einzubinden. WhereIsIt.exe ist in Delphi programiert.
Ich versuche nun krampfhaft ein Programmgerüst mit VB 2005 Express zu erstellen, um diese Kommunikation zu ermöglichen. Der eigentliche Code,
den meine DLL enthällt ist eigentlich bereits fertig.
Im Prinzip benötigt mein Plugin einige vorgeschriebene Funktionen und Callback-Prozeduren.
Um das ganze abzukürzen hier eine Funktion und ein Callback zur Verdeutlichung:
<The RegisterDescPlugins function is called during module initialization. Description module is expected to provide WhereIsIt
with information about available description plugins in this module. RegisterDescPlugins function receives as a parameter the
address of callback function to be used for registering plugins. A function with this name must be exported from your DLL file
for WhereIsIt to accept it as a description module. >
VOID RegisterDescPlugins(
PROC lpRegisterPlugin, // pointer to a callback function
);
<The RegisterPlugin function is provided by WhereIsIt, and is received as a parameter with the RegisterDescPlugins function.
Your module will call RegisterPlugin from the RegisterDescPlugins function, once for each description plugin available in your module.
Parameters to this function will provide everything WhereIsIt needs to know about the specified plugin.>
INT RegisterPlugin(
WORD wPluginID, // unique plugin's ID inside your description module
BYTE byPluginType, // specifies plugin type
LPTCSTR lpszPluginName, // specifies the name of the plugin, as visible to users
LPTCSTR lpszPluginMask, // address of buffer to store plugin's target file masks
PROC lpConfigProc // address of function used to configure plugin
);
Also ich verstehe das folgendermaßen: Meine DLL braucht eine Sub, der ein Funktionszeiger übergeben wird.
Diese Callback-Funktion des externen Programms muß ich nun aufrufen mit entsprechenden Parametern. Das muß ich aber je
nach Anzahl der in meiner DLL enthaltenen Module mehrfach machen. D.H. nicht sofort sondern in einer getrennten Prozedur
hier 'RunCallback'
ich hab also folgendes in .NET 2.0 gemacht:
Public Delegate Function RegisterCallback(ByVal wPluginID as Int32, _
ByRef byPluginType as Int32,<MarshalAs(UnmanagedType.LPTStr)> ByRef lpszPluginName as String, _
<MarshalAs(UnmanagedType.LPTStr)> ByRef lpszPluginMask as String,ByVal lpConfigProc as Int32) as Int32
Public Sub RegisterDescPlugins(ByVal lpRegisterPlugin as Int32)
'Hier Callback's aufrufen...
RunCallback
End Sub
Private Sub RunCallback
'Übergabe der Parameter an externe Prozedur...
'Wie????
End Sub
Public Sub ConfigMyPlugin()
'....
End Sub
Aber wie rufe ich die Callback-Funktion des externen Programms auf, dessen Addresse mir
in der Sub 'RegisterDescPlugins' übergeben wird???
Schü | ![](../images/trans.gif) |
![](../images/48x48/info.gif) | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
![nach oben](../images/b_top.gif) ![zurück](../images/b_zurueck.gif) |
|
sevISDN 1.0 ![sevISDN f?r VB/VBA und VB.NET](../images/werbung/sevisdn_100x116.gif)
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevOutBar 4.0 ![sevOutBar f?r VB/VBA und .NET](../images/werbung/sevoutbar4_100x97.gif)
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|