Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Библиотека классов Microsoft Foundation (MFC) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.
Реализует дополнительные интерфейсы OLE, необходимые для преобразования стандартного сервера COleDocument в полноценный сервер DocObject: IOleDocument, IOleDocumentView, IOleCommandTargetи IPrint.
Синтаксис
class CDocObjectServer : public CCmdTarget
Участники
Открытые конструкторы
| Имя | Описание |
|---|---|
| CDocObjectServer::CDocObjectServer | Формирует объект CDocObjectServer. |
Открытые методы
| Имя | Описание |
|---|---|
| CDocObjectServer::ActivateDocObject | Активирует сервер объектов документа, но не отображает его. |
Защищенные методы
| Имя | Описание |
|---|---|
| CDocObjectServer::OnActivateView | Отображает представление DocObject. |
| CDocObjectServer::OnApplyViewState | Восстанавливает состояние представления DocObject. |
| CDocObjectServer::OnSaveViewState | Сохраняет состояние представления DocObject. |
Замечания
CDocObjectServer является производным от CCmdTarget и тесно взаимодействует с COleServerDoc предоставлением интерфейсов.
Документ сервера DocObject может содержать объекты CDocObjectServerItem , представляющие интерфейс сервера для элементов DocObject.
Чтобы настроить сервер DocObject, наследуйте собственный класс из CDocObjectServer функций установки представления, OnActivateView, OnApplyViewState и OnSaveViewState. Вам потребуется предоставить новый экземпляр класса в ответ на вызовы платформы.
Дополнительные сведения о DocObjects см. в разделе CDocObjectServerItem и COleCmdUI в справочнике по MFC.
Иерархия наследования
CDocObjectServer
Требования
Заголовок: afxdocob.h
CDocObjectServer::ActivateDocObject
Вызовите эту функцию для активации (но не отображения) сервера объектов документа.
void ActivateDocObject();
Замечания
ActivateDocObject
IOleDocumentSite вызывает ActivateMeметод, но не отображает представление, так как ожидает определенных инструкций по настройке и отображению представления, заданного в вызове CDocObjectServer::OnActivateView.
Вместе и ActivateDocObject активируйте и OnActivateView отобразите представление DocObject. Активация DocObject отличается от других видов активации OLE на месте. Активация DocObject проходит путем отображения границ хэтча на месте и украшений объектов (таких как дескриптор размера), игнорирует функции экстентов объектов и рисует полосы прокрутки в прямоугольнике представления в отличие от рисования их за пределами прямоугольника (как и в обычной активации на месте).
CDocObjectServer::CDocObjectServer
Создает и инициализирует объект CDocObjectServer.
explicit CDocObjectServer(
COleServerDoc* pOwner,
LPOLEDOCUMENTSITE pDocSite = NULL);
Параметры
pOwner
Указатель на документ сайта клиента, который является клиентом для сервера DocObject.
pDocSite
Указатель на интерфейс, реализованный IOleDocumentSite контейнером.
Замечания
Если docObject активен, интерфейс OLE клиентского сайта (IOleDocumentSite) — это то, что позволяет серверу DocObject взаимодействовать с клиентом (контейнером). При активации сервера DocObject сначала проверяет, реализует IOleDocumentSite ли контейнер интерфейс. В этом случае вызывается COleServerDoc::GetDocObjectServer, чтобы узнать, поддерживает ли контейнер DocObjects. По умолчанию GetDocObjectServer возвращает значение NULL. Необходимо переопределить COleServerDoc::GetDocObjectServer для создания нового CDocObjectServer объекта или производного объекта собственного объекта с указателями на COleServerDoc контейнер и его IOleDocumentSite интерфейс в качестве аргументов конструктора.
CDocObjectServer::OnActivateView
Вызовите эту функцию для отображения представления DocObject.
virtual HRESULT OnActivateView();
Возвращаемое значение
Возвращает значение ошибки или предупреждения. По умолчанию возвращает NOERROR в случае успешного выполнения; в противном случае E_FAIL.
Замечания
Эта функция создает окно кадра на месте, рисует полосы прокрутки в представлении, настраивает меню общих папок сервера с контейнером, добавляет элементы управления кадром, задает активный объект, а затем показывает окно кадра на месте и задает фокус.
CDocObjectServer::OnApplyViewState
Переопределите эту функцию, чтобы восстановить состояние представления DocObject.
virtual void OnApplyViewState(CArchive& ar);
Параметры
ар
CArchive Объект, из которого выполняется сериализация состояния представления.
Замечания
Эта функция вызывается при первом отображении представления после его создания.
OnApplyViewState Указывает представлению повторно инициализироваться в соответствии с данными в объекте CArchive , ранее сохраненным с помощью OnSaveViewState. Представление должно проверять данные в объекте CArchive , так как контейнер не пытается интерпретировать данные состояния представления каким-либо образом.
Вы можете использовать OnSaveViewState для хранения сохраняемой информации, относяющейся к состоянию представления. При переопределении OnSaveViewState для хранения данных необходимо переопределить OnApplyViewState чтение этой информации и применить его к представлению при его активации.
CDocObjectServer::OnSaveViewState
Переопределите эту функцию, чтобы сохранить дополнительные сведения о состоянии представления DocObject.
virtual void OnSaveViewState(CArchive& ar);
Параметры
ар
CArchive Объект, в котором сериализуется состояние представления.
Замечания
Состояние может включать такие свойства, как тип представления, коэффициент масштабирования, точка вставки и выделения и т. д. Контейнер обычно вызывает эту функцию перед деактивированием представления. Сохраненное состояние можно восстановить позже с помощью OnApplyViewState.
Вы можете использовать OnSaveViewState для хранения сохраняемой информации, относяющейся к состоянию представления. При переопределении OnSaveViewState для хранения данных необходимо переопределить OnApplyViewState чтение этой информации и применить его к представлению при его активации.
См. также
Класс CCmdTarget
Диаграмма иерархии
Класс CDocObjectServerItem