Das erste war ein Beispiel wo kein this verwendet wird.
Nun eins mit This die Basis ist die gleiche.
Und auch das funktioniert.
Delphi-Quellcode:
function LanguageService_Dispatch(AMessage: Integer; AReturn: Pointer;
AParams: PPointerArray; AParamCount: Integer): Integer; stdcall;
Delphi-Quellcode:
function LanguageService_Dispatch(AMessage: Integer; AReturn: Pointer;
AParams: PPointerArray; AParamCount: Integer): Integer;
stdcall;
begin
asm
mov This, ecx
end;
Result := Ord(False);
if not Assigned(AReturn)
then
Exit;
///.... bla, bla
case AMessage
of
WASERVICEFACTORY_GETINTERFACE:
begin
Pointer(AReturn^) := This;
Result := Ord(True);
end;
end;
end;
und so weiter.
Zitat:
Ist natürlich ein Hack, aber "besser" als einen
asm-Block vor jedem Methodenauruf finde ich ihn schon.)
Dieser befindet sich innerhalb meiner Funktion.
Es ging mir bei den letzten Antworten nur darum um dir zu zeigen das deine Methode sich von meiner nur wesentlich unterscheidet.
In Kombination mit und ohne This
Aber ich vermute mal das es ihm nicht viel bringt.
Wie gesagt die Winamp_APIService komplett zu veröffentlichen geht leider nicht
da steckt viel zeit und Hirnschmalz drin. Sorry
gruss