Aber wie gesagt die Messagen machen Probleme.
MagneticWnd.WMMoving(Msg);
Das macht keine sinn auf diese Weise..
// EDIT:
Weil du in der WndProc bist, das hatte ich überlesen.
Wie wäre es so:
Delphi-Quellcode:
procedure TfrmChild2.WMMoving(var Msg: TMessage);
var
MagneticWnd: IMagneticWnd;
begin
MagneticWnd := CTRL_MagneticWindowCreate;
MagneticWnd.WMMoving(Msg);
end;
Das ginge, allerdings sollte der Aufruf von CTRL_MagneticWindowCreate besser in das FormCreate und FMagneticWnd ein privates Feld sein. Dann kannst du direkt FMagneticWnd.WMMoving(Msg) aufrufen ohne vorher bei jeder Message das Interface aus der
DLL neu zu holen (das wäre viel zu langsam, Messages sollten so schnell wie irgend möglich beantwortet werden).