StatusProc bekommt ja die Daten zum Speichern. Je nachdem, was der User durch vorheriges Knöpfchendrücken gewünscht hat, sollen die Daten gespeichert oder verworfen werden. Also:
Delphi-Quellcode:
procedure StatusProc(buffer: Pointer; len, user: DWORD); stdcall;
begin
// Ok, bass.dll hat neue Titel-Informationen bekommen
// das sollte man wohl immer machen
if (buffer <> nil) and (len = 0) then
SendMessage(win, WM_INFO_UPDATE, 8, DWORD(PChar(buffer)))
else
begin
// Daten zum Aufnehmen angekommen
If UserWillAufnehmen then
begin
// Sicherheitsabfrage - ist ein FileStream vorhanden,um die Daten zu speichern?
if assigned(FileStream) then
begin
if (buffer = nil) then
FreeAndNil(FileStream); // Aufnahme beenden
else
FileStream.Write(buffer^, len); // Daten speichern
end;
end else
// nichts machen, user will nicht aufnehmen.
end;
end;
Das Erzeugen des FileStreams würde ich beim ButtonClick machen, also so:
Delphi-Quellcode:
procedure TForm1.ButtonStartAufnahmeClick(Sender: TObject);
begin
UserWillAufnehmen := True;
FileStream := TFileStream.Create ... // usw., Zeug aus der StopRec
end;
Und beim Stoppen dann in etwa sowas:
Delphi-Quellcode:
procedure TForm1.ButtonStoppAufnahmeClick(Sender: TObject);
begin
UserWillAufnehmen := False;
FreeAndNil(FileStream);
end;
The angels have the phone box.