Note: We no longer publish the latest version of our code here. We primarily use a kumc-bmi github organization. The heron ETL repository, in particular, is not public. Peers in the informatics community should see MultiSiteDev for details on requesting access.

source: webrtc/webrtc/modules/desktop_capture/win/scoped_thread_desktop.h @ 0:4bda6873e34c

pub_scrub_3792 tip
Last change on this file since 0:4bda6873e34c was 0:4bda6873e34c, checked in by Michael Prittie <mprittie@…>, 6 years ago

Scrubbed password for publication.

File size: 1.7 KB
Line 
1/*
2 *  Copyright (c) 2013 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
11#ifndef WEBRTC_MODULES_DESKTOP_CAPTURE_WIN_SCOPED_THREAD_DESKTOP_H_
12#define WEBRTC_MODULES_DESKTOP_CAPTURE_WIN_SCOPED_THREAD_DESKTOP_H_
13
14#include <windows.h>
15
16#include "webrtc/system_wrappers/interface/constructor_magic.h"
17#include "webrtc/system_wrappers/interface/scoped_ptr.h"
18
19namespace webrtc {
20
21class Desktop;
22
23class ScopedThreadDesktop {
24 public:
25  ScopedThreadDesktop();
26  ~ScopedThreadDesktop();
27
28  // Returns true if |desktop| has the same desktop name as the currently
29  // assigned desktop (if assigned) or as the initial desktop (if not assigned).
30  // Returns false in any other case including failing Win32 APIs and
31  // uninitialized desktop handles.
32  bool IsSame(const Desktop& desktop);
33
34  // Reverts the calling thread to use the initial desktop.
35  void Revert();
36
37  // Assigns |desktop| to be the calling thread. Returns true if the thread has
38  // been switched to |desktop| successfully. Takes ownership of |desktop|.
39  bool SetThreadDesktop(Desktop* desktop);
40
41 private:
42  // The desktop handle assigned to the calling thread by Set
43  scoped_ptr<Desktop> assigned_;
44
45  // The desktop handle assigned to the calling thread at creation.
46  scoped_ptr<Desktop> initial_;
47
48  DISALLOW_COPY_AND_ASSIGN(ScopedThreadDesktop);
49};
50
51}  // namespace webrtc
52
53#endif  // WEBRTC_MODULES_DESKTOP_CAPTURE_WIN_SCOPED_THREAD_DESKTOP_H_
Note: See TracBrowser for help on using the repository browser.