<Return[G]><Top>

GetWindowLongPtr

Declare Function Api_GetWindowLongPtr& Lib "user32" Alias "GetWindowLongPtrA" (ByVal hWnd&, ByVal nIndex&)

Declare Function GetWindowLongPtr Lib "user32" Alias "GetWindowLongPtrA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

指定されたウィンドウに関する情報を取得する。ウィンドウの拡張ウィンドウメモリ内の指定されたオフセット位置にある値もこの関数を使って取得できる。
この関数は、GetWindowLong 関数の改訂版である。32 ビット版 Windows と 64 ビット版 Windows の両方ともと互換性のあるコードを記述するには、GetWindowLongPtr 関数を使う。

パラメータ
hWnd
    ウィンドウのハンドルを指定する。
nIndex
    取得する値に 0 から始まるオフセットを指定する。有効なオフセットは、0 から拡張ウィンドウメモリのバイト数 -8 までである。たとえば、拡

    張メモリが 24 バイト以上ある場合、16 を指定すると、3 番目の整数値が取得できる。その他の値を取得するときは、次のいずれかの値を

    指定する。

    値                                   

動作                                                                                                                                       

    GWL_EXSTYLE

拡張ウィンドウスタイルを取得する。

    GWL_STYLE

ウィンドウスタイル を取得する。

    GWL_WNDPROC

 

ウィンドウプロシージャのアドレス、またはウィンドウプロシージャのアドレスを示すハンドルを取得する。

取得したウィンドウプロシージャを呼び出すには、CallWindowProc 関数を使わなければならない。

    GWL_HINSTANCE

アプリケーションのインスタンスハンドルを取得する。

    GWL_HWNDPARENT

親ウィンドウがあれば、そのハンドルを取得する。

    GWL_ID

ウィンドウの ID を取得する。

    GWL_USERDATA

 

 

ウィンドウに関連付けられている 32 ビット値を取得する。

各ウィンドウは、それに対応する 32 ビット値を持っている。

この値は、ウィンドウを作成したアプリケーションが自由に使用できるもので、0 で初期化されている。

    hWnd パラメータで指定したウィンドウがダイアログボックスの場合は、次の値も指定できる。

    値                                   

動作                                                                                                                                       

    DWL_DLGPROC

 

 

ダイアログボックスプロシージャのアドレス、またはダイアログボックスプロシージャのアドレスを示すハンドルを取

得する。取得したダイアログボックスプロシージャを呼び出すには、CallWindowProc 関数を使わなければなら

ない。

    DWL_MSGRESULT

ダイアログボックスプロシージャ内で処理されたメッセージの戻り値を取得する。

    DWL_USER

ハンドルやポインタなどの、アプリケーション固有の拡張情報を取得する。


戻り値
    関数が成功すると、要求した値が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。

 

解説

    拡張ウィンドウメモリは、RegisterClassEx 関数に渡す WNDCLASSEX 構造体の cbWndExtra メンバに 0 以外の値を設定することによっ

    て確保する。