次の方法で共有


IOleInPlaceUIWindow::RequestBorderSpace メソッド (oleidl.h)

オブジェクトがアクティブな状態で、オブジェクトのウィンドウ フレームの周囲にツールをインストールできる領域があるかどうかを指定します。

構文

HRESULT RequestBorderSpace(
  [in] LPCBORDERWIDTHS pborderwidths
);

パラメーター

[in] pborderwidths

ツールのウィンドウの両側に必要な要求された幅 (ピクセル単位) を含む BORDERWIDTHS 構造体へのポインター。

戻り値

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

リターン コード 説明
INPLACE_E_NOTOOLSPACE
実装でツール バーがサポートされていないか、ツール バーをインストールするための領域が不足しているため、オブジェクトはこのウィンドウ オブジェクトにツール バーをインストールできません。
E_UNEXPECTED
予期しないエラーが発生しました。

注釈

呼び出し元へのメモ

アクティブなインプレース オブジェクトは 、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

こちらもご覧ください

IOleInPlaceUIWindow

IOleInPlaceUIWindow::GetBorder

IOleInPlaceUIWindow::SetBorderSpace