From 9a5b0d4fbfdd7be9d3ed640cb310a33c26fac167 Mon Sep 17 00:00:00 2001 From: Eric Pouech <Eric.Pouech@wanadoo.fr> Date: Sun, 25 Jun 2000 12:51:14 +0000 Subject: [PATCH] Fixed crash when lpTemplateName is gotten from MAKEINTRESOURCE. --- dlls/commdlg/colordlg.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/dlls/commdlg/colordlg.c b/dlls/commdlg/colordlg.c index f35f3022c7f..fc6d4708752 100644 --- a/dlls/commdlg/colordlg.c +++ b/dlls/commdlg/colordlg.c @@ -1468,14 +1468,18 @@ BOOL WINAPI ChooseColorA( LPCHOOSECOLORA lpChCol ) lpcc->Flags = lpChCol->Flags; lpcc->lCustData = lpChCol->lCustData; lpcc->lpfnHook = (LPCCHOOKPROC) lpChCol->lpfnHook; - if ((lpcc->Flags & CC_ENABLETEMPLATE) && (lpChCol->lpTemplateName)) - lpcc->lpTemplateName = HEAP_strdupAtoW(GetProcessHeap(), 0, lpChCol->lpTemplateName); - + if ((lpcc->Flags & CC_ENABLETEMPLATE) && (lpChCol->lpTemplateName)) { + if (HIWORD(lpChCol->lpTemplateName)) + lpcc->lpTemplateName = HEAP_strdupAtoW(GetProcessHeap(), 0, lpChCol->lpTemplateName); + else + lpcc->lpTemplateName = (LPWSTR)lpChCol->lpTemplateName; + } + ret = ChooseColorW(lpcc); if (ret) lpChCol->rgbResult = lpcc->rgbResult; - if (lpcc->lpTemplateName) HeapFree(GetProcessHeap(), 0, (LPSTR)lpcc->lpTemplateName); + if (HIWORD(lpcc->lpTemplateName)) HeapFree(GetProcessHeap(), 0, (LPSTR)lpcc->lpTemplateName); HeapFree(GetProcessHeap(), 0, lpcc); return ret; } -- GitLab