#ifndef SANDBOX_WIN_SRC_ALTERNATE_DESKTOP_H_
#define SANDBOX_WIN_SRC_ALTERNATE_DESKTOP_H_
#include "sandbox/win/src/sandbox.h"
#include <string>
namespace sandbox {
class AlternateDesktop {
public:
AlternateDesktop()
: desktop_(nullptr),
winstation_(nullptr),
integrity_(INTEGRITY_LEVEL_SYSTEM) {}
~AlternateDesktop();
AlternateDesktop(const AlternateDesktop&) = delete;
AlternateDesktop& operator=(const AlternateDesktop&) = delete;
ResultCode UpdateDesktopIntegrity(IntegrityLevel integrity_level);
ResultCode Initialize(bool alternate_winstation);
std::wstring GetDesktopName();
private:
HDESK desktop_;
HWINSTA winstation_;
IntegrityLevel integrity_;
};
}
#endif