Поделиться через


Класс COleTemplateServer

Используется для OLE-серверов визуального редактирования, серверов автоматизации и контейнеров связей (приложений, поддерживающих ссылки на внедряемые объекты).

Синтаксис

class COleTemplateServer : public COleObjectFactory

Участники

Открытые конструкторы

Имя Описание
COleTemplateServer::COleTemplateServer Формирует объект COleTemplateServer.

Открытые методы

Имя Описание
COleTemplateServer::ConnectTemplate Подключает шаблон документа к базовому COleObjectFactory объекту.
COleTemplateServer::Unregister Отменяет регистрацию связанного шаблона документа.
COleTemplateServer::UpdateRegistry Регистрирует тип документа в системный реестр OLE.

Замечания

Этот класс является производным от класса COleObjectFactory; обычно можно использовать COleTemplateServer напрямую, а не производный собственный класс. COleTemplateServerиспользует объект CDocTemplate для управления документами сервера. Используйте COleTemplateServer при реализации полного сервера, то есть сервера, который можно запустить как автономное приложение. Полные серверы обычно являются несколькими приложениями интерфейса документов (MDI), хотя поддерживаются приложения с одним интерфейсом документов (SDI). Для каждого типа документа сервера требуется один COleTemplateServer объект, поддерживаемый приложением. То есть, если серверное приложение поддерживает как листы, так и диаграммы, необходимо иметь два COleTemplateServer объекта.

COleTemplateServer переопределяет функцию-член, определяемую OnCreateInstance COleObjectFactory. Эта функция-член вызывается платформой для создания объекта C++ соответствующего типа.

Дополнительные сведения о серверах см. в статье "Серверы: реализация сервера".

Иерархия наследования

CObject

CCmdTarget

COleObjectFactory

COleTemplateServer

Требования

Заголовок: afxdisp.h

COleTemplateServer::COleTemplateServer

Формирует объект COleTemplateServer.

COleTemplateServer();

Замечания

Краткое описание использования COleTemplateServer класса см. в обзоре класса COleLinkingDoc .

COleTemplateServer::ConnectTemplate

Подключает шаблон документа, на который указывает pDocTemplate, к базовому объекту COleObjectFactory.

void ConnectTemplate(
    REFCLSID clsid,
    CDocTemplate* pDocTemplate,
    BOOL bMultiInstance);

Параметры

clsid
Ссылка на идентификатор класса OLE, запрашиваемого шаблоном.

pDocTemplate
Указатель на шаблон документа.

bMultiInstance
Указывает, может ли один экземпляр приложения поддерживать несколько экземпляров. Если значение TRUE, для каждого запроса для создания объекта запускается несколько экземпляров приложения.

Замечания

Дополнительные сведения см. в разделе CLSID Key in the Windows SDK.

COleTemplateServer::Unregister

Отменяет регистрацию связанного шаблона документа.

BOOL Unregister();

Возвращаемое значение

Значение TRUE, если успешно; в противном случае — FALSE.

Замечания

ВводRemarks

COleTemplateServer::UpdateRegistry

Загружает сведения о типе файла из строки шаблона документа и помещает эти сведения в системный реестр OLE.

void UpdateRegistry(
    OLE_APPTYPE nAppType = OAT_INPLACE_SERVER,
    LPCTSTR* rglpszRegister = NULL,
    LPCTSTR* rglpszOverwrite = NULL,
    BOOL bRegister = TRUE);

Параметры

nAppType
Значение из перечисления OLE_APPTYPE, определенного в AFXDISP.H. Он может иметь одно из следующих значений:

  • OAT_INPLACE_SERVER Server имеет полный пользовательский интерфейс сервера.

  • OAT_SERVER Server поддерживает только внедрение.

  • контейнер OAT_CONTAINER поддерживает ссылки на внедренные объекты.

  • объект OAT_DISPATCH_OBJECT поддерживается IDispatch.

  • OAT_DOC_OBJECT_SERVER Server поддерживает внедрение и модель компонента объекта документа.

rglpszRegister
Список записей, записанных в реестр, только если записи отсутствуют.

rglpszOverwrite
Список записей, записанных в реестр, независимо от того, существуют ли предыдущие записи.

bRegister
Определяет, должен ли класс быть зарегистрирован. Если bRegister имеет значение TRUE, класс регистрируется в системный реестр. В противном случае он отменяет регистрацию класса.

Замечания

Сведения о регистрации загружаются с помощью вызова CDocTemplate::GetDocString. Извлекаемые подстроки — это те, которые определяются индексами regFileTypeIdиregFileTypeNamefileNewName, как описано на GetDocString справочных страницах.

regFileTypeId Если подстрока пуста или если вызов завершается GetDocString ошибкой по какой-либо другой причине, эта функция завершается ошибкой, а сведения о файле не вводятся в реестре.

Сведения в аргументах rglpszRegister и rglpszOverwrite записываются в реестр с помощью вызова AfxOleRegisterServerClass. Сведения по умолчанию, зарегистрированные при наличии двух аргументов NULL, подходят для большинства приложений. Сведения о структуре информации в этих аргументах см. в разделе AfxOleRegisterServerClass.

Дополнительные сведения см. в разделе Implementing the IDispatch Interface.

См. также

Пример HIERSVR MFC
Класс COleObjectFactory
Диаграмма иерархии
Класс COleServerDoc
Класс COleServerItem