I've been running into some problems with byte swapping in ole related code - it looks like the relevant stuff is in storage32.c - I've modified StorageUtl_{Read,Write}Word and DWord to byteswap on bigendian platforms, and that seems to help, but I'm also running into problems with the wchar property names in StorageImpl_{Read,Write}Property - the individual characters are showing up in the wrong order, so "Data" is showing up as 0x44006100 0x74006100 instead of 0x00440061 0x00740061 as I would expect...
Is it safe to use the same approach here? should ReadProperty byteswap each wchar and then WriteProperty byteswap it again? There seem to be a lot of places things like this happen:
StorageImpl_ReadProperty(This, propertyIndex, &chainProperty);
chainProperty.startingBlock = bbHeadOfChain;
StorageImpl_WriteProperty(This, propertyIndex, &chainProperty);
and I'm not sure how else to handle these cases...
Also - at the moment the only byteswapping macros actually appear in tools/wrc/wrctypes.h - would it make sense to move them to one of the top-level include directories, and use them in both storage32.c and in wrc? If so, which include file should I drop them in?
Thanks!
Warren