IOleInPlaceUIWindow::RequestBorderSpace メソッド (oleidl.h)
オブジェクトがアクティブな状態で、オブジェクトのウィンドウ フレームの周囲にツールをインストールできる領域があるかどうかを指定します。
構文
HRESULT RequestBorderSpace(
[in] LPCBORDERWIDTHS pborderwidths
);
パラメーター
[in] pborderwidths
ツールのウィンドウの両側に必要な要求された幅 (ピクセル単位) を含む BORDERWIDTHS 構造体へのポインター。
戻り値
このメソッドは、成功したS_OKを返します。 その他の可能な戻り値は次のとおりです。
リターン コード | 説明 |
---|---|
|
実装でツール バーがサポートされていないか、ツール バーをインストールするための領域が不足しているため、オブジェクトはこのウィンドウ オブジェクトにツール バーをインストールできません。 |
|
予期しないエラーが発生しました。 |
注釈
呼び出し元へのメモ
アクティブなインプレース オブジェクトは 、IOleInPlaceUIWindow::RequestBorderSpace を呼び出して、ウィンドウ フレーム内にツールをインストールできるかどうかを確認します。 これらのツールは、 IOleInPlaceUIWindow::GetBorder によって返される四角形と、この呼び出しの引数で指定された BORDERWIDTHS 構造体の間に割り当てられます。ツールの領域は、 IOleInPlaceUIWindow::SetBorderSpace を呼び出すまでオブジェクトに実際には割り当てられません。これにより、オブジェクトは領域のネゴシエート (ツール バーのドラッグ中など) に対応付けられますが、アクションが完了するまでツールの移動は延期されます。
オブジェクトは、各側で使用される幅をピクセル単位で渡すことによって、これらのツールをインストールできます。 たとえば、オブジェクトで上に 10 ピクセル、下部に 0 ピクセル、左右に 5 ピクセルが必要な場合、次の BORDERWIDTHS 構造体を IOleInPlaceUIWindow::RequestBorderSpace に渡します。
lpbw->top = 10
lpbw->bottom = 0
lpbw->lLeft = 5
lpbw->right = 5
メモIOleInPlaceUIWindow::RequestBorderSpace の実行中は、PeekMessage 関数や GetMessage 関数、またはダイアログ ボックスを呼び出さないでください。 これにより、システムがデッドロックする可能性があります。
IOleInPlaceUIWindow::RequestBorderSpace 内から呼び出すことができる OLE インターフェイスのメソッドと関数には、さらに制限があります。
実装者へのメモ
アクティブ オブジェクトがツールバーに使用する領域の量がコンテナーとは関係ない場合、次の IOleInPlaceUIWindow::RequestBorderSpace の例に示すように、NOERROR を返すだけです。 コンテナーでは、アクティブなインプレース オブジェクトによるツールの表示を過度に制限しないでください。HRESULT InPlaceUIWindow_RequestBorderSpace(
IOleInPlaceFrame * lpThis,
LPCBORDERWIDTHS pborderwidths)
{
// Container allows the object to have as much border space as it
// wants.
return NOERROR;
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | oleidl.h |