Habe es jetzt geändert..
Hat nichts mit dem Enum zu tun ich bekomme ein StackOverflowException in C#.
Habe im Moment keine Idee wie ich das beheben soll.
Vielleicht ist mein Ansatz auch falsch.
Ich gehe so vor.
Ich starte ein Plugin und setze es als Parent in ein Fenster.
Schließe ich das Fenster dann funktioniert alles normal.
Schließe ich das Plugin im Fenster dann bleibt das Fenster sichtbar.
Das Plugin schickt die Message WM_CLOSE.. und mein Thread wird beendet.
Jetzt sende ich über die Callback die Variable psExternalClose
Delphi-Quellcode:
if (assigned(AmpStateCallback)) then
AmpStateCallback(psExternalClose);
Result := 0;
ExitThread(0);
In Delphi werte ich diese dann so aus.
Delphi-Quellcode:
psExternalClose:
begin
if frm_Gen.Visible then
begin
mVisParam.VisHandle := 0;
frmMain.InfoTimer1.Enabled := false;
frm_Gen.Hide;
frm_Gen.Close;
end;
end;
Das Fenster wird geschlossen und alles ist ok.
Funktioniert in VB6 nicht (ungültige gleitkommaoperation)
und in C# StackOverflowException
Code:
case BASSVIS_PLAYSTATE.ExternalClose:
if (resWin != null)
if (resWin.Visibility == Visibility.Visible)
{
mVisParam.VisHandle = 0;
resWin.Close();
resWin = null;
}
break;
Finde den Fehler einfach nicht.
gruss