[PATCH] Don't limit text size for message boxes from ShellMessageBoxWrapW
Nikolay Sivov
nsivov at codeweavers.com
Sat May 29 15:24:32 CDT 2010
---
dlls/shlwapi/ordinal.c | 17 ++++++++++++++---
1 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/dlls/shlwapi/ordinal.c b/dlls/shlwapi/ordinal.c
index 22851d9..18295e4 100644
--- a/dlls/shlwapi/ordinal.c
+++ b/dlls/shlwapi/ordinal.c
@@ -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;
}
--
1.5.6.5
--------------000309090801020401020901--
More information about the wine-patches
mailing list