Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курсовые / 1 / Interface

.h
Скачиваний:
14
Добавлен:
17.04.2013
Размер:
2.61 Кб
Скачать
////////////////////////////////////////////////////////////
//
//  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