📄 orders.h
字号:
/* rdesktop: A Remote Desktop Protocol client. RDP order processing Copyright (C) Matthew Chapman 1999-2005 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.*/#define RDP_ORDER_STANDARD 0x01#define RDP_ORDER_SECONDARY 0x02#define RDP_ORDER_BOUNDS 0x04#define RDP_ORDER_CHANGE 0x08#define RDP_ORDER_DELTA 0x10#define RDP_ORDER_LASTBOUNDS 0x20#define RDP_ORDER_SMALL 0x40#define RDP_ORDER_TINY 0x80enum RDP_ORDER_TYPE{ RDP_ORDER_DESTBLT = 0, RDP_ORDER_PATBLT = 1, RDP_ORDER_SCREENBLT = 2, RDP_ORDER_LINE = 9, RDP_ORDER_RECT = 10, RDP_ORDER_DESKSAVE = 11, RDP_ORDER_MEMBLT = 13, RDP_ORDER_TRIBLT = 14, RDP_ORDER_POLYGON = 20, RDP_ORDER_POLYGON2 = 21, RDP_ORDER_POLYLINE = 22, RDP_ORDER_ELLIPSE = 25, RDP_ORDER_ELLIPSE2 = 26, RDP_ORDER_TEXT2 = 27};enum RDP_SECONDARY_ORDER_TYPE{ RDP_ORDER_RAW_BMPCACHE = 0, RDP_ORDER_COLCACHE = 1, RDP_ORDER_BMPCACHE = 2, RDP_ORDER_FONTCACHE = 3, RDP_ORDER_RAW_BMPCACHE2 = 4, RDP_ORDER_BMPCACHE2 = 5, RDP_ORDER_BRUSHCACHE = 7};typedef struct _DESTBLT_ORDER{ sint16 x; sint16 y; sint16 cx; sint16 cy; uint8 opcode;}DESTBLT_ORDER;typedef struct _PATBLT_ORDER{ sint16 x; sint16 y; sint16 cx; sint16 cy; uint8 opcode; uint32 bgcolour; uint32 fgcolour; BRUSH brush;}PATBLT_ORDER;typedef struct _SCREENBLT_ORDER{ sint16 x; sint16 y; sint16 cx; sint16 cy; uint8 opcode; sint16 srcx; sint16 srcy;}SCREENBLT_ORDER;typedef struct _LINE_ORDER{ uint16 mixmode; sint16 startx; sint16 starty; sint16 endx; sint16 endy; uint32 bgcolour; uint8 opcode; PEN pen;}LINE_ORDER;typedef struct _RECT_ORDER{ sint16 x; sint16 y; sint16 cx; sint16 cy; uint32 colour;}RECT_ORDER;typedef struct _DESKSAVE_ORDER{ uint32 offset; sint16 left; sint16 top; sint16 right; sint16 bottom; uint8 action;}DESKSAVE_ORDER;typedef struct _TRIBLT_ORDER{ uint8 colour_table; uint8 cache_id; sint16 x; sint16 y; sint16 cx; sint16 cy; uint8 opcode; sint16 srcx; sint16 srcy; uint32 bgcolour; uint32 fgcolour; BRUSH brush; uint16 cache_idx; uint16 unknown;}TRIBLT_ORDER;typedef struct _MEMBLT_ORDER{ uint8 colour_table; uint8 cache_id; sint16 x; sint16 y; sint16 cx; sint16 cy; uint8 opcode; sint16 srcx; sint16 srcy; uint16 cache_idx;}MEMBLT_ORDER;#define MAX_DATA 256typedef struct _POLYGON_ORDER{ sint16 x; sint16 y; uint8 opcode; uint8 fillmode; uint32 fgcolour; uint8 npoints; uint8 datasize; uint8 data[MAX_DATA];}POLYGON_ORDER;typedef struct _POLYGON2_ORDER{ sint16 x; sint16 y; uint8 opcode; uint8 fillmode; uint32 bgcolour; uint32 fgcolour; BRUSH brush; uint8 npoints; uint8 datasize; uint8 data[MAX_DATA];}POLYGON2_ORDER;typedef struct _POLYLINE_ORDER{ sint16 x; sint16 y; uint8 opcode; uint32 fgcolour; uint8 lines; uint8 datasize; uint8 data[MAX_DATA];}POLYLINE_ORDER;typedef struct _ELLIPSE_ORDER{ sint16 left; sint16 top; sint16 right; sint16 bottom; uint8 opcode; uint8 fillmode; uint32 fgcolour;}ELLIPSE_ORDER;typedef struct _ELLIPSE2_ORDER{ sint16 left; sint16 top; sint16 right; sint16 bottom; uint8 opcode; uint8 fillmode; BRUSH brush; uint32 bgcolour; uint32 fgcolour;}ELLIPSE2_ORDER;#define MAX_TEXT 256typedef struct _TEXT2_ORDER{ uint8 font; uint8 flags; uint8 opcode; uint8 mixmode; uint32 bgcolour; uint32 fgcolour; sint16 clipleft; sint16 cliptop; sint16 clipright; sint16 clipbottom; sint16 boxleft; sint16 boxtop; sint16 boxright; sint16 boxbottom; BRUSH brush; sint16 x; sint16 y; uint8 length; uint8 text[MAX_TEXT];}TEXT2_ORDER;typedef struct _RDP_ORDER_STATE{ uint8 order_type; BOUNDS bounds; DESTBLT_ORDER destblt; PATBLT_ORDER patblt; SCREENBLT_ORDER screenblt; LINE_ORDER line; RECT_ORDER rect; DESKSAVE_ORDER desksave; MEMBLT_ORDER memblt; TRIBLT_ORDER triblt; POLYGON_ORDER polygon; POLYGON2_ORDER polygon2; POLYLINE_ORDER polyline; ELLIPSE_ORDER ellipse; ELLIPSE2_ORDER ellipse2; TEXT2_ORDER text2;}RDP_ORDER_STATE;typedef struct _RDP_RAW_BMPCACHE_ORDER{ uint8 cache_id; uint8 pad1; uint8 width; uint8 height; uint8 bpp; uint16 bufsize; uint16 cache_idx; uint8 *data;}RDP_RAW_BMPCACHE_ORDER;typedef struct _RDP_BMPCACHE_ORDER{ uint8 cache_id; uint8 pad1; uint8 width; uint8 height; uint8 bpp; uint16 bufsize; uint16 cache_idx; uint16 pad2; uint16 size; uint16 row_size; uint16 final_size; uint8 *data;}RDP_BMPCACHE_ORDER;/* RDP_BMPCACHE2_ORDER */#define ID_MASK 0x0007#define MODE_MASK 0x0038#define SQUARE 0x0080#define PERSIST 0x0100#define FLAG_51_UNKNOWN 0x0800#define MODE_SHIFT 3#define LONG_FORMAT 0x80#define BUFSIZE_MASK 0x3FFF /* or 0x1FFF? */#define MAX_GLYPH 32typedef struct _RDP_FONT_GLYPH{ uint16 character; uint16 unknown; uint16 baseline; uint16 width; uint16 height; uint8 data[MAX_GLYPH];}RDP_FONT_GLYPH;#define MAX_GLYPHS 256typedef struct _RDP_FONTCACHE_ORDER{ uint8 font; uint8 nglyphs; RDP_FONT_GLYPH glyphs[MAX_GLYPHS];}RDP_FONTCACHE_ORDER;typedef struct _RDP_COLCACHE_ORDER{ uint8 cache_id; COLOURMAP map;}RDP_COLCACHE_ORDER;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -