GetWindowLong

機能
ウィンドウに関するデータを取得
Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
Declare Function GetWindowInteger Lib "user32.dll" Alias "GetWindowIntegerA" _
(ByVal hWnd As Integer, ByVal nIndex As Integer) As Integer

LONG GetWindowLong(
HWND hWnd,
int nIndex
);
引数
hWnd

取得対象のウィンドウのハンドル
nIndex
取得する項目を示す定数
戻り値
正常終了のとき  nIndexで指定した項目に対する値
エラーのとき  0
nIndexの定数

GWL_EXSTYLE = (-20)                     拡張ウィンドウスタイル
GWL_STYLE = (-16)                       ウィンドウスタイル
GWL_WNDPROC = (-4)                      ウィンドウ関数のアドレス
GWL_HINSTANCE = (-6)                    インスタンスハンドル
GWL_HWNDPARENT = (-8)                   親ウィンドウのハンドル
GWL_ID = (-12)                          ウィンドウのID
GWL_USERDATA = (-21)                    ユーザ定義の32ビット値
サンプル
ダウンロード(GetWindowLong.lzh 1.77KB)

Private Sub Timer1_Timer()
Me.List1.Clear
Dim rc As Long
Dim Pos As PointApi, hWnd As Long
'現在のマウス位置を取得
rc = GetCursorPos(Pos)
'現在のマウス位置にあるウィンドウのハンドル取得
hWnd = WindowFromPoint(Pos.X, Pos.Y)

With Me.List1
    .AddItem "拡張ウィンドウスタイル  &H" + Hex(GetWindowLong(hWnd, GWL_EXSTYLE))
    .AddItem "ウィンドウスタイル  &H" + Hex(GetWindowLong(hWnd, GWL_STYLE))
    .AddItem "ウィンドウ関数のアドレス  &H" + Hex(GetWindowLong(hWnd, GWL_WNDPROC))
    .AddItem "インスタンスハンドル  &H" + Hex(GetWindowLong(hWnd, GWL_HINSTANCE))
    .AddItem "親ウィンドウのハンドル  &H" + Hex(GetWindowLong(hWnd, gwl_hwndparent))
    .AddItem "ウィンドウのID  &H" + Hex(GetWindowLong(hWnd, GWL_ID))
    .AddItem "ユーザー定義の32ビット値  &H" + Hex(GetWindowLong(hWnd, GWL_USERDATA))
End With
End Sub