blob: fa026d118aeb4f7c00298c3d928419bc9af3e569 [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
31 bool Create(HWND parent, const wchar_t* title, DWORD style, DWORD exstyle,
32 int x, int y, int cx, int cy);
33 void Destroy();
34
35 // Call this when your DLL unloads.
36 static void Shutdown();
37
38 protected:
39 virtual bool OnMessage(UINT uMsg, WPARAM wParam, LPARAM lParam,
40 LRESULT& result);
41
Steve Anton9de3aac2017-10-24 10:08:26 -070042 virtual bool OnClose();
43 virtual void OnNcDestroy();
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020044
45 private:
46 static LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam,
47 LPARAM lParam);
48
49 HWND wnd_;
50 static HINSTANCE instance_;
51 static ATOM window_class_;
52};
53
54///////////////////////////////////////////////////////////////////////////////
55
56} // namespace rtc
57
Henrik Kjellanderc0362762017-06-29 08:03:04 +020058#endif // WEBRTC_WIN
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000059
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020060#endif // RTC_BASE_WIN32WINDOW_H_