Compartilhar via


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

Permite que um objeto ativo e sem janelas in-loco capture todas as mensagens do mouse.

Sintaxe

HRESULT SetCapture(
  [in] BOOL fCapture
);

Parâmetros

[in] fCapture

Se TRUE, o contêiner deverá capturar o mouse para o objeto . Se FALSE, o contêiner deverá liberar a captura do mouse para o objeto .

Retornar valor

Esse método retornará S_OK se a captura do mouse tiver sido concedida com êxito ao objeto. Se for chamado para liberar a captura do mouse, esse método não deverá falhar. Outros valores retornados possíveis incluem o seguinte.

Código de retorno Descrição
S_FALSE
A captura do mouse foi negada ao objeto .

Comentários

Um objeto sem janela captura a entrada do mouse chamando IOleInPlaceSiteWindowless::SetCapture com TRUE em seu objeto de site. O contêiner pode negar a captura do mouse; nesse caso, esse método retorna S_FALSE. Se a captura for concedida, o contêiner deverá definir a captura do mouse do Windows como sua própria janela e expedir qualquer mensagem subsequente do mouse para o objeto, independentemente de a posição do cursor do mouse estar sobre esse objeto ou não.

O objeto pode liberar posteriormente a captura do mouse chamando IOleInPlaceSiteWindowless::SetCapture com FALSE em seu objeto de site. A captura também pode ser liberada devido a um evento externo, como a tecla ESC que está sendo pressionada. Nesse caso, o objeto é notificado por uma mensagem WM_CANCELMODE que o contêiner envia junto com o foco do teclado.

Os contêineres devem expedir todas as mensagens do mouse, incluindo WM_SETCURSOR, para o objeto OLE sem janelas que capturou o mouse. Se nenhum objeto tiver capturado o mouse, o contêiner deverá expedir a mensagem do mouse para o objeto sob o cursor do mouse.

O contêiner envia essas mensagens de janela chamando IOleInPlaceObjectWindowless::OnWindowMessage no objeto sem janelas. O objeto sem janelas pode retornar S_FALSE a esse método para indicar que ele não processou a mensagem do mouse. Em seguida, o contêiner deve executar o comportamento padrão para a mensagem chamando a função DefWindowProc . Por WM_SETCURSOR, o contêiner pode definir o cursor em si ou não fazer nada.

Os objetos também podem usar IOleInPlaceSiteWindowless::OnDefWindowMessage para invocar o processamento de mensagens padrão do contêiner. No caso da mensagem de WM_SETCURSOR , isso permite que um objeto execute uma ação se o contêiner não definir o cursor.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho ocidl.h

Confira também

Ioleinplacesitewindowless

IOleInPlaceSiteWindowless::OnDefWindowMessage