Structured Storage and Property Sets Wierd Problem with image file types
Hi, i'm building an application which uses the structured storage api to
edit file metadata/property sets.
I've tried DSO file but found a few bugs so i've done my own implementation
of it in C# with com interop.
However, one thing i'm noticing is that it works well for most file types,
but graphic files (in my tests i'm using a .jpg) seem to have different
properties to what my application reads/writes.
ie. if i edit (for example) the 'Title' or 'Author' fields from my
application for OLE files, and non-ole files, I can see the changes
reflected in explorer (in details view, with the columns selected).
Windows desktop search/ the IFilters also correctly pick up the edits.
And if i do this from explorer (and refresh the data in my application), my
application also is correctly using/setting the correct FMTID's.
BUT.. when it comes to images, what is set in explorer, appears only in
explorer (and indexed in WDS). My application however is reading and writing
a completely different set of properties.
if i analyse the ADS of the file using the Streamenumerator sample from .Net
matters Jan 06,
I get this (after i modified the code to display only the PropertyData
StreamType:
C:\Temp\dontnetmatterjan06\NetMatters0601\bin\Debug>streamenumerator
c:\docdrop\
samplejpg.jpg
c:\docdrop\samplejpg.jpg:
(unnamed) SecurityData 188
(unnamed) Data 602196
:?DocumentSummaryInformation:$DATA AlternateData 256
:?SummaryInformation:$DATA AlternateData 576
:{4c8cc155-6c1e-11d1-8e41-00c04fb9386d}:$DATA AlternateData 0
(unnamed) ObjectID 64
I also have these property sets in my indexing server that I can't identify
as they don't have friendly names, nor are all there property names named
( I suspect one of them is the pdf IFilter):
14b81da1-0135-4d31-96d9-6cbfc9671a99
13795680-4f98-11d3-96dd-00c04f6888ff
2fa65d5a-cb17-4a14-80ac-6a3efcbcf413 some properties about urgency
6444048f-4c8b-11d1-8b70-080036b11a03 some properties about image resolutions
stuff
b725f130-47ef-101a-a5f1-02608c9eebac some other file stuff
what i don't understand is:
1. do images have different FMITD's to other files
2. can other applications change or override the FMTIDs with their IFilters
to store the 'well-known' properties in different sets?, and does explorer's
properties pages determine which ones to use (if this is the case.. how???).
for the looks of it, its got the normal FMTID that i'm writing to/from, yet
I can't understand why the shell/explorer displays one set, and i display
another, when it works fine for other file types. Whats the 'magic' I need
for images?
if anyone can help, i'd greatly appreciate it.
thanks,
Adam
date: Thu, 12 Jan 2006 13:30:45 +1100
author: Adam E am