http://bugs.winehq.org/show_bug.cgi?id=4436
------- Additional Comments From J.A.Gow@furrybubble.co.uk 2006-19-02 11:01 ------- Created an attachment (id=1919) --> (http://bugs.winehq.org/attachment.cgi?id=1919&action=view) Complete fix and new performance tests
This patch fixes up everything so far. Incidentally without this patch the new conformance tests segfault under Wine as none of the IStream methods actually check the state of the parentStorage pointer. This fix now allows all IStream methods to return STG_E_REVERTED as per the MSDN docs. Also we now maintain a list of IStreams in each IStorage, and orphan any left behind upon closure of the IStorage, as does Windows. Badly written apps will leak memory, but they will do this under Windows as well.
A fix has also been introduced pending implementation of transacted mode under Wine to allow streams to be opened with an ostensibly incorrect grfMode - Windows allows this and a conformance test has been added to demonstrate this.
I've sent this one to wine-patches.