BYTE * __fastcall TExifXML::GetIFD(_di_IXMLNode aNode, BYTE * aTIFFHeader, int aPosition, AnsiString aName)
{
_di_IXMLNode pIFD = aNode->AddChild( "IFD" );
if ( aName != "" )
pIFD->Attributes["name"] = aName;
BYTE * p = aTIFFHeader + aPosition;
WORD nWord;
memcpy( &nWord, p, sizeof ( nWord ) );
p += sizeof ( nWord );
_di_IXMLNode pChild = pIFD->AddChild( "Count" );
pChild->Text = Format( "0x%X", ARRAYOFCONST( ( ( int )nWord ) ) );
TIFDEntry ent;
_di_IXMLNode pEntry;
BYTE * pTemp;
for ( int i = nWord; i > 0; --i )
{
memcpy( &ent, p, sizeof ( ent ) );
p += sizeof ( ent );
pEntry = pIFD->AddChild( "Entry" );
pChild = pEntry->AddChild( "Tag" );
pChild->Text = Format( "0x%X", ARRAYOFCONST( ( ( int )ent.EntryTag ) ) );
pChild = pEntry->AddChild( "Type" );
pChild->Text = IntToStr( ent.EntryType );
pChild = pEntry->AddChild( "Size" );