Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

85 lines
1.7 KiB

#include "precomp.h"
#define MAX_MSG_LENGTH 512
VOID
OEMfprintf(
IN HANDLE hHandle,
IN PWCHAR pwszUnicode
)
{
PCHAR achOem;
DWORD dwLen, dwWritten;
dwLen = WideCharToMultiByte( CP_OEMCP,
0,
pwszUnicode,
-1,
NULL,
0,
NULL,
NULL );
achOem = malloc(dwLen);
if (achOem)
{
WideCharToMultiByte( CP_OEMCP,
0,
pwszUnicode,
-1,
achOem,
dwLen,
NULL,
NULL );
WriteFile( hHandle, achOem, dwLen-1, &dwWritten, NULL );
free(achOem);
}
}
#define OEMprintf(pwszUnicode) \
OEMfprintf( GetStdHandle(STD_OUTPUT_HANDLE), pwszUnicode)
int _cdecl
wmain (
int argc,
WCHAR *argv[]
)
{
DWORD dwMsglen;
PWCHAR pwszOutput;
WCHAR rgwcInput[MAX_MSG_LENGTH];
pwszOutput = NULL;
do
{
dwMsglen = FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_HMODULE,
NULL,
MSG_HELP,
0L,
(PWCHAR)&pwszOutput,
0,
NULL);
if(dwMsglen == 0)
{
break;
}
OEMprintf(pwszOutput);
}while(FALSE);
if(pwszOutput)
{
LocalFree(pwszOutput);
}
return ERROR;
}