[KERNEL32] Sync format_msg.c with Wine Staging 1.7.55. CORE-10536

svn path=/trunk/; revision=70159
This commit is contained in:
Amine Khaldi
2015-11-27 20:09:44 +00:00
parent 23a47e2ba0
commit c4b3aba60f
2 changed files with 21 additions and 11 deletions
@@ -56,8 +56,6 @@ struct format_args
* Yes, ANSI strings in win32 resources. Go figure.
*/
static const WCHAR FMTWSTR[] = { '%','s',0 };
/**********************************************************************
* load_message (internal)
*/
@@ -92,6 +90,24 @@ static LPWSTR load_message( HMODULE module, UINT id, WORD lang )
return buffer;
}
static LPWSTR search_message( DWORD flags, HMODULE module, UINT id, WORD lang )
{
LPWSTR from = NULL;
if (flags & FORMAT_MESSAGE_FROM_HMODULE)
from = load_message( module, id, lang );
if (!from && (flags & FORMAT_MESSAGE_FROM_SYSTEM))
{
/* Fold win32 hresult to its embedded error code. */
if (HRESULT_SEVERITY(id) == SEVERITY_ERROR &&
HRESULT_FACILITY(id) == FACILITY_WIN32)
{
id = HRESULT_CODE(id);
}
from = load_message( kernel32_handle, id, lang );
}
return from;
}
/**********************************************************************
* get_arg (internal)
*/
@@ -480,10 +496,7 @@ DWORD WINAPI FormatMessageA(
}
else if (dwFlags & (FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_FROM_SYSTEM))
{
if (dwFlags & FORMAT_MESSAGE_FROM_HMODULE)
from = load_message( (HMODULE)lpSource, dwMessageId, dwLanguageId );
if (!from && (dwFlags & FORMAT_MESSAGE_FROM_SYSTEM))
from = load_message( kernel32_handle, dwMessageId, dwLanguageId );
from = search_message( dwFlags, (HMODULE)lpSource, dwMessageId, dwLanguageId );
if (!from) return 0;
}
else
@@ -580,10 +593,7 @@ DWORD WINAPI FormatMessageW(
}
else if (dwFlags & (FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_FROM_SYSTEM))
{
if (dwFlags & FORMAT_MESSAGE_FROM_HMODULE)
from = load_message( (HMODULE)lpSource, dwMessageId, dwLanguageId );
if (!from && (dwFlags & FORMAT_MESSAGE_FROM_SYSTEM))
from = load_message( kernel32_handle, dwMessageId, dwLanguageId );
from = search_message( dwFlags, (HMODULE)lpSource, dwMessageId, dwLanguageId );
if (!from) return 0;
}
else
+1 -1
View File
@@ -274,7 +274,7 @@ kernel32 -
reactos/dll/win32/kernel32/winnls/string/casemap.c # Synced to WineStaging-1.7.55
reactos/dll/win32/kernel32/winnls/string/chartype.c # Synced in r52754
reactos/dll/win32/kernel32/winnls/string/collation.c # Synced to WineStaging-1.7.55
reactos/dll/win32/kernel32/winnls/string/format_msg.c # Synced to Wine-1.7.27
reactos/dll/win32/kernel32/winnls/string/format_msg.c # Synced to WineStaging-1.7.55
reactos/dll/win32/kernel32/winnls/string/lang.c # Synced in r52754
reactos/dll/win32/kernel32/winnls/string/lcformat.c # Synced in r52754
reactos/dll/win32/kernel32/winnls/string/nls.c # Synced in r52754