IOleInPlaceSiteWindowless ::SetCapture, méthode (ocidl.h)
Permet à un objet actif et sans fenêtre de capturer tous les messages de la souris.
Syntaxe
HRESULT SetCapture(
[in] BOOL fCapture
);
Paramètres
[in] fCapture
Si TRUE, le conteneur doit capturer la souris de l’objet. Si faux, le conteneur doit libérer la capture de la souris pour l’objet.
Valeur de retour
Cette méthode retourne S_OK si la capture de la souris a été accordée avec succès à l’objet. Si elle est appelée pour libérer la capture de la souris, cette méthode ne doit pas échouer. Les autres valeurs de retour possibles sont les suivantes.
Retourner le code | Description |
---|---|
|
La capture de souris a été refusée à l’objet. |
Remarques
Un objet sans fenêtre capture l’entrée de la souris en appelant IOleInPlaceSiteWindowless ::SetCapture avec TRUE sur son objet de site. Le conteneur peut refuser la capture de souris, auquel cas cette méthode retourne S_FALSE. Si la capture est accordée, le conteneur doit définir la capture de la souris Windows sur sa propre fenêtre et distribuer tout message de souris suivant à l’objet, que la position du curseur de la souris soit sur cet objet ou non.
L’objet peut libérer ultérieurement la capture de la souris en appelant IOleInPlaceSiteWindowless ::SetCapture avec FAUX sur son objet de site. La capture peut également être libérée en raison d’un événement externe, tel que la touche Échap enfoncée. Dans ce cas, l’objet est averti par un message WM_CANCELMODE que le conteneur distribue avec le focus clavier.
Les conteneurs doivent distribuer tous les messages de souris, y compris WM_SETCURSOR, à l’objet OLE sans fenêtre qui a capturé la souris. Si aucun objet n’a capturé la souris, le conteneur doit distribuer le message de la souris à l’objet sous le curseur de la souris.
Le conteneur distribue ces messages de fenêtre en appelant IOleInPlaceObjectWindowless ::OnWindowMessage sur l’objet sans fenêtre. L’objet sans fenêtre peut retourner S_FALSE à cette méthode pour indiquer qu’il n’a pas traité le message de la souris. Ensuite, le conteneur doit effectuer le comportement par défaut du message en appelant la fonction DefWindowProc. Pour WM_SETCURSOR, le conteneur peut définir le curseur lui-même ou ne rien faire.
Les objets peuvent également utiliser IOleInPlaceSiteWindowless ::OnDefWindowMessage pour appeler le traitement des messages par défaut à partir du conteneur. Dans le cas du message WM_SETCURSOR, cela permet à un objet d’effectuer une action si le conteneur ne définit pas le curseur.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
serveur minimum pris en charge | Windows 2000 Server [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | ocidl.h |