Win32 API EnumWindows
(または)を使用するときにグローバル変数の使用を回避するにはどうすればよいですか?FindChildWindows
私はおおよそ次のコードを持っています:
HWND prog_hwnd;
BOOL CALLBACK ProgEnumProc(HWND hwnd, LPARAM lParam) {
if (...) {
// found the right hwnd, assign it to prog_hwnd;
prog_hwnd = hwnd;
return FALSE;
}
return TRUE;
}
void FindProgHwnd()
{
EnumWindows(ProgEnumProc, 0);
}
int main()
{
FindProgHwnd();
if (prog_hwnd) {
// found prog_hwnd, but it's global variable
}
}
ご覧のとおり、適切なhwndを見つけるには、グローバル変数を使用する必要がありますprog_hwnd
。グローバル変数の使用は避けたい。それを行う方法はありますか?