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

Возвращает сведения о новой фигуре указателя для текущего кадра рабочего стола.

Синтаксис

HRESULT GetFramePointerShape(
  [in]  UINT                            PointerShapeBufferSize,
  [out] void                            *pPointerShapeBuffer,
  [out] UINT                            *pPointerShapeBufferSizeRequired,
  [out] DXGI_OUTDUPL_POINTER_SHAPE_INFO *pPointerShapeInfo
);

Параметры

[in] PointerShapeBufferSize

Размер буфера в байтах, который вызывающий объект передал параметру pPointerShapeBuffer .

[out] pPointerShapeBuffer

Указатель на буфер, в который GetFramePointerShape копирует и возвращает пиксельные данные для новой фигуры указателя.

[out] pPointerShapeBufferSizeRequired

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

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

[out] pPointerShapeInfo

Указатель на структуру DXGI_OUTDUPL_POINTER_SHAPE_INFO , которая получает сведения о фигуре указателя.

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

GetFramePointerShape возвращает:

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

Комментарии

GetFramePointerShape сохраняет значение размера в переменной pPointerShapeBufferSizeRequired. Это значение указывает количество байтов, необходимых pPointerShapeBufferSizeRequired для хранения новых данных пикселей фигуры указателя. Значение можно использовать в следующих ситуациях, чтобы определить объем памяти, выделяемый для будущих буферов, которые будут передаваться в pPointerShapeBuffer:

  • GetFramePointerShape завершается сбоем с DXGI_ERROR_MORE_DATA, так как буфер недостаточно велик.
  • GetFramePointerShape предоставляет буфер большего размера, чем необходимо. Значение размера, возвращаемое в pPointerShapeBufferSizeRequired , сообщает вызывающей объекту, какой объем буферного пространства фактически использовался по сравнению с объемом буферного пространства, выделенным вызывающим объектом и указанным в параметре PointerShapeBufferSize .
Параметр pPointerShapeInfo описывает новую фигуру указателя.

Требования

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

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

IDXGIOutputDuplication