void CStunUnknownAttributes::GetBuffer (char *pBuffer) { unsigned short nAttributeType = htons (m_nAttributeType); unsigned short nAttributeLength = htons (GetAttributeLength ()); int nOffset = 0, nSize = GetTotalLength (); memcpy_s (pBuffer, nSize, &nAttributeType, sizeof (nAttributeType)); nOffset += sizeof (nAttributeType); memcpy_s (pBuffer + nOffset, nSize - nOffset, &nAttributeLength, sizeof (nAttributeLength)); nOffset += sizeof (nAttributeLength); for (int i = 0; i < m_nAttributesCount; ++i) { nAttributeType = htons (m_UnknownAttributes [i]); memcpy_s (pBuffer + nOffset, nSize - nOffset, &nAttributeType, sizeof (nAttributeType)); nOffset += sizeof (nAttributeType); } if ((m_nAttributesCount % 2) == 1) { memcpy_s (pBuffer + nOffset, nSize - nOffset, &nAttributeType, sizeof (nAttributeType)); } }
void CStunAddressAttribute::GetBuffer(char *Buffer) { unsigned short nAttributeType = htons (m_nAttributeType); unsigned short nAttributeLength = htons (GetAttributeLength ()); unsigned char cTemp = htons (0); unsigned char byAddressFamily = m_byAddressFamily; unsigned short nPort = htons (m_nPort); unsigned int nIPAddress = m_nIPAddress; int nOffset = 0, nSize = GetTotalLength (); memcpy_s (Buffer, nSize, &nAttributeType, sizeof (nAttributeType)); nOffset += sizeof (nAttributeType); memcpy_s (Buffer + nOffset, nSize - nOffset, &nAttributeLength, sizeof (nAttributeLength)); nOffset += sizeof (nAttributeLength); memcpy_s (Buffer + nOffset, nSize - nOffset, &cTemp, sizeof (cTemp)); nOffset += sizeof (cTemp); memcpy_s (Buffer + nOffset, nSize - nOffset, &byAddressFamily, sizeof (byAddressFamily)); nOffset += sizeof (byAddressFamily); memcpy_s (Buffer + nOffset, nSize - nOffset, &nPort, sizeof (nPort)); nOffset += sizeof (nPort); memcpy_s (Buffer + nOffset, nSize - nOffset, &nIPAddress, sizeof (nIPAddress)); }
// Get the data from the OI and use it to set the check for the check button // appropriately. zSHORT ZCheckBox::MapFromOI( WPARAM wFlag ) { // if ( zstrcmp( *m_pzsTag, "CheckAutoCreateActOnCatChg" ) == 0 ) // TraceLineS( "ZCheckBox::MapFromOI ", *m_pzsTag ); // If the control is not Visible, do not do mapping. if ( IsVisibleForMapFromOI( ) == FALSE ) return( 0 ); m_ulMapActFlag2 |= zMAPACT_MAPPED_FROM_OI1; if ( m_pzsVName && m_pzsEName && m_pzsAName ) { zPCHAR pch; zBOOL bCheck = FALSE; zULONG ulLth; zCHAR szMap[ 256 ]; zVIEW vApp; zUSHORT uMapState = GetMappingAutoGray( &vApp, *m_pzsVName, *m_pzsEName, *m_pzsAName ); if ( vApp && (uMapState & zMAPACT_ENTITY_EXISTS) ) { GetAttributeLength( &ulLth, vApp, *m_pzsEName, *m_pzsAName ); if ( ulLth >= sizeof( szMap ) ) { GetAddrForAttribute( (zPCHAR *) &pch, vApp, *m_pzsEName, *m_pzsAName ); } else { GetVariableFromAttribute( szMap, 0, zTYPE_STRING, 256, vApp, *m_pzsEName, *m_pzsAName, *m_pzsContext, 0 ); pch = szMap; } // determine check or uncheck bCheck = (zstrcmp( pch, *m_pzsValueOn ) ? 0 : 1); } SetCheck( bCheck ); return( 0 ); } return( -1 ); }