Поскольку вы настаиваете на "получении" объектов оболочки, я предполагаю, что вы не используете элемент управления представлением списка, который требует от вас написания собственной поддержки оболочки, как это делает CMFCShellListCtrl.Было бы довольно просто добавить поддержку нескольких папок, если вы уже написали код для отображения файлов из одной папки в элементе управления представлением списка.
Если вы используете элемент управления Explorer браузера, отметьте пример проекта Hilo , он создает папку поиска с областью агрегации библиотек пользователя.Вероятно, вы можете создать свою собственную коллекцию папок с помощью интерфейса IObjectCollection объекта CLSID_EnumerableObjectCollection.Пример отображения папки поиска в элементе управления обозревателя Explorer: Пример поиска обозревателя Explorer