/// <summary> /// Handles WndProc clipboard message. /// </summary> /// <param name="sender">Message sender</param> /// <param name="e">WndProc message event arguments.</param> private void ClipboardMessage(object sender, WndProcMessageEventArgs e) { if (e.Message == WM_DRAWCLIPBOARD) { if (Changed != null) { Changed(this, EventArgs.Empty); } if (_nextClipboardViewer != null) { Helper.SentWindowProcesMessage(_nextClipboardViewer, e.Message, e.WParameter, e.LParameter); } } else if (e.Message == WM_CHANGECBCHAIN) { // Repair the chain if (e.WParameter == _nextClipboardViewer) { _nextClipboardViewer = e.LParameter; } // Otherwise, pass the message to the next link. else if (_nextClipboardViewer != null) { Helper.SentWindowProcesMessage(_nextClipboardViewer, e.Message, e.WParameter, e.LParameter); } } }