共用方式為


IOleInPlaceObjectWindowless::OnWindowMessage 方法 (ocidl.h)

將訊息從容器分派至就地作用中的無窗口物件。

語法

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

參數

[in] msg

Windows 提供給容器之視窗訊息的標識碼。

[in] wParam

Windows 提供給容器之視窗訊息的參數。

[in] lParam

Windows 提供給容器之視窗訊息的參數。

[out] plResult

視窗訊息結果碼的指標。

傳回值

此方法會在成功時傳回S_OK。 其他可能的傳回值包括下列專案。

傳回碼 Description
S_FALSE
無視窗物件未處理視窗訊息。 容器應該針對訊息呼叫DefWindowProc,或處理訊息本身,如下所示。

備註

容器會呼叫這個方法,將視窗訊息傳送至就地作用中的無窗口物件。 容器應該根據下列指導方針來分派訊息:

針對下列訊息,容器應該先將訊息分派至已擷取滑鼠的無窗口物件,如果有的話。 否則,容器應該將訊息分派至滑鼠游標下的無窗口物件。 如果沒有這類物件,容器就能夠自行處理下列訊息:

  • WM_MOUSEMOVE
  • WM_SETCURSOR
  • WM_XBUTTONDOWN
  • WM_XBUTTONUP
  • WM_XBUTTONDBLCLK
容器應該將訊息分派至無窗口物件,其中包含下列訊息的鍵盤焦點:
  • WM_CANCELMODE
  • WM_CHAR
  • WM_DEADCHAR
  • WM_HELP
  • WM_IMExxx
  • WM_KEYDOWN
  • WM_KEYUP
  • WM_SYSDEADCHAR
  • WM_SYSKEYDOWN
  • WM_SYSKEYUP
對於所有其他訊息,容器應該自行處理訊息。

無窗口物件可以將S_FALSE傳回給這個方法,以指出它未處理訊息。 然後,容器會呼叫 DefWindowProc 函式來執行訊息的預設行為,或處理訊息本身。

容器必須將下列視窗訊息傳遞至預設視窗程式:

  • WM_CHAR
  • WM_DEADCHAR
  • WM_IMExxx
  • WM_KEYDOWN
  • WM_KEYUP
  • WM_MOUSEMOVE
  • WM_SYSCHAR
  • WM_SYSDEADCHAR
  • WM_SYSKEYUP
  • WM_XBUTTONDOWN
  • WM_XBUTTONUP
  • WM_XBUTTONDBLCLK
容器必須以自己的方式處理下列視窗訊息:
  • WM_CONTEXTMENU
  • WM_HELP
  • WM_SETCURSOR
注意 針對WM_SETCURSOR,容器可以設定游標本身或執行任何動作。
 
物件也可以使用 IOleInPlaceSiteWindowless::OnDefWindowMessage 來明確叫用容器的預設訊息處理。 在WM_SETCURSOR訊息的情況下,如果容器未設定數據指標,這可讓對象採取動作。

傳遞至 wParamlParam 物件的所有座標都會指定為包含視窗的用戶端座標。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 ocidl.h

另請參閱