IOleInPlaceFrame::SetStatusText メソッド (oleidl.h)
コンテナーのフレーム ウィンドウの状態行に、インプレース オブジェクトに関する状態テキストを設定して表示します。
構文
HRESULT SetStatusText(
[in] LPCOLESTR pszStatusText
);
パラメーター
[in] pszStatusText
表示するメッセージ。
戻り値
このメソッドは、成功したS_OKを返します。 その他の可能な戻り値は次のとおりです。
リターン コード | 説明 |
---|---|
|
一部のテキストが表示されましたが、メッセージが長すぎて切り捨てられました。 |
|
操作が失敗しました。 |
|
指定されたポインターが無効です。 |
|
予期しないエラーが発生しました。 |
注釈
呼び出し元へのメモ
IOleInPlaceFrame::SetStatusText を呼び出す必要がある場合は、コンテナーにフレームの状態行にオブジェクト テキストを表示するように要求する必要がある場合は、それを呼び出す必要があります。 コンテナーのフレーム ウィンドウは状態行を所有しているため、 IOleInPlaceFrame::SetStatusText を呼び出すことは、オブジェクトがコンテナーのフレーム ウィンドウに状態情報を表示する唯一の方法です。 ただし、コンテナーがオブジェクトの要求を拒否した場合、オブジェクト アプリケーションは境界領域をネゴシエートして独自のステータス ウィンドウを表示できます。コンテナーが所有するメニューとインプレース アクティブ オブジェクトを切り替えると、オブジェクトがコンテナーの IOleInPlaceFrame::SetStatusText メソッドを呼び出さない場合、ステータス バーのテキストが正しく反映されません。 たとえば、インプレース セッション中にユーザーが [ファイル ] メニューを選択した場合、ステータス バーには、ユーザーがこのメニューを選択した場合に発生するアクションが反映されます。 その後、ユーザーが [編集 ] メニュー (インプレース オブジェクトが所有) を選択した場合、 IOleInPlaceFrame::SetStatusText が呼び出されない限り、ステータス バーのテキストは変更されません。 これは、コンテナーがトラップするすべてのメッセージがオブジェクトに送られるようになったため、オブジェクトのメニューの 1 つがアクティブになったことをコンテナーが認識する方法がないためです。
実装者へのメモ
潜在的な問題を回避するために、アクティブ化されているすべてのオブジェクトは 、WM_MENUSELECT メッセージを処理し、 IOleInPlaceFrame::SetStatusText を呼び出す必要があります。通常、オブジェクトが状態情報を提供しない場合でも (この場合、オブジェクトは要求された状態テキストに NULL 文字列を渡すだけです)。メモIOleInPlaceFrame::SetStatusText の実行中は、PeekMessage 関数や GetMessage 関数、またはダイアログ ボックスを呼び出さないでください。 これにより、システムがデッドロックする可能性があります。 IOleInPlaceUIWindow::GetBorder 内から呼び出すことができる OLE インターフェイスのメソッドと関数には、さらに制限があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | oleidl.h |