Dein Problem ist doch, dass Du das Form nur einmal erzeugen kannst? Das liegt ja hier dran:
Delphi-Quellcode:
if MainWnd =
nil then
begin
MainWnd := TMainWnd.Create(
nil);
MainWnd.ParentWindow :=
handle;
...
MainWnd.show;
end
else begin
MainWnd.ParentWindow :=
handle;
MainWnd.show;
end;
Du solltest, sofern Du das Formular mehrfach haben möchtest, einfach diese Funktion abändern. Die erzeugten Formulare könntest Du mit einer TList oder so verwalten, um sie wieder sauber frei zugeben.
Das dieselbe
DLL mehrfach geladen werden kann, bezweifle ich.