На этом шаге мы рассмотрим правила регистрации типа документа в реестре.
Приложение архитектуры "документ/вид", созданное мастером АррWizard, размещает в системном реестре
следующие данные.
- Параметры, позволяющие диспетчеру файлов Windows связать тип документа с приложением.
Это дает возможность пользователю автоматически запускать приложение двойным щелчком значка документа. - Путь к профилю пользователя. Профиль служит для хранения в системном реестре пользовательских
параметров между сеансами работы приложения.
Ниже мы покажем, как создавать эти параметры и обращаться к ним.
Регистрация типа документа
Регистрируя в диспетчере файлов Windows новый тип документа приложения, AppWizard добавляет в
функцию InitInstance() объекта приложения следующую строку:
RegisterShellFileTypes(TRUE);
CWinApp::RegisterShellFileTypes() просматривает список шаблонов документов данного приложения и для каждого
из них добавляет в HKEY_CLASSES_ROOT параметры связи типа файла. RegisterShellFileTypes() также добавляет
параметр, задающий для данного типа значок по умолчанию.
Поскольку оболочка "узнает" тип документа по расширению, не забудьте определить его в окне 4 мастера AppWizard
в диалоговом окне Advanced Options. Если Вы не сделаете этого, RegisterShellFileTypes() вызываться не будет.
Вызванная с параметром TRUE, RegisterShellFileTypes() добавит параметры для команд оболочки Print и Print To,
что позволит пользователю печатать файлы непосредственно из нее или просто перетаскивая файл на значок принтера.
AppWizard создает файл реестра (с расширением *.reg), который Вы можете применять в процессе установки приложения
для внесения всех необходимых изменений в системный реестр. Этот файл очень удобен, потому что при
удалении программы он пригодится для удаления всех параметров, внесенных в реестр при установке - а это позволяет более эффективно
управлять приложениями на пользовательской машине. Если Вы не укажете расширение для своего типа
документов, REG-файл создан не будет.
Замечание. Если Ваше приложение является сервером составных документов
(Compound Document Server), то мастер добавит в функцию InitInstance() дополнительный код,
создающий в системном реестре параметры поддержки OLE.
На следующем шаге мы рассмотрим определение профиля пользователя.