Im moment fällt mir nur diese lösung ein
Delphi-Quellcode:
Type
PBASSVIS_INFO = ^TBASSVIS_INFO;
TBASSVIS_INFO = record
SongTitle : PChar; // Titel mit vorstehener TitelNr ('1. ')
Songfile : PChar; // SongTitel incl. Pfad
pos : DWORD; // 1000 * Aktuelle Position im Stream
len : DWORD; // Stream länge
PlaylistPos : DWORD; // Playlist Position
Playlistlen : DWORD; // Playlist einträge
SampleRate : integer; // SämpleRate
BitRate : integer; // BitRate
Duration : DWORD; // abgelaufen Zeit
Channels : integer; // Kanäle default 2 (stereo)
end;
var
MyInfo : PBASSVIS_INFO;
function BASSVIS_SetInfo(Param: PBASSVIS_PARAM; Infos: PBASSVIS_INFO): BOOL; stdcall;
begin
// ab jetzt innerhalb der anwendung nur noch mit MyInfo weiterarbeiten
MyInfo := @Infos;
end;
Theoretisch habe ich nun ein Speicherabbild des Record TBASSVIS_INFO
Damit würde ich die Daten immer noch an der richtigen adresse im speicher halten selbst wenn in .NET
der Zeiger auf den speicherbereich verbogen oder dieser freigegeben wird.
weiß aber nicht ob man das so einfach bewerkstelligen kann.
gruss