1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "remoting/host/win/window_station_and_desktop.h" 6 7#include <algorithm> 8 9namespace remoting { 10 11WindowStationAndDesktop::WindowStationAndDesktop() 12 : desktop_(NULL), 13 window_station_(NULL) { 14} 15 16WindowStationAndDesktop::~WindowStationAndDesktop() { 17 SetDesktop(NULL); 18 SetWindowStation(NULL); 19} 20 21void WindowStationAndDesktop::SetDesktop(HDESK desktop) { 22 std::swap(desktop_, desktop); 23 if (desktop) 24 CloseDesktop(desktop); 25} 26 27void WindowStationAndDesktop::SetWindowStation(HWINSTA window_station) { 28 std::swap(window_station_, window_station); 29 if (window_station) 30 CloseWindowStation(window_station); 31} 32 33void WindowStationAndDesktop::Swap(WindowStationAndDesktop& other) { 34 std::swap(desktop_, other.desktop_); 35 std::swap(window_station_, other.window_station_); 36} 37 38} // namespace remoting 39