Я разрабатываю какое-то расширение пространства имен для Windows 7. Мое расширение предоставляет некоторые конкретные приложения в контекстном меню для всех файлов и папок. Но я хочу обрабатывать файлы и папки по-разному. Есть ли способ определить, является ли IShellItem
предоставляющим объект интерфейса, папкой или файлом?
Вы можете использовать метод IShellItem :: GetAttributes, например:
SFGAOF att = 0;
if (SUCCEEDED(pItem->GetAttributes(SFGAO_FOLDER, &att))) // pItem is a IShellItem*
{
if (att & SFGAO_FOLDER)
{
// it a folder
}
}