2 rdesktop: A Remote Desktop Protocol client.
4 Copyright (C) Matthew Chapman 1999-2008
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
20 #define RDP_ORDER_STANDARD 0x01
21 #define RDP_ORDER_SECONDARY 0x02
22 #define RDP_ORDER_BOUNDS 0x04
23 #define RDP_ORDER_CHANGE 0x08
24 #define RDP_ORDER_DELTA 0x10
25 #define RDP_ORDER_LASTBOUNDS 0x20
26 #define RDP_ORDER_SMALL 0x40
27 #define RDP_ORDER_TINY 0x80
31 RDP_ORDER_DESTBLT
= 0,
33 RDP_ORDER_SCREENBLT
= 2,
36 RDP_ORDER_DESKSAVE
= 11,
37 RDP_ORDER_MEMBLT
= 13,
38 RDP_ORDER_TRIBLT
= 14,
39 RDP_ORDER_POLYGON
= 20,
40 RDP_ORDER_POLYGON2
= 21,
41 RDP_ORDER_POLYLINE
= 22,
42 RDP_ORDER_ELLIPSE
= 25,
43 RDP_ORDER_ELLIPSE2
= 26,
47 enum RDP_SECONDARY_ORDER_TYPE
49 RDP_ORDER_RAW_BMPCACHE
= 0,
50 RDP_ORDER_COLCACHE
= 1,
51 RDP_ORDER_BMPCACHE
= 2,
52 RDP_ORDER_FONTCACHE
= 3,
53 RDP_ORDER_RAW_BMPCACHE2
= 4,
54 RDP_ORDER_BMPCACHE2
= 5,
55 RDP_ORDER_BRUSHCACHE
= 7
58 typedef struct _DESTBLT_ORDER
69 typedef struct _PATBLT_ORDER
83 typedef struct _SCREENBLT_ORDER
96 typedef struct _LINE_ORDER
110 typedef struct _RECT_ORDER
121 typedef struct _DESKSAVE_ORDER
133 typedef struct _TRIBLT_ORDER
153 typedef struct _MEMBLT_ORDER
171 typedef struct _POLYGON_ORDER
180 uint8 data
[MAX_DATA
];
185 typedef struct _POLYGON2_ORDER
196 uint8 data
[MAX_DATA
];
201 typedef struct _POLYLINE_ORDER
209 uint8 data
[MAX_DATA
];
214 typedef struct _ELLIPSE_ORDER
227 typedef struct _ELLIPSE2_ORDER
244 typedef struct _TEXT2_ORDER
264 uint8 text
[MAX_TEXT
];
269 typedef struct _RDP_ORDER_STATE
274 DESTBLT_ORDER destblt
;
276 SCREENBLT_ORDER screenblt
;
279 DESKSAVE_ORDER desksave
;
282 POLYGON_ORDER polygon
;
283 POLYGON2_ORDER polygon2
;
284 POLYLINE_ORDER polyline
;
285 ELLIPSE_ORDER ellipse
;
286 ELLIPSE2_ORDER ellipse2
;
292 typedef struct _RDP_RAW_BMPCACHE_ORDER
304 RDP_RAW_BMPCACHE_ORDER
;
306 typedef struct _RDP_BMPCACHE_ORDER
324 /* RDP_BMPCACHE2_ORDER */
325 #define ID_MASK 0x0007
326 #define MODE_MASK 0x0038
327 #define SQUARE 0x0080
328 #define PERSIST 0x0100
329 #define FLAG_51_UNKNOWN 0x0800
333 #define LONG_FORMAT 0x80
334 #define BUFSIZE_MASK 0x3FFF /* or 0x1FFF? */
338 typedef struct _RDP_FONT_GLYPH
345 uint8 data
[MAX_GLYPH
];
350 #define MAX_GLYPHS 256
352 typedef struct _RDP_FONTCACHE_ORDER
356 RDP_FONT_GLYPH glyphs
[MAX_GLYPHS
];
361 typedef struct _RDP_COLCACHE_ORDER