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 |
---|---|
|
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 |