Поделиться через


Пример потока 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.

См. также