Share via


IOleInPlaceUIWindow ::RequestBorderSpace, méthode (oleidl.h)

Détermine s’il existe de l’espace disponible pour les outils à installer autour du cadre de fenêtre de l’objet pendant que l’objet est actif en place.

Syntaxe

HRESULT RequestBorderSpace(
  [in] LPCBORDERWIDTHS pborderwidths
);

Paramètres

[in] pborderwidths

Pointeur vers une structure BORDERWIDTHS contenant les largeurs demandées (en pixels) nécessaires de chaque côté de la fenêtre pour les outils.

Valeur retournée

Cette méthode retourne S_OK en cas de réussite. Les autres valeurs de retour possibles sont les suivantes.

Code de retour Description
INPLACE_E_NOTOOLSPACE
L’objet ne peut pas installer de barres d’outils dans cet objet de fenêtre, car l’implémentation ne prend pas en charge les barres d’outils ou l’espace est insuffisant pour installer les barres d’outils.
E_UNEXPECTED
Une erreur inattendue s’est produite.

Remarques

Notes aux appelants

L’objet sur place actif appelle IOleInPlaceUIWindow ::RequestBorderSpace pour demander si les outils peuvent être installés à l’intérieur du cadre de la fenêtre. Ces outils sont alloués entre le rectangle retourné par IOleInPlaceUIWindow ::GetBorder et la structure BORDERWIDTHS spécifiée dans l’argument de cet appel.

L’espace des outils n’est pas alloué à l’objet tant qu’il n’appelle pas IOleInPlaceUIWindow ::SetBorderSpace, ce qui permet à l’objet de négocier l’espace (par exemple, lors du déplacement des barres d’outils), mais en reportant le déplacement des outils jusqu’à ce que l’action soit terminée.

L’objet peut installer ces outils en transmettant la largeur en pixels qui doit être utilisée de chaque côté. Par exemple, si l’objet nécessite 10 pixels en haut, 0 pixels en bas et 5 pixels sur les côtés gauche et droit, il transmet la structure BORDERWIDTHS suivante à IOleInPlaceUIWindow ::RequestBorderSpace :

lpbw->top    = 10 
lpbw->bottom =  0 
lpbw->lLeft  =  5 
lpbw->right  =  5 
Note Lors de l’exécution de IOleInPlaceUIWindow ::RequestBorderSpace, n’appelez pas les fonctions PeekMessage ou GetMessage , ni à une boîte de dialogue. Cela peut entraîner un blocage du système. Il existe d’autres restrictions quant aux méthodes et fonctions d’interface OLE qui peuvent être appelées à partir de IOleInPlaceUIWindow ::RequestBorderSpace.
 

Notes aux implémenteurs

Si la quantité d’espace qu’un objet actif utilise pour ses barres d’outils n’est pas pertinente pour le conteneur, il peut simplement retourner NOERROR comme indiqué dans l’exemple IOleInPlaceUIWindow ::RequestBorderSpace suivant. Les conteneurs ne doivent pas restreindre indûment l’affichage des outils par un objet actif sur place.
HRESULT InPlaceUIWindow_RequestBorderSpace( 
    IOleInPlaceFrame *  lpThis, 
    LPCBORDERWIDTHS     pborderwidths) 
{ 
    // Container allows the object to have as much border space as it 
    // wants.  
    return NOERROR; 
} 

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête oleidl.h

Voir aussi

IOleInPlaceUIWindow

IOleInPlaceUIWindow ::GetBorder

IOleInPlaceUIWindow ::SetBorderSpace