26     IRSSMT_RegisterClient = 1,
    30     IRSSMT_UnregisterClient = 2,
    35     IRSSMT_RegisterRepeater = 3,
    39     IRSSMT_UnregisterRepeater = 4,
    58     IRSSMT_ServerShutdown = 8,
    62     IRSSMT_ServerSuspend = 9,
    66     IRSSMT_ServerResume = 10,
    71     IRSSMT_RemoteEvent = 11,
    75     IRSSMT_KeyboardEvent = 12,
    79     IRSSMT_MouseEvent = 13,
    84     IRSSMT_ForwardRemoteEvent = 14,
    88     IRSSMT_ForwardKeyboardEvent = 15,
    92     IRSSMT_ForwardMouseEvent = 16,
    97     IRSSMT_AvailableReceivers = 17,
   101     IRSSMT_AvailableBlasters = 18,
   105     IRSSMT_ActiveReceivers = 19,
   109     IRSSMT_ActiveBlasters = 20,
   113     IRSSMT_DetectedReceivers = 21,
   117     IRSSMT_DetectedBlasters = 22,
   123   enum IRSS_MessageFlags
   128     IRSSMF_None            = 0x0000,
   133     IRSSMF_Request         = 0x0001,
   137     IRSSMF_Response        = 0x0002,
   141     IRSSMF_Notify          = 0x0004,
   146     IRSSMF_Success         = 0x0008,
   150     IRSSMF_Failure         = 0x0010,
   154     IRSSMF_Timeout         = 0x0020,
   166     IRSSMF_ForceNotRespond = 0x0400,
   174   CIrssMessage(IRSS_MessageType type, uint32_t flags, 
char* data, 
int size);
   175   CIrssMessage(IRSS_MessageType type, uint32_t flags, 
const std::string& data);
   178   void SetDataAsBytes(
char* data, 
int size);
   179   void SetDataAsString(
const std::string& data);
   180   char* ToBytes(
int& size);
   181   void SetType(IRSS_MessageType type);
   182   void SetFlags(uint32_t flags);
   183   IRSS_MessageType GetType() {
return m_type;}
   184   uint32_t GetFlags() {
return m_flags;}
   185   char* GetData() {
return m_data;}
   186   uint32_t GetDataSize() {
return m_dataSize;}
   187   static bool FromBytes(
char* from, 
int size, 
CIrssMessage& message);
   190   IRSS_MessageType m_type;