|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef WINPTY_SHARED_BACKGROUND_DESKTOP_H |
|
#define WINPTY_SHARED_BACKGROUND_DESKTOP_H |
|
|
|
#include <windows.h> |
|
|
|
#include <string> |
|
|
|
#include "WinptyException.h" |
|
|
|
class BackgroundDesktop { |
|
public: |
|
BackgroundDesktop(); |
|
~BackgroundDesktop() { dispose(); } |
|
void dispose() WINPTY_NOEXCEPT; |
|
const std::wstring &desktopName() const { return m_newDesktopName; } |
|
|
|
BackgroundDesktop(const BackgroundDesktop &other) = delete; |
|
BackgroundDesktop &operator=(const BackgroundDesktop &other) = delete; |
|
|
|
|
|
|
|
|
|
BackgroundDesktop(BackgroundDesktop &&other) : |
|
m_originalStation(other.m_originalStation), |
|
m_newStation(other.m_newStation), |
|
m_newDesktop(other.m_newDesktop), |
|
m_newDesktopName(std::move(other.m_newDesktopName)) { |
|
other.m_originalStation = nullptr; |
|
other.m_newStation = nullptr; |
|
other.m_newDesktop = nullptr; |
|
} |
|
BackgroundDesktop &operator=(BackgroundDesktop &&other) { |
|
dispose(); |
|
m_originalStation = other.m_originalStation; |
|
m_newStation = other.m_newStation; |
|
m_newDesktop = other.m_newDesktop; |
|
m_newDesktopName = std::move(other.m_newDesktopName); |
|
other.m_originalStation = nullptr; |
|
other.m_newStation = nullptr; |
|
other.m_newDesktop = nullptr; |
|
return *this; |
|
} |
|
|
|
private: |
|
HWINSTA m_originalStation = nullptr; |
|
HWINSTA m_newStation = nullptr; |
|
HDESK m_newDesktop = nullptr; |
|
std::wstring m_newDesktopName; |
|
}; |
|
|
|
std::wstring getCurrentDesktopName(); |
|
|
|
#endif |
|
|