Mal ans eingemachte
Mit dieser funktion Initialisiere ich zum beispiel Winamp-Plugins
Delphi-Quellcode:
function BASS_WINAMPVIS_Init(AppHandle: DWORD; WinHandle: DWORD): boolean; stdcall;
begin
try
ApplicationHandle := AppHandle;
FormParentHandle := WinHandle;
BassVis1 := TBassVis.Create(nil);
finally
// Nothing
end;
result := True;
BassVisInit := Result;
end;
Delphi-Quellcode:
constructor TBASSVis.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
DecodeChannel := 0;
FPlayerMode := plmStandby;
FStreamName := '';
FStreamInfo.FileName := nil;
FStreamInfo.FileSize := 0;
FStreamInfo.SampleRate := 0;
FStreamInfo.Pos := 0;
FStreamInfo.Len := 0;
FStreamInfo.PlaylistFileLength := 0;
FStreamInfo.PlaylistPos := 0;
....
destructor TBASSVis.Destroy;
Kann ich die INIT Routine so belassen wenn ich zu dieser funktion das Kind addiere?
Und den Namen BASS_WINAMPVIS_Init nach BASSVIS_Init umbenenne.
function BASSVIS_Init(Kind: BASSVIS_KIND_T; AppHandle: DWORD; WinHandle: DWORD): boolean; stdcall;
theoretisch müßte ja dann bei jeden neuen aufruf von INIT zuerst Destroy ausgelößt werden
das wäre ja dann ein automatisches beenden der classe.
In Destroy müßte dann nur das Kind verglichen werden um das vorher aktivierte Plugin zu beenden.
Wäre das eine Lösung ? bzw.. welchen Namen könnte man der Function übergeben das
es unter allen anderen Sprachen korrekt interpretiert wird.
gruss Emil