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.
|
|
/*++
Copyright (c) 1992 Microsoft Corporation
Module Name:
event.c
Abstract:
Log formatted events to a file and possibly the console too
Author:
Steve Wood (stevewo) 09-Aug-1994
Revision History:
--*/
#include "instaler.h"
VOID CDECL LogEvent( UINT MessageId, UINT NumberOfArguments, ... ) { va_list arglist; HMODULE ModuleHandle; DWORD Flags, Size; WCHAR MessageBuffer[ 512 ]; PWSTR s; ULONG Args[ 24 ]; PULONG p;
va_start( arglist, NumberOfArguments ); p = Args; while (NumberOfArguments--) { *p++ = va_arg( arglist, ULONG ); } *p++ = ((GetTickCount() - StartProcessTickCount) / 1000); // Seconds since the start
*p++ = 0; va_end( arglist );
Size = FormatMessageW( FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_ARGUMENT_ARRAY, (LPCVOID)InstalerModuleHandle, MessageId, 0, MessageBuffer, sizeof( MessageBuffer ) / sizeof( WCHAR ), (va_list *)Args ); if (Size != 0) { s = MessageBuffer; while (s = wcschr( s, L'\r' )) { if (s[1] == '\n') { wcscpy( s, s+1 ); } else { s += 1; } } printf( "%ws", MessageBuffer ); if (InstalerLogFile) { fprintf( InstalerLogFile, "%ws", MessageBuffer ); } } else { printf( "INSTALER: Unable to get message text for %08x\n", MessageId ); }
return; }
|