#include <9pm/windows.h>
#include <9pm/u.h>
#include <9pm/libc.h>
DWORD WINAPI
FormatMessage(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId,
DWORD dwLanguageId, LPWSTR lpBuffer, DWORD nSize, va_list *Arguments)
{
char *buf;
int n;
assert(Arguments == 0);
if(win_useunicode)
return FormatMessageW(dwFlags, lpSource, dwMessageId,
dwLanguageId, lpBuffer, nSize, Arguments);
buf = win_malloc(UTFmax*nSize);
n = FormatMessageA(dwFlags, lpSource, dwMessageId,
dwLanguageId, buf, UTFmax*nSize, Arguments);
if(n == 0) {
if(nSize)
lpBuffer[0] = 0;
return 0;
}
n = win_utf2wstrn(lpBuffer, nSize, buf);
win_free(buf);
if(n >= (int)nSize)
return 0;
return n;
}
syntax highlighted by Code2HTML, v. 0.9.1