Habe da noch ein verständnis problem
Du schreibst
procedure BASSVIS_Execute(Para:TExecutePara);
Verstehe ich nun nicht so recht
Denn genau diese Funktion sollte exportiert und der ganze andere Kram gelöscht werden.
Das soll dann gelöscht werden
Delphi-Quellcode:
function BASS_WINAMPVIS_ExecuteVis(PluginName: PChar; moduleNum: integer; ownHdc: boolean; ownHdcW2: boolean): HVIS; stdcall; external TheDll;
function BASS_SONIQUEVIS_CreateVis(f, visconfig:PChar; flags, w, h: DWORD):HVIS; stdcall; external TheDll;
function BASS_WMPVIS_ExecuteVis(PlgListIndex: Integer; PresetIndex: Integer; VisWinhandle: DWORD; Left, Top, width, heigth: Integer): HVIS; stdcall; external TheDll;
Also eine Funktion für drei.
Aber alle Funktionen der verschiedenen Typen mit obiger procedure ausführbar sein.
Denke dann mal das diese so nicht bleiben kann.
Ich müßte sie dann so umschreiben wie diese
BASSVIS_ExecuteVis(Kind: BASSVIS_KIND_T; PluginName: PChar; moduleNum: integer; ownHdc: boolean; ownHdcW2: boolean):HVIS; stdcall;
und intern die Originale function umbenennen eg..
ExecuteWinampVis(PluginName: PChar; moduleNum: integer; ownHdc: boolean; ownHdcW2: boolean): HVIS;
kann dann beim vergleich wenn der Type(Kind) Winamp ist
Delphi-Quellcode:
BASSVIS_ExecuteVis(Kind: BASSVIS_KIND_T; PluginName: PChar; moduleNum: integer; ownHdc: boolean; ownHdcW2: boolean):HVIS; stdcall;
begin
case Kind of
BASSVISKIND_WINAMP:
Result := ExecuteWinampVis(PluginName, moduleNum, ownHdc, ownHdcW2)
BASSVISKIND_SONIQUE:
Result := CreateVis(...
BASSVISKIND_WMP.
Result := ExecuteWMPVis(...
else
Result := 0;
end;
end;
in die umbenannte/alte function springen
Anders gehts glaube ich nicht.
gruss Emil