shlwapi: Don't limit text size for message boxes from ShellMessageBoxWrapW.

This commit is contained in:
Nikolay Sivov 2010-05-30 00:24:32 +04:00 committed by Alexandre Julliard
parent 94ce29e4ea
commit 1b105553d7
1 changed files with 14 additions and 3 deletions

View File

@ -4487,8 +4487,8 @@ DWORD WINAPI GetUIVersion(void)
INT WINAPIV ShellMessageBoxWrapW(HINSTANCE hInstance, HWND hWnd, LPCWSTR lpText,
LPCWSTR lpCaption, UINT uType, ...)
{
WCHAR szText[100], szTitle[100];
LPCWSTR pszText = szText, pszTitle = szTitle;
WCHAR *szText = NULL, szTitle[100];
LPCWSTR pszText, pszTitle = szTitle;
LPWSTR pszTemp;
__ms_va_list args;
int ret;
@ -4503,7 +4503,16 @@ INT WINAPIV ShellMessageBoxWrapW(HINSTANCE hInstance, HWND hWnd, LPCWSTR lpText,
pszTitle = lpCaption;
if (IS_INTRESOURCE(lpText))
LoadStringW(hInstance, LOWORD(lpText), szText, sizeof(szText)/sizeof(szText[0]));
{
const WCHAR *ptr;
UINT len = LoadStringW(hInstance, LOWORD(lpText), (LPWSTR)&ptr, 0);
if (len)
{
szText = HeapAlloc(GetProcessHeap(), 0, (len + 1) * sizeof(WCHAR));
if (szText) LoadStringW(hInstance, LOWORD(lpText), szText, len + 1);
}
pszText = szText;
}
else
pszText = lpText;
@ -4513,6 +4522,8 @@ INT WINAPIV ShellMessageBoxWrapW(HINSTANCE hInstance, HWND hWnd, LPCWSTR lpText,
__ms_va_end(args);
ret = MessageBoxW(hWnd, pszTemp, pszTitle, uType);
HeapFree(GetProcessHeap(), 0, szText);
LocalFree(pszTemp);
return ret;
}