4.1.2 MultiDstBlt
The following is an annotated dump of a MultiDstBlt (section 2.2.2.2.1.1.2.2) Primary Drawing Order.
-
00000000 09 0f 7f 12 01 2d 01 a0 00 0c 00 55 02 0d 00 04 .....-.....U.... 00000010 81 12 81 2d 80 58 0c 80 60 80 40 0c ...-.X..`.@. 09 -> PRIMARY_DRAWING_ORDER::controlFlags = 0x09 0x09 = 0x01 | 0x08 = TS_STANDARD | TS_TYPE_CHANGE 0f -> PRIMARY_DRAWING_ORDER::orderType = TS_ENC_MULTIDSTBLT_ORDER 7f -> PRIMARY_DRAWING_ORDER::fieldFlags = 0x7f Binary of 0x7f = 0111 1111 Fields 1-7 are present 12 01 -> MULTI_DSTBLT_ORDER:nLeftRect = 0x0112 = 274 2d 01 -> MULTI_DSTBLT_ORDER:nTopRect = 0x012d = 301 a0 00 -> MULTI_DSTBLT_ORDER::nWidth = 0xa0 = 160 0c 00 -> MULTI_DSTBLT_ORDER::nHeight = 0x0c = 12 55 -> MULTI_DSTBLT_ORDER::bRop = 0x55 = ROP Table Entry #85 = 0x00550009 02 -> MULTI_DSTBLT_ORDER::nDeltaEntries = 0x2 = 2 entries 0d 00 -> VARIABLE2_FIELD::cbData = 0xd = 13 bytes 04 81 12 81 2d 80 58 0c 80 60 80 40 0c -> VARIABLE2_FIELD::rgbData 04 -> DELTA_RECTS_FIELD::zeroBits = binary:0000 0100 Rectangle #1: 81 12 -> Delta Left = 0x112 = 274 81 2d -> Delta Top = 0x12d = 301 80 58 -> Delta Width = 0x58 = 88 0c -> Delta Height = 0xc = 12 Rectangle is (274, 301, 274 + 88 = 362, 301 + 12 = 313) Rectangle #2: 80 60 -> Delta Left = 0x60 = 96 Delta Top = 0 (zeroBit is 1) 80 40 -> Delta Width = 0x40 = 64 0c -> Delta Height = 12 Rectangle is (274 + 96 = 370, 301 + 0 = 301, 370 + 64 = 434, 301 + 12 = 313)