public void Initialize()
        {
            if (_isViewing) return;

            if (_target != null)
            {
                _target.AddHook(WinProc); // start processing window messages
                _hWndNextViewer = new ViewerSafeHandle(
                    NativeMethods.SetClipboardViewer(_target.Handle),
                    _target); // set this window as a viewer
            }

            _isViewing = true;
        }
        private void CloseCbViewer()
        {
            if (!_isViewing) return;

            // remove this window from the clipboard viewer chain
            _hWndNextViewer.Dispose();

            _hWndNextViewer = null;
            if (_target != null) _target.RemoveHook(WinProc);
            _isViewing = false;
        }