指定されたウィンドウに関しての情報を取得します。また、拡張ウィンドウメモリから、指定されたオフセットにある32ビット値を取得することもできます。
ポインタまたはハンドルを取得する場合、この関数は GetWindowLongPtr に取って代わられています。これは、ポインタやハンドルが32ビット版 Windows では32ビットであるのに対し、64ビット版 Windows では64ビットであるためです。32ビット版と64ビット版の Windows で共通して利用できるコードを記述する場合には、 GetWindowLongPtr 関数を使用する必要があります。
LONG GetWindowLongA( HWND hWnd, // ウィンドウハンドル int nIndex // 取得するデータの指定 );
USER32.DLL
情報を取得するウィンドウのハンドルを指定します。
どの情報を取得するのかを指定します。
拡張ウィンドウメモリからデータを取得するときは、 0 から始まるオフセットをバイト単位で指定します。有効なオフセットは、 0 から (拡張ウィンドウメモリのバイト数 - 4) までです。
拡張ウィンドウメモリ以外の値を取得するには、次のいずれかを指定します。
値 | 取得される属性 |
---|---|
-4 (GWL_WNDPROC) | ウィンドウプロシージャのアドレス
直接ウィンドウプロシージャを呼び出すには CallWindowProc 関数を使わなければなりません。 |
-6 (GWL_HINSTANCE) | アプリケーションのインスタンスハンドル |
-8 (GWL_HWNDPARENT) | 親ウィンドウのハンドル |
-16 (GWL_STYLE) | ウィンドウスタイル |
-20 (GWL_EXSTYLE) | 拡張ウィンドウスタイル |
-21 (GWL_USERDATA) | ウィンドウに関連付けられたアプリケーション定義の32ビット値 |
-12 (GWL_ID) | ウィンドウ ID |
hWnd パラメータがダイアログボックスのハンドルである場合には、以下の値を指定することもできます。
値 | 取得される属性 |
---|---|
0 (DWL_MSGRESULT) | ダイアログボックスプロシージャで処理されたメッセージの戻り値 |
4 (DWL_DLGPROC) | ダイアログボックスプロシージャのアドレス
直接ダイアログボックスプロシージャを呼び出すには CallWindowProc 関数を使わなければなりません。 |
8 (DWL_USER) | アプリケーション定義の情報(ハンドルやポインタなど) |
成功すると、取得された32ビット値が返ります。
失敗すると 0 が返ります。拡張エラー情報を取得するには、 GetLastError 関数を使います。
取得した値が 0 だったとき、成功しても 0 が返ります。この問題を解決するには、 SetLastError 関数を引数 0 で呼び出してから、 GetWindowLong 関数を呼び出します。関数が失敗すると、直後に呼び出す GetLastError 関数が 0 以外の値を返します。
拡張ウィンドウメモリは、 RegisterClassEx 関数に渡す WNDCLASSEX 構造体(または RegisterClass 関数に渡す WNDCLASS 構造体)の cbWndExtra メンバに 0 以外の値を設定することによって確保します。
Windows 95 以降 / Windows NT 3.1 以降