2.3.8 CompObjStream

The CompObjStream structure is contained inside of an OLE Compound File Stream (as specified in [MS-CFB]). The OLE Compound File Stream has the name "\1CompObj". The CompObjStream structure specifies the Clipboard Format and the display name of the linked object or embedded object.


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

Header (28 bytes)

...

...

AnsiUserType (variable)

...

AnsiClipboardFormat (variable)

...

Reserved1 (variable)

...

UnicodeMarker (variable)

...

UnicodeUserType (variable)

...

UnicodeClipboardFormat (variable)

...

Reserved2 (variable)

...

Header (28 bytes): This MUST be a CompObjHeader structure (section 2.3.7).

AnsiUserType (variable): This MUST be a LengthPrefixedAnsiString structure (section 2.1.4) that contains a display name of the linked object or embedded object.

AnsiClipboardFormat (variable): This MUST be a ClipboardFormatOrAnsiString structure (section 2.3.1) that contains the Clipboard Format of the linked object or embedded object. If the MarkerOrLength field of the ClipboardFormatOrAnsiString structure contains a value other than 0x00000000, 0xffffffff, or 0xfffffffe, the value MUST NOT be greater than 0x00000190. Otherwise the CompObjStream structure is invalid.<24>

Reserved1 (variable): If present, this MUST be a LengthPrefixedAnsiString structure (section 2.1.4). If the Length field of the LengthPrefixedAnsiString contains a value of 0 or a value that is greater than 0x00000028 , the remaining fields of the structure starting with the String field of the LengthPrefixedAnsiString MUST be ignored on processing.

If the String field of the LengthPrefixedAnsiString is not present, the remaining fields of the structure starting with the UnicodeMarker field MUST be ignored on processing.

Otherwise, the String field of the LengthPrefixedAnsiString MUST be ignored on processing.

UnicodeMarker (variable): If this field is present and is NOT set to 0x71B239F4, the remaining fields of the structure MUST be ignored on processing.

UnicodeUserType (variable): This MUST be a LengthPrefixedUnicodeString structure (section 2.1.5) that contains a display name of the linked object or embedded object.

UnicodeClipboardFormat (variable): This MUST be a ClipboardFormatOrUnicodeString structure (section 2.3.2) that contains a Clipboard Format of the linked object or embedded object. If the MarkerOrLength field of the ClipboardFormatOrUnicodeString structure contains a value other than 0x00000000, 0xffffffff, or 0xfffffffe, the value MUST NOT be more than 0x00000190. Otherwise, the CompObjStream structure is invalid. <25>

Reserved2 (variable): This MUST be a LengthPrefixedUnicodeString (section 2.1.5). The String field of the LengthPrefixedUnicodeString can contain any arbitrary value and MUST be ignored on processing.