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


Метод IOleInPlaceFrame::SetMenu (oleidl.h)

Добавляет составное меню в рамку окна, содержащую активируемый объект на месте.

Синтаксис

HRESULT SetMenu(
  [in] HMENU    hmenuShared,
  [in] HOLEMENU holemenu,
  [in] HWND     hwndActiveObject
);

Параметры

[in] hmenuShared

Дескриптор составного меню, созданного вызовами IOleInPlaceFrame::InsertMenus и функции InsertMenu .

[in] holemenu

Дескриптор дескриптора меню, возвращаемый функцией OleCreateMenuDescriptor .

[in] hwndActiveObject

Дескриптор окна, принадлежащего объекту , и в который должны отправляться сообщения меню, команды и ускорители.

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

Этот метод возвращает значение S_OK при успешном завершении. Другие возможные возвращаемые значения включают следующее.

Код возврата Описание
E_INVALIDARG
Указанный дескриптор недопустим.
E_UNEXPECTED
Произошла непредвиденная ошибка.

Комментарии

Примечания к вызывающим абонентам

Объект вызывает IOleInPlaceFrame::SetMenu , чтобы попросить контейнер установить структуру составного меню, настроенную с помощью вызовов IOleInPlaceFrame::InsertMenus.

Примечания для разработчиков

Реализация этого метода в контейнере SDI должна вызывать функцию SetMenu . Контейнер MDI должен отправлять WM_MDISETMENU сообщение, используя hmenuShared в качестве меню для установки. Контейнер должен вызвать OleSetMenuDescriptor для установки кода диспетчеризации OLE.

При деактивации контейнер должен вызвать IOleInPlaceFrame::SetMenu, указав значение NULL для удаления общего меню. Это делается, чтобы свести к минимуму перерисовки окна. Контейнер также должен вызвать OleSetMenuDescriptor, указав значение NULL для отмены перехвата кода диспетчеризации. Наконец, объектное приложение вызывает OleDetraitsMenuDescriptor , чтобы освободить структуру данных.

Примечание При выполнении IOleInPlaceFrame::SetMenu не выполняйте вызовы функций PeekMessage , GetMessage или диалогового окна. Это может привести к взаимоблокировки системы. Существуют дополнительные ограничения, на которые можно вызывать методы и функции интерфейса OLE из IOleInPlaceFrame::SetMenu.
 

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header oleidl.h

См. также раздел

IOleInPlaceFrame

IOleInPlaceFrame::InsertMenus

InsertMenu

OleDestroyMenuDescriptor

OleSetMenuDescriptor