Keine Ahnung, warum das nicht funktioniert.
Während die Interfaces welcomeplugin und Creator eine direkte Interface-Implementation haben, wird der notifier nochmal abgeleitet:
Delphi-Quellcode:
/// <summary>
/// Interface for notify Welcome Page Plugin about showing, closing or resizing
/// </summary>
INTAWelcomePagePluginNotifier280 = interface(IUnknown)
['{B157D07D-3332-41E6-85A9-5E01210F3856}']
/// <summary>
/// Event to display main Plugin View (the equivalent of OnShow)
/// </summary>
procedure ViewShow(Sender: TWinControl);
/// <summary>
/// Event to hide/close the main Plugin View
/// </summary>
procedure ViewHide;
/// <summary>
/// Event when the main Plugin View size change
/// </summary>
procedure ViewResize(AColumnSpan, ARowSpan: Integer);
end;
INTAWelcomePagePluginNotifier = interface(INTAWelcomePagePluginNotifier280)
['{38B3EA34-D832-48D0-AF84-7449EB28D221}']
end;
Eigentlich sollte es so sein, dass man beide Interfaces in die Class-Definition aufnehmen kann, funktioniert aber beides nicht (also die Aufnahme funktioniert, nur werden die implementierten Prozeduren nicht aufgerufen).
Edit: Ich vermute mal:
- INTAWelcomePageContentPluginCreator ist als interface von (INTAWelcomePagePlugin) definiert.
Registriert wird aber nur WelcomePagePluginService.RegisterPluginCreator(TWP DemoPlugInCreator.Create);
Wobei TWPDemoPlugInCreator als INTAWelcomePagePlugin definiert ist.
Wenn ich jetzt in die Creator-Klasse eine weitere Ableitung aufnehme (das Notifier-Interface, das von IUnknown abgleitet ist), dann wird das vom Service wohl nicht berücksichtigt.