パスワードを忘れた? アカウント作成
562537 journal

Claybirdの日記: コンテキストメニュー 右クリック/右ドラッグの区別

日記 by Claybird
Windows上でのお話。

シェル拡張DLLを作って、右クリックメニューと右ドラッグメニューで表示するメニュー内容を切り替える方法。

QueryContextMenuの引数だけでは右クリックと右ドラッグの区別は出来ない(いままでこの方法でやろうとして失敗してきた;気づくのが遅い)。

どうやれば区別できるかというと、レジストリにハンドラを登録するときに複数のCLSIDを使って登録するようにすること。

こうすると、DllGetClassObject()の引数に渡ってくるCLSIDで右クリックか右ドラッグかが判別できる。あとは、この区別をそのままメニュー表示まで持ち込むだけである。

考えたらとっても簡単なことなのに、気づくまでに本当に時間がかかった。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond

読み込み中...