自作のプログラムから、エクスプローラの右クリックで表示されるコンテキストメニューを表示しようとしています。

IShellFolder *pShellFolder;
IContextMenu *pContextMenu;
pShellFolder->GetUIObjectOf(NULL, pItemListLen, &pItemList, IID_IContextMenu, NULL, (void **)&pContextMenu);
HMENU hmenu = CreatePopupMenu();
pContextMenu->QueryContextMenu(hmenu, 0, 0x001, 0x7fff, CMF_NORMAL);

とコンテキストメニューを作成しています。
pItemListにはILFindLastID()で取得した対象のファイルのIDが、
pShellFolderには親ディレクトリを格納しています。

同一フォルダ内のファイルであれば、複数のファイルのコンテキストメニューを作れるのですが、
異なるフォルダにある複数のファイルだと作成できません。
エクスプローラだと検索結果などから異なるフォルダにあるファイルから
コンテキストメニューを出してるみたいなのですが、どうやったら出来るのでしょうか?