2.3.2 CurrentUserAtom
An atom record that specifies information about the last user to modify the file and where the most recent user edit is located. This is the only record in the Current User Stream (section 2.1.1).
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
rh |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
size |
|||||||||||||||||||||||||||||||
headerToken |
|||||||||||||||||||||||||||||||
offsetToCurrentEdit |
|||||||||||||||||||||||||||||||
lenUserName |
docFileVersion |
||||||||||||||||||||||||||||||
majorVersion |
minorVersion |
unused |
|||||||||||||||||||||||||||||
ansiUserName (variable) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
relVersion |
|||||||||||||||||||||||||||||||
unicodeUserName (variable) |
|||||||||||||||||||||||||||||||
... |
rh (8 bytes): A RecordHeader structure (section 2.3.1) that specifies the header for this record. Sub-fields are further specified in the following table.
-
Field
Meaning
rh.recVer
MUST be 0x0.
rh.recInstance
MUST be 0x000.
rh.recType
MUST be RT_CurrentUserAtom (section 2.13.24).
size (4 bytes): An unsigned integer that specifies the length, in bytes, of the fixed-length portion of the record, which begins after the rh field and ends before the ansiUserName field. It MUST be 0x00000014.
headerToken (4 bytes): An unsigned integer that specifies a token used to identify whether the file is encrypted. It MUST be a value from the following table.
-
Value
Meaning
0xE391C05F
The file SHOULD NOT<6> be an encrypted document.
0xF3D1C4DF
The file MUST be an encrypted document.
offsetToCurrentEdit (4 bytes): An unsigned integer that specifies an offset, in bytes, from the beginning of the PowerPoint Document Stream (section 2.1.2) to the UserEditAtom record (section 2.3.3) for the most recent user edit.
lenUserName (2 bytes): An unsigned integer that specifies the length, in bytes, of the ansiUserName field. It MUST be less than or equal to 255.
docFileVersion (2 bytes): An unsigned integer that specifies the document file version of the file. It MUST be 0x03F4.
majorVersion (1 byte): An unsigned integer that specifies the major version of the storage format. It MUST be 0x03.
minorVersion (1 byte): An unsigned integer that specifies the minor version of the storage format. It MUST be 0x00.
unused (2 bytes): Undefined and MUST be ignored.
ansiUserName (variable): A PrintableAnsiString (section 2.2.22) that specifies the user name of the last user to modify the file. The length, in bytes, of the field is specified by the lenUserName field.
relVersion (4 bytes): An unsigned integer that specifies the release version of the file format. It MUST be a value from the following table.
-
Value
Meaning
0x00000008
The file contains one or more main master slide.
0x00000009
The file contains more than one main master slide. It SHOULD NOT<7> be used.
unicodeUserName (variable): An optional PrintableUnicodeString (section 2.2.23) that specifies the user name of the last user to modify the file. The length, in bytes, of the field is specified by 2 * lenUserName. This user name supersedes that specified by the ansiUserName field. It MAY<8> be omitted.