| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef UI_VIEWS_WIN_HWND_MESSAGE_HANDLER_H_ | 5 #ifndef UI_VIEWS_WIN_HWND_MESSAGE_HANDLER_H_ |
| 6 #define UI_VIEWS_WIN_HWND_MESSAGE_HANDLER_H_ | 6 #define UI_VIEWS_WIN_HWND_MESSAGE_HANDLER_H_ |
| 7 | 7 |
| 8 #include <windows.h> | 8 #include <windows.h> |
| 9 #include <atlbase.h> | |
| 10 #include <atlapp.h> | |
| 11 #include <atlmisc.h> | |
| 12 | 9 |
| 13 #include <set> | 10 #include <set> |
| 14 #include <vector> | 11 #include <vector> |
| 15 | 12 |
| 16 #include "base/basictypes.h" | 13 #include "base/basictypes.h" |
| 17 #include "base/compiler_specific.h" | 14 #include "base/compiler_specific.h" |
| 18 #include "base/memory/scoped_ptr.h" | 15 #include "base/memory/scoped_ptr.h" |
| 19 #include "base/memory/weak_ptr.h" | 16 #include "base/memory/weak_ptr.h" |
| 20 #include "base/message_loop/message_loop.h" | 17 #include "base/message_loop/message_loop.h" |
| 21 #include "base/strings/string16.h" | 18 #include "base/strings/string16.h" |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 285 void RedrawLayeredWindowContents(); | 282 void RedrawLayeredWindowContents(); |
| 286 | 283 |
| 287 // Attempts to force the window to be redrawn, ensuring that it gets | 284 // Attempts to force the window to be redrawn, ensuring that it gets |
| 288 // onscreen. | 285 // onscreen. |
| 289 void ForceRedrawWindow(int attempts); | 286 void ForceRedrawWindow(int attempts); |
| 290 | 287 |
| 291 // Message Handlers ---------------------------------------------------------- | 288 // Message Handlers ---------------------------------------------------------- |
| 292 | 289 |
| 293 BEGIN_SAFE_MSG_MAP_EX(HWNDMessageHandler) | 290 BEGIN_SAFE_MSG_MAP_EX(HWNDMessageHandler) |
| 294 // Range handlers must go first! | 291 // Range handlers must go first! |
| 295 MESSAGE_RANGE_HANDLER_EX(WM_MOUSEFIRST, WM_MOUSELAST, OnMouseRange) | 292 CR_MESSAGE_RANGE_HANDLER_EX(WM_MOUSEFIRST, WM_MOUSELAST, OnMouseRange) |
| 296 MESSAGE_RANGE_HANDLER_EX(WM_NCMOUSEMOVE, WM_NCXBUTTONDBLCLK, OnMouseRange) | 293 CR_MESSAGE_RANGE_HANDLER_EX(WM_NCMOUSEMOVE, |
| 294 WM_NCXBUTTONDBLCLK, |
| 295 OnMouseRange) |
| 297 | 296 |
| 298 // CustomFrameWindow hacks | 297 // CustomFrameWindow hacks |
| 299 MESSAGE_HANDLER_EX(WM_NCUAHDRAWCAPTION, OnNCUAHDrawCaption) | 298 CR_MESSAGE_HANDLER_EX(WM_NCUAHDRAWCAPTION, OnNCUAHDrawCaption) |
| 300 MESSAGE_HANDLER_EX(WM_NCUAHDRAWFRAME, OnNCUAHDrawFrame) | 299 CR_MESSAGE_HANDLER_EX(WM_NCUAHDRAWFRAME, OnNCUAHDrawFrame) |
| 301 | 300 |
| 302 // Vista and newer | 301 // Vista and newer |
| 303 MESSAGE_HANDLER_EX(WM_DWMCOMPOSITIONCHANGED, OnDwmCompositionChanged) | 302 CR_MESSAGE_HANDLER_EX(WM_DWMCOMPOSITIONCHANGED, OnDwmCompositionChanged) |
| 304 | 303 |
| 305 // Non-atlcrack.h handlers | 304 // Non-atlcrack.h handlers |
| 306 MESSAGE_HANDLER_EX(WM_GETOBJECT, OnGetObject) | 305 CR_MESSAGE_HANDLER_EX(WM_GETOBJECT, OnGetObject) |
| 307 | 306 |
| 308 // Mouse events. | 307 // Mouse events. |
| 309 MESSAGE_HANDLER_EX(WM_MOUSEACTIVATE, OnMouseActivate) | 308 CR_MESSAGE_HANDLER_EX(WM_MOUSEACTIVATE, OnMouseActivate) |
| 310 MESSAGE_HANDLER_EX(WM_MOUSELEAVE, OnMouseRange) | 309 CR_MESSAGE_HANDLER_EX(WM_MOUSELEAVE, OnMouseRange) |
| 311 MESSAGE_HANDLER_EX(WM_NCMOUSELEAVE, OnMouseRange) | 310 CR_MESSAGE_HANDLER_EX(WM_NCMOUSELEAVE, OnMouseRange) |
| 312 MESSAGE_HANDLER_EX(WM_SETCURSOR, OnSetCursor); | 311 CR_MESSAGE_HANDLER_EX(WM_SETCURSOR, OnSetCursor); |
| 313 | 312 |
| 314 // Key events. | 313 // Key events. |
| 315 MESSAGE_HANDLER_EX(WM_KEYDOWN, OnKeyEvent) | 314 CR_MESSAGE_HANDLER_EX(WM_KEYDOWN, OnKeyEvent) |
| 316 MESSAGE_HANDLER_EX(WM_KEYUP, OnKeyEvent) | 315 CR_MESSAGE_HANDLER_EX(WM_KEYUP, OnKeyEvent) |
| 317 MESSAGE_HANDLER_EX(WM_SYSKEYDOWN, OnKeyEvent) | 316 CR_MESSAGE_HANDLER_EX(WM_SYSKEYDOWN, OnKeyEvent) |
| 318 MESSAGE_HANDLER_EX(WM_SYSKEYUP, OnKeyEvent) | 317 CR_MESSAGE_HANDLER_EX(WM_SYSKEYUP, OnKeyEvent) |
| 319 | 318 |
| 320 // IME Events. | 319 // IME Events. |
| 321 MESSAGE_HANDLER_EX(WM_IME_SETCONTEXT, OnImeMessages) | 320 CR_MESSAGE_HANDLER_EX(WM_IME_SETCONTEXT, OnImeMessages) |
| 322 MESSAGE_HANDLER_EX(WM_IME_STARTCOMPOSITION, OnImeMessages) | 321 CR_MESSAGE_HANDLER_EX(WM_IME_STARTCOMPOSITION, OnImeMessages) |
| 323 MESSAGE_HANDLER_EX(WM_IME_COMPOSITION, OnImeMessages) | 322 CR_MESSAGE_HANDLER_EX(WM_IME_COMPOSITION, OnImeMessages) |
| 324 MESSAGE_HANDLER_EX(WM_IME_ENDCOMPOSITION, OnImeMessages) | 323 CR_MESSAGE_HANDLER_EX(WM_IME_ENDCOMPOSITION, OnImeMessages) |
| 325 MESSAGE_HANDLER_EX(WM_IME_REQUEST, OnImeMessages) | 324 CR_MESSAGE_HANDLER_EX(WM_IME_REQUEST, OnImeMessages) |
| 326 MESSAGE_HANDLER_EX(WM_IME_NOTIFY, OnImeMessages) | 325 CR_MESSAGE_HANDLER_EX(WM_IME_NOTIFY, OnImeMessages) |
| 327 MESSAGE_HANDLER_EX(WM_CHAR, OnImeMessages) | 326 CR_MESSAGE_HANDLER_EX(WM_CHAR, OnImeMessages) |
| 328 MESSAGE_HANDLER_EX(WM_SYSCHAR, OnImeMessages) | 327 CR_MESSAGE_HANDLER_EX(WM_SYSCHAR, OnImeMessages) |
| 329 MESSAGE_HANDLER_EX(WM_DEADCHAR, OnImeMessages) | 328 CR_MESSAGE_HANDLER_EX(WM_DEADCHAR, OnImeMessages) |
| 330 MESSAGE_HANDLER_EX(WM_SYSDEADCHAR, OnImeMessages) | 329 CR_MESSAGE_HANDLER_EX(WM_SYSDEADCHAR, OnImeMessages) |
| 331 | 330 |
| 332 // Scroll events | 331 // Scroll events |
| 333 MESSAGE_HANDLER_EX(WM_VSCROLL, OnScrollMessage) | 332 CR_MESSAGE_HANDLER_EX(WM_VSCROLL, OnScrollMessage) |
| 334 MESSAGE_HANDLER_EX(WM_HSCROLL, OnScrollMessage) | 333 CR_MESSAGE_HANDLER_EX(WM_HSCROLL, OnScrollMessage) |
| 335 | 334 |
| 336 // Touch Events. | 335 // Touch Events. |
| 337 MESSAGE_HANDLER_EX(WM_TOUCH, OnTouchEvent) | 336 CR_MESSAGE_HANDLER_EX(WM_TOUCH, OnTouchEvent) |
| 338 | 337 |
| 339 // Uses the general handler macro since the specific handler macro | 338 // Uses the general handler macro since the specific handler macro |
| 340 // MSG_WM_NCACTIVATE would convert WPARAM type to BOOL type. The high | 339 // MSG_WM_NCACTIVATE would convert WPARAM type to BOOL type. The high |
| 341 // word of WPARAM could be set when the window is minimized or restored. | 340 // word of WPARAM could be set when the window is minimized or restored. |
| 342 MESSAGE_HANDLER_EX(WM_NCACTIVATE, OnNCActivate) | 341 CR_MESSAGE_HANDLER_EX(WM_NCACTIVATE, OnNCActivate) |
| 343 | 342 |
| 344 // This list is in _ALPHABETICAL_ order! OR I WILL HURT YOU. | 343 // This list is in _ALPHABETICAL_ order! OR I WILL HURT YOU. |
| 345 MSG_WM_ACTIVATEAPP(OnActivateApp) | 344 CR_MSG_WM_ACTIVATEAPP(OnActivateApp) |
| 346 MSG_WM_APPCOMMAND(OnAppCommand) | 345 CR_MSG_WM_APPCOMMAND(OnAppCommand) |
| 347 MSG_WM_CANCELMODE(OnCancelMode) | 346 CR_MSG_WM_CANCELMODE(OnCancelMode) |
| 348 MSG_WM_CAPTURECHANGED(OnCaptureChanged) | 347 CR_MSG_WM_CAPTURECHANGED(OnCaptureChanged) |
| 349 MSG_WM_CLOSE(OnClose) | 348 CR_MSG_WM_CLOSE(OnClose) |
| 350 MSG_WM_COMMAND(OnCommand) | 349 CR_MSG_WM_COMMAND(OnCommand) |
| 351 MSG_WM_CREATE(OnCreate) | 350 CR_MSG_WM_CREATE(OnCreate) |
| 352 MSG_WM_DESTROY(OnDestroy) | 351 CR_MSG_WM_DESTROY(OnDestroy) |
| 353 MSG_WM_DISPLAYCHANGE(OnDisplayChange) | 352 CR_MSG_WM_DISPLAYCHANGE(OnDisplayChange) |
| 354 MSG_WM_ENTERMENULOOP(OnEnterMenuLoop) | 353 CR_MSG_WM_ENTERMENULOOP(OnEnterMenuLoop) |
| 355 MSG_WM_EXITMENULOOP(OnExitMenuLoop) | 354 CR_MSG_WM_EXITMENULOOP(OnExitMenuLoop) |
| 356 MSG_WM_ENTERSIZEMOVE(OnEnterSizeMove) | 355 CR_MSG_WM_ENTERSIZEMOVE(OnEnterSizeMove) |
| 357 MSG_WM_ERASEBKGND(OnEraseBkgnd) | 356 CR_MSG_WM_ERASEBKGND(OnEraseBkgnd) |
| 358 MSG_WM_EXITSIZEMOVE(OnExitSizeMove) | 357 CR_MSG_WM_EXITSIZEMOVE(OnExitSizeMove) |
| 359 MSG_WM_GETMINMAXINFO(OnGetMinMaxInfo) | 358 CR_MSG_WM_GETMINMAXINFO(OnGetMinMaxInfo) |
| 360 MSG_WM_INITMENU(OnInitMenu) | 359 CR_MSG_WM_INITMENU(OnInitMenu) |
| 361 MSG_WM_INPUTLANGCHANGE(OnInputLangChange) | 360 CR_MSG_WM_INPUTLANGCHANGE(OnInputLangChange) |
| 362 MSG_WM_KILLFOCUS(OnKillFocus) | 361 CR_MSG_WM_KILLFOCUS(OnKillFocus) |
| 363 MSG_WM_MOVE(OnMove) | 362 CR_MSG_WM_MOVE(OnMove) |
| 364 MSG_WM_MOVING(OnMoving) | 363 CR_MSG_WM_MOVING(OnMoving) |
| 365 MSG_WM_NCCALCSIZE(OnNCCalcSize) | 364 CR_MSG_WM_NCCALCSIZE(OnNCCalcSize) |
| 366 MSG_WM_NCHITTEST(OnNCHitTest) | 365 CR_MSG_WM_NCHITTEST(OnNCHitTest) |
| 367 MSG_WM_NCPAINT(OnNCPaint) | 366 CR_MSG_WM_NCPAINT(OnNCPaint) |
| 368 MSG_WM_NOTIFY(OnNotify) | 367 CR_MSG_WM_NOTIFY(OnNotify) |
| 369 MSG_WM_PAINT(OnPaint) | 368 CR_MSG_WM_PAINT(OnPaint) |
| 370 MSG_WM_SETFOCUS(OnSetFocus) | 369 CR_MSG_WM_SETFOCUS(OnSetFocus) |
| 371 MSG_WM_SETICON(OnSetIcon) | 370 CR_MSG_WM_SETICON(OnSetIcon) |
| 372 MSG_WM_SETTEXT(OnSetText) | 371 CR_MSG_WM_SETTEXT(OnSetText) |
| 373 MSG_WM_SETTINGCHANGE(OnSettingChange) | 372 CR_MSG_WM_SETTINGCHANGE(OnSettingChange) |
| 374 MSG_WM_SIZE(OnSize) | 373 CR_MSG_WM_SIZE(OnSize) |
| 375 MSG_WM_SYSCOMMAND(OnSysCommand) | 374 CR_MSG_WM_SYSCOMMAND(OnSysCommand) |
| 376 MSG_WM_THEMECHANGED(OnThemeChanged) | 375 CR_MSG_WM_THEMECHANGED(OnThemeChanged) |
| 377 MSG_WM_WINDOWPOSCHANGED(OnWindowPosChanged) | 376 CR_MSG_WM_WINDOWPOSCHANGED(OnWindowPosChanged) |
| 378 MSG_WM_WINDOWPOSCHANGING(OnWindowPosChanging) | 377 CR_MSG_WM_WINDOWPOSCHANGING(OnWindowPosChanging) |
| 379 MSG_WM_WTSSESSION_CHANGE(OnSessionChange) | 378 CR_MSG_WM_WTSSESSION_CHANGE(OnSessionChange) |
| 380 END_MSG_MAP() | 379 CR_END_MSG_MAP() |
| 381 | 380 |
| 382 // Message Handlers. | 381 // Message Handlers. |
| 383 // This list is in _ALPHABETICAL_ order! | 382 // This list is in _ALPHABETICAL_ order! |
| 384 // TODO(beng): Once this object becomes the WindowImpl, these methods can | 383 // TODO(beng): Once this object becomes the WindowImpl, these methods can |
| 385 // be made private. | 384 // be made private. |
| 386 void OnActivateApp(BOOL active, DWORD thread_id); | 385 void OnActivateApp(BOOL active, DWORD thread_id); |
| 387 // TODO(beng): return BOOL is temporary until this object becomes a | 386 // TODO(beng): return BOOL is temporary until this object becomes a |
| 388 // WindowImpl. | 387 // WindowImpl. |
| 389 BOOL OnAppCommand(HWND window, short command, WORD device, int keystate); | 388 BOOL OnAppCommand(HWND window, short command, WORD device, int keystate); |
| 390 void OnCancelMode(); | 389 void OnCancelMode(); |
| 391 void OnCaptureChanged(HWND window); | 390 void OnCaptureChanged(HWND window); |
| 392 void OnClose(); | 391 void OnClose(); |
| 393 void OnCommand(UINT notification_code, int command, HWND window); | 392 void OnCommand(UINT notification_code, int command, HWND window); |
| 394 LRESULT OnCreate(CREATESTRUCT* create_struct); | 393 LRESULT OnCreate(CREATESTRUCT* create_struct); |
| 395 void OnDestroy(); | 394 void OnDestroy(); |
| 396 void OnDisplayChange(UINT bits_per_pixel, const CSize& screen_size); | 395 void OnDisplayChange(UINT bits_per_pixel, const gfx::Size& screen_size); |
| 397 LRESULT OnDwmCompositionChanged(UINT msg, WPARAM w_param, LPARAM l_param); | 396 LRESULT OnDwmCompositionChanged(UINT msg, WPARAM w_param, LPARAM l_param); |
| 398 void OnEnterMenuLoop(BOOL from_track_popup_menu); | 397 void OnEnterMenuLoop(BOOL from_track_popup_menu); |
| 399 void OnEnterSizeMove(); | 398 void OnEnterSizeMove(); |
| 400 LRESULT OnEraseBkgnd(HDC dc); | 399 LRESULT OnEraseBkgnd(HDC dc); |
| 401 void OnExitMenuLoop(BOOL is_shortcut_menu); | 400 void OnExitMenuLoop(BOOL is_shortcut_menu); |
| 402 void OnExitSizeMove(); | 401 void OnExitSizeMove(); |
| 403 void OnGetMinMaxInfo(MINMAXINFO* minmax_info); | 402 void OnGetMinMaxInfo(MINMAXINFO* minmax_info); |
| 404 LRESULT OnGetObject(UINT message, WPARAM w_param, LPARAM l_param); | 403 LRESULT OnGetObject(UINT message, WPARAM w_param, LPARAM l_param); |
| 405 LRESULT OnImeMessages(UINT message, WPARAM w_param, LPARAM l_param); | 404 LRESULT OnImeMessages(UINT message, WPARAM w_param, LPARAM l_param); |
| 406 void OnInitMenu(HMENU menu); | 405 void OnInitMenu(HMENU menu); |
| 407 void OnInputLangChange(DWORD character_set, HKL input_language_id); | 406 void OnInputLangChange(DWORD character_set, HKL input_language_id); |
| 408 LRESULT OnKeyEvent(UINT message, WPARAM w_param, LPARAM l_param); | 407 LRESULT OnKeyEvent(UINT message, WPARAM w_param, LPARAM l_param); |
| 409 void OnKillFocus(HWND focused_window); | 408 void OnKillFocus(HWND focused_window); |
| 410 LRESULT OnMouseActivate(UINT message, WPARAM w_param, LPARAM l_param); | 409 LRESULT OnMouseActivate(UINT message, WPARAM w_param, LPARAM l_param); |
| 411 LRESULT OnMouseRange(UINT message, WPARAM w_param, LPARAM l_param); | 410 LRESULT OnMouseRange(UINT message, WPARAM w_param, LPARAM l_param); |
| 412 void OnMove(const CPoint& point); | 411 void OnMove(const gfx::Point& point); |
| 413 void OnMoving(UINT param, const RECT* new_bounds); | 412 void OnMoving(UINT param, const RECT* new_bounds); |
| 414 LRESULT OnNCActivate(UINT message, WPARAM w_param, LPARAM l_param); | 413 LRESULT OnNCActivate(UINT message, WPARAM w_param, LPARAM l_param); |
| 415 LRESULT OnNCCalcSize(BOOL mode, LPARAM l_param); | 414 LRESULT OnNCCalcSize(BOOL mode, LPARAM l_param); |
| 416 LRESULT OnNCHitTest(const CPoint& point); | 415 LRESULT OnNCHitTest(const gfx::Point& point); |
| 417 void OnNCPaint(HRGN rgn); | 416 void OnNCPaint(HRGN rgn); |
| 418 LRESULT OnNCUAHDrawCaption(UINT message, WPARAM w_param, LPARAM l_param); | 417 LRESULT OnNCUAHDrawCaption(UINT message, WPARAM w_param, LPARAM l_param); |
| 419 LRESULT OnNCUAHDrawFrame(UINT message, WPARAM w_param, LPARAM l_param); | 418 LRESULT OnNCUAHDrawFrame(UINT message, WPARAM w_param, LPARAM l_param); |
| 420 LRESULT OnNotify(int w_param, NMHDR* l_param); | 419 LRESULT OnNotify(int w_param, NMHDR* l_param); |
| 421 void OnPaint(HDC dc); | 420 void OnPaint(HDC dc); |
| 422 LRESULT OnReflectedMessage(UINT message, WPARAM w_param, LPARAM l_param); | 421 LRESULT OnReflectedMessage(UINT message, WPARAM w_param, LPARAM l_param); |
| 423 LRESULT OnScrollMessage(UINT message, WPARAM w_param, LPARAM l_param); | 422 LRESULT OnScrollMessage(UINT message, WPARAM w_param, LPARAM l_param); |
| 424 void OnSessionChange(WPARAM status_code, PWTSSESSION_NOTIFICATION session_id); | 423 void OnSessionChange(WPARAM status_code, PWTSSESSION_NOTIFICATION session_id); |
| 425 LRESULT OnSetCursor(UINT message, WPARAM w_param, LPARAM l_param); | 424 LRESULT OnSetCursor(UINT message, WPARAM w_param, LPARAM l_param); |
| 426 void OnSetFocus(HWND last_focused_window); | 425 void OnSetFocus(HWND last_focused_window); |
| 427 LRESULT OnSetIcon(UINT size_type, HICON new_icon); | 426 LRESULT OnSetIcon(UINT size_type, HICON new_icon); |
| 428 LRESULT OnSetText(const wchar_t* text); | 427 LRESULT OnSetText(const wchar_t* text); |
| 429 void OnSettingChange(UINT flags, const wchar_t* section); | 428 void OnSettingChange(UINT flags, const wchar_t* section); |
| 430 void OnSize(UINT param, const CSize& size); | 429 void OnSize(UINT param, const gfx::Size& size); |
| 431 void OnSysCommand(UINT notification_code, const CPoint& point); | 430 void OnSysCommand(UINT notification_code, const gfx::Point& point); |
| 432 void OnThemeChanged(); | 431 void OnThemeChanged(); |
| 433 LRESULT OnTouchEvent(UINT message, WPARAM w_param, LPARAM l_param); | 432 LRESULT OnTouchEvent(UINT message, WPARAM w_param, LPARAM l_param); |
| 434 void OnWindowPosChanging(WINDOWPOS* window_pos); | 433 void OnWindowPosChanging(WINDOWPOS* window_pos); |
| 435 void OnWindowPosChanged(WINDOWPOS* window_pos); | 434 void OnWindowPosChanged(WINDOWPOS* window_pos); |
| 436 | 435 |
| 437 typedef std::vector<ui::TouchEvent> TouchEvents; | 436 typedef std::vector<ui::TouchEvent> TouchEvents; |
| 438 // Helper to handle the list of touch events passed in. We need this because | 437 // Helper to handle the list of touch events passed in. We need this because |
| 439 // touch events on windows don't fire if we enter a modal loop in the context | 438 // touch events on windows don't fire if we enter a modal loop in the context |
| 440 // of a touch event. | 439 // of a touch event. |
| 441 void HandleTouchEvents(const TouchEvents& touch_events); | 440 void HandleTouchEvents(const TouchEvents& touch_events); |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 556 }; | 555 }; |
| 557 | 556 |
| 558 // This window property if set on the window does not activate the window for a | 557 // This window property if set on the window does not activate the window for a |
| 559 // touch based WM_MOUSEACTIVATE message. | 558 // touch based WM_MOUSEACTIVATE message. |
| 560 const wchar_t kIgnoreTouchMouseActivateForWindow[] = | 559 const wchar_t kIgnoreTouchMouseActivateForWindow[] = |
| 561 L"Chrome.IgnoreMouseActivate"; | 560 L"Chrome.IgnoreMouseActivate"; |
| 562 | 561 |
| 563 } // namespace views | 562 } // namespace views |
| 564 | 563 |
| 565 #endif // UI_VIEWS_WIN_HWND_MESSAGE_HANDLER_H_ | 564 #endif // UI_VIEWS_WIN_HWND_MESSAGE_HANDLER_H_ |
| OLD | NEW |