Wenn du die
DLL lädst, kannst du doch von deinem Programm aus eine Menge an Funktionen bereitstellen. Beispielsweise könntest du ein eigenes "CreateWindow" bereitstellen und verfügen, daß jegliche Plugins für dein Programm ebendiese Funktion benutzen müssen.
Alternativ stellst du eine Funktion bereit, mit der die DLLs ein Fenster bei deinem Programm "registrieren" müssen. Dein Programm verwaltet dann die Positionierung des Fensters.
Noch eine Alternative wäre, wenn du für bestimmte Messages eine Callback-Funktion bereitstellen würdest (ähnlich oben). Damit hast du die Macht jede Änderung zu verweigern und das Docking selber zu verwalten.