Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
////////////////////////////////////////////////////////////
//
// interface.h
//
////// ///// ////// ///// ////// ///// // // Software
// // // // // // // // // // // //// //
////// //////// /////// //////// // //// // // // ////
// // // // // // // // // // // // ///
// // // // // // // ///// ///// // //
#ifndef _CS_INTERFACE
#define _CS_INTERFACE
// messages
#define BM_REGISTER 0 // register client
#define BM_RELEASE 1 // release resource
#define BM_REQUEST 2 // request resource
#define BM_SEND 3 // send resource
#define BM_RESNUM 4 // number of resources
#define BM_UNITS 5 // number of units
#define BM_START_DISPATCHING 107
#define RESN_MASK(p) (WORD)((p&0xFFFF0000) >> 8)
#define UNIT_MASK(p) (WORD)(p&0x0000FFFF)
#define QUEUE_SIZE 200
#define BUFFER_SIZE sizeof(QUEUE_ELEM)*QUEUE_SIZE+sizeof(BUFFER)
typedef struct _QUEUE_ELEM
{
BOOL m_Used; // TRUE if elem already used
DWORD m_Receiver;
DWORD m_Sender;
DWORD m_Message;
WORD m_Param;
_QUEUE_ELEM* m_Next;
} QUEUE_ELEM;
typedef struct _BUFFER
{
DWORD m_QueueSize;
QUEUE_ELEM* m_Head;
QUEUE_ELEM* m_Tail;
QUEUE_ELEM m_Messages[];
} BUFFER;
BOOL PostMessage(BUFFER* buf, DWORD Id, UINT Msg, DWORD receiver, WORD Param);
/*+
BUFFER* buf - buffer where message post to
DWORD Id - process ID posting message
UINT Msg - message
DWORD receiver - message receiver process ID
return - TRUE if successful, otherwise FALSE
-*/
BOOL DispatchMessage(BUFFER* buf, DWORD Id, UINT& Msg, DWORD& sender, WORD& Param);
/*+
BUFFER* buf - beffer where message dispath from
DWORD Id - process ID dispatching message
return - FALSE if not successful, otherwise TRUE
UINT& Msg - message
DWORD& sender - message sender
-*/
BOOL PeekMessage(BUFFER* buf, DWORD Id, UINT Msg, DWORD& sender, WORD& Param);
/*+
BUFFER* buf - beffer where message dispath from
DWORD Id - process ID dispatching message
UINT Msg - message
return - FALSE if not successful, otherwise TRUE
DWORD& sender - message sender
-*/
#endif
Соседние файлы в папке 1
