ファイルを一覧表示するアプリケーションがあり、ユーザーがファイルを右クリックできるようにすると、アプリケーションに選択したファイルのWindowsコンテキストメニューが表示されます。
私SHParseDisplayName
はファイル名のpidlを取得するために使用します。次に、親オブジェクトにバインドします。
IntPtr pidlLast = IntPtr.Zero;
SHBindToParent(pidl, typeof(IShellFolder).GUID, out oShellFolder, out pidlLast);
親を取得したら、コンテキストメニューを作成できます。
IntPtr result = IntPtr.Zero;
IShellFolder shellFolder = (IShellFolder)oShellFolder;
shellFolder.GetUIObjectOf(windowHandle, (uint)pidls.Count,
pidls.ToArray(), typeof(IContextMenu).GUID, 0, out result);
これは、1つのアイテムまたは同じ親を持つアイテムに対して完全に機能しますが、異なる親を持つアイテムのコンテキストメニューを表示するにはどうすればよいですか?