Selber würde ich nicht versuchen da ranzukommen, da Delphi diese Verknüpfungsinformation (WindowsControl > DelphiControl) eher dynamisch versteckt ablegt ... falls die daran mal was ändern.
Delphi-Quellcode:
function IsVCLControl(
Handle: HWND): Boolean;
function FindControl(
Handle: HWND): TWinControl;
Aus der
Unit Controls.
FindControl gibt aber auch direkt NIL zurück, wenn es kein VCLControl ist.
Die VCL hängt die VCL-Objekt-Instanz als Atom ans WinControl und eventuell kann man auch versuchen über SendMessage+RM_GetObjectInstance die Instanz zu erhalten.
Klappt natürlich nur in der eigenen Anwendung, da man ja das fremde Atom und die MessageID nicht unbedingt kennt (was man aber eventuell dennoch rausbekommen kann).
Ein Therapeut entspricht 1024 Gigapeut.