Hallo,
Ich entwickle derzeit einen OPC Client und habe ein Problem beim OnDataChange Event im IAdvise Interface.
Ich brauche das OPCHANDLE (DWORD) eines Items. Bei meinem IAdvise erhalte ich auch dieses durch:
Delphi-Quellcode:
procedure TOPCAdviseSink.OnDataChange(const formatetc: TFormatEtc; const stgmed: TStgMedium);
var
PG: POPCGROUPHEADER;
PI1: POPCITEMHEADER1ARRAY;
PI2: POPCITEMHEADER2ARRAY;
...
begin
.
.
ClientHandle := PI1[I].hClient;
.
.
end;
Allerdings hat jetzt der Wert ClientHandle immer nur den nächsten Index des Items aus der aktuellen Liste die durch OnDataChange übergeben wird. Das bringt so ja nix, da ja nie eindeutig erkennbar ist welches Item eigentlich dahinter steckt. Im Grunde kein
Handle sondern ein Index von 0..n
Jetzt die Frage: Wie bekomme ich das "wahre"
Handle des jeweiligen Item's raus??
Kennt sich jemand damit aus? Dürfte eigentlich nicht schwierig sein, vielleicht mach ich auch ein Fehler (Falsches .Create?!).
Gruss
Andreas