Les API Windows ont les fonctions ChildWindowFromPoint()
et ChildWindowFromPointEx()
et diffèrent par le fait que ce dernier a le paramètre uFlags spécifiant les fenêtres à ignorer.
Il semble que si je transmets CWP_ALL
dans ChildWindowFromPointEx()
j’obtiendrai exactement le même effet que dans ChildWindowFromPoint()
.
La seule différence dans le paramètre uFlags ? Puis-je utiliser ChildWindowFromPointEx()
partout et passer CWP_ALL
lorsque j’ai besoin du comportement ChildWindowFromPoint()
?
Si cela peut vous aider, j’ai piraté une application de test rapide qui appelle les deux fonctions et est entrée dans le USER32.DLL désassemblé pour voir où vont les appels.
Pour ChildWindowFromPoint
, après un préambule, j’ai atteint ce point:
Le traitement principal a été délégué à l’appel au 75612495
.
Ensuite, pour ChildWindowFromPointEx
, ChildWindowFromPointEx
dans l’assembly et récupère ceci:
Comme ce point d’entrée est la cible de l’appel de la première fonction, il me semble assez clair que ChildWindowFromPoint
appelle ChildWindowFromPointEx
, sans doute avec uFlags
défini sur CWP_ALL
(ma connaissance de l’assembleur est limitée mais j’ai bien call – CWP_ALL
est défini sur zéro).
Si vous souhaitez toujours utiliser ChildWindowFromPointEx avec CWP_ALL, vous pouvez simplement utiliser ChildWindowFromPoint ().
Si vous souhaitez toujours utiliser ChildWindowFromPoint, vous pouvez simplement utiliser ChildWindowFromPointEx avec CWP_ALL.
ChildWindowFromPoint est équivalent à ChildWindowFromPointEx avec CWP_ALL.
Conseil: utilisez ChildWindowFromPointEx (vous pourrez peut-être un jour utiliser d’autres indicateurs)