Beispiel #1
0
        private void Handle(IPacket data)
        {
            switch (data)
            {
            case PacketDisconnect packet:
                MessageBox.Show(packet.Reason);
                Disconnect();
                break;

            case PacketScreen packet:
                MainWindow.Instance.DrawFullScreen(packet.Width, packet.Height, packet.Format, packet.Data);
                break;

            case PacketScreenChunk packet:
                MainWindow.Instance.DrawScreenChunk(new ByteBuf(packet.Data));
                break;

            case PacketServerControl packet:
                MainWindow.Instance.ServerControl = packet.Control;
                break;

            case PacketCursorType packet:
                MainWindow.Instance.CursorValue = packet.Cursor;
                MainWindow.Instance.Invoke(() => LowHelper.SetCursor(packet.Cursor));
                break;

            case PacketClipboard packet:
                MainWindow.Instance.ClipboardHelper.ClipboardChunkReceived(packet.Id, packet.Type, packet.Data);
                break;
            }
        }
Beispiel #2
0
        public ClipboardManager(Visual window)
        {
            _source = PresentationSource.FromVisual(window) as HwndSource;
            _source !.AddHook(WndProc);
            // handle = new WindowInteropHelper(window).Handle;

            LowHelper.AddClipboardFormatListener(_source.Handle);
            // _nextClipboardViewer = LowHelper.SetClipboardViewer(_source.Handle);
        }
Beispiel #3
0
 public void Close()
 {
     LowHelper.RemoveClipboardFormatListener(_source.Handle);
     // LowHelper.ChangeClipboardChain(_source.Handle, _nextClipboardViewer);
     _source.RemoveHook(WndProc);
 }