Zhiyi Zhang (@zhiyi) commented about dlls/comctl32/tests/propsheet.c:
- SetFocus(hotkey_dialog);
- control = (HWND)SendMessageA(hotkey_dialog, PSM_GETCURRENTPAGEHWND, 0, 0);
- active_page = (LONG)SendMessageA(hotkey_dialog, PSM_HWNDTOINDEX, (WPARAM)control, 0);
- ok(active_page == 0, "Got %ld\n", active_page);
- inputs[0].ki.wVk = VK_CONTROL;
- inputs[0].ki.dwFlags = 0;
- inputs[1].ki.wVk = VK_NEXT;
- inputs[1].ki.dwFlags = 0;
- inputs[2].ki.wVk = VK_NEXT;
- inputs[2].ki.dwFlags = KEYEVENTF_KEYUP;
- inputs[3].ki.wVk = VK_CONTROL;
- inputs[3].ki.dwFlags = KEYEVENTF_KEYUP;
- SendInput(4, inputs, sizeof(INPUT));
- WaitForSingleObject(active_page_changed, 1000);
I would send a custom message to the window and call flush_events(). Then you can remove active_page_changed and WaitForSingleObject(hotkey_dialog_idle).