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 接口方法和函数还有进一步的限制。
实施者说明
如果活动对象用于其工具栏的空间量与容器无关,则它只需返回 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 |