Получить значок файла для встречи Outlook (.msg)
Я прочитал Get File Icon, используемый Shell, и другие подобные посты - и уже использую SHFileInfo, чтобы получить соответствующий значок для любого расширения, и это прекрасно работает.
Тем не менее, Outlook использует ".msg" для элементов почты и встреч (если вы перетаскиваете электронное письмо и перетаскиваете событие на рабочий стол, результирующие значки отличаются). Я заметил, что если я использую метод реестра, стандартный значок конверта находится по адресу 17 индекса C:\WINDOWS\Installer{90120000-0011-0000-0000-0000000FF1CE}\outicon.exe (на моей машине XP, на которой запущен Outlook 2007) - и, что достаточно удобно, значок встречи находится в индексе 18. Я могу жестко кодировать 18 при извлечении значка, но это звучит очень неубедительно.
Учитывая имя файла электронной почты или встречи (но не фактический файл), а также знание того, что это электронная почта или встреча, кто-нибудь знает, как получить правильную иконку, либо через оболочку, либо через реестр?
Конечно, если бы у меня был удобный файл, я мог бы просто использовать Icon.ExtractAssociatedIcon, но в системе, над которой я работаю, мы показываем список файлов, которые хранятся в другом месте, и предварительно загрузить каждый из них невозможно,
1 ответ
Если вы знаете, когда это назначенная встреча или письмо, не могли бы вы передать "встречи.ик" в вашу функцию SHFileInfo и получить правильный значок? Маркус