2.2.2.2.1.3.6.2 Draw GDI+ Cache First (DRAW_GDIPLUS_CACHE_FIRST_ORDER)

The Draw GDI+ Cache First Alternate Secondary Drawing Order contains the first batch of GDI+ 1.1 cacheable drawing primitives that comprise a rendering update sent by the server to the client. Support for GDI+ 1.1 rendering and primitive caching is specified in the Draw GDI+ Capability Set (section 2.2.1.3).


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

Flags

CacheType

CacheIndex

cbSize

cbTotalSize

emfRecords (variable)

...

header (1 byte): An Alternate Secondary Order Header, as specified in section 2.2.2.2.1.3.1.1. The embedded orderType field MUST be set to TS_ALTSEC_GDIP_CACHE_FIRST (0x08).

Flags (1 byte): An 8-bit, unsigned integer. Flags indicating instructions on how to handle previous cache orders in relation to this one.

Value

Meaning

GDIP_REMOVE_CACHEENTRY

0x01

Remove the cache entry item at the index specified by CacheIndex before caching the one contained in this order.

CacheType (2 bytes): A GDI+ Cache Type (section 2.2.2.2.1.3.6.1.1) structure. GDI+ cache in which to store the EMF+ Records contained in the emfRecords field.

CacheIndex (2 bytes): A 16-bit, unsigned integer. The index of the cache entry into which to write the primitive. This value MUST be greater than or equal to 0 and less than the maximum number of entries allowed in the GDI+ Graphics, Pen, Brush, Image and Image Attributes caches. The maximum number of entries allowed in each of these caches is specified by the GdipCacheEntries field of the Draw GDI+ Capability Set (section 2.2.1.3).

cbSize (2 bytes): A 16-bit, unsigned integer. The size in bytes of the emfRecords field.

cbTotalSize (4 bytes): A 32-bit, unsigned integer. The cumulative size in bytes of the data in all of the emfRecords fields in this and subsequent Draw GDI+ Cache Next and Draw GDI+ Cache End Orders.

emfRecords (variable): A collection of EMF+ Records specified in [MS-EMFPLUS] section 2.3. The size of the emfRecords field is given by the cbSize field.