Du übergibst, vermutlich ohne zu wissen warum, ein
Handle an AdsSyncAddDeviceNotificationReq, im vorletzten Parameter.
wenn man mal hier reinschaut, dann ist dieser Parameter für einen Benutzerdefinierten Wert, welcher dann über hUser an NotificationCallback weitergegeben wird.
http://infosys.beckhoff.com/index.ph...ionReq.htm&id=
Man könnte da also ganz einfach seine ID übergeben.
Super, dass war der entscheidende Hinweis.
Der der Quellcode sieht dann so aus:
Delphi-Quellcode:
[...schnipp...]
Procedure NotificationCallback( pAddr:PAmsAddr;
pNotification:PAdsNotificationHeader;
hUser:Longword ); stdcall;
begin
PostMessage(HWND(hUser), hUser , 0, 0); //"hUser" enthält die übergebene Message-ID
end;
[...schnipp...]
Damit wird eine Windows-Message mit der zuvor dem Objekt übergebenen Message-ID erzeugt.
Anschließend wird dann wie erwartet
.WndProc
aufgerufen.
Delphi-Quellcode:
[...schnipp...]
procedure TMeineKlasse.WndProc(var Message: TMessage);
begin
if Message.msg = MessageID then
begin
// mach was
end;
inherited;
end;
[...schnipp...]
Allerdings enthält
.msg
eine andere ID.
Im Beispiel wird
PostMessage
mit der ID "33169" (hUser=33169) aufgerufen und in
Message.msg
kommt aber "45091" an.
Muss ich hier noch etwas beachten oder berücksichtigen?