blob: e96aa350fb4b971fba1b024d162e5225b100647c [file] [log] [blame]
henrike@webrtc.orgf0488722014-05-13 18:00:26 +00001/*
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
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020011#ifndef RTC_BASE_WIN32WINDOW_H_
12#define RTC_BASE_WIN32WINDOW_H_
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000013
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020014#if defined(WEBRTC_WIN)
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000015
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020016#include "rtc_base/win32.h"
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020017
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 15:03:05 +020031 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 07:52:50 +020039 void Destroy();
40
41 // Call this when your DLL unloads.
42 static void Shutdown();
43
44 protected:
Yves Gerey665174f2018-06-19 15:03:05 +020045 virtual bool OnMessage(UINT uMsg,
46 WPARAM wParam,
47 LPARAM lParam,
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020048 LRESULT& result);
49
Steve Anton9de3aac2017-10-24 10:08:26 -070050 virtual bool OnClose();
51 virtual void OnNcDestroy();
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020052
53 private:
Yves Gerey665174f2018-06-19 15:03:05 +020054 static LRESULT CALLBACK WndProc(HWND hwnd,
55 UINT uMsg,
56 WPARAM wParam,
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020057 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 08:03:04 +020068#endif // WEBRTC_WIN
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000069
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020070#endif // RTC_BASE_WIN32WINDOW_H_