I'm not sure, but the handling of Wide/Unicode strings looks wrong:
vaBinary, vaLString, vaWString{$IFNDEF VER2_2}, vaUString{$ENDIF}:
begin
Count:=ReadIntegerContent;
SkipBytes(Count);
end;For WideChars Count*2 bytes have to be skipped, according to e.g. ReadWideString.
DoDi
