1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
//........................
CString lpSourceName="MyService";
HANDLE hEvent;
hEvent= RegisterEventSource(NULL,lpSourceName);
if(hEvent)
{
CArray<const char *,const char *> arrayArgs;
char *parg;
while(
parg=va_arg( param, char *)
)
arrayArgs.Add(parg);
WORD wType=(bError?EVENTLOG_ERROR_TYPE:EVENTLOG_INFORMATION_TYPE);
WORD wCategory=0;
PSID lpUserSid=NULL;
WORD wNumString = arrayArgs.GetSize();
DWORD dwDataSize=0;
LPVOID lpRawData=NULL;
TRACE1("event:%s",arrayArgs[0]);
if(!ReportEvent(hEvent,wType,wCategory,nEventId,lpUserSid,wNumString,dwDataSize,arrayArgs.GetData(),lpRawData))
{
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL
);
// Process any inserts in lpMsgBuf.
// ...
// Display the string.
TRACE1("event error:%s",(LPCTSTR)lpMsgBuf);
// Free the buffer.
LocalFree( lpMsgBuf );
}
DeregisterEventSource(hEvent);
}
va_end(param); |
Partager