+void rdp_send_bitmap_update(unsigned x, unsigned y, unsigned width, unsigned height, unsigned char *data)
+{
+ STREAM s;
+
+ s = rdp_init_data(11*2 + width*height*3);
+ out_uint16_le(s, RDP_UPDATE_BITMAP);
+ out_uint16_le(s, 1); // one update
+ out_uint16_le(s, x); // left, top, right, bottom
+ out_uint16_le(s, y);
+ out_uint16_le(s, x+width);
+ out_uint16_le(s, y+height);
+ out_uint16_le(s, width); // width, height
+ out_uint16_le(s, height);
+ out_uint16_le(s, 24); // bpp
+ out_uint16_le(s, 0); // no compression
+ out_uint16_le(s, width*height*3); // bufsize
+
+ out_uint8p(s, data, width*height*3);
+
+ s_mark_end(s);
+ rdp_send_data(s, RDP_DATA_PDU_UPDATE);
+}
+
+