I'm implementing a property handler for a structured storage file and would like to initialize it with IInitializeWithStream given its benefits of isolation, handling slow transfer, etc. But I see no obvious way to open an IStorage from an IStream. I don't want to load the whole file into global mem, and the documentation doesn't state whether ILockBytes is necessarily implemented on the IStream passed to Initialize.
Implementing IInitializeWithFile would be easy, but then cannot be isolated.
Any thoughts to how I might be able to get an IStorage from this IStream?
To note, I do not own this file type but for my common work having these extra properties exposed would be helpful.