public ExternalClipboardManager()
        {
            _thumbnails = new List<ClipboardThumbnailItem>();

            _messageHook = GlobalMessageListener.Instance;
            _messageHook.ClipboardDataAdded += MessageHookClipboardDataAdded;
            _messageHook.ClipboardDataRemoved += MessageHookClipboardDataRemoved;
            _messageHook.ClipboardDataSelected += MessageHookClipboardDataSelected;
            _messageHook.ClipboardDataSwapped += MessageHookClipboardDataSwapped;
        }
        protected override void OnSourceInitialized(EventArgs e)
        {
            base.OnSourceInitialized(e);

            var helper = new WindowInteropHelper(this);
            _windowHandle = helper.Handle;

            //install clipboard hooks
            _messageHook = GlobalMessageListener.Instance;
            _messageHook.ClipboardDataAdded += MessageHookClipboardDataAdded;
            _messageHook.ClipboardDataRemoved += MessageHookClipboardDataRemoved;
            _messageHook.ClipboardDataSelected += MessageHookClipboardDataSelected;
            _messageHook.ClipboardDataSwapped += MessageHookClipboardDataSwapped;

            //install keyboard hooks
            _keyboardHook = new KeyboardListener();
            _keyboardHook.KeyDown += KeyboardHookKeyDown;
            _keyboardHook.KeyUp += KeyboardHookKeyUp;

            //not activatable
            //int exStyle = GetWindowLong(_windowHandle, GWL_EXSTYLE);
            //SetWindowLong(_windowHandle, GWL_EXSTYLE, exStyle | WS_EX_NOACTIVATE);

            RepositionWindow();

            Show();
            Activate();
            Focus();
        }