Commit 572e8036 authored by Dmitry Timoshkov's avatar Dmitry Timoshkov Committed by Alexandre Julliard

shlwapi: Duplicate shell32.ShellMessageBoxW implementation in shlwapi.ShellMessageBoxWrapW.

parent 6614028c
...@@ -170,8 +170,8 @@ ...@@ -170,8 +170,8 @@
179 stdcall -noname SHGetNewLinkInfoA(str str ptr long long) 179 stdcall -noname SHGetNewLinkInfoA(str str ptr long long)
180 stdcall -noname SHGetNewLinkInfoW(wstr wstr ptr long long) 180 stdcall -noname SHGetNewLinkInfoW(wstr wstr ptr long long)
181 stdcall -noname RegisterShellHook(long long) 181 stdcall -noname RegisterShellHook(long long)
182 varargs -noname ShellMessageBoxW(long long long str long) 182 varargs -noname ShellMessageBoxW(long long wstr wstr long)
183 varargs -noname ShellMessageBoxA(long long long str long) 183 varargs -noname ShellMessageBoxA(long long str str long)
184 stdcall -noname ArrangeWindows(long long long long long) 184 stdcall -noname ArrangeWindows(long long long long long)
185 stub SHHandleDiskFull 185 stub SHHandleDiskFull
186 stdcall -noname ILGetDisplayNameEx(ptr ptr ptr long) 186 stdcall -noname ILGetDisplayNameEx(ptr ptr ptr long)
......
...@@ -338,6 +338,12 @@ BOOL WINAPI RegisterShellHook( ...@@ -338,6 +338,12 @@ BOOL WINAPI RegisterShellHook(
* ShellMessageBoxW [SHELL32.182] * ShellMessageBoxW [SHELL32.182]
* *
* See ShellMessageBoxA. * See ShellMessageBoxA.
*
* NOTE:
* shlwapi.ShellMessageBoxWrapW is a duplicate of shell32.ShellMessageBoxW
* because we can't forward to it in the .spec file since it's exported by
* ordinal. If you change the implementation here please update the code in
* shlwapi as well.
*/ */
int WINAPIV ShellMessageBoxW( int WINAPIV ShellMessageBoxW(
HINSTANCE hInstance, HINSTANCE hInstance,
......
...@@ -4297,26 +4297,45 @@ DWORD WINAPI GetUIVersion(void) ...@@ -4297,26 +4297,45 @@ DWORD WINAPI GetUIVersion(void)
/*********************************************************************** /***********************************************************************
* ShellMessageBoxWrapW [SHLWAPI.388] * ShellMessageBoxWrapW [SHLWAPI.388]
* *
* loads a string resource for a module, displays the string in a * See shell32.ShellMessageBoxW
* message box and writes it into the logfile
* *
* PARAMS * NOTE:
* mod [I] the module containing the string resource * shlwapi.ShellMessageBoxWrapW is a duplicate of shell32.ShellMessageBoxW
* unknown1 [I] FIXME * because we can't forward to it in the .spec file since it's exported by
* uId [I] the id of the string resource * ordinal. If you change the implementation here please update the code in
* title [I] the title of the message box * shell32 as well.
* unknown2 [I] FIXME
* filename [I] name of the logfile
*
* RETURNS
* FIXME
*/ */
BOOL WINAPI ShellMessageBoxWrapW(HMODULE mod, DWORD unknown1, UINT uId, INT WINAPIV ShellMessageBoxWrapW(HINSTANCE hInstance, HWND hWnd, LPCWSTR lpText,
LPCWSTR title, DWORD unknown2, LPCWSTR filename) LPCWSTR lpCaption, UINT uType, ...)
{ {
FIXME("%p %x %d %s %x %s\n", WCHAR szText[100], szTitle[100];
mod, unknown1, uId, debugstr_w(title), unknown2, debugstr_w(filename)); LPCWSTR pszText = szText, pszTitle = szTitle;
return TRUE; LPWSTR pszTemp;
va_list args;
int ret;
va_start(args, uType);
TRACE("(%p,%p,%p,%p,%08x)\n", hInstance, hWnd, lpText, lpCaption, uType);
if (IS_INTRESOURCE(lpCaption))
LoadStringW(hInstance, LOWORD(lpCaption), szTitle, sizeof(szTitle)/sizeof(szTitle[0]));
else
pszTitle = lpCaption;
if (IS_INTRESOURCE(lpText))
LoadStringW(hInstance, LOWORD(lpText), szText, sizeof(szText)/sizeof(szText[0]));
else
pszText = lpText;
FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING,
pszText, 0, 0, (LPWSTR)&pszTemp, 0, &args);
va_end(args);
ret = MessageBoxW(hWnd, pszTemp, pszTitle, uType);
LocalFree((HLOCAL)pszTemp);
return ret;
} }
HRESULT WINAPI IUnknown_QueryServiceExec(IUnknown *unk, REFIID service, REFIID clsid, HRESULT WINAPI IUnknown_QueryServiceExec(IUnknown *unk, REFIID service, REFIID clsid,
......
...@@ -385,7 +385,7 @@ ...@@ -385,7 +385,7 @@
385 stub -noname SHLoadRawAccelerators 385 stub -noname SHLoadRawAccelerators
386 stub -noname SHQueryRawAccelerator 386 stub -noname SHQueryRawAccelerator
387 stub -noname SHQueryRawAcceleratorMsg 387 stub -noname SHQueryRawAcceleratorMsg
388 stdcall -noname ShellMessageBoxWrapW(ptr long long wstr long wstr) 388 varargs -noname ShellMessageBoxWrapW(long long wstr wstr long)
389 stdcall -noname GetSaveFileNameWrapW(ptr) 389 stdcall -noname GetSaveFileNameWrapW(ptr)
390 stdcall -noname WNetRestoreConnectionWrapW(long wstr) 390 stdcall -noname WNetRestoreConnectionWrapW(long wstr)
391 stdcall -noname WNetGetLastErrorWrapW(ptr ptr long ptr long) 391 stdcall -noname WNetGetLastErrorWrapW(ptr ptr long ptr long)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment