Answered Does FiltDump.exe support calling IPersistStorage

  • Thursday, August 02, 2012 6:16 PM
     
     

    Hello,

    I have one IFilter that supports IPersistStream, and FiltDump calls its Load function, allowing for the debugging of the code.  I need to create another IFilter that supports IPersistStorage, but even after implementing all the interfaces, it's not calling the corresponding Load function.  I would just like confirmation that testing of IPersistStorage IS supported, or that someone has been able to get it working.

    Much appreciated.

    Rick

All Replies

  • Wednesday, August 08, 2012 6:22 PM
     
     
    Well, I see now that Windows Search does not support IPersistStorage (http://msdn.microsoft.com/en-us/library/windows/desktop/dd940429(v=vs.85).aspx), so there'd be no reason for FiltDump to support.  What's not clear, then, is how Windows Search handles an OLE Compound file.  Is there a way to get to the IStorage from an IStream?

    Rick Mutzke Principal Software Developer Corel Corporation

  • Thursday, August 09, 2012 1:53 PM
     
     Answered

    I'll answer my own question :-)

    1. Create an empty LockByteStream, and do a setStream on your IStream.

    2. Call StgIsStorageILockBytes on the LockByteStream.

    3. Call StgOpenStorageOnILockBytes using the LockByteStream, which returns a pointer to the IStorage.

    Bob's your uncle.


    Rick Mutzke Principal Software Developer Corel Corporation

    • Marked As Answer by R. Mutzke Thursday, August 09, 2012 1:53 PM
    •