Здравствуйте, nicestep, Вы писали:
N>После продолжительного гугления, появились следующие догадки. Я в приложении перебираю элементы папки, полученной с помощью SHGetSpecialFolderLocation с параметром CSIDL_PRINTERS. Но, как оказалось, начиная с Windows Vista эта функция оставлена лишь для обратной совместимости. Теперь я пробую зайти в папку "Устройства и принтеры" панели управления, но возникают проблемы при получении IShellItem — функция IOpenControlPanel.GetPath возвращает ошибку в выделенной строке
Не знаю, у меня код работает, возвращает ::{26EE0668-A00A-44D7-9371-BEB064C98683}\0\::{A8A91A66-3A7D-4424-8D24-04E180695C7A}
CoInitialize(NULL); не забыли? Какой код ошибки вообще?