public static Int32 PopMsgFromMemQueue(CMemQueue cMsgQueue, CMsg cMsg) { Int32 n32Get = cMsgQueue.GetFront(cMsg.GetMsgBuffer(), (UInt32)s_n32MsgHeaderSize); if (0 != n32Get) { return(n32Get); } Int32 n32MsgSize = cMsg.GetMsgSize(); // if (n32MsgSize >= cMsg.m_n32MsgSize) // { // return -2; // } Int32 n32Pop = cMsgQueue.PopFront(cMsg.GetMsgBuffer(), (UInt32)n32MsgSize); if (0 != n32Pop) { return(-3); } cMsg.SetReadPos(s_n32MsgHeaderSize); cMsg.SetWritePos(n32MsgSize); return(0); }