Документы говорят мне, что SHCreateShellItemArrayFromDataObject
может быть более простым способом получить список файлов из DataObject
, чем DataObject::GetFiles
.Я хочу использовать функцию в ShellExtInit::Initialize
, но не могу понять, как.
Мне нужен какой-то IShellItemArray
, чтобы поместить результат, но это абстрактный класс, поэтому я не знаю, какопределить это.И SHCreateShellItemArrayFromDataObject
последний аргумент должен быть типа void**
, который я не знаю, как удовлетворить.
Как я могу исправить код?
HRESULT MyContextMenuHandler::Initialize(PCIDLIST_ABSOLUTE pidlFolder, IDataObject* pdtObj, HKEY hkeyProgId)
{
[...]
IShellItemArray items; // Class IShellItemArray is abstract
HRESULT hr = SHCreateShellItemArrayFromDataObject(pdtObj, IID_IShellItemArray, &items); // Cannot convert to void**