IOleDocumentView::UIActivate メソッド (docobj.h)

メニュー、ツール バー、アクセラレータなど、ドキュメント ビューのユーザー インターフェイス要素をアクティブ化または非アクティブ化します。

構文

HRESULT UIActivate(
  [in] BOOL fUIActivate
);

パラメーター

[in] fUIActivate

TRUE の場合、ビューはユーザー インターフェイスをアクティブにします。 FALSE の場合、ビューはユーザー インターフェイスを非アクティブ化します。

戻り値

このメソッドは、成功したS_OKを返します。 その他の可能な戻り値は次のとおりです。

リターン コード 説明
E_FAIL
操作が失敗しました。
E_OUTOFMEMORY
操作に使用できるメモリが不足しています。
E_UNEXPECTED
予期しないエラーが発生しました。

解説

呼び出し元へのメモ

IOleDocumentView::SetInPlaceSite を呼び出す前にこのメソッドを呼び出すと、ビューをアクティブ化する前にビュー サイトに関連付ける必要があるため、E_UNEXPECTEDが返されます。

IOleDocumentView::UIActivate がアクティブ化シーケンスの一部として呼び出されると、ビューのディメンションがツール バー領域を考慮しないため、呼び出しの前に IOleDocumentView::SetRect または IOleDocumentView::SetRectComplex を呼び出す必要があります。

ビューを非アクティブ化するには、コンテナーで IOleDocumentView::ShowFALSE で呼び出し、その後に IOleDocumentView::UIActivateFALSE で呼び出す必要があります。

実装者へのメモ

このメソッドの実装は、次の擬似コードを具体化する必要があります。
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

さらに、ビューは拡張 ヘルプ メニューのマージに参加できます。

ドキュメント オブジェクトのすべてのビューでは、インプレース アクティブ化をサポートする必要があります。 E_NOTIMPLは許容される戻り値ではありません。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー docobj.h

関連項目

IOleDocumentView

IOleDocumentView::SetInPlaceSite

IOleDocumentView::SetRect

IOleDocumentView::SetRectComplex

IOleDocumentView::Show