Als Ergänzung: Ich hätte jetzt so etwas erwartet...
Delphi-Quellcode:
// in der DLL
unit DllPlugin;
uses
PluginInterface;
type
TPlugin =
class(TInterfacedObject, IPlugin)
private
FSkinBrowseForFile: ISkinBrowseForFile;
function GetSkinBrowseForFile: ISkinBrowseForFile;
public
property SkinBrowseForFile: ISkinBrowseForFile
read GetSkinBrowseForFile;
end;
// veröffentlichen als DLL Funktion
function InitPlugin: IPlugin;
begin
Result := TPlugin.Create;
end;
exports
InitPlugin
end.
Analog könntest du natürlich auch das hier genannte Interface so veröffentlichen, aber ich vermute das ist nicht das einzige.
Und dann in der Anwendung:
Delphi-Quellcode:
uses
PluginInterface;
var
Plugin: IPlugin;
begin
...LoadLibrary...
DllInitPlugin := GetProcAddress(...);
Plugin := DllInitPlugin;
//...
SkinBrowseForFile := Plugin.SkinBrowseForFile;
SkinBrowseForFile.WMMoving(Msg);