BOOL update_read_pointer_new(wStream* s, POINTER_NEW_UPDATE* pointer_new) { if (Stream_GetRemainingLength(s) < 2) return FALSE; Stream_Read_UINT16(s, pointer_new->xorBpp); /* xorBpp (2 bytes) */ return update_read_pointer_color(s, &pointer_new->colorPtrAttr); /* colorPtrAttr */ }
BOOL update_recv_pointer(rdpUpdate* update, wStream* s) { UINT16 messageType; rdpContext* context = update->context; rdpPointerUpdate* pointer = update->pointer; if (Stream_GetRemainingLength(s) < 2 + 2) return FALSE; Stream_Read_UINT16(s, messageType); /* messageType (2 bytes) */ Stream_Seek_UINT16(s); /* pad2Octets (2 bytes) */ switch (messageType) { case PTR_MSG_TYPE_POSITION: if (!update_read_pointer_position(s, &pointer->pointer_position)) return FALSE; IFCALL(pointer->PointerPosition, context, &pointer->pointer_position); break; case PTR_MSG_TYPE_SYSTEM: if (!update_read_pointer_system(s, &pointer->pointer_system)) return FALSE; IFCALL(pointer->PointerSystem, context, &pointer->pointer_system); break; case PTR_MSG_TYPE_COLOR: if (!update_read_pointer_color(s, &pointer->pointer_color)) return FALSE; IFCALL(pointer->PointerColor, context, &pointer->pointer_color); break; case PTR_MSG_TYPE_POINTER: if (!update_read_pointer_new(s, &pointer->pointer_new)) return FALSE; IFCALL(pointer->PointerNew, context, &pointer->pointer_new); break; case PTR_MSG_TYPE_CACHED: if (!update_read_pointer_cached(s, &pointer->pointer_cached)) return FALSE; IFCALL(pointer->PointerCached, context, &pointer->pointer_cached); break; default: break; } return TRUE; }
void update_recv_pointer(rdpUpdate* update, STREAM* s) { UINT16 messageType; rdpContext* context = update->context; rdpPointerUpdate* pointer = update->pointer; stream_read_UINT16(s, messageType); /* messageType (2 bytes) */ stream_seek_UINT16(s); /* pad2Octets (2 bytes) */ switch (messageType) { case PTR_MSG_TYPE_POSITION: update_read_pointer_position(s, &pointer->pointer_position); IFCALL(pointer->PointerPosition, context, &pointer->pointer_position); break; case PTR_MSG_TYPE_SYSTEM: update_read_pointer_system(s, &pointer->pointer_system); IFCALL(pointer->PointerSystem, context, &pointer->pointer_system); break; case PTR_MSG_TYPE_COLOR: update_read_pointer_color(s, &pointer->pointer_color); IFCALL(pointer->PointerColor, context, &pointer->pointer_color); break; case PTR_MSG_TYPE_POINTER: update_read_pointer_new(s, &pointer->pointer_new); IFCALL(pointer->PointerNew, context, &pointer->pointer_new); break; case PTR_MSG_TYPE_CACHED: update_read_pointer_cached(s, &pointer->pointer_cached); IFCALL(pointer->PointerCached, context, &pointer->pointer_cached); break; default: break; } }
void update_recv_pointer(rdpUpdate* update, STREAM* s) { uint16 messageType; stream_read_uint16(s, messageType); /* messageType (2 bytes) */ stream_seek_uint16(s); /* pad2Octets (2 bytes) */ switch (messageType) { case PTR_MSG_TYPE_POSITION: update_read_pointer_position(s, &update->pointer_position); IFCALL(update->PointerPosition, update, &update->pointer_position); break; case PTR_MSG_TYPE_SYSTEM: update_read_pointer_system(s, &update->pointer_system); IFCALL(update->PointerSystem, update, &update->pointer_system); break; case PTR_MSG_TYPE_COLOR: update_read_pointer_color(s, &update->pointer_color); IFCALL(update->PointerColor, update, &update->pointer_color); break; case PTR_MSG_TYPE_POINTER: update_read_pointer_new(s, &update->pointer_new); IFCALL(update->PointerNew, update, &update->pointer_new); break; case PTR_MSG_TYPE_CACHED: update_read_pointer_cached(s, &update->pointer_cached); IFCALL(update->PointerCached, update, &update->pointer_cached); break; default: break; } }
void update_read_pointer_new(STREAM* s, POINTER_NEW_UPDATE* pointer_new) { stream_read_uint16(s, pointer_new->xorBpp); /* xorBpp (2 bytes) */ update_read_pointer_color(s, &pointer_new->colorPtrAttr); /* colorPtrAttr */ }