IStream is not exposed to the user, but an internal interface would probably end up looking a lot like IStream because we need read/write/seek operations, reference counting and the ability to create clones. So we might as well use IStream.
Hmmm... Then I want exactly the same as SHCreateStreamOnFileEx, but the only difference is that the file should be opened with FILE_SHARE_DELETE. (I think).
What is that policy on this? It seems overkill to copy istream.c from shlwapi, just because I want to change 1 flag. On the other hand, I don't want to expose more functions in the shlwapi header, as that would make it different from the Windows implementation...
Regards, Robert