Класс 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++.
Иерархия наследования
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.
COleClientItem::CanPasteLink
Вызовите эту функцию, чтобы узнать, может ли связанный элемент 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, созданного функцией-членом COleServerItem
OnDraw.
Как правило, вы используете 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
, activeState
openState
или 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.
COleClientItem::UpdateLink
Вызовите эту функцию, чтобы немедленно обновить данные презентации элемента OLE.
BOOL UpdateLink();
Возвращаемое значение
Ненулевое значение, если операция выполнена успешно; в противном случае — значение 0.
Замечания
Для связанных элементов функция находит источник ссылки, чтобы получить новую презентацию для элемента OLE. Этот процесс может включать запуск одного или нескольких серверных приложений, которые могут занять много времени. Для внедренных элементов функция работает рекурсивно, проверяя, содержит ли внедренный элемент ссылки, которые могут быть устаревшими и обновлять их. Пользователь также может вручную обновить отдельные ссылки с помощью диалогового окна "Ссылки".
Дополнительные сведения см. в разделе IOleLink::Update в пакете SDK для Windows.
См. также
Пример MFC MFCBIND
Пример OCLIENT MFC
Класс CDocItem
Диаграмма иерархии
Класс COleServerItem