protected override void WndProc(ref Message msg) { switch (msg.Msg) { case WM_DRAWCLIPBOARD: if (Clipboard.ContainsImage()) { // クリップボードの内容がテキストの場合のみ // クリップボードの内容を取得してハンドラを呼び出す ClipboardHandler?.Invoke(this, new ClipboardImageEventArgs(Clipboard.GetImage())); } if (_NextHandle != IntPtr.Zero) { SendMessage( _NextHandle, msg.Msg, msg.WParam, msg.LParam); } msg.Result = IntPtr.Zero; return; case WM_CHANGECBCHAIN: if (msg.WParam == _NextHandle) { _NextHandle = msg.LParam; } else if (_NextHandle != IntPtr.Zero) { SendMessage(_NextHandle, msg.Msg, msg.WParam, msg.LParam); } msg.Result = IntPtr.Zero; return; } base.WndProc(ref msg); }