Зверніть увагу, що поля Author, Title, і Comment вказані в рядку prop :. Коли Ви затримуєте курсор миші над MP3 файлом, Провідник викликає наше розширення, щоб отримати і показати рядки з цих полів. Документація в MSDN стверджує, що наші замовні поля також можуть з'являтися в InfoTips (саме тому наш GUID і ідентифікатори властивостей з'явилися в вищенаведеної рядку), проте, в Win2K це не працює. Тільки вбудовані властивості з'являються в InfoTips. Ось як виглядає InfoTip:
Приклад 9 «Налаштування іконок, що відображаються для файлів заданого типу» Файлові іконки в Провіднику
Всі знають, що кожен тип файлу представлений в Провіднику конкретної іконкою. BMP файли показуються із позначкою "пензля в фарбі", HTML сторінки - значком "сторінка з логотипом IE" і т.д. Провідник визначає яку іконку використовувати переглядаючи реєстр і читаючи ключ під HKEY_CLASSES_ROOT, пов'язаний з даним типом файлів. В результаті використання цього методу одна іконка асоціюється з усіма файлами конкретного типу.
Однак це не єдиний шлях для завдання виду іконки. Провідник дозволяє налаштовувати вигляд іконки від файлу до файлу за допомогою відповідного розширення. Фактично такий приклад вже вбудований в Windows. Відкрийте в Провіднику каталог Windows (або будь-який інший каталог, що містить багато EXE файлів) і ви побачите, що кожен EXE файл має власну іконку. (За винятком EXE файлів, ресурси яких не містять іконок. Для них генерується одна загальна іконка.)
Демонстраційний проект цієї статті - розширення, яке відображає для текстового файлу одну з чотирьох ікон в залежності від розміру цього файлу. Наявні наступні іконки:
- від 1 байта до 4K
Використання AppWizard
Запустіть AppWizard і створіть новий ATL COM проект. Назвемо його TxtFileIcons. Клацніть ОК, щоб перейти до першого (і єдиного) діалогу майстра. Збережіть всі установки за замовчуванням і клацніть Finish. Тепер у нас є порожній ATL проект, який побудує DLL, але нам необхідно ще додати наш COM об'єкт-розширення. У дереві ClassView клацніть правою кнопкою миші на пункті TxtFileIcons classes і вкажіть New ATL Object.
У майстра ATL Object на першій панелі вже обраний Simple Object. тому просто клацніть Next. На другій панелі в полі редагування Short Name введіть TxtIconShlExt і клацніть ОК (інші поля заповняться автоматично). Ці дії створять клас CTxtIconShlExt. який містить основний код для реалізації COM об'єктів. Ми додамо наш код в цей клас.