Я поддерживаю старое приложение, которое, помимо прочего, отображает крошечные видеопотоки на экране. Приложение работает нормально, если вы не запускаете его при просмотре рабочего стола через RDP.
Когда мы идем, чтобы получить указатель записи через IDirectDrawSurface7
«s Lock
функция:
DDSURFACEDESC2 dsd;
ZeroMemory(&dsd, sizeof(dsd));
dsd.dwSize = sizeof(dsd);
hr = m_pSurface->Lock(NULL, &dsd, DDLOCK_NOSYSLOCK|DDLOCK_WRITEONLY/*|DDLOCK_DONOTWAIT*/, NULL);
Все работает нормально, если вы не подключены к системе через RDP. В этом случае блокировка не работает, с HRESULT
из DDERR_WASSTILLDRAWING
,
Замечания по Страница MSDN заявить, что эта ошибка должна возникать только в «условиях по умолчанию», когда флаг DDLOCK_DONOTWAIT
используется, который я диагностически закомментировал.
Есть ли надежда, что это приложение будет работать на RDP 8 / Windows 7 без значительного изменения дизайна?
Такое поведение возникает при наличии открытого приложения и при подключении нового сеанса RDP, а также при запуске приложения через существующий сеанс RDP.
Задача ещё не решена.