Следующий код возвращает список Explorer, наиболее часто используемых папок в Windows 8 (проверка ошибок для наглядности):ВОССТАНОВЛЕНИЕ Explorer, в ОС Windows 10
CComPtr<IApplicationDocumentLists> pDocList;
pDocList.CoCreateInstance(CLSID_ApplicationDocumentLists);
pDocList->SetAppID(L"Microsoft.Windows.Explorer");
CComPtr<IObjectArray> pArray;
pDocList->GetList(ADLT_FREQUENT, 0, IID_IObjectArray, (void**)&pArray);
Это не работает в ОС Windows 10. pDocList
является valid, и pArray
действителен, но массив не содержит элементов, даже если в списке переходов Explorer есть вещи.
Я попытался получить недавний (а не часто) список документов, но это тоже не сработает, хотя в этом случае это GetList()
, который терпит неудачу.
Кто-нибудь знает, что произошло здесь? Изменен ли идентификатор приложения для проводника?
Это злоупотребление с помощью метода SetAppID. Вы должны установить его на свой собственный идентификатор приложения, а не на кого-то другого. Использование его для отслеживания чужого идентификатора приложения не поддерживается. –