Método IDXGIOutputDuplication::GetFramePointerShape (dxgi1_2.h)

Obtiene información sobre la nueva forma de puntero para el marco de escritorio actual.

Sintaxis

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

Parámetros

[in] PointerShapeBufferSize

Tamaño en bytes del búfer que el llamador pasó al parámetro pPointerShapeBuffer .

[out] pPointerShapeBuffer

Puntero a un búfer en el que GetFramePointerShape copia y devuelve datos de píxeles para la nueva forma de puntero.

[out] pPointerShapeBufferSizeRequired

Puntero a una variable que recibe el número de bytes que GetFramePointerShape necesita para almacenar los nuevos datos de píxeles de forma de puntero en el búfer en pPointerShapeBuffer.

Para obtener más información sobre cómo devolver el tamaño de búfer necesario, vea Comentarios.

[out] pPointerShapeInfo

Puntero a una estructura DXGI_OUTDUPL_POINTER_SHAPE_INFO que recibe la información de la forma del puntero.

Valor devuelto

GetFramePointerShape devuelve:

  • S_OK si recuperó correctamente información sobre la nueva forma de puntero.
  • DXGI_ERROR_ACCESS_LOST si la interfaz de duplicación de escritorio no es válida. La interfaz de duplicación de escritorio normalmente no es válida cuando se muestra un tipo diferente de imagen en el escritorio. Algunos ejemplos de esta situación son:
    • Conmutador de escritorio
    • Cambio de modo
    • Cambiar de DWM activado, DWM desactivado u otra aplicación de pantalla completa
    En esta situación, la aplicación debe liberar la interfaz IDXGIOutputDuplication y crear una nueva IDXGIOutputDuplication para el nuevo contenido.
  • DXGI_ERROR_MORE_DATA si el búfer que proporcionó la aplicación que realiza la llamada no era lo suficientemente grande.
  • DXGI_ERROR_INVALID_CALL si la aplicación llamó a GetFramePointerShape sin poseer la imagen de escritorio.
  • E_INVALIDARG si uno de los parámetros de GetFramePointerShape es incorrecto; por ejemplo, si pPointerShapeInfo es NULL.
  • Posiblemente otros códigos de error que se describen en el tema DXGI_ERROR .

Comentarios

GetFramePointerShape almacena un valor de tamaño en la variable en pPointerShapeBufferSizeRequired. Este valor especifica el número de bytes que pPointerShapeBufferSizeRequired necesita para almacenar los nuevos datos de píxeles de forma de puntero. Puede usar el valor en las situaciones siguientes para determinar la cantidad de memoria que se va a asignar a los búferes futuros que se pasan a pPointerShapeBuffer:

  • GetFramePointerShape produce un error con DXGI_ERROR_MORE_DATA porque el búfer no es lo suficientemente grande.
  • GetFramePointerShape proporciona un búfer mayor que el necesario. El valor de tamaño devuelto en pPointerShapeBufferSizeRequired informa al autor de la llamada cuánto espacio de búfer se usó realmente en comparación con cuánto espacio de búfer asignó el autor de la llamada y se especificó en el parámetro PointerShapeBufferSize .
El parámetro pPointerShapeInfo describe la nueva forma de puntero.

Requisitos

   
Cliente mínimo compatible Windows 8 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado dxgi1_2.h
Library Dxgi.lib

Consulte también

IDXGIOutputDuplication