# OleSetMenuDescriptor

Installs or removes OLE dispatching code from the container’s frame window.

WINOLEAPI OleSetMenuDescriptor(

HOLEMENU holemenu, | //Handle to the composite menu descriptor
HWND hwndFrame, | //Handle to the container’s frame window
HWND hwndActiveObject, | //Handle to the object’s in-place activation window
LPOLEINPLACEFRAME lpFrame, | //Pointer to the container’s frame window
LPOLEINPLACEACTIVEOBJECT lpActiveObj | //Active in-place object
); |

Parameters

holemenu
  [in] Handle to the composite menu descriptor returned by the OleCreateMenuDescriptor function. If NULL, the dispatching code is unhooked.
hwndFrame
  [in] Handle to the container’s frame window where the in-place composite menu is to be installed.
hwndActiveObject
  [in] Handle to the object’s in-place activation window. OLE dispatches menu messages and commands to this window.
lpFrame
  [in] Pointer to the IOleInPlaceFrame interface on the container’s frame window.
lpActiveObj
  [in] Pointer to the IOleInPlaceActiveObject interface on the active in-place object.

Return Values

This function supports the standard return values E_FAIL, E_INVALIDARG and E_UNEXPECTED, as well as the following:

S_OK
  The menu was installed correctly.

Remarks

The container should call OleSetMenuDescriptor to install the dispatching code on hwndFrame when the object calls the IOleInPlaceFrame::SetMenu method, or to remove the dispatching code by passing NULL as the value for holemenu to OleSetMenuDescriptor.

If both the lpFrame and lpActiveObj parameters are non-NULL, OLE installs the context-sensitive help F1 message filter for the application. Otherwise, the application must supply its own message filter.

See Also

OleCreateMenuDescriptor, IOleInPlaceFrame::SetMenu, IOleInPlaceActiveObject