Método IOleInPlaceSiteWindowless::SetCapture (ocidl.h)

Habilita a un objeto activo en contexto sin ventana para capturar todos los mensajes del mouse.

Sintaxis

HRESULT SetCapture(
  [in] BOOL fCapture
);

Parámetros

[in] fCapture

Si es TRUE, el contenedor debe capturar el mouse para el objeto . Si es FALSE, el contenedor debe liberar la captura del mouse para el objeto .

Valor devuelto

Este método devuelve S_OK si la captura del mouse se concedió correctamente al objeto . Si se invoca para liberar la captura del mouse, este método no debe sufrir un error. Otros posibles valores devueltos son los siguientes.

Código devuelto Descripción
S_FALSE
La captura del mouse se denegó al objeto.

Comentarios

Un objeto sin ventana captura la entrada del mouse llamando a IOleInPlaceSiteWindowless::SetCapture con TRUE en su objeto de sitio. El contenedor puede denegar la captura del mouse, en cuyo caso este método devuelve S_FALSE. Si se concede la captura, el contenedor debe establecer la captura del mouse de Windows en su propia ventana y enviar cualquier mensaje posterior del mouse al objeto, independientemente de si la posición del cursor del mouse está sobre este objeto o no.

El objeto puede liberar posteriormente la captura del mouse llamando a IOleInPlaceSiteWindowless::SetCapture con FALSE en su objeto de sitio. La captura también se puede liberar debido a un evento externo, como la tecla ESC que se está presionando. En este caso, un mensaje WM_CANCELMODE notifica al objeto que el contenedor envía junto con el foco del teclado.

Los contenedores deben enviar todos los mensajes del mouse, incluidos WM_SETCURSOR, al objeto OLE sin ventanas que ha capturado el mouse. Si ningún objeto ha capturado el mouse, el contenedor debe enviar el mensaje del mouse al objeto bajo el cursor del mouse.

El contenedor envía estos mensajes de ventana llamando a IOleInPlaceObjectWindowless::OnWindowMessage en el objeto sin ventana. El objeto sin ventana puede devolver S_FALSE a este método para indicar que no procesó el mensaje del mouse. A continuación, el contenedor debe realizar el comportamiento predeterminado del mensaje llamando a la función DefWindowProc . Para WM_SETCURSOR, el contenedor puede establecer el propio cursor o no hacer nada.

Los objetos también pueden usar IOleInPlaceSiteWindowless::OnDefWindowMessage para invocar el procesamiento de mensajes predeterminado desde el contenedor. En el caso del mensaje de WM_SETCURSOR , esto permite que un objeto tome medidas si el contenedor no establece el cursor.

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

Consulte también

IOleInPlaceSiteWindowless

IOleInPlaceSiteWindowless::OnDefWindowMessage