Registriert seit: 19. Mai 2006
570 Beiträge
Delphi XE3 Professional
|
AW: Wie erstelle ich einen Zeiger auf die Klasseninstanz
13. Jan 2011, 11:52
Delphi-Quellcode:
type
TMyClass = class(...)
public
procedure CallbackProc(pAddr: PAmsAddr; pNotification: PAdsNotificationHeader);
procedure InitCallback;
end;
procedure Callback(pAddr: PAmsAddr; pNotification: PAdsNotificationHeader; hUser: Longword); stdcall;
begin
TMyClass(hUser).CallbackProc(pAddr,pNotification);
end;
procedure TMyClass.CallbackProc(pAddr: PAmsAddr; pNotification: PAdsNotificationHeader);
begin
end;
procedure TMyClass.InitCallback;
var
Result: ...;
begin
Result:=AdsSyncAddDeviceNotificationReq(@serverAddr,ADSIGRP_DEVICE_DATA,
ADSIOFFS_DEVDATA_ADSSTATE,
@adsNotificationAttrib,
@Callback, //hier steht die Adresse der Callback-Routine
Longword(self), //an dieser Stelle will ich den Zeiger der Klasseninstanz übergeben
@hDevNotification);
end;
P.S.: Da war Deep-Sea schneller - aber auch kürzer...
Thomas Nitzschke
Geändert von Thom (13. Jan 2011 um 11:59 Uhr)
|
|
Zitat
|