From: Jacob Czekalla <jczekalla(a)codeweavers.com> --- dlls/comctl32/propsheet.c | 11 +++++++++++ dlls/comctl32/tests/propsheet.c | 6 +++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/dlls/comctl32/propsheet.c b/dlls/comctl32/propsheet.c index b530a1a8094..4f0c4170816 100644 --- a/dlls/comctl32/propsheet.c +++ b/dlls/comctl32/propsheet.c @@ -3625,6 +3625,17 @@ PROPSHEET_DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) psInfo->ppshheader.pszCaption); } + for (int index = 0; index < psInfo->nPages;) + { + if (HPSP_get_flags(psInfo->proppage[index].hpage) & PSP_PREMATURE) + { + if (!PROPSHEET_CreatePage(hwnd, index, psInfo, psInfo->proppage[index].hpage)) + PROPSHEET_RemovePage(hwnd, index, NULL); + else + index++; + }else + index++; + } if (psInfo->useCallback) (*(psInfo->ppshheader.pfnCallback))(hwnd, PSCB_INITIALIZED, 0); diff --git a/dlls/comctl32/tests/propsheet.c b/dlls/comctl32/tests/propsheet.c index e4011231ecc..0e0ef8fabee 100644 --- a/dlls/comctl32/tests/propsheet.c +++ b/dlls/comctl32/tests/propsheet.c @@ -1434,13 +1434,13 @@ static void test_init_page_creation(void) hp = (HWND)pPropertySheetA(&psh); hwnd_page = (HWND)SendMessageA(hp, PSM_INDEXTOHWND, 0, 0); - todo_wine ok(hwnd_page != NULL, "Page 0 not created.\n"); + ok(hwnd_page != NULL, "Page 0 not created.\n"); hwnd_page = (HWND)SendMessageA(hp, PSM_INDEXTOHWND, 1, 0); - todo_wine ok(hwnd_page == NULL, "Page 1 not created.\n"); + ok(hwnd_page == NULL, "Page 1 not created.\n"); hwnd_page = (HWND)SendMessageA(hp, PSM_INDEXTOHWND, 2, 0); - todo_wine ok(hwnd_page != NULL, "Page 2 not created.\n"); + ok(hwnd_page != NULL, "Page 2 not created.\n"); DestroyWindow(hp); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/6146