Поделиться через


Метод 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 или диалогового окна. Это может привести к взаимоблокировки системы. Существуют дополнительные ограничения, на которые можно вызывать методы и функции интерфейса OLE из IOleInPlaceUIWindow::RequestBorderSpace.
 

Примечания для разработчиков

Если объем пространства, который активный объект использует для своих панелей инструментов, не имеет отношения к контейнеру, он может просто вернуть 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
Header oleidl.h

См. также раздел

IOleInPlaceUIWindow

IOleInPlaceUIWindow::GetBorder

IOleInPlaceUIWindow::SetBorderSpace