Пример потока PropertyDefinition
Область применения: Outlook 2013 | Outlook 2016
В этом разделе описывается пример потока PropertyDefinition. Поток содержит определение определяемого пользователем поля . TextField1
Тип — Text, а определение — в формате PropDefV2.
Дамп данных
Ниже приведен дамп данных потока, который будет отображаться в двоичном редакторе.
смещение Stream | Байты данных | Данные ASCII |
---|---|---|
0000000000 |
03 01 01 00 00 00 45 00 00 00 08 00 00 00 00 00 |
???...E...?..... |
0000000010 |
0A 00 54 00 65 00 78 00 74 00 46 00 69 00 65 00 |
?.T.e.x.t.F.i.e. |
0000000020 |
6C 00 64 00 31 00 0A 54 65 78 74 46 69 65 6C 64 |
l.d.1.?TextField |
0000000030 |
31 00 00 00 00 00 00 00 00 15 00 00 00 0A 54 00 |
1........?...?T. |
0000000040 |
65 00 78 00 74 00 46 00 69 00 65 00 6C 00 64 00 |
e.x.t.F.i.e.l.d. |
0000000050 |
31 00 00 00 00 00 |
1..... |
Ниже приведен анализ примера данных для потока PropertyDefinition.
Версия: смещение 0x0, 2 байта: 0x0103 (PropDefV2).
FieldDefinitionCount: 0x2 смещения, 4 байта: 0x1 (1).
FieldDefinitions: 0x6 offset, массив из 1 потока FieldDefinition.
Флаги: 0x6 смещения, 4 байта: 0x45 (PDO_IS_CUSTOM|PDO_PRINT_SAVEAS|PDO_PRINT_SAVEAS_DEF).
VT: 0xA смещения, 2 байта: 0x8 (VT_BSTR).
DispId: 0xC offset, 4 байта: 0x0 (0).
NmidNameLength: 0x10 смещения, 2 байта: 0xA (10).
NmidName: 0x12 offset, массив из 10 WCHAR. Строковое значение Юникода: "TextField1".
NameANSI: смещение 0x26, поток УпакованногоAnsiString.
Длина: 0x26 смещения, 1 байт: 0xA (10).
Символы: 0x27 offset, массив из 10 CHAR. Строковое значение ANSI: "TextField1".
FormulaANSI: смещение 0x31, поток Упакованного ОбъектаСтринга.
Длина: смещение 0x31, 1 байт: 0x0 (0).
Символы: смещение 0x32, массив из 0 CHAR. Пустая строка ANSI.
ValidationRuleANSI: смещение 0x32, поток Упакованного ОбъектаСтринга.
Длина: смещение 0x32, 1 байт: 0x0 (0).
Символы: смещение 0x33, массив из 0 CHAR. Пустая строка ANSI.
ValidationTextANSI: 0x33 смещения, поток Упакованного ОбъектаСтринга.
Длина: смещение 0x33, 1 байт: 0x0 (0).
Символы: 0x34 offset, массив из 0 CHAR. Пустая строка ANSI.
ErrorANSI: 0x34 смещения, поток Упакованного ОбъектаСтринга.
Длина: 0x34 смещения, 1 байт: 0x0 (0).
Символы: смещение 0x35, массив из 0 CHAR. Пустая строка ANSI.
InternalType: 0x35 offset, 4 байта: 0x0 (iTypeString).
SkipBlocks: смещение 0x39, серия потоков SkipBlock.
First SkipBlock
Размер: 0x39 смещения, 4 байта: 0x15 (21).
Содержимое: 0x3D смещения, массив 21 байт. Это первый поток SkipBlock, поэтому массив содержит поток FirstSkipBlockContent.
FieldName: смещение 0x3D, поток PackedUnicodeString.
Длина: 0x3D смещения, 1 байт: 0xA (10).
Символы: смещение 0x3E, массив из 10 WCHAR. Строковое значение Юникода: "TextField1".
Second SkipBlock
- Размер: 0x52 смещения, 4 байта: 0x0 (0). Это завершающий поток SkipBlock.