Two streams hold the document’s properties. They are OLE property sets, specified in [MS-OLEPS], and are the same in Word and Excel.
\005SummaryInformation holds the title, subject, author, keywords, comments,
dates, revision and counts of words and slides. \005DocumentSummaryInformation
holds the company, manager, category, and the number of slides, notes and hidden slides.
The stream names start with the byte 0x05.
The property set stream
| Offset | Size | Field | Meaning |
|---|---|---|---|
| 0 | 2 | Byte order | 0xFFFE. |
| 2 | 2 | Version | 0 or 1. |
| 4 | 4 | System identifier | The system that wrote it. |
| 8 | 16 | CLSID | A class id, usually zero. |
| 24 | 4 | Set count | How many property sets follow. |
| 28 | 20 each | Sets | For each set, a 16-byte format id and a 32-bit offset of the set. |
A property set
A set starts with its size and the number of properties, then pairs of a 32-bit identifier and a 32-bit offset from the start of the set. Each value starts with a 16-bit type, two unused bytes, then the value.
| Type | Value |
|---|---|
| VT_I2 (2) | A signed 16-bit integer, in 4 bytes. |
| VT_I4 (3) | A signed 32-bit integer. |
| VT_BOOL (11) | 0 or nonzero. |
| VT_LPSTR (30) | A 32-bit length and bytes in the set’s code page. |
| VT_LPWSTR (31) | A 32-bit character count and UTF-16. |
| VT_FILETIME (64) | A FILETIME: 100-nanosecond intervals since 1601. For the editing time, a length of time. |
| Id | In SummaryInformation | Id | In DocumentSummaryInformation |
|---|---|---|---|
| 2 | Title | 2 | Category |
| 3 | Subject | 3 | Presentation format |
| 4 | Author | 6 | Paragraphs |
| 5 | Keywords | 7 | Slides |
| 6 | Comments | 8 | Notes |
| 8 | Last saved by | 9 | Hidden slides |
| 9 | Revision | 14 | Manager |
| 10 | Editing time | 15 | Company |
| 12 | Created | ||
| 13 | Last saved |
Reference
- [MS-OLEPS] – Microsoft’s specification of OLE property sets