mirror of
https://github.com/debauchee/barrier.git
synced 2026-02-10 21:56:13 +08:00
win32 changes. changed names of binaries. added support for
running as (and installing/installing) a service. added support for multiple desktops (NT only, 95 doesn't support multiple desktops).
This commit is contained in:
@@ -152,6 +152,38 @@ void CMSWindowsScreen::getScreenSize(
|
||||
*h = m_h;
|
||||
}
|
||||
|
||||
HDESK CMSWindowsScreen::openInputDesktop() const
|
||||
{
|
||||
return OpenInputDesktop(DF_ALLOWOTHERACCOUNTHOOK, TRUE,
|
||||
DESKTOP_CREATEWINDOW |
|
||||
DESKTOP_HOOKCONTROL |
|
||||
GENERIC_WRITE);
|
||||
}
|
||||
|
||||
CString CMSWindowsScreen::getDesktopName(
|
||||
HDESK desk) const
|
||||
{
|
||||
if (desk == NULL) {
|
||||
return CString();
|
||||
}
|
||||
else {
|
||||
DWORD size;
|
||||
GetUserObjectInformation(desk, UOI_NAME, NULL, 0, &size);
|
||||
TCHAR* name = new TCHAR[size / sizeof(TCHAR) + 1];
|
||||
GetUserObjectInformation(desk, UOI_NAME, name, size, &size);
|
||||
CString result(name);
|
||||
delete[] name;
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
bool CMSWindowsScreen::isCurrentDesktop(
|
||||
HDESK desk) const
|
||||
{
|
||||
return CStringUtil::CaselessCmp::equal(getDesktopName(desk),
|
||||
getCurrentDesktopName());
|
||||
}
|
||||
|
||||
void CMSWindowsScreen::getEvent(MSG* msg) const
|
||||
{
|
||||
// wait for an event in a cancellable way
|
||||
|
||||
Reference in New Issue
Block a user