Визуальное программирование и MFC

       

Усовершенствование сервера


Попросту говоря, сейчас необходимо выполнить всю основную работу. Для этого следует:

  • выбрать команду “New ATL Object” меню “Insert” среды Developer Studio;
  • в окне мастера ATL Object Wizard следует выбрать категорию “Objects” и элемент “Simple Object”, затем нажать кнопку “Next”.
  • в поле ”Short Name” закладки “Names” появившегося диалогового окна “ATL Object Wizard Properties” необходимо указать имя объекта SimpleATL;
  • перейти к закладке “Attributes” этого же диалогового окна и выбрать свойства: “Threading model” – “Free”, “Interface” – “Dual”, “Aggregation” – “No”. Также следует отметить (выбрать) опции “Support ISupportErrorInfo”, “Support Connection Points”, “Free Threaded Marshaler”, а затем щелкнуть на кнопке ОК.
  • Теперь в рабочем окне классов проекта повляется два новых узла. Первый узел – это класс CSimpleATL, основанный на нескольких различных интерфейсах. Второй узел – это непосредственно интерфейс ISimpleATL, основанный на интерфейсе IDispatch. Мастер ATL Object Wizard генерирует класс CSimpleATL и файл IDL для данного проекта. Этот файл используется для создания библиотеки типов для нескольких интерфейсов COM.

    Следует обратить внимание, что интерфейс ISimpleATL представлен в рабочем окне проекта в виде одного из подузлов. Это показывает, что класс CSimpleATL реализует по крайней мере интерфейс ISimpleATL.

    Теперь необходимо добавить методы и свойства указанному интерфейсу. Для этого необходимо выполнить следующие действия:

  • выбрать узел ISimpleATL и щелкнуть на нем правой кнопкой мыши;
  • выбрать команду “Add Method” или “AddProperty”;
  • в случае добавления метода в поле “Method Name” ввести имя метода, а в поле “Parameters” ввести параметры, их типы и характеристики (как в описании методов IDL-файле). Реализации методов ATL должны возвращать HRESULT для всех методов и свойств. Характеристика [in] соответствует входным параметрам, а обозначение [out] — выходным, обозначение [out, retval] соответствует возвращаемому параметру (он должен быть только один, причем последним в списке параметров);
  • в случае добавления свойства следует ввести тип свойства и его имя, а также вариант реализации нового параметра (например, через пару функций Get/Put).
  • Как и раньше, следует откомпилировать сервер и зарегистрировать сервер автоматизации в операционной системе. Для регистрации DLL-сервера следует выбрать команду “RegisterControl” меню “Tools”. Локальный сервер регистрируется при его запуске с параметром /RegServer (наприме, SvrExe.exe /RegServer). В этом случае сервер регистрируется и на этом прекращает свою работу. Заметим, что для удаления информации о сервере из реестра Windows используется запуск сервера с ключом /UnregServer (команда SvrExe.exe /UnregServer).



    Содержание раздела