blob: 5256a85d09e26ee70ece7f0a50acf7cc0a0ae526 [file] [log] [blame]
henrike@webrtc.orgf0488722014-05-13 18:00:261/*
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
Steve Anton10542f22019-01-11 17:11:0011#ifndef RTC_BASE_WIN32_WINDOW_H_
12#define RTC_BASE_WIN32_WINDOW_H_
henrike@webrtc.orgf0488722014-05-13 18:00:2613
Henrik Kjellanderec78f1c2017-06-29 05:52:5014#if defined(WEBRTC_WIN)
henrike@webrtc.orgf0488722014-05-13 18:00:2615
Mirko Bonadei92ea95e2017-09-15 04:47:3116#include "rtc_base/win32.h"
Henrik Kjellanderec78f1c2017-06-29 05:52:5017
18namespace rtc {
19
20///////////////////////////////////////////////////////////////////////////////
21// Win32Window
22///////////////////////////////////////////////////////////////////////////////
23
24class Win32Window {
25 public:
26 Win32Window();
27 virtual ~Win32Window();
28
29 HWND handle() const { return wnd_; }
30
Yves Gerey665174f2018-06-19 13:03:0531 bool Create(HWND parent,
32 const wchar_t* title,
33 DWORD style,
34 DWORD exstyle,
35 int x,
36 int y,
37 int cx,
38 int cy);
Henrik Kjellanderec78f1c2017-06-29 05:52:5039 void Destroy();
40
41 // Call this when your DLL unloads.
42 static void Shutdown();
43
44 protected:
Yves Gerey665174f2018-06-19 13:03:0545 virtual bool OnMessage(UINT uMsg,
46 WPARAM wParam,
47 LPARAM lParam,
Henrik Kjellanderec78f1c2017-06-29 05:52:5048 LRESULT& result);
49
Steve Anton9de3aac2017-10-24 17:08:2650 virtual bool OnClose();
51 virtual void OnNcDestroy();
Henrik Kjellanderec78f1c2017-06-29 05:52:5052
53 private:
Yves Gerey665174f2018-06-19 13:03:0554 static LRESULT CALLBACK WndProc(HWND hwnd,
55 UINT uMsg,
56 WPARAM wParam,
Henrik Kjellanderec78f1c2017-06-29 05:52:5057 LPARAM lParam);
58
59 HWND wnd_;
60 static HINSTANCE instance_;
61 static ATOM window_class_;
62};
63
64///////////////////////////////////////////////////////////////////////////////
65
66} // namespace rtc
67
Henrik Kjellanderc0362762017-06-29 06:03:0468#endif // WEBRTC_WIN
henrike@webrtc.orgf0488722014-05-13 18:00:2669
Steve Anton10542f22019-01-11 17:11:0070#endif // RTC_BASE_WIN32_WINDOW_H_