次のようにWndProcを編集する標準の推奨方法でClipboardビューアを作成しました。
case WM_DRAWCLIPBOARD:
Logger.Main.LogMessage("Draw Clipboard event");
if (OnClipboardChanged != null) {
OnClipboardChanged(this, new ViewChangeEventArgs());
}
WindowAPI.SendMessage(NextClipboardViewer, m.Msg, m.WParam, m.LParam);
break;
case WM_CHANGECBCHAIN:
Logger.Main.LogMessage("Change CB Chain");
if (m.WParam == NextClipboardViewer) {
NextClipboardViewer = m.LParam;
}
else {
WindowAPI.SendMessage(NextClipboardViewer, m.Msg, m.WParam, m.LParam);
}
break;
クリップボードで新しいデータが利用可能になったときに、アプリケーションに通知する必要があります。正常に動作し、メッセージが適切に検出されます。
クリップボード内の同じデータに関連付けられた、同じタイムスタンプで生成されたWM_DRAWCLIPBOARDで生成されたイベントを大量に受け取ることがあります(これを再現するのは非常に困難です)。何がこれを引き起こす可能性があるかについての考えはありますか?それらのメッセージに関する詳細情報を取得する方法について何か提案はありますか?
ありがとう。