2.2.4 ObjectHeader

The ObjectHeader structure specifies the headers for the LinkedObject (section 2.2.6) and EmbeddedObject (section 2.2.5) structures.


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

OLEVersion

FormatID

ClassName (variable)

...

TopicName (variable)

...

ItemName (variable)

...

OLEVersion (4 bytes): This can be set to any arbitrary value and MUST be ignored on receipt.

FormatID (4 bytes): This MUST be set to 0x00000001 or 0x00000002. Otherwise, the ObjectHeader structure is invalid.<6>

If this field is set to 0x00000001, the ObjectHeader structure MUST be contained by a LinkedObject structure (see section 2.2.6). If this field is set to 0x00000002, the ObjectHeader structure MUST be contained by an EmbeddedObject structure (see section 2.2.5).

Value

Meaning

0x00000001

The ObjectHeader structure MUST be followed by a LinkedObject structure.

0x00000002

The ObjectHeader structure MUST be followed by an EmbeddedObject structure.

ClassName (variable): This MUST be a LengthPrefixedAnsiString (section 2.1.4) that contains a value identifying the creating application. The value is mapped to the creating application in an implementation-specific manner.<7>

TopicName (variable): This MUST be a LengthPrefixedAnsiString (section 2.1.4).

If the ObjectHeader structure is contained by an EmbeddedObject structure (see section 2.2.5), the TopicName field SHOULD contain an empty string and MUST be ignored on processing.

If the ObjectHeader structure is contained by a LinkedObject structure (see section 2.2.6), the TopicName field MUST contain the absolute path name of the linked file. The path name either MUST start with a drive letter or MUST be in the Universal Naming Convention (UNC) format.

ItemName (variable): This MUST be a LengthPrefixedAnsiString (section 2.1.4).

If the ObjectHeader structure is contained by an EmbeddedObject structure (see section 2.2.5), the ItemName field SHOULD contain an empty string and MUST be ignored on processing.

If the ObjectHeader structure is contained by a LinkedObject structure (see section 2.2.6),the ItemName field MUST contain a string that is used by the application or higher-level protocol to identify the item within the file to which is being linked. The format and meaning of the ItemName string is specific to the creating application and MUST be treated by other parties as an opaque string when processing this data structure. An example of such an item is an individual cell within a spreadsheet application.