ja war ein großer Fehler habe es korrigiert .. Dake
SetWindowLong(ews^.me, GWL_WNDPROC, LongInt(MainWindowProc));
Die
DLL beendet jetzt allerdings nur wenn ich die Konfig vorher nicht aufgerufen habe welche eine
neue Form im Projekt darstellt.
Ist mir unverständlich warum das schließen dieser mit einer
AV quittiert wird.
Delphi-Quellcode:
procedure Module1_Config(This_mod: PWinAMPVisModule); cdecl;
begin
if (not ConfigVisible) then
begin
Form1 := TForm1.Create(nil);
try
begin
ConfigVisible := True;
if assigned(VisForm) then
VisForm.Timer1.Enabled:=false;
Form1.ShowModal;
end;
finally
begin
Form1.Free;
ConfigVisible := False;
end;
end;
end;
end;
Diese wird Modal aufgerufen und wenn geschlossen wieder frei gegeben.
Solange wie ich diese nicht aufrufe funktioniert alles
wird sie aufgerufen und die
DLL beenden
Delphi-Quellcode:
procedure Module1_Quit(This_Mod: PWinAMPVisModule);
begin
SetWindowLong(ews^.me, GWL_WNDPROC, integer(MainWindowProc));
VisForm.Timer1.Enabled := False;
VisForm.Close;
VisForm.Free;
Form1.free; <---
if waver >= $2901 then
begin
SendMessage(this_mod^.hWNDParent, WM_WA_IPC, 0, IPC_SETVISWND);
DestroyWindow(ews^.me);
GlobalFree(HGLOBAL(ews));
end;
end;
gibt es den
AV
gruss Emil