// Gets the package Type return 255 if error. BYTE CIOCPBuffer::GetPackageType() { BYTE Type= 255; UINT nSize=GetPackageSize(); if ( nSize>=1 && nSize <=MAXIMUMPAYLOADSIZE) { memmove(&Type,GetBuffer()+MINIMUMPACKAGESIZE,1); } return Type; }
// Reads the info from a package created with CreatePackage(CString stxt); BOOL CIOCPBuffer::GetPackageInfo(CString &stxt) { int nSize=GetPackageSize(); if ( nSize>0 && nSize <= MAXIMUMPAYLOADSIZE) { PBYTE pData=GetBuffer()+MINIMUMPACKAGESIZE; // Assumes that we already have a null termination. stxt=pData; return TRUE; } return FALSE; }
// Reads the info from a package created with CreatePackage(BYTE Type,CString stxt); BOOL CIOCPBuffer::GetPackageInfo(BYTE& Type, CString &stxt) { int nSize=GetPackageSize(); if ( nSize>=1 && nSize<=MAXIMUMPAYLOADSIZE ) { memmove(&Type,GetBuffer()+MINIMUMPACKAGESIZE,1); PBYTE pData=GetBuffer()+MINIMUMPACKAGESIZE+1; // Assumes that we already have a null termination. stxt=pData;//去除前几位的空格和后面的结束符后的字符串 return TRUE; } return FALSE; }
BOOL CIOCPBuffer::GetPackageInfo(BYTE &Type, BYTE &key, CString &stxt) { int nSize=GetPackageSize(); if ( nSize>=1 && nSize<=MAXIMUMPAYLOADSIZE ) { // Get the Type memmove(&Type,GetBuffer()+MINIMUMPACKAGESIZE,1); // Get the keys memmove(&key,GetBuffer()+MINIMUMPACKAGESIZE+1,1); // Get The text PBYTE pData=GetBuffer()+MINIMUMPACKAGESIZE+2; // Assumes that we already have a null termination. stxt=pData; return TRUE; } return FALSE; }