See this streams utility and associated information to further explore the issue.

I've never thought that SummaryInformation was stored anywhere except inside the file, for COM "Compound Document" files specifically including MS Office files. The shell extension simply looks at that.

Meanwhile, I noticed that Windows 2000 allowed a Summary tab on other files as well. I assumed it stored that in an alternate stream, but never looked into it in detail.

So I disagree with your second paragraph. To read SummaryInfo from a Structured Storage file, use the SS-related function for that. (IPropertyStorage, I think). The COM SDK has a page "Structured Storage Serialized Property Set Format". If that interface is a dual (dispatch-enabled), then it's a simple matter to drive with Perl's OLE module and then parse out the individual fields.

The alternate data stream is trivial to read from Perl, once you figure out the correct name. I suppose it uses the same serialized format.

I agree, a Perl module to read/write this information would be awesome! It would figure out which way is being used, and use the proper way to add info to a file that doesn't have it already.

—John


In reply to Re: Win32 Strustured Storage via File - Properties - Summary by John M. Dlugosz
in thread Win32 Strustured Storage via File - Properties - Summary by idnopheq

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.