in reply to Re^2: How to get the CLSID with OLE::Storage?
in thread How to get the CLSID with OLE::Storage?

Interestingly, OLE::Storage does something bizarre with the byte endianness of the CLSID... For instance, in one document the CLSID of the root storage consists of the following byte sequence:

D8 F4 50 30 B5 98 CF 11 BB 82 00 AA 00 BD CE 0B

(I can see it with a hex editor.) For this, $Doc->clsid($pps)->string() returns

3050F4D8-98B5-11CF-BB82-00AA00BDCE0B

In other words, it has assumed that the CLSID consists of a little-endinan DWORD, little-endian WORD, little-endian WORD, big-endian WORD, and 6 bytes (or is it 3 big-endian WORDs?). This is a bug, IMHO. The CLSID is just a sequence of 16 bytes (no endinanness) and should be returned as such.

Regards,
Vesselin