Compartir a través de


Método IOleInPlaceUIWindow::RequestBorderSpace (oleidl.h)

Determina si hay espacio disponible para que las herramientas se instalen alrededor del marco de ventana del objeto mientras el objeto está activo.

Sintaxis

HRESULT RequestBorderSpace(
  [in] LPCBORDERWIDTHS pborderwidths
);

Parámetros

[in] pborderwidths

Puntero a una estructura BORDERWIDTHS que contiene los anchos solicitados (en píxeles) necesarios en cada lado de la ventana para las herramientas.

Valor devuelto

Este método devuelve S_OK cuando funciona correctamente. Otros posibles valores devueltos son los siguientes.

Código devuelto Descripción
INPLACE_E_NOTOOLSPACE
El objeto no puede instalar barras de herramientas en este objeto de ventana porque la implementación no admite barras de herramientas o no hay suficiente espacio para instalar las barras de herramientas.
E_UNEXPECTED
Se produjo un error inesperado.

Comentarios

Notas a los autores de llamadas

El objeto activo en contexto llama a IOleInPlaceUIWindow::RequestBorderSpace para preguntar si las herramientas se pueden instalar dentro del marco de la ventana. Estas herramientas se asignarían entre el rectángulo devuelto por IOleInPlaceUIWindow::GetBorder y la estructura BORDERWIDTHS especificada en el argumento para esta llamada.

El espacio de las herramientas no se asigna realmente al objeto hasta que llama a IOleInPlaceUIWindow::SetBorderSpace, lo que permite al objeto negociar espacio (por ejemplo, al arrastrar barras de herramientas alrededor), pero aplazar el movimiento de herramientas hasta que se complete la acción.

El objeto puede instalar estas herramientas pasando el ancho en píxeles que se va a usar en cada lado. Por ejemplo, si el objeto requería 10 píxeles en la parte superior, 0 píxeles en la parte inferior y 5 píxeles en los lados izquierdo y derecho, pasaría la siguiente estructura BORDERWIDTHS a IOleInPlaceUIWindow::RequestBorderSpace:

lpbw->top    = 10
lpbw->bottom =  0
lpbw->lLeft  =  5
lpbw->right  =  5
Nota Al ejecutar IOleInPlaceUIWindow::RequestBorderSpace, no realice llamadas a las funciones PeekMessage o GetMessage , ni a un cuadro de diálogo. Si lo hace, el sistema puede provocar un interbloqueo. Hay más restricciones sobre qué métodos y funciones de interfaz OLE se pueden llamar desde IOleInPlaceUIWindow::RequestBorderSpace.
 

Notas para los implementadores

Si la cantidad de espacio que usa un objeto activo para sus barras de herramientas es irrelevante para el contenedor, simplemente puede devolver NOERROR como se muestra en el siguiente ejemplo de IOleInPlaceUIWindow::RequestBorderSpace . Los contenedores no deben restringir indebidamente la visualización de las herramientas mediante un objeto local activo.
HRESULT InPlaceUIWindow_RequestBorderSpace( 
    IOleInPlaceFrame *  lpThis, 
    LPCBORDERWIDTHS     pborderwidths) 
{ 
    // Container allows the object to have as much border space as it 
    // wants.  
    return NOERROR; 
} 

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado oleidl.h

Consulte también

IOleInPlaceUIWindow

IOleInPlaceUIWindow::GetBorder

IOleInPlaceUIWindow::SetBorderSpace