HP xw4400 Workstation User Manual
Page 107

Using Remote Graphics Software
99
&dwRead,
// number of bytes read
&dwNeeded);
// bytes in next record
if (CloseEventLog(h) == false)
{
... report error status ...
return true;
}
// Process event (example: print out event) ==============================
if (result)
{
// We only know how to process specific events
if (pevlr->EventID == RGSENDER_CONNECT_STATE)
{
// Retrieve the two UINT32 fields of this message
// representing primary and non-primary connections.
unsigned int *pData = (unsigned int *)
((LPBYTE) pevlr + pevlr->DataOffset);
// Examine state of primary connections here for other
// agent response if number drops to zero...
... example only prints out retrieved record to console ...
printf ("Event: %u Primary: %u Secondary: %u\n",
dwEventNum, pData[0], pData[1]);
}
... Process other events here if desired ...
}
else
{
... report unrecognized event here ...
return true;
}
return false;
}
void monitorEvents(LPCTSTR eventServer, LPCTSTR eventSource, int seconds)
{
DWORD dwCurrentIndex = 0;
DWORD dwCurrentStart;
DWORD dwCurrentCount;
DWORD dwNewIndex;
int waitedFor;
// This function will monitor the log for the specified number of
// seconds. If seconds is less than zero, we will wait forever.
for (waitedFor = 0; seconds < 0 || waitedFor < seconds; )
{
HANDLE h;
// Open, read status of log, close event log =========================
if ((h = OpenEventLog(eventServer, eventSource)) == NULL)
{
... report error status here ...
return;
}
// If an event is added, either the start or count will change.