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 时,不要调用 PeekMessageGetMessage 函数或对话框。 这样做可能会导致系统死锁。 从 IOleInPlaceUIWindow::RequestBorderSpace 中调用 OLE 接口方法和函数还有进一步的限制。
 

实施者说明

如果活动对象用于其工具栏的空间量与容器无关,则它只需返回 NOERROR,如以下 IOleInPlaceUIWindow::RequestBorderSpace 示例所示。 容器不应过度限制活动就地对象的工具显示。
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