2

ファイルを一覧表示するアプリケーションがあり、ユーザーがファイルを右クリックできるようにすると、アプリケーションに選択したファイルの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つのアイテムまたは同じ親を持つアイテムに対して完全に機能しますが、異なる親を持つアイテムのコンテキストメニューを表示するにはどうすればよいですか?

4

1 に答える 1

1

将来の参考のCDefFolderMenu_Create2ために、複数のシェルアイテムのコンテキストメニューを作成するために使用できるようです。あなたはここでいくつかの優れた情報を見つけることができます:

于 2010-02-10T15:32:10.933 に答える