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


Класс COleLinkingDoc

Базовый класс для документов OLE-контейнер, которые поддерживают связывание на внедренный элементам они содержатся.

class COleLinkingDoc : public COleDocument

Члены

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

Имя

Описание

COleLinkingDoc::COleLinkingDoc

Создает объект COleLinkingDoc.

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

Имя

Описание

COleLinkingDoc::Register

Регистрирует документ с OLE системные библиотеки DLL.

COleLinkingDoc::Revoke

Отменяет регистрацию документа.

Защищенные методы

Имя

Описание

COleLinkingDoc::OnFindEmbeddedItem

Находит указанный встроенный элемент.

COleLinkingDoc::OnGetLinkedItem

Находит заданный связанный элемент.

Заметки

Приложение-контейнер, который поддерживает связывание на внедренный элементам вызвать контейнером "соединения". Пример приложения OCLIENT примере контейнера ссылки.

Если источник связанного элемента, внедренный элемент в другом документе, в котором содержится документ должна быть загружена, внедренный элемент, который нужно изменить. По этой причине контейнер связи должен запускаться другим приложение-контейнером, когда пользователь хочет изменить источник связанного элемента. Приложение должно также использовать класс COleTemplateServer для правильного создания документов started программно.

Чтобы сделать своим контейнером контейнер связи, наследуйте класс от COleLinkingDoc документа вместо COleDocument. Как и с любым другим OLE-контейнер, необходимо сконструировать класс для хранения данных так же, как и встроенные или связанные элементы приложения собственных. Кроме того, структуры, проектных данных для хранения собственные данные. При указании CDocItem- производный класс для данных приложения собственных можно использовать интерфейс указанный COleDocument чтобы хранить собственные данные, а также существующие данные в формате ole.

Чтобы разрешить приложение запускаться программно другим контейнером, объявите объект COleTemplateServer в качестве члена CWinApp приложения - производный класс.

class COleContainerApp : public CWinApp
{
protected:
   COleTemplateServer m_server;
   // remainder of class declaration ommitted

В функции-члене вашего CWinApp- производном классе InitInstance, создайте шаблон документа и определите COleLinkingDoc- производный класс как класс документа.

   // CMyLinkDoc is derived from COleLinkingDoc
   CMultiDocTemplate* pDocTemplate = new CMultiDocTemplate(IDR_LINKDOCTYPE,
      RUNTIME_CLASS(CMyLinkDoc),
      RUNTIME_CLASS(CChildFrame),
      RUNTIME_CLASS(CMyLinkView));
    if (!pDocTemplate)
        return FALSE;
   pDocTemplate->SetContainerInfo(IDR_OLECONTTYPE_CNTR_IP);
   AddDocTemplate(pDocTemplate);

Подключите объект COleTemplateServer к шаблонам документов, вызвав функцию-член ConnectTemplate объекта и зарегистрируйте все объекты класса с OLE системой путем вызова COleTemplateServer::RegisterAll:

m_server.ConnectTemplate(clsid, pDocTemplate, FALSE);
COleTemplateServer::RegisterAll();

Образец CWinApp- определение производного класса, а функция InitInstance см. в разделе OCLIENT.H и OCLIENT.CPP в образце OCLIENT MFC.

Дополнительные сведения об использовании COleLinkingDoc см. в разделе статьи контейнеры: Реализация контейнера и контейнеры: Расширенные функции.

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

CObject

CCmdTarget

CDocument

COleDocument

COleLinkingDoc

Требования

Header: afxole.h

См. также

Ссылки

Класс COleDocument

Диаграмма иерархии

Класс CDocTemplate

Основные понятия

Образец OCLIENT MFC