IOleInPlaceUIWindow::RequestBorderSpace
Determines if there is available space for tools to be installed around the
object's window frame while the object is active in place.
HRESULT RequestBorderSpace(
LPCBORDERWIDTHS pborderwidths
| //Points to a BORDERWIDTHS structure
|
);
|
|
Parameter
pborderwidths
[in] Points to a
BORDERWIDTHS structure containing the requested widths (in pixels) needed on each side of
the window for the tools.
Return Values
S_OK
The requested space could be allocated to the object.
E_NOTOOLSPACE
The object cannot install toolbars in this window object because the
implementation does not support toolbars, or there is insufficient space to install the
toolbars.
E_INVALIDARG
One or more invalid arguments (for example, an invalid pointer or parameter).
E_UNEXPECTED
An unexpected error occurred.
Comments
Notes to Callers
The active in-place object calls
IOleInPlaceUIWindow::RequestBorderSpace to ask if tools can be installed inside the window frame. These tools would be
allocated between the rectangle returned by
IOleInPlaceUIWindow::GetBorder and the
BORDERWIDTHS structure specified in the argument to this call.
The space for the tools is not actually allocated to the object until it calls
IOleInPlaceUIWindow::SetBorderSpace, allowing the object to negotiate for space (such as while dragging toolbars
around), but deferring the moving of tools until the action is completed.
The object can install these tools by passing the width in pixels that is to
be used on each side. For example, if the object required 10 pixels on the top,
0 pixels on the bottom, and 5 pixels on the left and right sides, it would pass
the following
BORDERWIDTHS structure to
IOleInPlaceUIWindow::RequestBorderSpace:
lpbw->top = 10
lpbw->bottom = 0
lpbw->lLeft = 5
lpbw->right = 5
Note While executing
IOleInPlaceUIWindow::RequestBorderSpace, do not make calls to the Windows
PeekMessage or
GetMessage functions, or a dialog box. Doing so may cause the system to deadlock. There
are further restrictions on which OLE interface methods and functions can be
called from within
RequestBorderSpace.
Notes to Implementors
If the amount of space an active object uses for its toolbars is irrelevant to
the container, it can simply return NOERROR as shown in the following
IOleInPlaceUIWindow::RequestBorderSpace example. Containers should not unduly restrict the display of tools by an
active in-place object.
HRESULT InPlaceUIWindow_RequestBorderSpace(
IOleInPlaceFrame * lpThis,
LPCBORDERWIDTHS pborderwidths)
{
/* Container allows the object to have as much border space as it
** wants.
*/
return NOERROR;
}
See Also
IOleInPlaceUIWindow::GetBorder,
IOleInPlaceUIWindow::SetBorderSpace
PeekMessage,
GetMessage in Win32
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database