Compartilhar via


Método IOleInPlaceObjectWindowless::OnWindowMessage (ocidl.h)

Envia uma mensagem de um contêiner para um objeto sem janelas que está ativo no local.

Sintaxe

HRESULT OnWindowMessage(
  [in]  UINT    msg,
  [in]  WPARAM  wParam,
  [in]  LPARAM  lParam,
  [out] LRESULT *plResult
);

Parâmetros

[in] msg

O identificador da mensagem de janela fornecida ao contêiner pelo Windows.

[in] wParam

Um parâmetro para a mensagem de janela fornecida ao contêiner pelo Windows.

[in] lParam

Um parâmetro para a mensagem de janela fornecida ao contêiner pelo Windows.

[out] plResult

Um ponteiro para o código de resultado da mensagem de janela.

Retornar valor

Esse método retorna S_OK em caso de êxito. Outros valores retornados possíveis incluem o seguinte.

Código de retorno Descrição
S_FALSE
O objeto sem janelas não processou a mensagem da janela. O contêiner deve chamar o DefWindowProc para a mensagem ou processar a própria mensagem, conforme descrito abaixo.

Comentários

Um contêiner chama esse método para enviar mensagens de janela para um objeto sem janelas que está ativo no local. O contêiner deve enviar mensagens de acordo com as seguintes diretrizes:

Para as mensagens a seguir, o contêiner deve primeiro expedir a mensagem para o objeto sem janelas que capturou o mouse, se houver. Caso contrário, o contêiner deverá expedir a mensagem para o objeto sem janelas sob o cursor do mouse. Se não houver esse objeto, o contêiner será livre para processar as seguintes mensagens para si mesmo:

  • WM_MOUSEMOVE
  • WM_SETCURSOR
  • WM_XBUTTONDOWN
  • WM_XBUTTONUP
  • WM_XBUTTONDBLCLK
O contêiner deve expedir a mensagem para o objeto sem janelas com o foco do teclado para as seguintes mensagens:
  • WM_CANCELMODE
  • WM_CHAR
  • WM_DEADCHAR
  • WM_HELP
  • WM_IMExxx
  • WM_KEYDOWN
  • WM_KEYUP
  • WM_SYSDEADCHAR
  • WM_SYSKEYDOWN
  • WM_SYSKEYUP
Para todas as outras mensagens, o contêiner deve processar a mensagem por conta própria.

O objeto sem janelas pode retornar S_FALSE a esse método para indicar que ele não processou a mensagem. Em seguida, o contêiner executa o comportamento padrão da mensagem chamando a função DefWindowProc ou processa a própria mensagem.

O contêiner deve passar as seguintes mensagens de janela para o procedimento de janela padrão:

  • WM_CHAR
  • WM_DEADCHAR
  • WM_IMExxx
  • WM_KEYDOWN
  • WM_KEYUP
  • WM_MOUSEMOVE
  • WM_SYSCHAR
  • WM_SYSDEADCHAR
  • WM_SYSKEYUP
  • WM_XBUTTONDOWN
  • WM_XBUTTONUP
  • WM_XBUTTONDBLCLK
O contêiner deve processar as seguintes mensagens de janela como suas próprias:
  • WM_CONTEXTMENU
  • WM_HELP
  • WM_SETCURSOR
Nota 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 explicitamente o processamento de mensagem padrão do contêiner. No caso da mensagem WM_SETCURSOR, isso permite que um objeto execute uma ação se o contêiner não definir o cursor.

Todas as coordenadas passadas para o objeto em wParam e lParam são especificadas como coordenadas de cliente da janela que o contém.

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