Activates or deactivates a document view's user-interface elements, such as menus, toolbars, and accelerators.
HRESULT UIActivate(
BOOL fUIActivate
// Boolean value specifying whether to activate or deactivate view
);
Parameters
fUIActivate
[in] TRUE instructs the view to activate its user interface; FALSE instructs the view to deactivate its user interface.
Return Value
S_OK
The view's user interface was successfully activated or deactivated.
E_OUTOFMEMORY
There was not enough memory to activate the view's user interface.
E_FAIL
Some other critical error occurred that prevented activation or deactivation of the user interface.
E_UNEXPECTED
This method was called before a call to IOleDocumentView::SetInPlaceSite.
Remarks
Calling this method is part of the normal activation and deactivation sequences of a document object.
Notes to Callers
Calling this method before calling IOleDocumentView::SetInPlaceSite returns an error because the view must know where it is activating itself before it can proceed to do so. When calling IOleDocumentView::UIActivate as part of the activation sequence, the call should precede one to IOleDocumentView::SetRect (or SetRectComplex) because otherwise the container would send to the view dimensions that would be incorrect because they would not account for toolbar space.
When deactivating a view, the container should call IOleDocumentView::Show(FALSE), followed by IOleDocumentView::UIActivate(FALSE).
Notes to Implementers
Implementations of this method should embody the following pseudo-code:
if (fActivate)
{
UI activate the view (do menu merging, show frame level tools, process accelerators)
Take focus, and bring the view window forward.
}
else
call IOleInPlaceObject::UIDeactivate on this view
In addition, the view may, and should, participate in extended Help menu merging.
All views of a document object must at least support the in-place activation mode. Therefore, E_NOTIMPL is not allowed as a return value.
See Also
IOleDocumentView::SetInPlaceSite, IOleDocumentView::SetRect, IOleDocumentView::SetRectComplex, IOleDocumentView::Show, IOleInPlaceObject::UIDeactivate