Wenn du einen Wrapper schreibst, muss die deine Exportierte Funktion genauso aufgebaut sein, wie die, die du importierst.
Heißt also:
Delphi-Quellcode:
type
TDirect3DCreate9 = function(SDKVersion: LongWord): IDirect3D9; stdcall;
var
OrigDirect3DCreate9: TDirect3DCreate9;
function Direct3DCreate9(SDKVersion: LongWord): IDirect3D9; stdcall;
begin
Result := OrigDirect3DCreate9(...);
// eventl. Result zwischenspeichern und weiterverarbeiten
end;
Und in ProcessAttach solltest dann schon mit GetProcAddress die origianle funktion holen