OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 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 | 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 | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 T object = handle_; | 49 T object = handle_; |
50 handle_ = NULL; | 50 handle_ = NULL; |
51 return object; | 51 return object; |
52 } | 52 } |
53 | 53 |
54 operator T() { return handle_; } | 54 operator T() { return handle_; } |
55 | 55 |
56 private: | 56 private: |
57 T handle_; | 57 T handle_; |
58 | 58 |
59 DISALLOW_COPY_AND_ASSIGN(ScopedGDIObject); | 59 RTC_DISALLOW_COPY_AND_ASSIGN(ScopedGDIObject); |
60 }; | 60 }; |
61 | 61 |
62 // The traits class that uses DeleteObject() to close a handle. | 62 // The traits class that uses DeleteObject() to close a handle. |
63 template <typename T> | 63 template <typename T> |
64 class DeleteObjectTraits { | 64 class DeleteObjectTraits { |
65 public: | 65 public: |
66 // Closes the handle. | 66 // Closes the handle. |
67 static void Close(T handle) { | 67 static void Close(T handle) { |
68 if (handle) | 68 if (handle) |
69 DeleteObject(handle); | 69 DeleteObject(handle); |
70 } | 70 } |
71 | 71 |
72 private: | 72 private: |
73 DISALLOW_IMPLICIT_CONSTRUCTORS(DeleteObjectTraits); | 73 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(DeleteObjectTraits); |
74 }; | 74 }; |
75 | 75 |
76 // The traits class that uses DestroyCursor() to close a handle. | 76 // The traits class that uses DestroyCursor() to close a handle. |
77 class DestroyCursorTraits { | 77 class DestroyCursorTraits { |
78 public: | 78 public: |
79 // Closes the handle. | 79 // Closes the handle. |
80 static void Close(HCURSOR handle) { | 80 static void Close(HCURSOR handle) { |
81 if (handle) | 81 if (handle) |
82 DestroyCursor(handle); | 82 DestroyCursor(handle); |
83 } | 83 } |
84 | 84 |
85 private: | 85 private: |
86 DISALLOW_IMPLICIT_CONSTRUCTORS(DestroyCursorTraits); | 86 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(DestroyCursorTraits); |
87 }; | 87 }; |
88 | 88 |
89 typedef ScopedGDIObject<HBITMAP, DeleteObjectTraits<HBITMAP> > ScopedBitmap; | 89 typedef ScopedGDIObject<HBITMAP, DeleteObjectTraits<HBITMAP> > ScopedBitmap; |
90 typedef ScopedGDIObject<HCURSOR, DestroyCursorTraits> ScopedCursor; | 90 typedef ScopedGDIObject<HCURSOR, DestroyCursorTraits> ScopedCursor; |
91 | 91 |
92 } // namespace win | 92 } // namespace win |
93 } // namespace webrtc | 93 } // namespace webrtc |
94 | 94 |
95 #endif // WEBRTC_MODULES_DESKTOP_CAPTURE_WIN_SCOPED_GDI_HANDLE_H_ | 95 #endif // WEBRTC_MODULES_DESKTOP_CAPTURE_WIN_SCOPED_GDI_HANDLE_H_ |
OLD | NEW |