Hi,
für ein Plugin System solltest du dir vielleicht lieber das Observer-Pattern anschauen.
Dieses Pattern kommt immer dann zum Einsatz, wenn du mehrere Komponenten über den Zustand einer anderen konsistent gehalten werden müssen.
Dabei gibt es zwei Rollen, die Observer und das Observable. Die Rollen sind dann auch recht klar, dein Button (als Beispiel) wäre natürlich das beobachtete Objekt, die Plugins wären die Beobachter. Jetzt musst du nur noch dafür sorgen, dass alle Observer etwas von einer Zustandsänderung merken. Dazu musst du nur das Registrieren/Deregistieren bestimmter Listener zulassen. Ein Listener ist dabei entweder ein Objekt, dass eine bestimmte Schnittstelle implementiert, aber kann natürlich auch ein Funktionszeiger (beliebiger Art) sein. Das kannst du festlegen.
Die müssen halt nur noch in einer Liste gespeichert werden und bei einem OnClick rufst du einfach die Funktion für alle gespeicherten Elemente auf (z.B. alle Funktionszeiger). Damit kannst du dann leicht mehr als eine
Dll darüber informieren, dass ein Button gedrückt wurde.
Wer sich dafür interessiert registriert sich dann einfach als Observer bei deinem Observable.
Gruß Der Unwissende