SummaryInformation 流格式

文章出处:http://sedna-soft.de/summary-information-stream/



Notes on the SummaryInformation stream

General

  • to access it, you should know, that the actual stream name has the char 0x05 at the beginning
  • does not exist unless data is entered in the file property dialog
  • summary information is disabled in this dialog when stream is corrupt (OS assumes alternative custom usage)
  • properties are arranged in sections, but the SummaryInformation stream has only one section
  • stream can contain a lot of more properties than the dialog offers by default
  • only when other properties are programmatically added to the stream, they become visible and editable in the dialog
  • the meaning of a property (title, author, ...) is associated with its id and its section's class id, so external logic is required, the same id has a different meaning in a differently classified section
  • the stream always contains a code page property and a locale specification.
  • when updating values, the respecive properties are deleted and reappended, so the newest values are always at the end of a section

Structure by example

For this example the author property was specified in the file property dialog. The last saved time/date property was manually added to the stream in hexadecimal mode. The other properties were added automatically by Windows.

Bold values in the table indicate fixed values, normally weighted values may vary from document to document.

Stream content

0x00fe ff 00 00 05 01 02 00þÿ······
0x0800 00 00 00 00 00 00 00········
0x1000 00 00 00 00 00 00 00········
0x1801 00 00 00 e0 85 9f f2····à…Ÿò
0x20f9 4f 68 10 ab 91 08 00ùOh·«‘··
0x282b 27 b3 d9 30 00 00 00+'³Ù0···
0x306c 00 00 00 04 00 00 00l·······
0x3801 00 00 00 28 00 00 00····(···
0x4000 00 00 80 30 00 00 00···€0···
0x480d 00 00 00 38 00 00 00····8···
0x5004 00 00 00 54 00 00 00····T···
0x5802 00 00 00 e4 04 00 00····ä···
0x6013 00 00 00 07 04 00 00········
0x681e 00 00 00 14 00 00 00········
0x7032 30 30 37 2d 30 32 2d2007-02-
0x7830 31 20 30 30 3a 30 3001 00:00
0x803a 30 30 00 1e 00 00 00:00·····
0x8810 00 00 00 41 6e 6a 61····Anja
0x9020 53 63 68 61 66 66 68 Schaffh
0x9869 72 74 00irt·

Header

Stream offsetLengthValueComment
0x00wordfe ffByte order mark for UTF-16LE, others are not accepted
0x02word00 00used for stream validation
0x04word05 01OS Version: major version 5 (Windows Server 2003, Windows XP and Windows 2000), minor version 1 (Windows XP)
0x06word02 00OS indicator: little endian decoded: 0x0002, possible values: 2 (Win32), 1 (Mac) or 0 (Win16).
According to David Erceg this could also be the platform ID, where 2 means NT-based Windows versions, 1 stands for DOS-based ones and zero seems to be no longer supported but had the meaning Win32s on Windows 3.1.
0x08dword + 2 words +
2 bytes + 6 bytes
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
the stream's class id, LE decoded: 00000000-0000-0000-0000-000000000000
0x18dword01 00 00 00section count, LE decoded: 0x00000001

Section declarations

Stream offsetLengthValueComment
0x1cdword + 2 words +
2 bytes + 6 bytes
e0 85 9f f2 f9 4f 68 10
ab 91 08 00 2b 27 b3 d9
the first section's class id, LE decoded: f29f85e0-4ff9-1068-ab91-08002b27b3d9 (The only section in a SummaryInformation stream. The DocumentSummaryInformation stream may contain two sections with different ids)
0x2cdword30 00 00 00the first section's offset from the beginning of the stream, LE decoded 0x00000030
(More section declarations would follow here, but this stream usually has only one.)

First (and only) section

Section header
Stream offsetSection offsetLengthValueComment
0x300x00dword6c 00 00 00section length, LE decoded: 0x0000006c
0x340x04dword04 00 00 00property count, LE decoded: 0x00000004
Property declarations
Stream offsetSection offsetLengthValueComment
0x380x08dword01 00 00 00first property's id, LE decoded: 0x00000001 (Code page)
0x3c0x0cdword28 00 00 00first property's offset from the beginning of the section, LE decoded: 0x00000028
0x400x10dword00 00 00 80second property's id, LE decoded: 0x80000000 (locale ID)
0x440x14dword30 00 00 00second property's offset from the beginning of the section, LE decoded: 0x00000030
0x480x18dword0d 00 00 00third property's id, LE decoded: 0x0000000d (last saved time/date)
0x4c0x1cdword38 00 00 00third property's offset from the beginning of the section, LE decoded: 0x00000038
0x500x20dword04 00 00 00fourth property's id, LE decoded: 0x00000004 (author)
0x540x24dword54 00 00 00fourth property's offset from the beginning of the section, LE decoded: 0x00000054
First property
Stream offsetSection offsetLengthValueComment
0x580x28dword02 00 00 00property type, LE decoded: 0x00000002 (2 byte signed int)
0x5c0x2cworde4 04property value, LE decoded: 0x04e4 = 1252 (Windows 1252)
0x5e0x2eword00 00values are null-padded to extend to a multiple of four bytes
Second property
Stream offsetSection offsetLengthValueComment
0x600x30dword13 00 00 00property type, LE decoded: 0x00000013 (4 byte unsigned int)
0x640x34dword07 04 00 00property value, LE decoded: 0x00000407 = 1031 (locale: German-Germany)
Third property
Stream offsetSection offsetLengthValueComment
0x680x38dword1e 00 00 00property type, LE decoded: 0x0000001e (null-terminated string prepended by dword string length)
0x6c0x3cdword14 00 00 00string length, LE decoded: 0x00000014 = 20 (length of the following string including null terminator)
0x700x4020 (see above)"2007-02-01 00:00:00"+[NUL]property string value, null-terminated (actually this property requires a Filetime type value)
Fourth property
Stream offsetSection offsetLengthValueComment
0x840x54dword1e 00 00 00property type, LE decoded: 0x0000001e (null-terminated string prepended by dword string length)
0x880x58dword10 00 00 00string length, LE decoded: 0x00000010 = 16 (length of the following string including null terminator)
0x8c0x5c16 (see above)"Anja Schaffhirt"+[NUL]property string value, null-terminated

Further information

Property IDs for the section {f29f85e0-4ff9-1068-ab91-08002b27b3d9}

01Code page (02)06Comments (1e)0bLast Printed (40)10Number of Characters (03)
02Title (1e)07Template (1e)0cCreate Time/Date (40)11Thumbnail (47)
03Subject (1e)08Last Saved By (1e)0dLast Saved Time/Date (40)12Name of Creating Application (1e)
04Author (1e)09Revision Number (1e)0eNumber of Pages (03)13Security (03)
05Keywords (1e)0aTotal Editing Time (40)0fNumber of Words (03)8000 0000Locale ID (13)

Property types used in SummaryInformation streams

022 byte signed integer
034 byte signed integer
134 byte unsigned integer
1enull-terminated string prepended by dword string length
40Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601)
47Clipboard format

References


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值