Partager via


IOleInPlaceSiteWindowless ::SetCapture, méthode (ocidl.h)

Permet à un objet sans fenêtre et actif sur place de capturer tous les messages de la souris.

Syntaxe

HRESULT SetCapture(
  [in] BOOL fCapture
);

Paramètres

[in] fCapture

Si la valeur est TRUE, le conteneur doit capturer la souris de l’objet. Si la valeur est FALSE, le conteneur doit libérer la capture de souris pour l’objet.

Valeur retournée

Cette méthode retourne S_OK si la capture de la souris a été correctement accordée à l’objet. Si elle est appelée pour relâcher la capture de la souris, cette méthode ne doit pas échouer. Les autres valeurs de retour possibles sont les suivantes.

Code de retour Description
S_FALSE
La capture de la 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 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 ou non sur cet objet.

L’objet peut libérer ultérieurement la capture de souris en appelant IOleInPlaceSiteWindowless ::SetCapture avec FALSE sur son objet site. La capture peut également être relâché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 répartit avec le focus clavier.

Les conteneurs doivent distribuer tous les messages de souris, y compris les 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 . Par 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.

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 ocidl.h

Voir aussi

IOleInPlaceSiteWindowless

IOleInPlaceSiteWindowless ::OnDefWindowMessage