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).


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

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.