Метод IDXGIOutputDuplication::AcquireNextFrame (dxgi1_2.h)

Указывает, что приложение готово к обработке следующего образа рабочего стола.

Синтаксис

HRESULT AcquireNextFrame(
  [in]  UINT                    TimeoutInMilliseconds,
  [out] DXGI_OUTDUPL_FRAME_INFO *pFrameInfo,
  [out] IDXGIResource           **ppDesktopResource
);

Параметры

[in] TimeoutInMilliseconds

Интервал времени ожидания в миллисекундах. Этот интервал указывает время ожидания нового кадра методом перед возвратом к вызывающему объекту. Этот метод возвращает значение , если истекает интервал и новый образ рабочего стола недоступен.

Дополнительные сведения об интервале времени ожидания см. в разделе Примечания.

[out] pFrameInfo

Указатель на расположение памяти, которое получает структуру DXGI_OUTDUPL_FRAME_INFO , описывающую время и статистику представления кадра.

[out] ppDesktopResource

Указатель на переменную, которая получает интерфейс IDXGIResource поверхности, содержащей растровое изображение рабочего стола.

Возвращаемое значение

AcquireNextFrame возвращает следующее :

  • S_OK, если он успешно получил следующий образ рабочего стола.
  • DXGI_ERROR_ACCESS_LOST, если интерфейс дублирования рабочего стола недопустим. Интерфейс дублирования рабочего стола обычно становится недопустимым, если на рабочем столе отображается изображение другого типа. Примеры такой ситуации:
    • Переключатель рабочего стола
    • Изменение режима
    • Включение DWM, отключение DWM или другого полноэкранного приложения
    В этом случае приложение должно освободить интерфейс IDXGIOutputDuplication и создать новую idXGIOutputDuplication для нового содержимого.
  • DXGI_ERROR_WAIT_TIMEOUT, истекло ли время ожидания до появления следующего кадра рабочего стола.
  • DXGI_ERROR_INVALID_CALL, если приложение называется AcquireNextFrame без освобождения предыдущего кадра.
  • E_INVALIDARG, если один из параметров AcquireNextFrame является неверным ; Например, если pFrameInfo имеет значение NULL.
  • Возможно, другие коды ошибок, описанные в DXGI_ERROR разделе.

Комментарии

При успешном возврате AcquireNextFrame вызывающее приложение может получить доступ к образу рабочего стола, возвращаемого AcquireNextFrame в переменной ppDesktopResource. Если вызывающий объект задает нулевой интервал времени ожидания в параметре TimeoutInMilliseconds , AcquireNextFrame проверяет, доступен ли новый образ рабочего стола, возвращается немедленно и указывает результат с возвращаемым значением. Если вызывающий объект задает интервал времени ожидания INFINITE в параметре TimeoutInMilliseconds , интервал времени ожидания никогда не истекает.

Примечание Вы не можете отменить ожидание, указанное в параметре TimeoutInMilliseconds . Таким образом, если необходимо периодически проверка для других условий (например, сигнала завершения), следует указать интервал времени ожидания, отличный от БЕСКОНЕЧНОго. По истечении интервала ожидания можно проверка для других условий, а затем снова вызвать AcquireNextFrame, чтобы дождаться следующего кадра.
 
AcquireNextFrame получает новый кадр рабочего стола, когда операционная система обновляет растровое изображение рабочего стола или изменяет форму или положение аппаратного указателя. В новом кадре, который получает AcquireNextFrame , может быть обновлен только образ рабочего стола, обновлена только форма указателя или положение или и то, и другое.

Требования

Требование Значение
Минимальная версия клиента Windows 8 [только классические приложения]
Минимальная версия сервера Windows Server 2012 [только классические приложения]
Целевая платформа Windows
Header dxgi1_2.h
Библиотека Dxgi.lib

См. также раздел

IDXGIOutputDuplication