Windows 64ビットコンテキストメニューを32ビットアプリケーション内に埋め込みたい(TotalCommanderのX64サブメニューなど)。これを行うには、32ビット側で64ビットのメニューコンテンツをシミュレートする必要があります。私の考えは、64ビットヘルパープロセス内で64ビットメニューを横断し、そのようなコンテンツを32ビット側で再生成することです(私は64ビットヘルパーから直接このようなメニューを表示しようとしましたが、ウィンドウはそれぞれ2つのコンテキストメニュー異なるプロセスから、そして第2のメニューを正しくペイントしない)。あなたに他のアイデアがあるかどうか教えてください。32ビットアプリケーション内の64ビットWindowsコンテキストメニュー(オーナー描画メニューのトラバース方法)
オーナー描画メニューの中には、GetMenuItemCount()が返すものよりも多くの項目を表示するものがあります(通常、GetMenuItemCount()はそのような場合に1を返します)。
興味深いのは、アイテムID(これはTrackPopupMenuEx()から返されます)を使用してオーナー描画メニューアイテムにGetMenuItemInfo()を使用できることです。しかし残念なことに、IDを使用してメニューアイテムを反復することはできません(アイテムIDは順不同です)。
アイデア?
+1すばらしい探偵の仕事。 :) – vhallac
すべての点で、私の質問を読みましたか?私はすでに64ビットヘルパープロセスを持っていると書いています。私が持っている問題は、オーナーが描いたメニューをいくつかトラバースする方法です。 – Bogdan
コンテキストメニューをどのプロセスから列挙していますか? 64ビットヘルパープロセスから32ビットプロセスにメニュー情報を渡すことができます。または、ここでいくつかの情報を追加する必要があるかもしれません。 – Ajay