From: Piotr Caban piotr@codeweavers.com
--- dlls/comctl32/propsheet.c | 370 +++++++++++++++++++------------- dlls/comctl32/tests/propsheet.c | 4 +- 2 files changed, 220 insertions(+), 154 deletions(-)
diff --git a/dlls/comctl32/propsheet.c b/dlls/comctl32/propsheet.c index 3d9ed5b961a..10361d280e1 100644 --- a/dlls/comctl32/propsheet.c +++ b/dlls/comctl32/propsheet.c @@ -99,8 +99,11 @@ struct _PSP { DWORD magic; BOOL unicode; - PROPSHEETPAGEW psp; - PROPSHEETPAGEW callback_psp; + union + { + PROPSHEETPAGEA pspA; + PROPSHEETPAGEW pspW; + }; };
typedef struct tagPropPageInfo @@ -180,6 +183,13 @@ PROPSHEET_DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
WINE_DEFAULT_DEBUG_CHANNEL(propsheet);
+static char *heap_strdupA(const char *str) +{ + int len = strlen(str) + 1; + char *ret = Alloc(len); + return strcpy(ret, str); +} + static WCHAR *heap_strdupW(const WCHAR *str) { int len = lstrlenW(str) + 1; @@ -200,6 +210,18 @@ static WCHAR *heap_strdupAtoW(const char *str) return ret; }
+static char *heap_strdupWtoA(const WCHAR *str) +{ + char *ret; + INT len; + + len = WideCharToMultiByte(CP_ACP, 0, str, -1, 0, 0, 0, 0); + ret = Alloc(len); + WideCharToMultiByte(CP_ACP, 0, str, -1, ret, len, 0, 0); + + return ret; +} + /* * Get the size of an in-memory template * @@ -336,45 +358,64 @@ static UINT get_template_size(const DLGTEMPLATE *template) static DWORD HPSP_get_flags(HPROPSHEETPAGE hpsp) { if (!hpsp) return 0; - return hpsp->psp.dwFlags; + return hpsp->unicode ? hpsp->pspW.dwFlags : hpsp->pspA.dwFlags; }
static void HPSP_call_callback(HPROPSHEETPAGE hpsp, UINT msg) { - if (!(hpsp->psp.dwFlags & PSP_USECALLBACK) || !hpsp->psp.pfnCallback || - (msg == PSPCB_ADDREF && hpsp->psp.dwSize <= PROPSHEETPAGEA_V1_SIZE)) - return; + if (hpsp->unicode) + { + if (!(hpsp->pspW.dwFlags & PSP_USECALLBACK) || !hpsp->pspW.pfnCallback || + (msg == PSPCB_ADDREF && hpsp->pspW.dwSize <= PROPSHEETPAGEW_V1_SIZE)) + return;
- hpsp->psp.pfnCallback(0, msg, &hpsp->callback_psp); + hpsp->pspW.pfnCallback(0, msg, &hpsp->pspW); + } + else + { + if (!(hpsp->pspA.dwFlags & PSP_USECALLBACK) || !hpsp->pspA.pfnCallback || + (msg == PSPCB_ADDREF && hpsp->pspA.dwSize <= PROPSHEETPAGEA_V1_SIZE)) + return; + + hpsp->pspA.pfnCallback(0, msg, &hpsp->pspA); + } }
static const DLGTEMPLATE* HPSP_load_template(HPROPSHEETPAGE hpsp, DWORD *size) { HGLOBAL template; + HINSTANCE hinst; HRSRC res;
- if (hpsp->psp.dwFlags & PSP_DLGINDIRECT) - { - if (size) - *size = get_template_size(hpsp->psp.u.pResource); - return hpsp->psp.u.pResource; - } - if (hpsp->unicode) { - res = FindResourceW(hpsp->psp.hInstance, hpsp->psp.u.pszTemplate, - (LPWSTR)RT_DIALOG); + if (hpsp->pspW.dwFlags & PSP_DLGINDIRECT) + { + if (size) + *size = get_template_size(hpsp->pspW.u.pResource); + return hpsp->pspW.u.pResource; + } + + hinst = hpsp->pspW.hInstance; + res = FindResourceW(hinst, hpsp->pspW.u.pszTemplate, (LPWSTR)RT_DIALOG); } else { - res = FindResourceA(hpsp->psp.hInstance, - (LPCSTR)hpsp->psp.u.pszTemplate, (LPSTR)RT_DIALOG); + if (hpsp->pspA.dwFlags & PSP_DLGINDIRECT) + { + if (size) + *size = get_template_size(hpsp->pspA.u.pResource); + return hpsp->pspA.u.pResource; + } + + hinst = hpsp->pspA.hInstance; + res = FindResourceA(hinst, hpsp->pspA.u.pszTemplate, (LPSTR)RT_DIALOG); }
if (size) - *size = SizeofResource(hpsp->psp.hInstance, res); + *size = SizeofResource(hinst, res);
- template = LoadResource(hpsp->psp.hInstance, res); + template = LoadResource(hinst, res); return LockResource(template); }
@@ -382,37 +423,70 @@ static WCHAR* HPSP_get_title(HPROPSHEETPAGE hpsp, const WCHAR *template_title) { const WCHAR *pTitle; WCHAR szTitle[256]; + const void *title; + HINSTANCE hinst; + + if (hpsp->unicode) + { + title = hpsp->pspW.pszTitle; + hinst = hpsp->pspW.hInstance; + } + else + { + title = hpsp->pspA.pszTitle; + hinst = hpsp->pspA.hInstance; + }
- if (IS_INTRESOURCE(hpsp->psp.pszTitle)) + if (IS_INTRESOURCE(title)) { - if (LoadStringW(hpsp->psp.hInstance, (DWORD_PTR)hpsp->psp.pszTitle, szTitle, ARRAY_SIZE(szTitle))) + if (LoadStringW(hinst, (DWORD_PTR)title, szTitle, ARRAY_SIZE(szTitle))) pTitle = szTitle; else if (*template_title) pTitle = template_title; else pTitle = L"(null)"; + + return heap_strdupW(pTitle); } - else - pTitle = hpsp->psp.pszTitle;
- return heap_strdupW(pTitle); + if (hpsp->unicode) + return heap_strdupW(title); + return heap_strdupAtoW(title); }
static HICON HPSP_get_icon(HPROPSHEETPAGE hpsp) { HICON ret;
- if (hpsp->psp.dwFlags & PSP_USEICONID) + if (hpsp->unicode) { - int cx = GetSystemMetrics(SM_CXSMICON); - int cy = GetSystemMetrics(SM_CYSMICON); + if (hpsp->pspW.dwFlags & PSP_USEICONID) + { + int cx = GetSystemMetrics(SM_CXSMICON); + int cy = GetSystemMetrics(SM_CYSMICON);
- ret = LoadImageW(hpsp->psp.hInstance, hpsp->psp.u2.pszIcon, IMAGE_ICON, - cx, cy, LR_DEFAULTCOLOR); + ret = LoadImageW(hpsp->pspW.hInstance, hpsp->pspW.u2.pszIcon, IMAGE_ICON, + cx, cy, LR_DEFAULTCOLOR); + } + else + { + ret = hpsp->pspW.u2.hIcon; + } } else { - ret = hpsp->psp.u2.hIcon; + if (hpsp->pspA.dwFlags & PSP_USEICONID) + { + int cx = GetSystemMetrics(SM_CXSMICON); + int cy = GetSystemMetrics(SM_CYSMICON); + + ret = LoadImageA(hpsp->pspA.hInstance, hpsp->pspA.u2.pszIcon, IMAGE_ICON, + cx, cy, LR_DEFAULTCOLOR); + } + else + { + ret = hpsp->pspA.u2.hIcon; + } }
return ret; @@ -420,7 +494,9 @@ static HICON HPSP_get_icon(HPROPSHEETPAGE hpsp)
static LRESULT HPSP_get_template(HPROPSHEETPAGE hpsp) { - return (LRESULT)hpsp->psp.u.pszTemplate; + if (hpsp->unicode) + return (LRESULT)hpsp->pspW.u.pszTemplate; + return (LRESULT)hpsp->pspA.u.pszTemplate; }
static HWND HPSP_create_page(HPROPSHEETPAGE hpsp, DLGTEMPLATE *template, HWND parent) @@ -429,13 +505,13 @@ static HWND HPSP_create_page(HPROPSHEETPAGE hpsp, DLGTEMPLATE *template, HWND pa
if (hpsp->unicode) { - hwnd = CreateDialogIndirectParamW(hpsp->psp.hInstance, template, - parent, hpsp->psp.pfnDlgProc, (LPARAM)&hpsp->psp); + hwnd = CreateDialogIndirectParamW(hpsp->pspW.hInstance, template, + parent, hpsp->pspW.pfnDlgProc, (LPARAM)&hpsp->pspW); } else { - hwnd = CreateDialogIndirectParamA(hpsp->psp.hInstance, template, - parent, hpsp->psp.pfnDlgProc, (LPARAM)&hpsp->psp); + hwnd = CreateDialogIndirectParamA(hpsp->pspA.hInstance, template, + parent, hpsp->pspA.pfnDlgProc, (LPARAM)&hpsp->pspA); }
return hwnd; @@ -443,36 +519,67 @@ static HWND HPSP_create_page(HPROPSHEETPAGE hpsp, DLGTEMPLATE *template, HWND pa
static void HPSP_set_header_title(HPROPSHEETPAGE hpsp, const WCHAR *title) { - if (!IS_INTRESOURCE(hpsp->psp.pszHeaderTitle)) - Free((void *)hpsp->psp.pszHeaderTitle); + if (hpsp->unicode) + { + if (!IS_INTRESOURCE(hpsp->pspW.pszHeaderTitle)) + Free((void *)hpsp->pspW.pszHeaderTitle);
- hpsp->psp.pszHeaderTitle = heap_strdupW(title); - hpsp->psp.dwFlags |= PSP_USEHEADERTITLE; + hpsp->pspW.pszHeaderTitle = heap_strdupW(title); + hpsp->pspW.dwFlags |= PSP_USEHEADERTITLE; + } + else + { + if (!IS_INTRESOURCE(hpsp->pspA.pszHeaderTitle)) + Free((void *)hpsp->pspA.pszHeaderTitle); + + hpsp->pspA.pszHeaderTitle = heap_strdupWtoA(title); + hpsp->pspA.dwFlags |= PSP_USEHEADERTITLE; + } }
static void HPSP_set_header_subtitle(HPROPSHEETPAGE hpsp, const WCHAR *subtitle) { - if (!IS_INTRESOURCE(hpsp->psp.pszHeaderTitle)) - Free((void *)hpsp->psp.pszHeaderTitle); + if (hpsp->unicode) + { + if (!IS_INTRESOURCE(hpsp->pspW.pszHeaderTitle)) + Free((void *)hpsp->pspW.pszHeaderTitle);
- hpsp->psp.pszHeaderTitle = heap_strdupW(subtitle); - hpsp->psp.dwFlags |= PSP_USEHEADERSUBTITLE; + hpsp->pspW.pszHeaderTitle = heap_strdupW(subtitle); + hpsp->pspW.dwFlags |= PSP_USEHEADERSUBTITLE; + } + else + { + if (!IS_INTRESOURCE(hpsp->pspA.pszHeaderTitle)) + Free((void *)hpsp->pspA.pszHeaderTitle); + + hpsp->pspA.pszHeaderTitle = heap_strdupWtoA(subtitle); + hpsp->pspA.dwFlags |= PSP_USEHEADERSUBTITLE; + } }
static void HPSP_draw_text(HPROPSHEETPAGE hpsp, HDC hdc, BOOL title, RECT *r, UINT format) { - const WCHAR *text = title ? hpsp->psp.pszHeaderTitle : hpsp->psp.pszHeaderSubTitle; - WCHAR buf[256]; - INT len; + const void *text;
- if (!IS_INTRESOURCE(text)) - DrawTextW(hdc, text, -1, r, format); + if (hpsp->unicode) + text = title ? hpsp->pspW.pszHeaderTitle : hpsp->pspW.pszHeaderSubTitle; else + text = title ? hpsp->pspA.pszHeaderTitle : hpsp->pspA.pszHeaderSubTitle; + + if (IS_INTRESOURCE(text)) { - len = LoadStringW(hpsp->psp.hInstance, (UINT_PTR)text, buf, ARRAY_SIZE(buf)); + WCHAR buf[256]; + INT len; + + len = LoadStringW(hpsp->unicode ? hpsp->pspW.hInstance : hpsp->pspA.hInstance, + (UINT_PTR)text, buf, ARRAY_SIZE(buf)); if (len != 0) DrawTextW(hdc, buf, len, r, format); } + else if (hpsp->unicode) + DrawTextW(hdc, text, -1, r, format); + else + DrawTextA(hdc, text, -1, r, format); }
#define add_flag(a) if (dwFlags & a) {strcat(string, #a );strcat(string," ");} @@ -2946,42 +3053,6 @@ INT_PTR WINAPI PropertySheetW(LPCPROPSHEETHEADERW lppsh) return PROPSHEET_PropertySheet(psInfo, TRUE); }
-static LPWSTR load_string( HINSTANCE instance, LPCWSTR str ) -{ - LPWSTR ret; - - if (IS_INTRESOURCE(str)) - { - HRSRC hrsrc; - HGLOBAL hmem; - WCHAR *ptr; - WORD i, id = LOWORD(str); - UINT len; - - if (!(hrsrc = FindResourceW( instance, MAKEINTRESOURCEW((id >> 4) + 1), (LPWSTR)RT_STRING ))) - return NULL; - if (!(hmem = LoadResource( instance, hrsrc ))) return NULL; - if (!(ptr = LockResource( hmem ))) return NULL; - for (i = id & 0x0f; i > 0; i--) ptr += *ptr + 1; - len = *ptr; - if (!len) return NULL; - ret = Alloc( (len + 1) * sizeof(WCHAR) ); - if (ret) - { - memcpy( ret, ptr + 1, len * sizeof(WCHAR) ); - ret[len] = 0; - } - } - else - { - int len = (lstrlenW(str) + 1) * sizeof(WCHAR); - ret = Alloc( len ); - if (ret) memcpy( ret, str, len ); - } - return ret; -} - - /****************************************************************************** * CreatePropertySheetPage (COMCTL32.@) * CreatePropertySheetPageA (COMCTL32.@) @@ -2999,7 +3070,7 @@ static LPWSTR load_string( HINSTANCE instance, LPCWSTR str ) HPROPSHEETPAGE WINAPI CreatePropertySheetPageA( LPCPROPSHEETPAGEA lpPropSheetPage) { - PROPSHEETPAGEW *ppsp; + PROPSHEETPAGEA *ppsp; HPROPSHEETPAGE ret;
if (lpPropSheetPage->dwSize < PROPSHEETPAGEA_V1_SIZE) @@ -3007,64 +3078,41 @@ HPROPSHEETPAGE WINAPI CreatePropertySheetPageA(
ret = Alloc(sizeof(*ret)); ret->magic = HPROPSHEETPAGE_MAGIC; - ppsp = &ret->psp; + ppsp = &ret->pspA; memcpy(ppsp, lpPropSheetPage, min(lpPropSheetPage->dwSize, sizeof(PROPSHEETPAGEA))); - /* original data is used for callback notifications */ - if ((lpPropSheetPage->dwFlags & PSP_USECALLBACK) && lpPropSheetPage->pfnCallback) - { - memcpy(&ret->callback_psp, lpPropSheetPage, - min(lpPropSheetPage->dwSize, sizeof(PROPSHEETPAGEA))); - }
if ( !(ppsp->dwFlags & PSP_DLGINDIRECT) ) { if (!IS_INTRESOURCE( ppsp->u.pszTemplate )) - { - int len = strlen(lpPropSheetPage->u.pszTemplate) + 1; - char *template = Alloc( len ); - - ppsp->u.pszTemplate = (LPWSTR)strcpy( template, lpPropSheetPage->u.pszTemplate ); - } + ppsp->u.pszTemplate = heap_strdupA( lpPropSheetPage->u.pszTemplate ); }
if (ppsp->dwFlags & PSP_USEICONID) { if (!IS_INTRESOURCE( ppsp->u2.pszIcon )) - ppsp->u2.pszIcon = heap_strdupAtoW( lpPropSheetPage->u2.pszIcon ); + ppsp->u2.pszIcon = heap_strdupA( lpPropSheetPage->u2.pszIcon ); }
if (ppsp->dwFlags & PSP_USETITLE) { - if (IS_INTRESOURCE( ppsp->pszTitle )) - ppsp->pszTitle = load_string( ppsp->hInstance, ppsp->pszTitle ); - else - ppsp->pszTitle = heap_strdupAtoW( lpPropSheetPage->pszTitle ); + if (!IS_INTRESOURCE( ppsp->pszTitle )) + ppsp->pszTitle = heap_strdupA( lpPropSheetPage->pszTitle ); } - else - ppsp->pszTitle = NULL;
if (ppsp->dwFlags & PSP_HIDEHEADER) ppsp->dwFlags &= ~(PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE);
if (ppsp->dwFlags & PSP_USEHEADERTITLE) { - if (IS_INTRESOURCE( ppsp->pszHeaderTitle )) - ppsp->pszHeaderTitle = load_string( ppsp->hInstance, ppsp->pszHeaderTitle ); - else - ppsp->pszHeaderTitle = heap_strdupAtoW( lpPropSheetPage->pszHeaderTitle ); + if (!IS_INTRESOURCE( ppsp->pszHeaderTitle )) + ppsp->pszHeaderTitle = heap_strdupA( lpPropSheetPage->pszHeaderTitle ); } - else - ppsp->pszHeaderTitle = NULL;
if (ppsp->dwFlags & PSP_USEHEADERSUBTITLE) { - if (IS_INTRESOURCE( ppsp->pszHeaderSubTitle )) - ppsp->pszHeaderSubTitle = load_string( ppsp->hInstance, ppsp->pszHeaderSubTitle ); - else - ppsp->pszHeaderSubTitle = heap_strdupAtoW( lpPropSheetPage->pszHeaderSubTitle ); + if (!IS_INTRESOURCE( ppsp->pszHeaderSubTitle )) + ppsp->pszHeaderSubTitle = heap_strdupA( lpPropSheetPage->pszHeaderSubTitle ); } - else - ppsp->pszHeaderSubTitle = NULL;
HPSP_call_callback(ret, PSPCB_ADDREF); return ret; @@ -3086,14 +3134,8 @@ HPROPSHEETPAGE WINAPI CreatePropertySheetPageW(LPCPROPSHEETPAGEW lpPropSheetPage ret = Alloc(sizeof(*ret)); ret->magic = HPROPSHEETPAGE_MAGIC; ret->unicode = TRUE; - ppsp = &ret->psp; + ppsp = &ret->pspW; memcpy(ppsp, lpPropSheetPage, min(lpPropSheetPage->dwSize, sizeof(PROPSHEETPAGEW))); - /* original data is used for callback notifications */ - if ((lpPropSheetPage->dwFlags & PSP_USECALLBACK) && lpPropSheetPage->pfnCallback) - { - memcpy(&ret->callback_psp, lpPropSheetPage, - min(lpPropSheetPage->dwSize, sizeof(PROPSHEETPAGEW))); - }
if ( !(ppsp->dwFlags & PSP_DLGINDIRECT) ) { @@ -3108,22 +3150,25 @@ HPROPSHEETPAGE WINAPI CreatePropertySheetPageW(LPCPROPSHEETPAGEW lpPropSheetPage }
if (ppsp->dwFlags & PSP_USETITLE) - ppsp->pszTitle = load_string( ppsp->hInstance, ppsp->pszTitle ); - else - ppsp->pszTitle = NULL; + { + if (!IS_INTRESOURCE( ppsp->pszTitle )) + ppsp->pszTitle = heap_strdupW( lpPropSheetPage->pszTitle ); + }
if (ppsp->dwFlags & PSP_HIDEHEADER) ppsp->dwFlags &= ~(PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE);
if (ppsp->dwFlags & PSP_USEHEADERTITLE) - ppsp->pszHeaderTitle = load_string( ppsp->hInstance, ppsp->pszHeaderTitle ); - else - ppsp->pszHeaderTitle = NULL; + { + if (!IS_INTRESOURCE( ppsp->pszHeaderTitle )) + ppsp->pszHeaderTitle = heap_strdupW( ppsp->pszHeaderTitle ); + }
if (ppsp->dwFlags & PSP_USEHEADERSUBTITLE) - ppsp->pszHeaderSubTitle = load_string( ppsp->hInstance, ppsp->pszHeaderSubTitle ); - else - ppsp->pszHeaderSubTitle = NULL; + { + if (!IS_INTRESOURCE( ppsp->pszHeaderSubTitle )) + ppsp->pszHeaderSubTitle = heap_strdupW( ppsp->pszHeaderSubTitle ); + }
HPSP_call_callback(ret, PSPCB_ADDREF); return ret; @@ -3140,33 +3185,54 @@ HPROPSHEETPAGE WINAPI CreatePropertySheetPageW(LPCPROPSHEETPAGEW lpPropSheetPage * Success: TRUE * Failure: FALSE */ -BOOL WINAPI DestroyPropertySheetPage(HPROPSHEETPAGE hPropPage) +BOOL WINAPI DestroyPropertySheetPage(HPROPSHEETPAGE hpsp) { - PROPSHEETPAGEW *psp = &hPropPage->psp; + if (!hpsp) + return FALSE;
- if (!hPropPage) - return FALSE; + HPSP_call_callback(hpsp, PSPCB_RELEASE);
- HPSP_call_callback(hPropPage, PSPCB_RELEASE); + if (hpsp->unicode) + { + PROPSHEETPAGEW *psp = &hpsp->pspW;
- if (!(psp->dwFlags & PSP_DLGINDIRECT) && !IS_INTRESOURCE( psp->u.pszTemplate )) - Free((void*)psp->u.pszTemplate); + if (!(psp->dwFlags & PSP_DLGINDIRECT) && !IS_INTRESOURCE(psp->u.pszTemplate)) + Free((void *)psp->u.pszTemplate);
- if ((psp->dwFlags & PSP_USEICONID) && !IS_INTRESOURCE( psp->u2.pszIcon )) - Free((void*)psp->u2.pszIcon); + if ((psp->dwFlags & PSP_USEICONID) && !IS_INTRESOURCE(psp->u2.pszIcon)) + Free((void *)psp->u2.pszIcon);
- if ((psp->dwFlags & PSP_USETITLE) && !IS_INTRESOURCE( psp->pszTitle )) - Free((void*)psp->pszTitle); + if ((psp->dwFlags & PSP_USETITLE) && !IS_INTRESOURCE(psp->pszTitle)) + Free((void *)psp->pszTitle);
- if ((psp->dwFlags & PSP_USEHEADERTITLE) && !IS_INTRESOURCE( psp->pszHeaderTitle )) - Free((void*)psp->pszHeaderTitle); + if ((psp->dwFlags & PSP_USEHEADERTITLE) && !IS_INTRESOURCE(psp->pszHeaderTitle)) + Free((void *)psp->pszHeaderTitle);
- if ((psp->dwFlags & PSP_USEHEADERSUBTITLE) && !IS_INTRESOURCE( psp->pszHeaderSubTitle )) - Free((void*)psp->pszHeaderSubTitle); + if ((psp->dwFlags & PSP_USEHEADERSUBTITLE) && !IS_INTRESOURCE(psp->pszHeaderSubTitle)) + Free((void *)psp->pszHeaderSubTitle); + } + else + { + PROPSHEETPAGEA *psp = &hpsp->pspA;
- Free(hPropPage); + if (!(psp->dwFlags & PSP_DLGINDIRECT) && !IS_INTRESOURCE(psp->u.pszTemplate)) + Free((void *)psp->u.pszTemplate);
- return TRUE; + if ((psp->dwFlags & PSP_USEICONID) && !IS_INTRESOURCE(psp->u2.pszIcon)) + Free((void *)psp->u2.pszIcon); + + if ((psp->dwFlags & PSP_USETITLE) && !IS_INTRESOURCE(psp->pszTitle)) + Free((void *)psp->pszTitle); + + if ((psp->dwFlags & PSP_USEHEADERTITLE) && !IS_INTRESOURCE(psp->pszHeaderTitle)) + Free((void *)psp->pszHeaderTitle); + + if ((psp->dwFlags & PSP_USEHEADERSUBTITLE) && !IS_INTRESOURCE(psp->pszHeaderSubTitle)) + Free((void *)psp->pszHeaderSubTitle); + } + + Free(hpsp); + return TRUE; }
/****************************************************************************** diff --git a/dlls/comctl32/tests/propsheet.c b/dlls/comctl32/tests/propsheet.c index cf435703d1e..70f46c83d85 100644 --- a/dlls/comctl32/tests/propsheet.c +++ b/dlls/comctl32/tests/propsheet.c @@ -122,7 +122,7 @@ static INT_PTR CALLBACK page_dlg_proc(HWND hwnd, UINT msg, WPARAM wparam,
if (psp->dwFlags & PSP_USETITLE) { - todo_wine ok(!strcmp(psp->pszTitle, "page title"), "psp->pszTitle = %s\n", + ok(!strcmp(psp->pszTitle, "page title"), "psp->pszTitle = %s\n", wine_dbgstr_a(psp->pszTitle)); } return TRUE; @@ -1051,7 +1051,7 @@ static UINT CALLBACK proppage_callback_a(HWND hwnd, UINT msg, PROPSHEETPAGEA *ps ok(psp->lParam && psp->lParam != (LPARAM)psp, "Expected newly allocated page description, got %Ix, %p\n", psp->lParam, psp); if (psp->dwFlags & PSP_USETITLE) - todo_wine ok(psp_orig->pszTitle != psp->pszTitle, "Expected different page title pointer\n"); + ok(psp_orig->pszTitle != psp->pszTitle, "Expected different page title pointer\n"); else ok(psp_orig->pszTitle == psp->pszTitle, "Expected same page title pointer\n"); ok(!lstrcmpA(psp_orig->pszTitle, psp->pszTitle), "Expected same page title string\n");