From b86267aa3bc51b895e6bb18579bd447e7cfa0d93 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Wed, 28 Oct 2015 19:51:24 +0800 Subject: [PATCH] Use uint64_t instead of LPARAM LPARAM is defined to differnt types on differnt machines with different SDKs, so there is no way to represent it on all platforms safely, using uint64_t seems to be the only safe choice. --- atom/browser/api/atom_api_window.cc | 10 +--------- atom/browser/api/atom_api_window.h | 5 ++--- atom/browser/native_window.cc | 5 +++-- atom/browser/native_window_observer.h | 2 +- 4 files changed, 7 insertions(+), 15 deletions(-) diff --git a/atom/browser/api/atom_api_window.cc b/atom/browser/api/atom_api_window.cc index 5d0a501629f8..077dffe0bc5c 100644 --- a/atom/browser/api/atom_api_window.cc +++ b/atom/browser/api/atom_api_window.cc @@ -42,14 +42,6 @@ struct Converter { } }; -template<> -struct Converter { - static v8::Local ToV8(v8::Isolate* isolate, - LPARAM val) { - return ConvertToV8(isolate, static_cast(val)); - } -}; - } // namespace mate #endif @@ -198,7 +190,7 @@ void Window::OnExecuteWindowsCommand(const std::string& command_name) { } #if defined(OS_WIN) -void Window::OnWindowMessage(UINT message, WPARAM w_param, LPARAM l_param) { +void Window::OnWindowMessage(UINT message, WPARAM w_param, uint64_t l_param) { if (IsWindowMessageHooked(message)) { messages_callback_map_[message].Run(w_param, l_param); } diff --git a/atom/browser/api/atom_api_window.h b/atom/browser/api/atom_api_window.h index 870f8e134216..f4bc4cdba01a 100644 --- a/atom/browser/api/atom_api_window.h +++ b/atom/browser/api/atom_api_window.h @@ -77,8 +77,7 @@ class Window : public mate::TrackableObject, void OnExecuteWindowsCommand(const std::string& command_name) override; #if defined(OS_WIN) - void OnWindowMessage(UINT message, WPARAM w_param, - LPARAM l_param) override; + void OnWindowMessage(UINT message, WPARAM w_param, uint64_t l_param) override; #endif // mate::Wrappable: @@ -150,7 +149,7 @@ class Window : public mate::TrackableObject, void SetAspectRatio(double aspect_ratio, mate::Arguments* args); #if defined(OS_WIN) - typedef base::Callback MessageCallback; + typedef base::Callback MessageCallback; typedef std::map MessageCallbackMap; MessageCallbackMap messages_callback_map_; diff --git a/atom/browser/native_window.cc b/atom/browser/native_window.cc index e3abed473e7d..6e38f4028745 100644 --- a/atom/browser/native_window.cc +++ b/atom/browser/native_window.cc @@ -467,8 +467,9 @@ void NativeWindow::NotifyWindowExecuteWindowsCommand( #if defined(OS_WIN) void NativeWindow::NotifyWindowMessage(UINT message, WPARAM w_param, LPARAM l_param) { - FOR_EACH_OBSERVER(NativeWindowObserver, observers_, - OnWindowMessage(message, w_param, l_param)); + FOR_EACH_OBSERVER( + NativeWindowObserver, observers_, + OnWindowMessage(message, w_param, static_cast(l_param))); } #endif diff --git a/atom/browser/native_window_observer.h b/atom/browser/native_window_observer.h index 54004a300d94..240a7277fa09 100644 --- a/atom/browser/native_window_observer.h +++ b/atom/browser/native_window_observer.h @@ -61,7 +61,7 @@ class NativeWindowObserver { // Called when window message received #if defined(OS_WIN) - virtual void OnWindowMessage(UINT message, WPARAM w_param, LPARAM l_param) {} + virtual void OnWindowMessage(UINT message, WPARAM wparam, uint64_t lparam) {} #endif // Called when renderer is hung.