12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #ifndef BASE_WIN_MESSAGE_WINDOW_H_
- #define BASE_WIN_MESSAGE_WINDOW_H_
- #include <windows.h>
- #include "base/base_export.h"
- #include "base/callback.h"
- #include "base/compiler_specific.h"
- #include "base/macros.h"
- #include "base/strings/string16.h"
- #include "base/threading/thread_checker.h"
- namespace base {
- namespace win {
- class BASE_EXPORT MessageWindow {
- public:
-
- class WindowClass;
-
-
-
- using MessageCallback = base::RepeatingCallback<
- bool(UINT message, WPARAM wparam, LPARAM lparam, LRESULT* result)>;
- MessageWindow();
- ~MessageWindow();
-
-
- bool Create(MessageCallback message_callback);
-
- bool CreateNamed(MessageCallback message_callback,
- const string16& window_name);
- HWND hwnd() const { return window_; }
-
-
- static HWND FindWindow(const string16& window_name);
- private:
-
- friend class WindowClass;
-
- bool DoCreate(MessageCallback message_callback, const wchar_t* window_name);
-
- static LRESULT CALLBACK WindowProc(HWND hwnd,
- UINT message,
- WPARAM wparam,
- LPARAM lparam);
-
- MessageCallback message_callback_;
-
- HWND window_ = nullptr;
- THREAD_CHECKER(thread_checker_);
- DISALLOW_COPY_AND_ASSIGN(MessageWindow);
- };
- }
- }
- #endif
|