if (desktop == NULL)
throw Exception("unable to open desktop name '%s', error=%d", name, ::GetLastError());
if(!::SetThreadDesktop(desktop))
throw Exception("unable to SetThreadDesktop(%s), error=%d", name, GetLastError());
// создание окна или MessageBox
}
так вот всё хорошо работает, но если это поток создаст окно и удалить его ИЛИ выведет MessageBox (и пользователь его закроет)
то в Windows 7 так же всё хорошо, а в Windows 10 выдаёт ошибку 170 при SetThreadDesktop при переключении на десктоп "Winlogon"
Всё упростил как мог и теперь не знаю куда дальше двигаться, как решить эту проблему.
Готов заплатить если кто-то сможет её решить.