получить значок файла для встречи Outlook (.msg) - PullRequest
1 голос
/ 09 ноября 2009

Я прочитал Получить значок файла, используемый Shell и другими подобными сообщениями - и уже использую SHFileInfo, чтобы получить связанный значок для любого данного расширения, и это прекрасно работает.

Однако Outlook использует «.msg» для элементов почты и встреч (если вы перетаскиваете электронное письмо и перетаскиваете событие на рабочий стол, результирующие значки будут другими). Я заметил, что если я использую метод реестра, стандартная иконка конверта находится в индексе 17 C: \ WINDOWS \ Installer {90120000-0011-0000-0000-0000000FF1CE} \ outicon.exe (на моей машине XP с Outlook 2007) - и, что достаточно удобно, значок встречи находится в указателе 18. Я могу жестко кодировать 18 при извлечении значка, но это звучит очень хрупко.

Учитывая имя файла электронной почты или встречи (но не фактический файл) и знание, что это электронная почта или встреча, кто-нибудь знает, как получить правильный значок, либо через оболочку, либо через реестр?

Конечно, если бы у меня был удобный файл, я мог бы просто использовать Icon.ExtractAssociatedIcon, но в системе, над которой я работаю, мы показываем список файлов, которые хранятся в другом месте, и предварительно загружаем каждый из них. невозможно.

1 Ответ

1 голос
/ 24 февраля 2010

Если вы знаете, когда это встреча или электронная почта, не могли бы вы передать "meeting.ics" в вашу функцию SHFileInfo и получить правильный значок? Marcus

...