.NET: как создать наложение значков файлов

Я пытаюсь добавить разные наложения значков поверх значков различных файлов (примечание: не все файлы определенного типа, а только определенные файлы). Если вы не понимаете, что я имею в виду, я имею в виду то, что делают такие программы, как TortoiseSVN, TortoiseHG, Dropbox и т. д.

Можно ли это сделать в .NET? Если да, то как? Я надеюсь, что для этого есть библиотека. Я нашел эту статью CodeProject примерно так, но это не .NET.

Заранее спасибо.


person Maxim Zaslavsky    schedule 22.03.2010    source источник
comment
попробуйте это codeproject.com/Articles/545781/   -  person TECNO    schedule 04.08.2020


Ответы (1)


Нет, это не .NET. Программирование оболочки находится в области неуправляемого C/C++. Shell32.dll имеет библиотеку типов, которая делает некоторые функции доступными для языков сценариев и .NET. А вот интерфейс IShellIconOverlay наследуется от IUnknown, недоступен для сценариев. Технически это возможно, но вам придется повторно объявить интерфейс в C#, используя объявление в заголовочном файле SDK ShlObj.h в качестве шаблона. Возможно, кто-то где-то это уже делал, но редко кто пытается заставить это работать. Быстрый поиск в гугле ничего полезного не дает.

Будем надеяться, что .NET 4.0 оживит некоторую активность, решив проблему внедрения версии CLR. Я еще не видел признаков этого.

person Hans Passant    schedule 23.03.2010
comment
Итак, .NET 4.0 уже вышел, возможно ли это сейчас? - person EaterOfCode; 03.10.2012
comment
Это никогда не было невозможным. Ничего не изменилось с тех пор, как я опубликовал это, .NET 4.0 не оживил активность. Вероятно, потому что Microsoft объявила его неподдерживаемым. - person Hans Passant; 03.10.2012
comment
.NET отлично поддерживает все эти функции, я почти закончил реализацию всех стандартных расширений, наложения значков здесь: codeproject.com/Articles/545781/ - person Dave Kerr; 14.02.2013