public void UpdateDesktop(byte[] desktop) { if (desktop != null) { // deserialize the data System.Drawing.Image partialDesktop; Rectangle rect; Guid id; DesktopViewerUtils.Deserialize(desktop, out partialDesktop, out rect, out id); // Update the current desktop ViewerContext viewContext; if (_contexts.ContainsKey(id)) { _contexts.Remove(id); } // create new viewer context viewContext = new ViewerContext(id); System.Drawing.Image img = null; DesktopViewerUtils.UpdateScreen(ref img, partialDesktop, rect); viewContext.Display = img; _contexts[id] = viewContext; UpdateDisplay(id); } }
public string UpdateMouse(byte[] mouse) { if (mouse != null) { // Unpack the data. // System.Drawing.Image cursor; int cursorX, cursorY; Guid id; DesktopViewerUtils.Deserialize(mouse, out cursor, out cursorX, out cursorY, out id); // Update the current screen // ViewerContext viewContext; if (!_contexts.ContainsKey(id)) { // Create a new session. // viewContext = new ViewerContext(id); _contexts[id] = viewContext; } else { viewContext = _contexts[id]; } viewContext.Mouse = cursor; viewContext.CursorX = cursorX; viewContext.CursorY = cursorY; UpdateDisplay(id); } return _commandQueue.Serialize(); }