ヘッダーファイルWinUser.h
には、第2引数の定数をSetWindowLong()
定義している部分があります。
// ...
#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)
// ...
_WIN64
ただし、定義されている場合は未定義の直後です。私の64ビットシステムで定義されています。
ご覧のとおり、GWLP_***
一連の定数もありますが、 のページには記載されていませんSetWindowLong()
。
これらの定数が x64 システムで定義されていないのはなぜですか? x64 システム
で呼び出す別の方法は何ですか?SetWindowLong()
私のシステム:
OS: Windows 7 Ultimate x64 SP1
IDE: Visual Studio 2012 Ultimate Update 3