Comment puis-je appeler SetWindowLong () dans les versions 64 bits de Windows?

Dans le fichier d'en-tête WinUser.hil y a une partie dans laquelle les constantes de la deuxième paramètre de SetWindowLong() sont définis.

//...

#define GWL_WNDPROC         (-4)
#define GWL_HINSTANCE       (-6)
#define GWL_HWNDPARENT      (-8)
#define GWL_STYLE           (-16)
#define GWL_EXSTYLE         (-20)
#define GWL_USERDATA        (-21)
#define GWL_ID              (-12)

#ifdef _WIN64

#undef GWL_WNDPROC
#undef GWL_HINSTANCE
#undef GWL_HWNDPARENT
#undef GWL_USERDATA

#endif /* _WIN64 */

#define GWLP_WNDPROC        (-4)
#define GWLP_HINSTANCE      (-6)
#define GWLP_HWNDPARENT     (-8)
#define GWLP_USERDATA       (-21)
#define GWLP_ID             (-12)

//...

Mais ils sont juste après undefined si _WIN64 est défini; et il est défini dans mon système 64 bits.

Comme vous le voyez, il y a aussi un GWLP_*** ensemble de constantes, mais elles ne sont pas documentées dans la page de SetWindowLong().

Pourquoi ces constantes de undefined dans les systèmes x64?
Qu'est-ce que l'alternative de l'appel de SetWindowLong() dans les systèmes x64?


Mon système:
Système d'exploitation: Windows 7 Ultimate x64 SP1
IDE: Visual Studio 2012 Ultimate mise à Jour 3

source d'informationauteur hkBattousai