Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Этот класс реализует IUnknown
и является основным интерфейсом, с помощью которого контейнер взаимодействует с элементом управления.
Важно!
Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.
template<class T>
class ATL_NO_VTABLE IOleObjectImpl : public IOleObject
T
Класс, производный от IOleObjectImpl
.
Имя | Описание |
---|---|
IOleObjectImpl::Advise | Устанавливает консультативное подключение к элементу управления. |
IOleObjectImpl::Close | Изменяет состояние элемента управления с запуска на загруженное. |
IOleObjectImpl::D oVerb | Указывает элементу управления выполнить одно из перечисленных действий. |
IOleObjectImpl::D oVerbDiscardUndo | Указывает элементу управления отменить любое состояние отмены, которое оно поддерживает. |
IOleObjectImpl::DoVerbHide | Указывает элементу управления удалить его пользовательский интерфейс из представления. |
IOleObjectImpl::D oVerbInPlaceActivate | Запускает элемент управления и устанавливает его окно, но не устанавливает пользовательский интерфейс элемента управления. |
IOleObjectImpl::D oVerbOpen | Вызывает открытие элемента управления в отдельном окне. |
IOleObjectImpl::D oVerbPrimary | Выполняет указанное действие, когда пользователь дважды щелкает элемент управления. Элемент управления определяет действие, обычно для активации элемента управления на месте. |
IOleObjectImpl::D oVerbShow | Отображает только что вставленный элемент управления пользователю. |
IOleObjectImpl::D oVerbUIActivate | Активирует элемент управления на месте и отображает пользовательский интерфейс элемента управления, например меню и панели инструментов. |
IOleObjectImpl::EnumAdvise | Перечисляет консультативные подключения элемента управления. |
IOleObjectImpl::EnumVerbs | Перечисляет действия для элемента управления. |
IOleObjectImpl::GetClientSite | Извлекает клиентский сайт элемента управления. |
IOleObjectImpl::GetClipboardData | Извлекает данные из буфера обмена. Реализация ATL возвращает E_NOTIMPL. |
IOleObjectImpl::GetExtent | Извлекает экстент области отображения элемента управления. |
IOleObjectImpl::GetMiscStatus | Извлекает состояние элемента управления. |
IOleObjectImpl::GetMoniker | Извлекает моникер элемента управления. Реализация ATL возвращает E_NOTIMPL. |
IOleObjectImpl::GetUserClassID | Извлекает идентификатор класса элемента управления. |
IOleObjectImpl::GetUserType | Извлекает имя пользователя элемента управления. |
IOleObjectImpl::InitFromData | Инициализирует элемент управления из выбранных данных. Реализация ATL возвращает E_NOTIMPL. |
IOleObjectImpl::IsUpToDate | Проверяет, обновлен ли элемент управления. Реализация ATL возвращает S_OK. |
IOleObjectImpl::OnPostVerbDiscardUndo | Вызывается DoVerbDiscardUndo после отмены состояния отмены. |
IOleObjectImpl::OnPostVerbHide | Вызывается DoVerbHide после скрытия элемента управления. |
IOleObjectImpl::OnPostVerbInPlaceActivate | Вызывается DoVerbInPlaceActivate после активации элемента управления. |
IOleObjectImpl::OnPostVerbOpen | Вызывается DoVerbOpen после открытия элемента управления для редактирования в отдельном окне. |
IOleObjectImpl::OnPostVerbShow | Вызывается DoVerbShow после того, как элемент управления был виден. |
IOleObjectImpl::OnPostVerbUIActivate | Вызывается DoVerbUIActivate после активации пользовательского интерфейса элемента управления. |
IOleObjectImpl::OnPreVerbDiscardUndo | Вызывается DoVerbDiscardUndo перед отменой состояния отмены. |
IOleObjectImpl::OnPreVerbHide | Вызывается DoVerbHide перед скрытием элемента управления. |
IOleObjectImpl::OnPreVerbInPlaceActivate | Вызывается DoVerbInPlaceActivate перед активацией элемента управления. |
IOleObjectImpl::OnPreVerbOpen | Вызывается DoVerbOpen перед открытием элемента управления для редактирования в отдельном окне. |
IOleObjectImpl::OnPreVerbShow | Вызывается DoVerbShow перед тем, как элемент управления был виден. |
IOleObjectImpl::OnPreVerbUIActivate | Вызывается DoVerbUIActivate перед активацией пользовательского интерфейса элемента управления. |
IOleObjectImpl::SetClientSite | Сообщает элементу управления о своем клиентском сайте в контейнере. |
IOleObjectImpl::SetColorScheme | Рекомендует цветовую схему приложению элемента управления, если таковые есть. Реализация ATL возвращает E_NOTIMPL. |
IOleObjectImpl::SetExtent | Задает степень области отображения элемента управления. |
IOleObjectImpl::SetHostNames | Указывает элементу управления имена приложения контейнера и документа контейнера. |
IOleObjectImpl::SetMoniker | Сообщает элементу управления, что его моникер. Реализация ATL возвращает E_NOTIMPL. |
IOleObjectImpl::Unadvise | Удаляет консультативное соединение с элементом управления. |
IOleObjectImpl::Update | Обновляет элемент управления. Реализация ATL возвращает S_OK. |
Интерфейс IOleObject — это основной интерфейс, через который контейнер взаимодействует с элементом управления. Класс IOleObjectImpl
предоставляет реализацию этого интерфейса по умолчанию и реализует IUnknown
путем отправки сведений на устройство дампа в отладочных сборках.
Руководство по созданию проекта ATL в статьях ATL
IOleObject
IOleObjectImpl
Header: atlctl.h
Устанавливает консультативное подключение к элементу управления.
STDMETHOD(Advise)(
IAdviseSink* pAdvSink,
DWORD* pdwConnection);
См. раздел IOleObject::Advise в пакете SDK для Windows.
Изменяет состояние элемента управления с запуска на загруженное.
STDMETHOD(Close)(DWORD dwSaveOption);
Деактивирует элемент управления и уничтожает окно управления, если оно существует. Если элемент данных класса управления CComControlBase::m_bRequiresSave имеет значение TRUE, а параметр dwSaveOption — OLECLOSE_SAVEIFDIRTY или OLECLOSE_PROMPTSAVE, свойства элемента управления сохраняются перед закрытием.
Указатели, хранящиеся в членах данных класса управления CComControlBase::m_spInPlaceSite и CComControlBase::m_spAdviseSink, и члены данных CComControlBase::m_bNegotiatedWnd, CComControlBase::m_bWndless и CComControlBase::m_bInPlaceSiteEx имеют значение FALSE.
См . раздел IOleObject::Close в пакете SDK для Windows.
Указывает элементу управления выполнить одно из перечисленных действий.
STDMETHOD(DoVerb)(
LONG iVerb,
LPMSG /* pMsg */,
IOleClientSite* pActiveSite,
LONG /* lindex */,
HWND hwndParent,
LPCRECT lprcPosRect);
В зависимости от значения iVerb
один из вспомогательных функций ATL DoVerb
вызывается следующим образом:
Значение iVerb | Вызываемая вспомогательная функция DoVerb |
---|---|
OLEIVERB_DISCARDUNDOSTATE | DoVerbDiscardUndo |
OLEIVERB_HIDE | DoVerbHide |
OLEIVERB_INPLACEACTIVATE | DoVerbInPlaceActivate |
OLEIVERB_OPEN | DoVerbOpen |
OLEIVERB_PRIMARY | DoVerbPrimary |
OLEIVERB_PROPERTIES | CComControlBase::DoVerbProperties |
OLEIVERB_SHOW | DoVerbShow |
OLEIVERB_UIACTIVATE | DoVerbUIActivate |
См . раздел IOleObject::D oVerb в пакете SDK для Windows.
Указывает элементу управления отменить любое состояние отмены, которое оно поддерживает.
HRESULT DoVerbDiscardUndo(LPCRECT /* prcPosRect */, HWND /* hwndParent */);
prcPosRec
[in] Указатель на прямоугольник контейнера хочет, чтобы элемент управления был нарисован.
hwndParent
[in] Дескриптор окна, содержащего элемент управления.
Возвращает S_OK.
Деактивирует и удаляет пользовательский интерфейс элемента управления и скрывает элемент управления.
HRESULT DoVerbHide(LPCRECT /* prcPosRect */, HWND /* hwndParent */);
prcPosRec
[in] Указатель на прямоугольник контейнера хочет, чтобы элемент управления был нарисован.
hwndParent
[in] Дескриптор окна, содержащего элемент управления. Не используется в реализации ATL.
Возвращает S_OK.
Запускает элемент управления и устанавливает его окно, но не устанавливает пользовательский интерфейс элемента управления.
HRESULT DoVerbInPlaceActivate(LPCRECT prcPosRect, HWND /* hwndParent */);
prcPosRec
[in] Указатель на прямоугольник контейнера хочет, чтобы элемент управления был нарисован.
hwndParent
[in] Дескриптор окна, содержащего элемент управления. Не используется в реализации ATL.
Одно из стандартных значений HRESULT.
Активирует элемент управления, вызвав CComControlBase::InPlaceActivate. Если элемент m_bWindowOnly
данных класса элемента управления не имеет значения TRUE, DoVerbInPlaceActivate
сначала пытается активировать элемент управления как элемент управления без окна (возможно, только если контейнер поддерживает IOleInPlaceSiteWindowless). Если это не удается, функция пытается активировать элемент управления с расширенными функциями (возможно, только если контейнер поддерживает IOleInPlaceSiteEx). Если это не удается, функция пытается активировать элемент управления без расширенных функций (возможно, только если контейнер поддерживает IOleInPlaceSite). Если активация выполнена успешно, функция уведомляет контейнер, который был активирован.
Вызывает открытие элемента управления в отдельном окне.
HRESULT DoVerbOpen(LPCRECT /* prcPosRect */, HWND /* hwndParent */);
prcPosRec
[in] Указатель на прямоугольник контейнера хочет, чтобы элемент управления был нарисован.
hwndParent
[in] Дескриптор окна, содержащего элемент управления.
Возвращает S_OK.
Определяет действие, выполняемое при двойном щелчке элемента управления.
HRESULT DoVerbPrimary(LPCRECT prcPosRect, HWND hwndParent);
prcPosRec
[in] Указатель на прямоугольник контейнера хочет, чтобы элемент управления был нарисован.
hwndParent
[in] Дескриптор окна, содержащего элемент управления.
Одно из стандартных значений HRESULT.
По умолчанию задайте для отображения страниц свойств. Это можно переопределить в классе элемента управления, чтобы вызвать другое поведение при двойном щелчке мыши; например, воспроизвести видео или перейти на месте.
Сообщает контейнеру, чтобы сделать элемент управления видимым.
HRESULT DoVerbShow(LPCRECT prcPosRect, HWND /* hwndParent */);
prcPosRec
[in] Указатель на прямоугольник контейнера хочет, чтобы элемент управления был нарисован.
hwndParent
[in] Дескриптор окна, содержащего элемент управления. Не используется в реализации ATL.
Одно из стандартных значений HRESULT.
Активирует пользовательский интерфейс элемента управления и уведомляет контейнер о том, что его меню заменяются составными менюми.
HRESULT DoVerbUIActivate(LPCRECT prcPosRect, HWND /* hwndParent */);
prcPosRec
[in] Указатель на прямоугольник контейнера хочет, чтобы элемент управления был нарисован.
hwndParent
[in] Дескриптор окна, содержащего элемент управления. Не используется в реализации ATL.
Одно из стандартных значений HRESULT.
Предоставляет перечисление зарегистрированных консультативных подключений для этого элемента управления.
STDMETHOD(EnumAdvise)(IEnumSTATDATA** ppenumAdvise);
См . раздел IOleObject::EnumAdvise в пакете SDK для Windows.
Предоставляет перечисление зарегистрированных действий (команд) для этого элемента управления путем вызова OleRegEnumVerbs
.
STDMETHOD(EnumVerbs)(IEnumOLEVERB** ppEnumOleVerb);
Вы можете добавить команды в файл rgs проекта. Например, см. статью CIRCCTL. RGS в примере CIRC .
См . раздел IOleObject::EnumVerbs в пакете SDK для Windows.
Помещает указатель в элемент данных класса управления CComControlBase::m_spClientSite в ppClientSite и увеличивает число ссылок на указатель.
STDMETHOD(GetClientSite)(IOleClientSite** ppClientSite);
См . раздел IOleObject::GetClientSite в пакете SDK для Windows.
Извлекает данные из буфера обмена.
STDMETHOD(GetClipboardData)(
DWORD /* dwReserved */,
IDataObject** /* ppDataObject */);
Возвращает E_NOTIMPL.
См . раздел IOleObject::GetClipboardData в пакете SDK для Windows.
Извлекает размер отображения элемента управления с выполнением в единицах HIMETRIC (0,01 миллиметра на единицу).
STDMETHOD(GetExtent)(
DWORD dwDrawAspect,
SIZEL* psizel);
Размер хранится в элементе данных класса управления CComControlBase::m_sizeExtent.
См . раздел IOleObject::GetExtent в пакете SDK для Windows.
Возвращает указатель на зарегистрированные сведения о состоянии элемента управления путем вызова OleRegGetMiscStatus
.
STDMETHOD(GetMiscStatus)(
DWORD dwAspect,
DWORD* pdwStatus);
Сведения о состоянии включают в себя поведение, поддерживаеме данными элемента управления и презентации. Вы можете добавить сведения о состоянии в файл rgs проекта.
См. раздел IOleObject::GetMiscStatus в пакете SDK для Windows.
Извлекает моникер элемента управления.
STDMETHOD(GetMoniker)(
DWORD /* dwAssign */,
DWORD /* dwWhichMoniker */,
IMoniker** /* ppmk */);
Возвращает E_NOTIMPL.
См . раздел IOleObject::GetMoniker в пакете SDK для Windows.
Возвращает идентификатор класса элемента управления.
STDMETHOD(GetUserClassID)(CLSID* pClsid);
См . раздел IOleObject::GetUserClassID в пакете SDK для Windows.
Возвращает имя типа пользователя элемента управления путем вызова OleRegGetUserType
.
STDMETHOD(GetUserType)(
DWORD dwFormOfType,
LPOLESTR* pszUserType);
Имя типа пользователя используется для отображения в элементах пользовательского интерфейса, таких как меню и диалоговые окна. Имя типа пользователя можно изменить в файле rgs проекта.
См . раздел IOleObject::GetUserType в пакете SDK для Windows.
Инициализирует элемент управления из выбранных данных.
STDMETHOD(InitFromData)(
IDataObject* /* pDataObject */,
BOOL /* fCreation */,
DWORD /* dwReserved */);
Возвращает E_NOTIMPL.
См . раздел IOleObject::InitFromData в пакете SDK для Windows.
Проверяет, обновлен ли элемент управления.
STDMETHOD(IsUpToDate)(void);
Возвращает S_OK.
См . раздел IOleObject::IsUpToDate в пакете SDK для Windows.
Вызывается DoVerbDiscardUndo после отмены состояния отмены.
HRESULT OnPostVerbDiscardUndo();
Возвращает S_OK.
Переопределите этот метод кодом, который требуется выполнить после отмены состояния отмены.
Вызывается DoVerbHide после скрытия элемента управления.
HRESULT OnPostVerbHide();
Возвращает S_OK.
Переопределите этот метод кодом, который требуется выполнить после скрытия элемента управления.
Вызывается DoVerbInPlaceActivate после активации элемента управления.
HRESULT OnPostVerbInPlaceActivate();
Возвращает S_OK.
Переопределите этот метод кодом, который требуется выполнить после активации элемента управления.
Вызывается DoVerbOpen после открытия элемента управления для редактирования в отдельном окне.
HRESULT OnPostVerbOpen();
Возвращает S_OK.
Переопределите этот метод кодом, который требуется выполнить после открытия элемента управления для редактирования в отдельном окне.
Вызывается DoVerbShow после того, как элемент управления был виден.
HRESULT OnPostVerbShow();
Возвращает S_OK.
Переопределите этот метод кодом, который требуется выполнить после того, как элемент управления был виден.
Вызывается DoVerbUIActivate после активации пользовательского интерфейса элемента управления.
HRESULT OnPostVerbUIActivate();
Возвращает S_OK.
Переопределите этот метод кодом, который требуется выполнить после активации пользовательского интерфейса элемента управления.
Вызывается DoVerbDiscardUndo перед отменой состояния отмены.
HRESULT OnPreVerbDiscardUndo();
Возвращает S_OK.
Чтобы предотвратить отмену состояния отмены, переопределите этот метод, чтобы вернуть ошибку HRESULT.
Вызывается DoVerbHide перед скрытием элемента управления.
HRESULT OnPreVerbHide();
Возвращает S_OK.
Чтобы предотвратить скрытие элемента управления, переопределите этот метод, чтобы вернуть ошибку HRESULT.
Вызывается DoVerbInPlaceActivate перед активацией элемента управления.
HRESULT OnPreVerbInPlaceActivate();
Возвращает S_OK.
Чтобы предотвратить активацию элемента управления, переопределите этот метод, чтобы вернуть ошибку HRESULT.
Вызывается DoVerbOpen перед открытием элемента управления для редактирования в отдельном окне.
HRESULT OnPreVerbOpen();
Возвращает S_OK.
Чтобы предотвратить открытие элемента управления для редактирования в отдельном окне, переопределите этот метод, чтобы вернуть ошибку HRESULT.
Вызывается DoVerbShow перед тем, как элемент управления был виден.
HRESULT OnPreVerbShow();
Возвращает S_OK.
Чтобы предотвратить появление элемента управления, переопределите этот метод, чтобы вернуть ошибку HRESULT.
Вызывается DoVerbUIActivate перед активацией пользовательского интерфейса элемента управления.
HRESULT OnPreVerbUIActivate();
Возвращает S_OK.
Чтобы предотвратить активацию пользовательского интерфейса элемента управления, переопределите этот метод, чтобы вернуть ошибку HRESULT.
Сообщает элементу управления о своем клиентском сайте в контейнере.
STDMETHOD(SetClientSite)(IOleClientSite* pClientSite);
Затем метод возвращает S_OK.
См. раздел IOleObject::SetClientSite в пакете SDK для Windows.
Рекомендует цветовую схему приложению элемента управления, если таковые есть.
STDMETHOD(SetColorScheme)(LOGPALETTE* /* pLogPal */);
Возвращает E_NOTIMPL.
См . раздел IOleObject::SetColorScheme в пакете SDK для Windows.
Задает степень области отображения элемента управления.
STDMETHOD(SetExtent)(
DWORD dwDrawAspect,
SIZEL* psizel);
SetExtent
В противном случае сохраняет значение, на которое указывает psizel
член данных класса элемента управления CComControlBase::m_sizeExtent. Это значение находится в единицах HIMETRIC (0,01 миллиметра на единицу).
Если элемент данных класса управления CComControlBase::m_bResizeNatural имеет значение TRUE, SetExtent
также сохраняет значение, указываемое psizel
в элементе данных класса управления CComControlBase::m_sizeNatural.
Если элемент данных класса управления CComControlBase::m_bRecomposeOnResize имеет значение TRUE, вызовы SendOnDataChange
и SendOnViewChange
уведомление обо всех приемниках рекомендаций, SetExtent
зарегистрированных в владельце совете, о том, что размер элемента управления изменился.
См . раздел IOleObject::SetExtent в пакете SDK для Windows.
Указывает элементу управления имена приложения контейнера и документа контейнера.
STDMETHOD(SetHostNames)(LPCOLESTR /* szContainerApp */, LPCOLESTR /* szContainerObj */);
Возвращает S_OK.
См . раздел IOleObject::SetHostNames в пакете SDK для Windows.
Сообщает элементу управления, что его моникер.
STDMETHOD(SetMoniker)(
DWORD /* dwWhichMoniker */,
IMoniker** /* pmk */);
Возвращает E_NOTIMPL.
См . раздел IOleObject::SetMoniker в пакете SDK для Windows.
Удаляет консультативное подключение, хранящееся в элементе данных класса m_spOleAdviseHolder
элемента управления.
STDMETHOD(Unadvise)(DWORD dwConnection);
См . раздел IOleObject::Unadvise в пакете SDK для Windows.
Обновляет элемент управления.
STDMETHOD(Update)(void);
Возвращает S_OK.
См. раздел IOleObject::Update в пакете SDK для Windows.
Класс CComControl
Интерфейсы элементов управления ActiveX
Общие сведения о классе