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。 其他可能的返回值包括以下内容。

返回代码 说明
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 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 ocidl.h

另请参阅