APE_TAG_FOOTER_BYTES
memcpy(&spRawTag[nLocation], &APETagFooter, APE_TAG_FOOTER_BYTES);
nLocation += APE_TAG_FOOTER_BYTES;
m_spIO->Seek(-int(APE_TAG_FOOTER_BYTES), FILE_END);
nRetVal = m_spIO->Read((unsigned char *) &APETagFooter, APE_TAG_FOOTER_BYTES, &nBytesRead);
if ((nBytesRead == APE_TAG_FOOTER_BYTES) && (nRetVal == 0))
if (m_spIO->GetSize() > APE_TAG_FOOTER_BYTES && bFailedToRemove == FALSE)
m_spIO->Seek(-int(APE_TAG_FOOTER_BYTES), FILE_END);
nRetVal = m_spIO->Read(&APETagFooter, APE_TAG_FOOTER_BYTES, &nBytesRead);
if ((nRetVal == 0) && (nBytesRead == APE_TAG_FOOTER_BYTES))
m_nSize = nFieldBytes + APE_TAG_FOOTER_BYTES;
int GetTotalTagBytes() { return m_nSize + (GetHasHeader() ? APE_TAG_FOOTER_BYTES : 0); }
int GetFieldBytes() { return m_nSize - APE_TAG_FOOTER_BYTES; }
int GetFieldsOffset() { return GetHasHeader() ? APE_TAG_FOOTER_BYTES : 0; }