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


Класс COleClientItem

Определяет контейнерный интерфейс для элементов OLE.

Синтаксис

class COleClientItem : public CDocItem

Участники

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

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

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

Имя Описание
COleClientItem::Activate Открывает элемент OLE для операции, а затем выполняет указанную команду.
COleClientItem::ActivateAs Активирует элемент в качестве другого типа.
COleClientItem::AttachDataObject Обращается к данным в объекте OLE.
COleClientItem::CanCreateFromData Указывает, может ли приложение-контейнер создать внедренный объект.
COleClientItem::CanCreateLinkFromData Указывает, может ли приложение-контейнер создать связанный объект.
COleClientItem::CanPaste Указывает, содержит ли буфер обмена внедренный или статический элемент OLE.
COleClientItem::CanPasteLink Указывает, содержит ли буфер обмена элемент OLE, доступный для связывания.
COleClientItem::Close Закрывает ссылку на сервер, но не уничтожает элемент OLE.
COleClientItem::ConvertTo Преобразует элемент в другой тип.
COleClientItem::CopyToClipboard Копирует элемент OLE в буфер обмена.
COleClientItem::CreateCloneFrom Создает дубликат существующего элемента.
COleClientItem::CreateFromClipboard Создает внедренный элемент из буфера обмена.
COleClientItem::CreateFromData Создает внедренный элемент из объекта данных.
COleClientItem::CreateFromFile Создает внедренный элемент из файла.
COleClientItem::CreateLinkFromClipboard Создает связанный элемент из буфера обмена.
COleClientItem::CreateLinkFromData Создает связанный элемент из объекта данных.
COleClientItem::CreateLinkFromFile Создает связанный элемент из файла.
COleClientItem::CreateNewItem Создает новый внедренный элемент, запуская серверное приложение.
COleClientItem::CreateStaticFromClipboard Создает статический элемент из буфера обмена.
COleClientItem::CreateStaticFromData Создает статический элемент из объекта данных.
COleClientItem::D eactivate Деактивирует элемент.
COleClientItem::DeactivateUI Восстанавливает пользовательский интерфейс приложения контейнера в исходном состоянии.
COleClientItem::D elete Удаляет или закрывает элемент OLE, если он был связанным элементом.
COleClientItem::D oDragDrop Выполняет операцию перетаскивания.
COleClientItem::DoVerb Выполняет указанную команду.
COleClientItem::D raw Рисует элемент OLE.
COleClientItem::GetActiveView Получает представление, в котором активируется элемент.
COleClientItem::GetCachedExtent Возвращает границы прямоугольника ЭЛЕМЕНТА OLE.
COleClientItem::GetClassID Возвращает идентификатор класса текущего элемента.
COleClientItem::GetClipboardData Получает данные, которые будут помещены в буфер обмена путем вызова CopyToClipboard функции-члена.
COleClientItem::GetDocument COleDocument Возвращает объект, содержащий данный элемент.
COleClientItem::GetDrawAspect Возвращает текущее представление элемента для отрисовки.
COleClientItem::GetExtent Возвращает границы прямоугольника ЭЛЕМЕНТА OLE.
COleClientItem::GetIconFromRegistry Извлекает дескриптор, связанный с сервером определенного CLSID.
COleClientItem::GetIconicMetafile Возвращает метафайл, используемый для рисования значка элемента.
COleClientItem::GetInPlaceWindow Возвращает указатель на окно редактирования элемента на месте.
COleClientItem::GetItemState Возвращает текущее состояние элемента.
COleClientItem::GetLastStatus Возвращает состояние последней операции OLE.
COleClientItem::GetLinkUpdateOptions Возвращает режим обновления для связанного элемента (расширенная функция).
COleClientItem::GetType Возвращает тип (внедренный, связанный или статический) элемента OLE.
COleClientItem::GetUserType Возвращает строку, описывающую тип элемента.
COleClientItem::IsInPlaceActive Возвращает значение TRUE, если элемент активен на месте.
COleClientItem::IsLinkUpToDate Возвращает значение TRUE, если связанный элемент обновлен в исходном документе.
COleClientItem::IsModified Возвращает значение TRUE, если элемент был изменен с момента последнего сохранения.
COleClientItem::IsOpen Возвращает значение TRUE, если элемент в настоящее время открыт в серверном приложении.
COleClientItem::IsRunning Возвращает значение TRUE, если запущено серверное приложение элемента.
COleClientItem::OnActivate Вызывается платформой, чтобы уведомить элемент о том, что он активирован.
COleClientItem::OnActivateUI Вызывается платформой для уведомления элемента о том, что он активирован и должен отображать его пользовательский интерфейс.
COleClientItem::OnChange Вызывается, когда сервер изменяет элемент OLE. Требуется реализация.
COleClientItem::OnDeactivate Вызывается платформой при деактивации элемента.
COleClientItem::OnDeactivateUI Вызывается платформой, когда сервер удалил свой пользовательский интерфейс на месте.
COleClientItem::OnGetClipboardData Вызывается платформой, чтобы получить данные, скопированные в буфер обмена.
COleClientItem::OnInsertMenus Вызывается платформой для создания составного меню.
COleClientItem::OnRemoveMenus Вызывается платформой для удаления меню контейнера из составного меню.
COleClientItem::OnSetMenu Вызывается платформой для установки и удаления составного меню.
COleClientItem::OnShowControlBars Вызывается платформой для отображения и скрытия панели управления.
COleClientItem::OnUpdateFrameTitle Вызывается платформой для обновления заголовка окна кадра.
COleClientItem::ReactivateAndUndo Повторно активирует элемент и отменяет последнюю операцию редактирования на месте.
COleClientItem::Release Освобождает подключение к связанному элементу OLE и закрывает его, если он был открыт. Не уничтожает элемент клиента.
COleClientItem::Reload Перезагрузит элемент после вызова ActivateAs.
COleClientItem::Run Запускает приложение, связанное с элементом.
COleClientItem::SetDrawAspect Задает текущее представление элемента для отрисовки.
COleClientItem::SetExtent Задает ограничивающий прямоугольник элемента OLE.
COleClientItem::SetHostNames Задает имена, отображаемые сервером при редактировании элемента OLE.
COleClientItem::SetIconicMetafile Кэширует метафайл, используемый для рисования значка элемента.
COleClientItem::SetItemRects Задает ограничивающий прямоугольник элемента.
COleClientItem::SetLinkUpdateOptions Задает режим обновления для связанного элемента (расширенная функция).
COleClientItem::SetPrintDevice Задает целевое устройство печати для этого клиентского элемента.
COleClientItem::UpdateLink Обновляет кэш презентации элемента.

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

Имя Описание
COleClientItem::CanActivate Вызывается платформой, чтобы определить, разрешена ли активация на месте.
COleClientItem::OnChangeItemPosition Вызывается платформой при изменении положения элемента.
COleClientItem::OnDeactivateAndUndo Вызывается платформой для отмены после активации.
COleClientItem::OnDiscardUndoState Вызывается платформой для отмены сведений о состоянии отмены элемента.
COleClientItem::OnGetClipRect Вызывается платформой, чтобы получить координаты вырезки элемента.
COleClientItem::OnGetItemPosition Вызывается платформой, чтобы получить положение элемента относительно представления.
COleClientItem::OnGetWindowContext Вызывается платформой при активации элемента.
COleClientItem::OnScrollBy Вызывается платформой для прокрутки элемента в представление.
COleClientItem::OnShowItem Вызывается платформой для отображения элемента OLE.

Замечания

Элемент OLE представляет данные, созданные и поддерживаемые серверным приложением, которое может быть "легко" включено в документ, чтобы он, как представляется, был одним документом. Результатом является составной документ, состоящий из элемента OLE и содержащего документа.

Элемент OLE может быть внедрен или связан. Если он внедрен, его данные хранятся в составе составного документа. Если он связан, его данные хранятся в составе отдельного файла, созданного серверным приложением, и только ссылка на этот файл хранится в составном документе. Все элементы OLE содержат сведения, указывающие серверное приложение, которое должно вызываться для их изменения.

COleClientItem определяет несколько переопределиемых функций, которые вызываются в ответ на запросы из серверного приложения; эти переопределимые обычно действуют как уведомления. Это позволяет серверу приложению информировать контейнер изменений, внесенных пользователем при редактировании элемента OLE, или получать необходимые сведения во время редактирования.

COleClientItemможно использовать либо с классом COleDocument, COleLinkingDoc или COleServerDoc. Чтобы использовать COleClientItem, наследуйте класс и реализуйте функцию-член OnChange , которая определяет, как контейнер реагирует на изменения, внесенные в элемент. Чтобы обеспечить поддержку активации на месте, переопределите функцию-член OnGetItemPosition . Эта функция содержит сведения о отображаемой позиции элемента OLE.

Дополнительные сведения об использовании интерфейса контейнера см. в статьях "Контейнеры : реализация контейнера и активация".

Примечание.

Пакет SDK для Windows относится к внедренным и связанным элементам как "объектам" и относится к типам элементов как "классы". Эта ссылка использует термин "item" для отличия сущности OLE от соответствующего объекта C++ и термина "type" для отличия категории OLE от класса C++.

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

CObject

CCmdTarget

CDocItem

COleClientItem

Требования

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

COleClientItem::Activate

Вызовите эту функцию, чтобы выполнить указанную команду вместо DoVerb , чтобы можно было выполнить собственную обработку при возникновении исключения.

void Activate(
    LONG nVerb,
    CView* pView,
    LPMSG lpMsg = NULL);

Параметры

nVerb
Указывает выполняемую команду. Может принимать одно из следующих значений:

Значение Значение Символ
- 0 первичный глагол OLEIVERB_PRIMARY
-1 Вторичная команда (Нет)
-1 Отображение элемента для редактирования OLEIVERB_SHOW
-2 Изменение элемента в отдельном окне OLEIVERB_OPEN
-3 Скрытие элемента OLEIVERB_HIDE

Значение -1 обычно является псевдонимом для другой команды. Если открытое редактирование не поддерживается, -2 имеет тот же эффект, что и -1. Дополнительные значения см. в разделе IOleObject::D oVerb в пакете SDK для Windows.

pView
Указатель на окно представления контейнера, содержащее элемент OLE; это используется серверным приложением для активации на месте. Этот параметр должен иметь значение NULL, если контейнер не поддерживает активацию на месте.

lpMsg
Указатель на сообщение, которое вызвало активацию элемента.

Замечания

Если серверное приложение было записано с помощью библиотеки классов Microsoft Foundation, эта функция приводит к выполнению функции члена OnDoVerb соответствующего COleServerItem объекта.

Если в параметре nVerb указан основной глагол " Изменить и ноль", серверное приложение запускается, чтобы разрешить редактирование элемента OLE. Если приложение контейнера поддерживает активацию на месте, можно выполнить редактирование. Если контейнер не поддерживает активацию на месте (или если указана команда Open), сервер запускается в отдельном окне и может быть выполнено редактирование. Как правило, когда пользователь приложения контейнера дважды щелкает элемент OLE, значение основной команды в параметре nVerb определяет, какое действие может предпринять пользователь. Однако если сервер поддерживает только одно действие, он принимает это действие независимо от значения, указанного в параметре nVerb .

Дополнительные сведения см. в разделе IOleObject::D oVerb в пакете SDK для Windows.

COleClientItem::ActivateAs

Использует средства преобразования объектов OLE для активации элемента, как если бы он был элементом типа, заданного clsidNew.

virtual BOOL ActivateAs(
    LPCTSTR lpszUserType,
    REFCLSID clsidOld,
    REFCLSID clsidNew);

Параметры

lpszUserType
Указатель на строку, представляющую тип целевого пользователя, например "Документ Word".

clsidOld
Ссылка на текущий идентификатор класса элемента. Идентификатор класса должен представлять тип фактического объекта, как хранящийся, если он не является ссылкой. В этом случае это должен быть CLSID элемента, к которому ссылается ссылка. COleConvertDialog автоматически предоставляет правильный идентификатор класса для элемента.

clsidNew
Ссылка на идентификатор целевого класса.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Это вызывается автоматически COleConvertDialog::D oConvert. Обычно он не вызывается напрямую.

COleClientItem::AttachDataObject

Вызовите эту функцию, чтобы инициализировать COleDataObject для доступа к данным в элементе OLE.

void AttachDataObject(COleDataObject& rDataObject) const;

Параметры

rDataObject
Ссылка на COleDataObject объект, который будет инициализирован, чтобы разрешить доступ к данным в элементе OLE.

COleClientItem::CanActivate

Вызывается платформой, когда пользователь запрашивает активацию на месте элемента OLE; Возвращаемое значение этой функции определяет, разрешена ли активация на месте.

virtual BOOL CanActivate();

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

Ненулевое значение, если разрешена активация на месте; в противном случае — 0.

Замечания

Реализация по умолчанию разрешает активацию на месте, если контейнер имеет допустимое окно. Переопределите эту функцию, чтобы реализовать специальную логику для принятия или отказа запроса на активацию. Например, запрос на активацию может быть отклонен, если элемент OLE слишком мал или не отображается в данный момент.

Дополнительные сведения см. в разделе IOleInPlaceSite::CanInPlaceActivate в пакете SDK для Windows.

COleClientItem::CanCreateFromData

Проверяет, может ли приложение-контейнер создать внедренный объект из данного COleDataObject объекта.

static BOOL PASCAL CanCreateFromData(const COleDataObject* pDataObject);

Параметры

pDataObject
Указатель на объект COleDataObject , из которого создается элемент OLE.

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

Ненулевое значение, если контейнер может создать внедренный объект из COleDataObject объекта; в противном случае — значение 0.

Замечания

Класс COleDataObject используется в передаче данных для получения данных в различных форматах из буфера обмена, перетаскивания или из внедренного элемента OLE.

Контейнеры могут использовать эту функцию для включения или отключения их команд "Изменить вставку" и "Изменить вставить специальные".

Дополнительные сведения см. в статье "Объекты данных и источники данных" (OLE).

COleClientItem::CanCreateLinkFromData

Проверяет, может ли приложение-контейнер создать связанный объект из данного COleDataObject объекта.

static BOOL PASCAL CanCreateLinkFromData(const COleDataObject* pDataObject);

Параметры

pDataObject
Указатель на объект COleDataObject , из которого создается элемент OLE.

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

Ненулевое значение, если контейнер может создать связанный объект из COleDataObject объекта.

Замечания

Класс COleDataObject используется в передаче данных для получения данных в различных форматах из буфера обмена, перетаскивания или из внедренного элемента OLE.

Контейнеры могут использовать эту функцию для включения или отключения команд "Изменить вставить специальные" и "Изменить ссылку на вставку".

Дополнительные сведения см. в статье "Объекты данных и источники данных" (OLE).

COleClientItem::CanPaste

Вызовите эту функцию, чтобы узнать, может ли внедренный элемент OLE быть вставлен из буфера обмена.

static BOOL PASCAL CanPaste();

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

Ненулевое значение, если внедренный элемент OLE можно вставить из буфера обмена; в противном случае — 0.

Замечания

Дополнительные сведения см. в разделе OleGetClipboard и OleQueryCreateFromData в пакете SDK для Windows.

Вызовите эту функцию, чтобы узнать, может ли связанный элемент OLE быть вставлен из буфера обмена.

static BOOL PASCAL CanPasteLink();

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

Ненулевое значение, если связанный элемент OLE можно вставить из буфера обмена; в противном случае — 0.

Замечания

Дополнительные сведения см. в разделе OleGetClipboard и OleQueryLinkFromData в пакете SDK для Windows.

COleClientItem::Close

Вызовите эту функцию, чтобы изменить состояние элемента OLE из состояния выполнения в загруженное состояние, то есть загруженное обработчиком в памяти, но с сервером не запущен.

void Close(OLECLOSE dwCloseOption = OLECLOSE_SAVEIFDIRTY);

Параметры

dwCloseOption
Флаг, указывающий, в каких обстоятельствах элемент OLE сохраняется при возвращении в загруженное состояние. Он может иметь одно из следующих значений:

  • OLECLOSE_SAVEIFDIRTY Сохранить элемент OLE.

  • OLECLOSE_NOSAVE Не сохранять элемент OLE.

  • OLECLOSE_PROMPTSAVE предложите пользователю сохранить элемент OLE.

Замечания

Эта функция не влияет, если элемент OLE не запущен.

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

COleClientItem::COleClientItem

COleClientItem Создает объект и добавляет его в коллекцию элементов документа контейнера, которая создает только объект C++ и не выполняет инициализацию OLE.

COleClientItem(COleDocument* pContainerDoc = NULL);

Параметры

pContainerDoc
Указатель на документ контейнера, содержащий этот элемент. Это может быть любой производный COleDocument .

Замечания

Если вы передаете указатель NULL, добавление в документ контейнера не выполняется. Необходимо явно вызвать COleDocument::AddItem.

Перед использованием элемента OLE необходимо вызвать одну из следующих функций-членов создания:

COleClientItem::ConvertTo

Вызовите эту функцию-член, чтобы преобразовать элемент в тип, указанный clsidNew.

virtual BOOL ConvertTo(REFCLSID clsidNew);

Параметры

clsidNew
Идентификатор класса целевого типа.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Это вызывается автоматически COleConvertDialog. Не обязательно вызывать его напрямую.

COleClientItem::CopyToClipboard

Вызовите эту функцию, чтобы скопировать элемент OLE в буфер обмена.

void CopyToClipboard(BOOL bIncludeLink = FALSE);

Параметры

bIncludeLink
ЗНАЧЕНИЕ TRUE, если данные ссылки должны быть скопированы в буфер обмена, что позволяет вставке связанного элемента; в противном случае ЗНАЧЕНИЕ FALSE.

Замечания

Как правило, эта функция вызывается при написании обработчиков сообщений для команд copy или Cut из меню "Изменить". Если вы хотите реализовать команды copy или Cut, необходимо реализовать выбор элементов в приложении контейнера.

Дополнительные сведения см. в разделе OleSetClipboard в пакете SDK для Windows.

COleClientItem::CreateCloneFrom

Вызовите эту функцию, чтобы создать копию указанного элемента OLE.

BOOL CreateCloneFrom(const COleClientItem* pSrcItem);

Параметры

pSrcItem
Указатель на элемент OLE, который будет дублироваться.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Копия идентична исходному элементу. Эту функцию можно использовать для поддержки операций отмены.

COleClientItem::CreateFromClipboard

Вызовите эту функцию, чтобы создать внедренный элемент из содержимого буфера обмена.

BOOL CreateFromClipboard(
    OLERENDER render = OLERENDER_DRAW,
    CLIPFORMAT cfFormat = 0,
    LPFORMATETC lpFormatEtc = NULL);

Параметры

render
Пометка, указывающая, как сервер будет отображать элемент OLE. Возможные значения см. в разделе OLERENDER в пакете SDK для Windows.

cfFormat
Указывает формат данных буфера обмена, кэшируемый при создании элемента OLE.

lpFormatEtc
Указатель на структуру FORMATETC, используемую, если отрисовка OLERENDER_FORMAT или OLERENDER_DRAW. Укажите значение этого параметра только в том случае, если требуется указать дополнительные сведения о формате буфера обмена, заданном cfFormat. Если этот параметр не указан, значения по умолчанию используются для других полей в FORMATETC структуре.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Обычно эта функция вызывается из обработчика сообщений для команды "Вставить" в меню "Изменить". (Команда "Вставка" включена платформой, если Функция-член CanPaste возвращает ненулевое значение.)

Дополнительные сведения см. в разделе OLERENDER и FORMATETC в пакете SDK для Windows.

COleClientItem::CreateFromData

Вызовите эту функцию, чтобы создать внедренный элемент из COleDataObject объекта.

BOOL CreateFromData(
    COleDataObject* pDataObject,
    OLERENDER render = OLERENDER_DRAW,
    CLIPFORMAT cfFormat = 0,
    LPFORMATETC lpFormatEtc = NULL);

Параметры

pDataObject
Указатель на объект COleDataObject , из которого создается элемент OLE.

render
Пометка, указывающая, как сервер будет отображать элемент OLE. Возможные значения см. в разделе OLERENDER в пакете SDK для Windows.

cfFormat
Указывает формат данных буфера обмена, кэшируемый при создании элемента OLE.

lpFormatEtc
Указатель на структуру FORMATETC, используемую, если отрисовка OLERENDER_FORMAT или OLERENDER_DRAW. Укажите значение этого параметра только в том случае, если требуется указать дополнительные сведения о формате буфера обмена, заданном cfFormat. Если этот параметр не указан, значения по умолчанию используются для других полей в FORMATETC структуре.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Операции передачи данных, такие как вставка из буфера обмена или операции перетаскивания, предоставляют COleDataObject объекты, содержащие сведения, предлагаемые серверным приложением. Обычно он используется в переопределении CView::OnDrop.

Дополнительные сведения см. в разделе OleCreateFromData, OLERENDER и FORMATETC в пакете SDK для Windows.

COleClientItem::CreateFromFile

Вызовите эту функцию, чтобы создать внедренный элемент OLE из файла.

BOOL CreateFromFile(
    LPCTSTR lpszFileName,
    REFCLSID clsid = CLSID_NULL,
    OLERENDER render = OLERENDER_DRAW,
    CLIPFORMAT cfFormat = 0,
    LPFORMATETC lpFormatEtc = NULL);

Параметры

lpszFileName
Указатель на имя файла, из которого создается элемент OLE.

clsid
Зарезервировано для последующего использования.

render
Пометка, указывающая, как сервер будет отображать элемент OLE. Возможные значения см. в разделе OLERENDER в пакете SDK для Windows.

cfFormat
Указывает формат данных буфера обмена, кэшируемый при создании элемента OLE.

lpFormatEtc
Указатель на структуру FORMATETC, используемую, если отрисовка OLERENDER_FORMAT или OLERENDER_DRAW. Укажите значение этого параметра только в том случае, если требуется указать дополнительные сведения о формате буфера обмена, заданном cfFormat. Если этот параметр не указан, значения по умолчанию используются для других полей в FORMATETC структуре.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Платформа вызывает эту функцию из COleInsertDialog::CreateItem , если пользователь выбирает ОК в диалоговом окне "Вставка объекта" при выборе кнопки "Создать из файла".

Дополнительные сведения см. в разделе OleCreateFromFile, OLERENDER и FORMATETC в пакете SDK для Windows.

COleClientItem::CreateLinkFromClipboard

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

BOOL CreateLinkFromClipboard(
    OLERENDER render = OLERENDER_DRAW,
    CLIPFORMAT cfFormat = 0,
    LPFORMATETC lpFormatEtc = NULL);

Параметры

render
Пометка, указывающая, как сервер будет отображать элемент OLE. Возможные значения см. в разделе OLERENDER в пакете SDK для Windows.

cfFormat
Указывает формат данных буфера обмена, кэшируемый при создании элемента OLE.

lpFormatEtc
Указатель на структуру FORMATETC, используемую, если отрисовка OLERENDER_FORMAT или OLERENDER_DRAW. Укажите значение этого параметра только в том случае, если требуется указать дополнительные сведения о формате буфера обмена, заданном cfFormat. Если этот параметр не указан, значения по умолчанию используются для других полей в FORMATETC структуре.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Обычно эта функция вызывается из обработчика сообщений для команды "Ссылка на вставку" в меню "Изменить". (Команда "Вставить ссылку" включена в реализации по умолчаниюCOleDocument , если буфер обмена содержит элемент OLE, с которым можно связаться.)

Дополнительные сведения см. в разделе OLERENDER и FORMATETC в пакете SDK для Windows.

COleClientItem::CreateLinkFromData

Вызовите эту функцию, чтобы создать связанный элемент из COleDataObject объекта.

BOOL CreateLinkFromData(
    COleDataObject* pDataObject,
    OLERENDER render = OLERENDER_DRAW,
    CLIPFORMAT cfFormat = 0,
    LPFORMATETC lpFormatEtc = NULL);

Параметры

pDataObject
Указатель на объект COleDataObject , из которого создается элемент OLE.

render
Пометка, указывающая, как сервер будет отображать элемент OLE. Возможные значения см. в разделе OLERENDER в пакете SDK для Windows.

cfFormat
Указывает формат данных буфера обмена, кэшируемый при создании элемента OLE.

lpFormatEtc
Указатель на структуру FORMATETC, используемую, если отрисовка OLERENDER_FORMAT или OLERENDER_DRAW. Укажите значение этого параметра только в том случае, если требуется указать дополнительные сведения о формате буфера обмена, заданном cfFormat. Если этот параметр не указан, значения по умолчанию используются для других полей в FORMATETC структуре.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Вызовите это во время операции удаления, когда пользователь указывает, что должна быть создана ссылка. Его также можно использовать для обработки команды "Изменить вставку". Он вызывается платформой в COleClientItem::CreateLinkFromClipboard COlePasteSpecialDialog::CreateItem при выборе параметра "Ссылка".

Дополнительные сведения см. в статье OleCreateLinkFromData, OLERENDER и FORMATETC в пакете SDK для Windows.

COleClientItem::CreateLinkFromFile

Вызовите эту функцию, чтобы создать связанный элемент OLE из файла.

BOOL CreateLinkFromFile(
    LPCTSTR lpszFileName,
    OLERENDER render = OLERENDER_DRAW,
    CLIPFORMAT cfFormat = 0,
    LPFORMATETC lpFormatEtc = NULL);

Параметры

lpszFileName
Указатель на имя файла, из которого создается элемент OLE.

render
Пометка, указывающая, как сервер будет отображать элемент OLE. Возможные значения см. в разделе OLERENDER в пакете SDK для Windows.

cfFormat
Указывает формат данных буфера обмена, кэшируемый при создании элемента OLE.

lpFormatEtc
Указатель на структуру FORMATETC, используемую, если отрисовка OLERENDER_FORMAT или OLERENDER_DRAW. Укажите значение этого параметра только в том случае, если требуется указать дополнительные сведения о формате буфера обмена, заданном cfFormat. Если этот параметр не указан, значения по умолчанию используются для других полей в FORMATETC структуре.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Платформа вызывает эту функцию, если пользователь нажимает кнопку "Вставить объект" в диалоговом окне "Вставка объекта" при выборе кнопки "Создать из файла" и установлен флажок "Ссылка". Он вызывается из COleInsertDialog::CreateItem.

Дополнительные сведения см. в разделе OleCreateLinkToFile, OLERENDER и FORMATETC в пакете SDK для Windows.

COleClientItem::CreateNewItem

Вызовите эту функцию для создания внедренного элемента; эта функция запускает серверное приложение, позволяющее пользователю создавать элемент OLE.

BOOL CreateNewItem(
    REFCLSID clsid,
    OLERENDER render = OLERENDER_DRAW,
    CLIPFORMAT cfFormat = 0,
    LPFORMATETC lpFormatEtc = NULL);

Параметры

clsid
Идентификатор, однозначно определяющий тип создаваемого элемента OLE.

render
Пометка, указывающая, как сервер будет отображать элемент OLE. Возможные значения см. в разделе OLERENDER в пакете SDK для Windows.

cfFormat
Указывает формат данных буфера обмена, кэшируемый при создании элемента OLE.

lpFormatEtc
Указатель на структуру FORMATETC, используемую, если отрисовка OLERENDER_FORMAT или OLERENDER_DRAW. Укажите значение этого параметра только в том случае, если требуется указать дополнительные сведения о формате буфера обмена, заданном cfFormat. Если этот параметр не указан, значения по умолчанию используются для других полей в FORMATETC структуре.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Платформа вызывает эту функцию, если пользователь нажимает кнопку "Вставить объект" в диалоговом окне "Вставка объекта" при выборе кнопки "Создать".

Дополнительные сведения см. в статье OleCreate, OLERENDER и FORMATETC в пакете SDK для Windows.

COleClientItem::CreateStaticFromClipboard

Вызовите эту функцию, чтобы создать статический элемент из содержимого буфера обмена.

BOOL CreateStaticFromClipboard(
    OLERENDER render = OLERENDER_DRAW,
    CLIPFORMAT cfFormat = 0,
    LPFORMATETC lpFormatEtc = NULL);

Параметры

render
Пометка, указывающая, как сервер будет отображать элемент OLE. Возможные значения см. в разделе OLERENDER в пакете SDK для Windows.

cfFormat
Указывает формат данных буфера обмена, кэшируемый при создании элемента OLE.

lpFormatEtc
Указатель на структуру FORMATETC, используемую, если отрисовка OLERENDER_FORMAT или OLERENDER_DRAW. Укажите значение этого параметра только в том случае, если требуется указать дополнительные сведения о формате буфера обмена, заданном cfFormat. Если этот параметр не указан, значения по умолчанию используются для других полей в FORMATETC структуре.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Статический элемент содержит данные презентации, но не собственные данные; следовательно, его нельзя изменить. Обычно эта функция вызывается, если функция элемента CreateFromClipboard завершается ошибкой.

Дополнительные сведения см. в разделе OLERENDER и FORMATETC в пакете SDK для Windows.

COleClientItem::CreateStaticFromData

Вызовите эту функцию, чтобы создать статический COleDataObject элемент из объекта.

BOOL CreateStaticFromData(
    COleDataObject* pDataObject,
    OLERENDER render = OLERENDER_DRAW,
    CLIPFORMAT cfFormat = 0,
    LPFORMATETC lpFormatEtc = NULL);

Параметры

pDataObject
Указатель на объект COleDataObject , из которого создается элемент OLE.

render
Пометка, указывающая, как сервер будет отображать элемент OLE. Возможные значения см. в разделе OLERENDER в пакете SDK для Windows.

cfFormat
Указывает формат данных буфера обмена, кэшируемый при создании элемента OLE.

lpFormatEtc
Указатель на структуру FORMATETC, используемую, если отрисовка OLERENDER_FORMAT или OLERENDER_DRAW. Укажите значение этого параметра только в том случае, если требуется указать дополнительные сведения о формате буфера обмена, заданном cfFormat. Если этот параметр не указан, значения по умолчанию используются для других полей в FORMATETC структуре.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Статический элемент содержит данные презентации, но не собственные данные; следовательно, его нельзя изменить. Это, по сути, то же самое, что и CreateStaticFromClipboard , за исключением того, что статический элемент можно создать из произвольного COleDataObjectбуфера обмена, а не только из буфера обмена.

Используется в COlePasteSpecialDialog::CreateItem при выборе статического значения.

Дополнительные сведения см. в статье OleCreateStaticFromData, OLERENDER и FORMATETC в пакете SDK для Windows.

COleClientItem::D eactivate

Вызовите эту функцию, чтобы отключить элемент OLE и освободить все связанные ресурсы.

void Deactivate();

Замечания

Обычно вы деактивируете активный элемент OLE на месте, когда пользователь щелкает мышь в клиентской области за пределами границ элемента. Обратите внимание, что деактивация элемента OLE отключит его состояние отмены, что делает невозможным вызвать функцию-член ReactivateAndUndo .

Если приложение поддерживает отмену, не вызывайте Deactivate. Вместо этого вызовите Деактивацию.

Дополнительные сведения см. в разделе IOleInPlaceObject::InPlaceDeactivate в пакете SDK для Windows.

COleClientItem::DeactivateUI

Вызовите эту функцию, когда пользователь деактивирует элемент, активированный на месте.

void DeactivateUI();

Замечания

Эта функция восстанавливает пользовательский интерфейс приложения контейнера до исходного состояния, скрывая все меню и другие элементы управления, созданные для активации на месте.

Эта функция не очищает сведения о состоянии отмены для элемента. Эти сведения сохраняются, чтобы повторно активироватьAndUndo можно позже для выполнения команды отмены в серверном приложении, если команда отмены контейнера выбрана сразу после деактивации элемента.

Дополнительные сведения см. в разделе IOleInPlaceObject::InPlaceDeactivate в пакете SDK для Windows.

COleClientItem::D elete

Вызовите эту функцию, чтобы удалить элемент OLE из документа контейнера.

void Delete(BOOL bAutoDelete = TRUE);

Параметры

bAutoDelete
Указывает, следует ли удалить элемент из документа.

Замечания

Эта функция вызывает функцию-член выпуска , которая, в свою очередь, удаляет объект C++ для элемента, окончательно удаляя элемент OLE из документа. Если элемент OLE внедрен, собственные данные для элемента удаляются. Он всегда закрывает запущенный сервер; Таким образом, если элемент является открытой ссылкой, эта функция закрывает ее.

COleClientItem::D oDragDrop

Вызовите функцию-член для DoDragDrop выполнения операции перетаскивания.

DROPEFFECT DoDragDrop(
    LPCRECT lpItemRect,
    CPoint ptOffset,
    BOOL bIncludeLink = FALSE,
    DWORD dwEffects = DROPEFFECT_COPY | DROPEFFECT_MOVE,
    LPCRECT lpRectStartDrag = NULL);

Параметры

lpItemRect
Прямоугольник элемента на экране в координатах клиента (пиксели).

ptOffset
Смещение от lpItemRect , в котором положение мыши находилось во время перетаскивания.

bIncludeLink
Установите значение TRUE, если данные ссылки должны быть скопированы в буфер обмена. Присвойте ему значение FALSE, если серверное приложение не поддерживает ссылки.

dwEffects
Определяет эффекты, которые источник перетаскивания разрешает в операции перетаскивания.

lpRectStartDrag
Указатель на прямоугольник, определяющий, где на самом деле начинается перетаскивание. Дополнительные сведения см. в разделе "Примечания".

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

Значение DROPEFFECT. Если это DROPEFFECT_MOVE, исходные данные следует удалить.

Замечания

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

Время задержки указывается параметром раздела реестра. Вы можете изменить время задержки, вызвав CWinApp::WriteProfileString или CWinApp::WriteProfileInt. Если не указать время задержки, используется значение по умолчанию в 200 миллисекундах. Время задержки перетаскивания сохраняется следующим образом:

  • Время задержки перетаскивания Windows NT хранится в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\NT\CurrentVersion\IniFileMapping\win.ini\Windows\DragDelay.

  • Время задержки перетаскивания Windows 3.x хранится в WIN. INI-файл в разделе [Windows}

  • Время задержки перетаскивания Windows 95/98 хранится в кэшированной версии WIN. INI.

Дополнительные сведения о том, как сведения о задержке перетаскивания хранятся в реестре или в реестре. INI-файл см. в статье WriteProfileString в пакете SDK для Windows.

COleClientItem::DoVerb

Вызов DoVerb для выполнения указанной команды.

virtual BOOL DoVerb(
    LONG nVerb,
    CView* pView,
    LPMSG lpMsg = NULL);

Параметры

nVerb
Указывает выполняемую команду. Он может включать одно из следующих элементов:

Значение Значение Символ
- 0 первичный глагол OLEIVERB_PRIMARY
-1 Вторичная команда (Нет)
-1 Отображение элемента для редактирования OLEIVERB_SHOW
-2 Изменение элемента в отдельном окне OLEIVERB_OPEN
-3 Скрытие элемента OLEIVERB_HIDE

Значение -1 обычно является псевдонимом для другой команды. Если открытое редактирование не поддерживается, -2 имеет тот же эффект, что и -1. Дополнительные значения см. в разделе IOleObject::D oVerb в пакете SDK для Windows.

pView
Указатель на окно представления; используется сервером для активации на месте. Этот параметр должен иметь значение NULL, если приложение контейнера не разрешает активацию на месте.

lpMsg
Указатель на сообщение, которое вызвало активацию элемента.

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

Ненулевое значение, если команда успешно выполнена; в противном случае — 0.

Замечания

Эта функция вызывает функцию "Активировать член", чтобы выполнить команду. Он также перехватывает исключения и отображает поле сообщения пользователю, если он создается.

Если в параметре nVerb указан основной глагол " Изменить и ноль", серверное приложение запускается, чтобы разрешить редактирование элемента OLE. Если приложение контейнера поддерживает активацию на месте, можно выполнить редактирование. Если контейнер не поддерживает активацию на месте (или если указана команда Open), сервер запускается в отдельном окне и может быть выполнено редактирование. Как правило, когда пользователь приложения контейнера дважды щелкает элемент OLE, значение основной команды в параметре nVerb определяет, какое действие может предпринять пользователь. Однако если сервер поддерживает только одно действие, он принимает это действие независимо от значения, указанного в параметре nVerb .

COleClientItem::D raw

Вызовите эту функцию для рисования элемента OLE в указанный ограничивающий прямоугольник с помощью указанного контекста устройства.

BOOL Draw(
    CDC* pDC,
    LPCRECT lpBounds,
    DVASPECT nDrawAspect = (DVASPECT)-1);

Параметры

pDC
Указатель на объект CDC, используемый для рисования элемента OLE.

lpBounds
Указатель на объект или RECT структуру CRect, определяющий ограничивающий прямоугольник, в котором рисуется элемент OLE (в логических единицах, определенных контекстом устройства).

nDrawAspect
Указывает аспект элемента OLE, то есть способ его отображения. Если nDrawAspect равно -1, используется последний набор аспектов с помощью SetDrawAspect . Дополнительные сведения о возможных значениях этого флага см. в разделе SetDrawAspect.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Функция может использовать представление метафайла элемента OLE, созданного функцией-членом COleServerItemOnDraw.

Как правило, вы используете Draw для отображения экрана, передав контекст устройства экрана в виде PDC. В этом случае необходимо указать только первые два параметра.

Параметр lpBounds определяет прямоугольник в контексте целевого устройства (относительно текущего режима сопоставления). Отрисовка может включать масштабирование рисунка и может использоваться приложениями контейнеров для наложения представления, которое масштабируется между отображаемым представлением и окончательным печатным изображением.

Дополнительные сведения см. в разделе IViewObject::D raw в пакете SDK для Windows.

COleClientItem::GetActiveView

Возвращает представление, в котором активируется элемент.

CView* GetActiveView() const;

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

Указатель на представление; В противном случае значение NULL, если элемент не активирован на месте.

COleClientItem::GetCachedExtent

Вызовите эту функцию, чтобы получить размер элемента OLE.

BOOL GetCachedExtent(
    LPSIZE lpSize,
    DVASPECT nDrawAspect = (DVASPECT)-1);

Параметры

lpSize
Указатель на SIZE структуру или объект CSize , который получит сведения о размере.

nDrawAspect
Указывает аспект элемента OLE, границы которого необходимо извлечь. Возможные значения см. в разделе SetDrawAspect.

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

Ненулевое значение при успешном выполнении; Значение 0, если элемент OLE пуст.

Замечания

Эта функция предоставляет те же сведения, что и GetExtent. Тем не менее можно вызвать GetCachedExtent получение сведений о экстенте во время обработки других обработчиков OLE, таких как OnChange. Измерения находятся в MM_HIMETRIC единицах.

Это возможно, так как GetCachedExtent использует интерфейс IViewObject2 , а не интерфейс IOleObject , чтобы получить степень этого элемента. Объект IViewObject2 COM кэширует сведения о экстенте, используемые в предыдущем вызове IViewObject::D raw.

Дополнительные сведения см. в разделе IViewObject2::GetExtent в пакете SDK для Windows.

COleClientItem::GetClassID

Возвращает идентификатор класса элемента в память, на которую указывает pClassID.

void GetClassID(CLSID* pClassID) const;

Параметры

pClassID
Указатель на идентификатор типа CLSID для получения идентификатора класса. Сведения о CLSID см. в пакете SDK для Windows.

Замечания

Идентификатор класса — это 128-разрядное число, однозначно определяющее приложение, которое редактирует элемент.

Дополнительные сведения см. в разделе IPersist::GetClassID в пакете SDK для Windows.

COleClientItem::GetClipboardData

Вызовите эту функцию, чтобы получить COleDataSource объект, содержащий все данные, которые будут помещены в буфер обмена вызовом функции-члена CopyToClipboard .

void GetClipboardData(
    COleDataSource* pDataSource,
    BOOL bIncludeLink = FALSE,
    LPPOINT lpOffset = NULL,
    LPSIZE lpSize = NULL);

Параметры

pDataSource
Указатель на объект COleDataSource , который получит данные, содержащиеся в элементе OLE.

bIncludeLink
ЗНАЧЕНИЕ TRUE, если данные ссылки должны быть включены; в противном случае ЗНАЧЕНИЕ FALSE.

lpOffset
Смещение курсора мыши от источника объекта в пикселях.

lpSize
Размер объекта в пикселях.

Замечания

GetClipboardData вызывается как реализация onGetClipboardData по умолчанию. Переопределите OnGetClipboardData только в том случае, если вы хотите предложить форматы данных в дополнение к тем, которые предлагаются CopyToClipboard. Поместите эти форматы в COleDataSource объект до или после вызова CopyToClipboard, а затем передайте COleDataSource объект в функцию COleDataSource::SetClipboard . Например, если вы хотите, чтобы позиция элемента OLE в документе контейнера сопровождала его в буфере обмена, вы определите собственный формат передачи этой информации и поместите его в поле перед вызовом COleDataSource CopyToClipboard.

COleClientItem::GetDocument

Вызовите эту функцию, чтобы получить указатель на документ, содержащий элемент OLE.

COleDocument* GetDocument() const;

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

Указатель на документ, содержащий элемент OLE. ЗНАЧЕНИЕ NULL, если элемент не является частью документа.

Замечания

Этот указатель позволяет получить доступ к COleDocument объекту, который передается в качестве аргумента конструктору COleClientItem .

COleClientItem::GetDrawAspect

Вызовите функцию-член, GetDrawAspect чтобы определить текущий "аспект" или представление элемента.

DVASPECT GetDrawAspect() const;

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

Значение из перечисления DVASPECT, значения которого перечислены в справочнике по SetDrawAspect.

Замечания

Аспект определяет способ отрисовки элемента.

COleClientItem::GetExtent

Вызовите эту функцию, чтобы получить размер элемента OLE.

BOOL GetExtent(
    LPSIZE lpSize,
    DVASPECT nDrawAspect = (DVASPECT)- 1);

Параметры

lpSize
Указатель на SIZE структуру или CSize объект, который получит сведения о размере.

nDrawAspect
Указывает аспект элемента OLE, границы которого необходимо извлечь. Возможные значения см. в разделе SetDrawAspect.

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

Ненулевое значение при успешном выполнении; Значение 0, если элемент OLE пуст.

Замечания

Если серверное приложение было записано с помощью библиотеки классов Microsoft Foundation, эта функция вызывает функцию члена OnGetExtent соответствующего COleServerItem объекта. Обратите внимание, что полученный размер может отличаться от размера последнего набора функцией-членом SetExtent . Размер, указанный в SetExtent предложении, рассматривается как предложение. Измерения находятся в MM_HIMETRIC единицах.

Примечание.

Не вызывайте GetExtent во время обработки обработчика OLE, например OnChange. Вместо этого вызовите GetCachedExtent .

Дополнительные сведения см. в разделе IOleObject::GetExtent в пакете SDK для Windows.

COleClientItem::GetIconFromRegistry

Вызовите эту функцию-член, чтобы получить дескриптор к ресурсу значка, связанному с сервером определенного CLSID.

HICON GetIconFromRegistry() const;

static HICON GetIconFromRegistry(CLSID& clsid);

Параметры

clsid
Ссылка на CLSID для сервера, связанного с значком.

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

Допустимый дескриптор ресурса значка или NULL, если значок сервера или значок по умолчанию не найден.

Замечания

Эта функция-член не запустит сервер или не получит значок динамически, даже если сервер уже запущен. Вместо этого эта функция-член открывает исполняемый образ сервера и извлекает статический значок, связанный с сервером, как он был зарегистрирован.

COleClientItem::GetIconicMetafile

Извлекает метафайл, используемый для рисования значка элемента.

HGLOBAL GetIconicMetafile();

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

Дескриптор метафайла в случае успешного выполнения; в противном случае ЗНАЧЕНИЕ NULL.

Замечания

Если текущий значок отсутствует, возвращается значок по умолчанию. Это вызывается автоматически диалоговым окном MFC/OLE и обычно не вызывается напрямую.

Эта функция также вызывает SetIconicMetafile для кэширования метафайла для последующего использования.

COleClientItem::GetInPlaceWindow

Вызовите функцию-член, GetInPlaceWindow чтобы получить указатель на окно, в котором элемент был открыт для редактирования на месте.

CWnd* GetInPlaceWindow();

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

Указатель на окно редактирования элемента на месте; ЗНАЧЕНИЕ NULL, если элемент не активен или если его сервер недоступен.

Замечания

Эта функция должна вызываться только для элементов, активных на месте.

COleClientItem::GetItemState

Вызовите эту функцию, чтобы получить текущее состояние элемента OLE.

UINT GetItemState() const;

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

COleClientItem::ItemState Перечисленное значение, которое может быть одним из следующих значений: emptyState, loadedState, openState, activeState. activeUIState Дополнительные сведения об этих состояниях см. в статье "Контейнеры: состояния элементов клиента".

Замечания

Чтобы получать уведомления о изменении состояния элемента OLE, используйте функцию-член OnChange .

Дополнительные сведения см. в статье "Контейнеры: состояния элементов клиента".

COleClientItem::GetLastStatus

Возвращает код состояния последней операции OLE.

SCODE GetLastStatus() const;

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

Значение SCODE.

Замечания

Для функций-членов, возвращающих значение BOOL false или других функций-членов, возвращающих ЗНАЧЕНИЕ NULL, GetLastStatus возвращает более подробные сведения о сбоях. Помните, что большинство функций-членов OLE вызывают исключения для более серьезных ошибок. Конкретная информация о интерпретации SCODE зависит от базового вызова OLE, который последний раз вернул значение SCODE.

Дополнительные сведения о SCODE см. в разделе "Структура кодов ошибок COM" в документации по пакету SDK для Windows.

COleClientItem::GetLinkUpdateOptions

Вызовите эту функцию, чтобы получить текущее значение параметра обновления ссылок для элемента OLE.

OLEUPDATE GetLinkUpdateOptions();

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

Одно из следующих значений:

  • OLEUPDATE_ALWAYS обновлять связанный элемент по возможности. Этот параметр поддерживает переключатель "Автоматическое обновление ссылок" в диалоговом окне "Ссылки".

  • OLEUPDATE_ONCALL обновить связанный элемент только по запросу из приложения контейнера (при вызове функции элемента UpdateLink ). Этот параметр поддерживает переключатель "Обновить ссылку вручную" в диалоговом окне "Ссылки".

Замечания

Это расширенная операция.

Эта функция вызывается автоматически классом COleLinksDialog .

Дополнительные сведения см. в разделе IOleLink::GetUpdateOptions в пакете SDK для Windows.

COleClientItem::GetType

Вызовите эту функцию, чтобы определить, внедрен ли элемент OLE или связан, или статический.

OLE_OBJTYPE GetType() const;

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

Целое число без знака с одним из следующих значений:

  • OT_LINK Элемент OLE является ссылкой.

  • OT_EMBEDDED внедрен элемент OLE.

  • OT_STATIC Элемент OLE является статическим, т. е. содержит только данные презентации, а не собственные данные и поэтому не может быть изменен.

COleClientItem::GetUserType

Вызовите эту функцию, чтобы получить отображаемую пользователем строку, описывающую тип элемента OLE, например "Документ Word".

void GetUserType(
    USERCLASSTYPE nUserClassType,
    CString& rString);

Параметры

nUserClassType
Значение, указывающее требуемый вариант строки, описывающей тип элемента OLE. Это может иметь одно из следующих значений:

  • USERCLASSTYPE_FULL Имя полного типа, отображаемое пользователю.

  • USERCLASSTYPE_SHORT короткое имя (максимум 15 символов) для использования в всплывающих меню и диалоговом окне "Изменить ссылки".

  • USERCLASSTYPE_APPNAME Имя приложения, обслуживающего класс.

rString
Ссылка на объект CString , к которому возвращается строка, описывающая тип элемента OLE.

Замечания

Это часто является записью в базе данных регистрации системы.

Если имя полного типа запрашивается, но недоступно, вместо этого используется короткое имя. Если в базе данных регистрации отсутствует запись для типа элемента OLE или если для типа ЭЛЕМЕНТА OLE нет, используется тип пользователя, хранящийся в данный момент в элементе OLE. Если имя типа пользователя является пустой строкой, используется "Неизвестный объект".

Дополнительные сведения см. в разделе IOleObject::GetUserType в пакете SDK для Windows.

COleClientItem::IsInPlaceActive

Вызовите эту функцию, чтобы узнать, активен ли элемент OLE на месте.

BOOL IsInPlaceActive() const;

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

Ненулевое значение, если элемент OLE активен на месте; в противном случае — 0.

Замечания

Обычно выполняется другая логика в зависимости от того, редактируется ли элемент на месте. Функция проверяет, равен activeState ли текущему состоянию элемента значение или .activeUIState

COleClientItem::IsLinkUpToDate

Вызовите эту функцию, чтобы узнать, обновлен ли элемент OLE.

BOOL IsLinkUpToDate() const;

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

Ненулевое значение, если элемент OLE обновлен; в противном случае — 0.

Замечания

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

Это вызывается автоматически реализацией COleLinksDialog .

Дополнительные сведения см. в разделе IOleObject::IsUpToDate в пакете SDK для Windows.

COleClientItem::IsModified

Вызовите эту функцию, чтобы узнать, является ли элемент OLE грязным (изменен с момента последнего сохранения).

BOOL IsModified() const;

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

Ненулевое значение, если элемент OLE грязен; в противном случае — 0.

Замечания

Дополнительные сведения см. в разделе IPersistStorage::IsDirty в пакете SDK для Windows.

COleClientItem::IsOpen

Вызовите эту функцию, чтобы узнать, открыт ли элемент OLE; то есть открывается в экземпляре серверного приложения, работающего в отдельном окне.

BOOL IsOpen() const;

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

Ненулевое значение, если элемент OLE открыт; в противном случае — 0.

Замечания

Он используется для определения времени рисования объекта с шаблоном штриховки. Открытый объект должен иметь шаблон хэтча, нарисованный поверх объекта. Для этого можно использовать объект CRectTracker .

COleClientItem::IsRunning

Вызовите эту функцию, чтобы узнать, запущен ли элемент OLE; То есть, загружается ли элемент и выполняется ли он в серверном приложении.

BOOL IsRunning() const;

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

Ненулевое значение, если выполняется элемент OLE; в противном случае — 0.

Замечания

Дополнительные сведения см. в разделе OleIsRunning в пакете SDK для Windows.

COleClientItem::OnActivate

Вызывается платформой, чтобы уведомить элемент о том, что он только что был активирован.

virtual void OnActivate();

Замечания

Обратите внимание, что эта функция вызывается, чтобы указать, что сервер запущен, а не указывает, что его пользовательский интерфейс установлен в приложении контейнера. На этом этапе объект не имеет активного пользовательского интерфейса (не activeUIStateявляется). Она не установила меню или панель инструментов. Функция-член OnActivateUI вызывается при этом.

Реализация по умолчанию вызывает функцию-член OnChange с OLE_CHANGEDSTATE в качестве параметра. Переопределите эту функцию для выполнения пользовательской обработки, когда элемент становится активным на месте.

COleClientItem::OnActivateUI

Платформа вызывается OnActivateUI , когда объект ввел активное состояние пользовательского интерфейса.

virtual void OnActivateUI();

Замечания

Теперь объект установил панель инструментов и меню.

Реализация по умолчанию запоминает HWND сервера для последующих GetServerWindow вызовов.

COleClientItem::OnChange

Вызывается платформой, когда пользователь изменяет, сохраняет или закрывает элемент OLE.

virtual void OnChange(
    OLE_NOTIFICATION nCode,
    DWORD dwParam);

Параметры

nCode
Причина, по которой сервер изменил этот элемент. Он может иметь одно из следующих значений:

  • OLE_CHANGED внешний вид элемента OLE изменился.

  • OLE_SAVED Элемент OLE сохранен.

  • OLE_CLOSED элемент OLE был закрыт.

  • OLE_CHANGED_STATE Элемент OLE изменился с одного состояния на другое.

dwParam
Если nCode OLE_SAVED или OLE_CLOSED, этот параметр не используется. Если nCode OLE_CHANGED, этот параметр указывает аспект измененного элемента OLE. Возможные значения см. в параметре dwParam COleClientItem::D raw. Если nCode OLE_CHANGED_STATE, этот параметр является перечисленным значением COleClientItem::ItemState и описывает введенное состояние. Он может иметь одно из следующих значений: emptyState, , loadedState, activeStateopenStateили activeUIState.

Замечания

(Если серверное приложение записывается с помощью библиотеки классов Microsoft Foundation, эта функция вызывается в ответ на Notify функции-члены COleServerDoc или COleServerItem.) Реализация по умолчанию помечает документ контейнера как измененный, если nCode OLE_CHANGED или OLE_SAVED.

Для OLE_CHANGED_STATE текущее состояние, возвращаемое из GetItemState , по-прежнему будет старым состоянием, то есть состояние, которое было текущим до изменения этого состояния.

Переопределите эту функцию, чтобы реагировать на изменения состояния элемента OLE. Как правило, вы обновляете внешний вид элемента, недействив область, в которой отображается элемент. Вызовите реализацию базового класса в начале переопределения.

COleClientItem::OnChangeItemPosition

Вызывается платформой для уведомления контейнера о том, что степень элемента OLE изменилась во время активации на месте.

virtual BOOL OnChangeItemPosition(const CRect& rectPos);

Параметры

rectPos
Указывает положение элемента относительно клиентской области приложения контейнера.

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

Ненулевое значение, если позиция элемента успешно изменена; в противном случае — 0.

Замечания

Реализация по умолчанию определяет новый видимый прямоугольник элемента OLE и вызывает SetItemRects с новыми значениями. Реализация по умолчанию вычисляет видимый прямоугольник для элемента и передает эти сведения серверу.

Переопределите эту функцию, чтобы применить специальные правила к операции изменения размера или перемещения. Если приложение записывается в MFC, этот вызов приводит к результатам вызова, так как сервер cOleServerDoc::RequestPositionChange.

COleClientItem::OnDeactivate

Вызывается платформой при переходе элемента OLE с активного состояния () на загруженное состояние activeState, что означает, что он деактивируется после активации на месте.

virtual void OnDeactivate();

Замечания

Обратите внимание, что эта функция вызывается, чтобы указать, что элемент OLE закрыт, а не его пользовательский интерфейс был удален из приложения контейнера. При этом вызывается функция-член OnDeactivateUI .

Реализация по умолчанию вызывает функцию-член OnChange с OLE_CHANGEDSTATE в качестве параметра. Переопределите эту функцию для выполнения пользовательской обработки при деактивации активного элемента на месте. Например, если вы поддерживаете команду отмены в приложении контейнера, эту функцию можно переопределить, чтобы отменить состояние отмены, указывая, что последняя операция, выполненная в элементе OLE, не может быть отменена после деактивации элемента.

COleClientItem::OnDeactivateAndUndo

Вызывается платформой, когда пользователь вызывает команду отмены после активации элемента OLE.

virtual void OnDeactivateAndUndo();

Замечания

Реализация по умолчанию вызывает ДеактивациюUI , чтобы отключить пользовательский интерфейс сервера. Переопределите эту функцию, если вы реализуете команду отмены в приложении контейнера. В переопределении вызовите версию базового класса функции, а затем отмените последнюю команду, выполненную в приложении.

Дополнительные сведения см. в статье IOleInPlaceSite::D eactivateAndUndo в пакете SDK для Windows.

COleClientItem::OnDeactivateUI

Вызывается, когда пользователь деактивирует элемент, активированный на месте.

virtual void OnDeactivateUI(BOOL bUndoable);

Параметры

bUndoable
Указывает, являются ли изменения редактирования недоступными.

Замечания

Эта функция восстанавливает пользовательский интерфейс приложения контейнера до исходного состояния, скрывая все меню и другие элементы управления, созданные для активации на месте.

Если bUndoable имеет значение FALSE, контейнер должен отключить команду отмены, фактически отменив состояние отмены контейнера, так как это означает, что последняя операция, выполняемая сервером, недоступна.

COleClientItem::OnDiscardUndoState

Вызывается платформой, когда пользователь выполняет действие, которое удаляет состояние отмены при редактировании элемента OLE.

virtual void OnDiscardUndoState();

Замечания

Реализация по умолчанию не выполняет никаких действий. Переопределите эту функцию, если вы реализуете команду отмены в приложении контейнера. В переопределении отмените состояние отмены приложения контейнера.

Если сервер был записан с помощью библиотеки классов Microsoft Foundation, сервер может вызвать эту функцию, вызвав COleServerDoc::D iscardUndoState.

Дополнительные сведения см. в статье IOleInPlaceSite::D iscardUndoState в пакете SDK для Windows.

COleClientItem::OnGetClipboardData

Вызывается платформой COleDataSource для получения объекта, содержащего все данные, которые будут помещены в буфер обмена вызовом функции CopyToClipboard или функции члена DoDragDrop .

virtual COleDataSource* OnGetClipboardData(
    BOOL bIncludeLink,
    LPPOINT lpOffset,
    LPSIZE lpSize);

Параметры

bIncludeLink
Установите значение TRUE, если данные ссылки должны быть скопированы в буфер обмена. Установите значение FALSE, если серверное приложение не поддерживает ссылки.

lpOffset
Указатель на смещение курсора мыши от источника объекта в пикселях.

lpSize
Указатель на размер объекта в пикселях.

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

Указатель на объект COleDataSource , содержащий данные буфера обмена.

Замечания

Реализация этой функции по умолчанию вызывает GetClipboardData.

COleClientItem::OnGetClipRect

Платформа вызывает функцию-член, OnGetClipRect чтобы получить координаты вырезки-прямоугольника элемента, который редактируется на месте.

virtual void OnGetClipRect(CRect& rClipRect);

Параметры

rClipRect
Указатель на объект класса CRect , который будет содержать координаты вырезки-прямоугольника элемента.

Замечания

Координаты находятся в пикселях относительно клиентской области окна приложения контейнера.

Реализация по умолчанию просто возвращает прямоугольник клиента представления, в котором элемент активен.

COleClientItem::OnGetItemPosition

Платформа вызывает OnGetItemPosition функцию-член, чтобы получить координаты элемента, редактируемого на месте.

virtual void OnGetItemPosition(CRect& rPosition);

Параметры

rPosition
Ссылка на объект CRect , содержащий координаты положения элемента.

Замечания

Координаты находятся в пикселях относительно клиентской области окна приложения контейнера.

Реализация по умолчанию этой функции не выполняет никаких действий. Приложения, поддерживающие редактирование на месте, требуют реализации.

COleClientItem::OnGetWindowContext

Вызывается платформой при активации элемента.

virtual BOOL OnGetWindowContext(
    CFrameWnd** ppMainFrame,
    CFrameWnd** ppDocFrame,
    LPOLEINPLACEFRAMEINFO lpFrameInfo);

Параметры

ppMainFrame
Указатель на указатель на главное окно фрейма.

ppDocFrame
Указатель на указатель на окно фрейма документа.

lpFrameInfo
Указатель на структуру OLEINPLACEFRAMEINFO , которая будет получать сведения о окне кадра.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Эта функция используется для получения сведений о родительском окне элемента OLE.

Если контейнер является приложением MDI, реализация по умолчанию возвращает указатель на объект CMDIFrameWnd в ppMainFrame и указатель на активный объект CMDIChildWnd в ppDocFrame. Если контейнер является приложением SDI, реализация по умолчанию возвращает указатель на объект CFrameWnd в ppMainFrame и возвращает значение NULL в ppDocFrame. Реализация по умолчанию также заполняет элементы lpFrameInfo.

Переопределите эту функцию, только если реализация по умолчанию не соответствует приложению; Например, если у приложения есть парадигма пользовательского интерфейса, которая отличается от SDI или MDI. Это расширенная переопределение.

Дополнительные сведения см. в статье IOleInPlaceSite::GetWindowContext и структура OLEINPLACEFRAMEINFO в пакете SDK для Windows.

COleClientItem::OnInsertMenus

Вызывается платформой во время активации на месте, чтобы вставить меню приложения-контейнера в пустое меню.

virtual void OnInsertMenus(
    CMenu* pMenuShared,
    LPOLEMENUGROUPWIDTHS lpMenuWidths);

Параметры

pMenuShared
Указывает на пустое меню.

lpMenuWidths
Указывает на массив из шести значений LONG, указывающих, сколько меню находятся в каждой из следующих групп меню: File, Edit, Container, Object, Window, Help. Приложение контейнера отвечает за группы меню "Файл", "Контейнер" и "Окно", соответствующие элементам 0, 2 и 4 этого массива.

Замечания

Затем это меню передается серверу, который вставляет собственные меню, создавая составное меню. Эту функцию можно вызывать многократно для создания нескольких составных меню.

Реализация по умолчанию вставляется в pMenuShared меню контейнеров на месте; то есть группы меню "Файл", "Контейнер" и "Окно". CDocTemplate::SetContainerInfo используется для задания этого ресурса меню. Реализация по умолчанию также назначает соответствующие значения элементам 0, 2 и 4 в lpMenuWidths в зависимости от ресурса меню. Переопределите эту функцию, если реализация по умолчанию не подходит для приложения; Например, если приложение не использует шаблоны документов для связывания ресурсов с типами документов. При переопределении этой функции также следует переопределить OnSetMenu и OnRemoveMenus. Это расширенная переопределение.

Дополнительные сведения см. в разделе IOleInPlaceFrame::InsertMenus в пакете SDK для Windows.

COleClientItem::OnRemoveMenus

Вызывается платформой для удаления меню контейнера из указанного составного меню при завершении активации на месте.

virtual void OnRemoveMenus(CMenu* pMenuShared);

Параметры

pMenuShared
Указывает на составное меню, созданное вызовами функции-члена OnInsertMenus .

Замечания

Реализация по умолчанию удаляется из pMenuShared в меню контейнеров на месте, то есть группы меню "Файл", "Контейнер" и "Окно". Переопределите эту функцию, если реализация по умолчанию не подходит для приложения; Например, если приложение не использует шаблоны документов для связывания ресурсов с типами документов. Если переопределить эту функцию, то также следует переопределить OnInsertMenus и OnSetMenu . Это расширенная переопределение.

Подменю в pMenuShared может совместно использовать несколько составных меню, если сервер неоднократно вызывался OnInsertMenus. Поэтому не следует удалять подменю в переопределении OnRemoveMenus; их следует отсоединять только.

Дополнительные сведения см. в разделе IOleInPlaceFrame::RemoveMenus в пакете SDK для Windows.

COleClientItem::OnScrollBy

Вызывается платформой для прокрутки элемента OLE в ответ на запросы с сервера.

virtual BOOL OnScrollBy(CSize sizeExtent);

Параметры

sizeExtent
Указывает расстояния в пикселях для прокрутки в направлениях x и y.

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

Ненулевое значение, если элемент прокручен; Значение 0, если элемент не удалось прокрутить.

Замечания

Например, если элемент OLE частично видим и пользователь перемещается за пределы видимого региона во время редактирования на месте, эта функция вызывается, чтобы сохранить курсор видимым. Реализация по умолчанию не выполняет никаких действий. Переопределите эту функцию, чтобы прокрутить элемент по указанному количеству. Обратите внимание, что в результате прокрутки видимая часть элемента OLE может измениться. Вызовите SetItemRects , чтобы обновить видимый прямоугольник элемента.

Дополнительные сведения см. в статье IOleInPlaceSite::Scroll в пакете SDK для Windows.

COleClientItem::OnSetMenu

Вызывается платформой два раза, когда начинается и заканчивается активация на месте; первый раз, когда необходимо установить составное меню и второй раз (с отверстиеммену равным NULL), чтобы удалить его.

virtual void OnSetMenu(
    CMenu* pMenuShared,
    HOLEMENU holemenu,
    HWND hwndActiveObject);

Параметры

pMenuShared
Указатель на составное меню, созданное вызовами функции-члена OnInsertMenus и InsertMenu функции.

holemenu
Обработайте дескриптор меню, возвращаемый OleCreateMenuDescriptor функцией, или ЗНАЧЕНИЕ NULL, если код отправки должен быть удален.

hwndActiveObject
Обработайте окно редактирования для элемента OLE. Это окно, которое получит команды редактирования из OLE.

Замечания

Реализация по умолчанию устанавливает или удаляет составное меню, а затем вызывает функцию OleSetMenuDescriptor , чтобы установить или удалить код отправки. Переопределите эту функцию, если реализация по умолчанию не подходит для приложения. При переопределении этой функции необходимо также переопределить OnInsertMenus и OnRemoveMenus. Это расширенная переопределение.

Дополнительные сведения см. в разделе OleCreateMenuDescriptor, OleSetMenuDescriptor и IOleInPlaceFrame::SetMenu в пакете SDK для Windows.

COleClientItem::OnShowControlBars

Вызывается платформой для отображения и скрытия панели управления приложения контейнера.

virtual BOOL OnShowControlBars(
    CFrameWnd* pFrameWnd,
    BOOL bShow);

Параметры

pFrameWnd
Указатель на окно фрейма приложения контейнера. Это может быть либо основное окно фрейма, либо дочернее окно MDI.

bShow
Указывает, должны ли отображаться или скрыты панели управления.

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

Ненулевое значение, если вызов функции вызывает изменение состояния панели управления; Значение 0, если вызов не приводит к изменению или если pFrameWnd не указывает на окно фрейма контейнера.

Замечания

Эта функция возвращает значение 0, если панели управления уже находятся в состоянии, указанном в bShow. Это может произойти, например, если панели управления скрыты и bShow имеет значение FALSE.

Реализация по умолчанию удаляет панель инструментов из окна кадра верхнего уровня.

COleClientItem::OnShowItem

Вызывается платформой для отображения элемента OLE, что делает его полностью видимым во время редактирования.

virtual void OnShowItem();

Замечания

Он используется, когда приложение контейнера поддерживает ссылки на внедренные элементы (т. е. если вы производили класс документа от COleLinkingDoc). Эта функция вызывается во время активации на месте или когда элемент OLE является источником ссылки, и пользователь хочет изменить его. Реализация по умолчанию активирует первое представление в документе контейнера. Переопределите эту функцию, чтобы прокрутить документ, чтобы элемент OLE был видимым.

COleClientItem::OnUpdateFrameTitle

Вызывается платформой во время активации на месте, чтобы обновить заголовок окна кадра.

virtual BOOL OnUpdateFrameTitle();

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

Ненулевое значение, если эта функция успешно обновила заголовок кадра, в противном случае — ноль.

Замечания

Реализация по умолчанию не изменяет заголовок окна кадра. Переопределите эту функцию, если требуется другое название кадра для приложения, например "элемент серверного приложения - в имени документа" (например, "Microsoft Excel — электронная таблица в REPORT.DOC"). Это расширенная переопределение.

COleClientItem::ReactivateAndUndo

Вызовите эту функцию для повторной активации элемента OLE и отмены последней операции, выполняемой пользователем во время редактирования на месте.

BOOL ReactivateAndUndo();

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Если приложение контейнера поддерживает команду отмены, вызовите эту функцию, если пользователь выбирает команду отмены сразу после деактивации элемента OLE.

Если серверное приложение записывается с помощью библиотек классов Microsoft Foundation, эта функция приводит к вызову COleServerDoc::OnReactivateAndUndo.

Дополнительные сведения см. в разделе IOleInPlaceObject::ReactivateAndUndo в пакете SDK для Windows.

COleClientItem::Release

Вызовите эту функцию для очистки ресурсов, используемых элементом OLE.

virtual void Release(OLECLOSE dwCloseOption = OLECLOSE_NOSAVE);

Параметры

dwCloseOption
Флаг, указывающий, в каких обстоятельствах элемент OLE сохраняется при возвращении в загруженное состояние. Список возможных значений см. в разделе COleClientItem::Close.

Замечания

Release вызывается деструктором COleClientItem .

Дополнительные сведения см. в разделе IUnknown::Release в пакете SDK для Windows.

COleClientItem::Reload

Закрывает и перезагружает элемент.

BOOL Reload();

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Reload Вызовите функцию после активации элемента в качестве элемента другого типа вызовом ActivateAs.

COleClientItem::Run

Запускает приложение, связанное с этим элементом.

void Run();

Замечания

Вызовите функцию-член, Run чтобы запустить серверное приложение перед активацией элемента. Это выполняется автоматически с помощью активации и DoVerb, поэтому обычно не требуется вызывать эту функцию. Вызовите эту функцию, если необходимо запустить сервер, чтобы задать атрибут элемента, например SetExtent, перед выполнением DoVerb.

COleClientItem::SetDrawAspect

Вызовите функцию-член, SetDrawAspect чтобы задать "аспект" или представление элемента.

virtual void SetDrawAspect(DVASPECT nDrawAspect);

Параметры

nDrawAspect
Значение перечисления DVASPECT. Этот параметр может принимать одно из следующих значений:

  • DVASPECT_CONTENT элемент представлен таким образом, что он может отображаться как внедренный объект внутри контейнера.

  • DVASPECT_THUMBNAIL элемент отображается в представлении эскизов, чтобы его можно было отобразить в средстве просмотра.

  • DVASPECT_ICON элемент представлен значком.

  • DVASPECT_DOCPRINT элемент представлен так, как если бы он был напечатан с помощью команды "Печать" в меню "Файл".

Замечания

Аспект указывает, как элемент должен отображаться с помощью Draw , если используется значение по умолчанию для аргумента nDrawAspect этой функции.

Эта функция вызывается автоматически значком изменений (и другими диалоговыми окнами, которые вызывают диалоговое окно "Значок изменения" напрямую), чтобы включить знаковый аспект отображения при запросе пользователя.

COleClientItem::SetExtent

Вызовите эту функцию, чтобы указать, сколько свободного пространства доступно элементу OLE.

void SetExtent(
    const CSize& size,
    DVASPECT nDrawAspect = DVASPECT_CONTENT);

Параметры

size
Объект CSize , содержащий сведения о размере.

nDrawAspect
Указывает аспект элемента OLE, границы которого необходимо задать. Возможные значения см. в разделе SetDrawAspect.

Замечания

Если серверное приложение было записано с помощью библиотеки классов Microsoft Foundation, это приводит к вызову функции члена OnSetExtent соответствующего COleServerItem объекта. Затем элемент OLE может соответствующим образом настроить его отображение. Измерения должны находиться в MM_HIMETRIC единицах. Вызовите эту функцию, когда пользователь изменяет размер элемента OLE или поддерживается какая-то форма согласования макета.

Дополнительные сведения см. в разделе IOleObject::SetExtent в пакете SDK для Windows.

COleClientItem::SetHostNames

Вызовите эту функцию, чтобы указать имя приложения контейнера и имя контейнера для внедренного элемента OLE.

void SetHostNames(
    LPCTSTR lpszHost,
    LPCTSTR lpszHostObj);

Параметры

lpszHost
Указатель на отображаемое пользователем имя приложения контейнера.

lpszHostObj
Указатель на строку идентификации контейнера, содержащего элемент OLE.

Замечания

Если серверное приложение было записано с помощью библиотеки классов Microsoft Foundation, эта функция вызывает функцию-член COleServerDoc OnSetHostNames документа, содержащего элемент OLE. Эти сведения используются в заголовках окна при изменении элемента OLE. Каждый раз при загрузке документа контейнера платформа вызывает эту функцию для всех элементов OLE в документе. SetHostNames применимо только к внедренным элементам. Не обязательно вызывать эту функцию каждый раз, когда внедренный элемент OLE активируется для редактирования.

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

Дополнительные сведения см. в разделе IOleObject::SetHostNames в пакете SDK для Windows.

COleClientItem::SetIconicMetafile

Кэширует метафайл, используемый для рисования значка элемента.

BOOL SetIconicMetafile(HGLOBAL hMetaPict);

Параметры

hMetaPict
Дескриптор метафайла, используемого для рисования значка элемента.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Используйте GetIconicMetafile для получения метафайла.

Параметр hMetaPict копируется в элемент. Поэтому объект hMetaPict должен быть освобожден вызывающим элементом.

COleClientItem::SetItemRects

Вызовите эту функцию, чтобы задать ограничивающий прямоугольник или видимый прямоугольник элемента OLE.

BOOL SetItemRects(
    LPCRECT lpPosRect = NULL,
    LPCRECT lpClipRect = NULL);

Параметры

lprcPosRect
Указатель на прямоугольник, содержащий границы элемента OLE относительно родительского окна в координатах клиента.

lprcClipRect
Указатель на прямоугольник, содержащий границы видимой части элемента OLE относительно родительского окна в координатах клиента.

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

Ненулевое значение при успешном выполнении; в противном случае — значение 0.

Замечания

Эта функция вызывается по умолчанию для функции-члена OnChangeItemPosition . Эту функцию следует вызывать всякий раз, когда изменяется позиция или видимая часть элемента OLE. Обычно это означает, что вы вызываете его из функций-членов представления OnSize и OnScrollBy .

Дополнительные сведения см. в разделе IOleInPlaceObject::SetObjectRects в пакете SDK для Windows.

COleClientItem::SetLinkUpdateOptions

Вызовите эту функцию, чтобы задать параметр обновления ссылок для представления указанного связанного элемента.

void SetLinkUpdateOptions(OLEUPDATE dwUpdateOpt);

Параметры

dwUpdateOpt
Значение параметра обновления ссылки для этого элемента. Это значение должно быть одним из следующих значений:

  • OLEUPDATE_ALWAYS обновлять связанный элемент по возможности. Этот параметр поддерживает переключатель "Автоматическое обновление ссылок" в диалоговом окне "Ссылки".

  • OLEUPDATE_ONCALL обновить связанный элемент только по запросу из приложения контейнера (при вызове функции элемента UpdateLink ). Этот параметр поддерживает переключатель "Обновить ссылку вручную" в диалоговом окне "Ссылки".

Замечания

Как правило, не следует изменять параметры обновления, выбранные пользователем в диалоговом окне "Ссылки".

Дополнительные сведения см. в разделе IOleLink::SetUpdateOptions в пакете SDK для Windows.

COleClientItem::SetPrintDevice

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

BOOL SetPrintDevice(const DVTARGETDEVICE* ptd);
BOOL SetPrintDevice(const PRINTDLG* ppd);

Параметры

ptd
Указатель на структуру данных DVTARGETDEVICE , содержащую сведения о новом целевом устройстве печати. Может иметь значение NULL.

ppd
Указатель на структуру данных PRINTDLG , содержащую сведения о новом целевом устройстве печати. Может иметь значение NULL.

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

Ненулевое значение, если функция была успешной; в противном случае — 0.

Замечания

Эта функция обновляет целевое устройство печати для элемента, но не обновляет кэш презентации. Чтобы обновить кэш презентации для элемента, вызовите UpdateLink.

Аргументы этой функции содержат сведения о том, что система OLE использует для идентификации целевого устройства. Структура PRINTDLG содержит сведения, которые Windows использует для инициализации общего диалогового окна печати. После закрытия диалогового окна Windows возвращает сведения о выборах пользователя в этой структуре. Элемент m_pd объекта CPrintDialog является структурой PRINTDLG .

Дополнительные сведения об этой структуре см. в разделе PRINTDLG в пакете SDK для Windows.

Дополнительные сведения см. в разделе DVTARGETDEVICE в пакете SDK для Windows.

Вызовите эту функцию, чтобы немедленно обновить данные презентации элемента OLE.

BOOL UpdateLink();

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

Ненулевое значение, если операция выполнена успешно; в противном случае — значение 0.

Замечания

Для связанных элементов функция находит источник ссылки, чтобы получить новую презентацию для элемента OLE. Этот процесс может включать запуск одного или нескольких серверных приложений, которые могут занять много времени. Для внедренных элементов функция работает рекурсивно, проверяя, содержит ли внедренный элемент ссылки, которые могут быть устаревшими и обновлять их. Пользователь также может вручную обновить отдельные ссылки с помощью диалогового окна "Ссылки".

Дополнительные сведения см. в разделе IOleLink::Update в пакете SDK для Windows.

См. также

Пример MFC MFCBIND
Пример OCLIENT MFC
Класс CDocItem
Диаграмма иерархии
Класс COleServerItem