You’d think that published documentation would be checked for correctness.
I’m just getting started writing the code that parses files that use Microsoft’s Advanced Systems Format (ASF), and I ran across a rather confusing bit of documentation.
The Header Extension Object contains 46 bytes of header information and then a variable-length byte array of additional data. In the description of this object, there are these two tidbits:
Object Size – Specifies the size, in bytes, of the Header Extension Object. The value of this field shall be set to 46 bytes.
Header Extension Data Size – Specifies the number of bytes stored in the Header Extension Data field. This value may be 0 bytes or 24 bytes and larger. It should also be equal to the Object Size field minus 46 bytes.
This is plainly impossible. If Object Size must be 46, then Header Extension Data Size has to be zero? But then you can’t have any data. Odd, that.
I’ll have to examine a file that contains one of these objects to be sure, but I suspect the Object Size field will contain the size of the entire record and Header Extension Data Size will indeed be (Object Size) – 46.
I can understand making a mistake in documentation. I’ve certainly made my share. But I can’t be the first person to come across this error since the ASF documentation was last revised in December of 2004. Why hasn’t Microsoft updated their document?