GetWindowLongPtr

https://msdn.microsoft.com/ja-jp/library/ms632600.aspx https://msdn.microsoft.com/ja-jp/library/ms633577.aspx

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

LONG_PTR GetWindowLongPtr(
  HWND hWnd,  // ウィンドウのハンドル
  int nIndex  // 取得する値のオフセット
);

パラメータ

hWnd
ウィンドウのハンドルを指定します。
nIndex
取得する値に 0 から始まるオフセットを指定します。有効なオフセットは、0 から拡張ウィンドウメモリのバイト数 -8 までです。たとえば、拡張メモリが 24 バイト以上ある場合、16 を指定すると、3 番目の整数値が取得できます。その他の値を取得するときは、次のいずれかの値を指定します。
動作
GWL_EXSTYLE拡張ウィンドウスタイルを取得します。
GWL_STYLEを取得します。
GWLP_WNDPROCウィンドウプロシージャへのポインタ、またはウィンドウプロシージャへのポインタを表すハンドルを取得します。ウィンドウプロシージャを呼び出すには、CallWindowProc 関数を使わなければなりません。
GWLP_HINSTANCEアプリケーションインスタンスのハンドルを取得します。
GWLP_HWNDPARENT親ウィンドウがある場合、そのハンドルを取得します。
GWLP_IDウィンドウ ID を取得します。
GWLP_USERDATAウィンドウに関連付けられた 32 ビット値を取得します。この 32 ビット値は、ウィンドウを作成したアプリケーションで使用する目的で各ウィンドウが持っているものです。この値の初期値は 0 です。

hWnd パラメータでダイアログボックスを指定しているときは、次の値も指定できます。

動作
DWLP_DLGPROCダイアログボックスプロシージャへのポインタ、またはダイアログボックスプロシージャへのポインタを表すハンドルを取得します。ダイアログボックスプロシージャを呼び出すには、CallWindowProc 関数を使わなければなりません。
DWLP_MSGRESULTダイアログボックスプロシージャ内で処理されたメッセージの戻り値を取得します。
DWLP_USERハンドルやポインタなどのアプリケーション固有の拡張情報を取得します。

戻り値

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

解説

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

対応情報

  Windows NT/2000:Windows NT 3.1 以降
  Windows 95/98:Windows 95 以降
  Windows CE:Windows CE 1.0 以降
  ヘッダー:winuser.h 内で宣言
  インポートライブラリ:user32.lib を使用
  Unicode:Windows NT/2000 は Unicode 版と ANSI 版を実装

参照

CallWindowProcRegisterClassExSetParentSetWindowLongPtr

表示: