/////////////////////////////////////////////////////////////////////////////
//
// This header file defines event queue shared memory format
//
/////////////////////////////////////////////////////////////////////////////
#ifndef _RTEQ_SHARED_MEMORY_INCLUDED_
#define _RTEQ_SHARED_MEMORY_INCLUDED_
/////////////////////////////////////////////////////////////////////////////
typedef struct RTEQ_SHARED_MEMORY
{
	DWORD	dwSignature;
		//signature allows applications to verify status of shared memory

		//The signature can be set to:
		//'RTEQ'	- event queue memory is initialized and contains 
		//			valid data 
		//0xDEAD	- event queue memory is marked for deallocation and
		//			no longer contain valid data
		//otherwise	the memory is not initialized
	DWORD	dwVersion;
		//structure version ((major<<16) + minor)
		//must be set to 0x00010000 for v1.0 structure

	DWORD	dwEventEntrySize;
		//size of RTEQ_SHARED_MEMORY_OSD_ENTRY for compatibility with future versions
	DWORD	dwEventArrOffset;
		//offset of arrEvent array for compatibility with future versions
	DWORD	dwEventArrSize;
		//size of arrEvent array for compatibility with future versions

	//event descriptor structure

	typedef struct RTEQ_SHARED_MEMORY_EVENT_ENTRY
	{
		//application identification related fields

		DWORD	dwProcessID;
			//process ID
		char	szName[MAX_PATH];
			//process executable name
		DWORD	dwTime;
			//event registration time (in GetTickCount ticks)

		char	szText[MAX_PATH];
			//event text

	} RTEQ_SHARED_MEMORY_EVENT_ENTRY, *LPRTEQ_SHARED_MEMORY_EVENT_ENTRY;

	RTEQ_SHARED_MEMORY_EVENT_ENTRY arrEvent[256];
		//array of event descriptors

} RTEQ_SHARED_MEMORY, *LPRTEQ_SHARED_MEMORY;
/////////////////////////////////////////////////////////////////////////////
#endif //_RTEQ_SHARED_MEMORY_INCLUDED_