指定のスレッドに関連する子ウィンドウをリストアップする
Declare Function EnumThreadWindows Lib "user32.dll" _
(ByVal dwThreadID As Long, ByVal lpfn As Long, _
lParam As Any) As Long
Declare Function EnumThreadWindows Lib "user32.dll" _
(ByVal dwThreadID As Integer, ByVal lpfn As Integer, _
lParam As Integer) As Integer
BOOL EnumThreadWindows(
DWORD dwThreadId,
WNDENUMPROC lpfn,
LPARAM lParam
);
引数
dwThreadID
スレッドIDlpfn
コールバック関数EnumThreadWndProc()関数へのポインタlParam
コールバック関数に渡すユーザー定義のデータ戻り値
正常終了のとき 0以外備考
エラーのとき 0
AddressOf演算子を使わなければならないので、Visual Basic 5以上が必要。サンプル
lParam As Anyの部分は lParam As ListBoxなどに変更して使う。
ダウンロード(EnumThreadWindows.lzh 1.73KB)Private Sub Command1_Click()
Dim lParam As ListBox
Dim dwThreadId As Long
'カレントスレッドのIDを取得
dwThreadId = GetCurrentThreadId
With Me.List1
.Clear
Set lParam = Me.List1
'関数の実行
Call EnumThreadWindows(dwThreadId, AddressOf EnumThreadWndProc, lParam)
End With
End Sub