IDXGIOutputDuplication::GetFrameMoveRects, méthode (dxgi1_2.h)

Obtient des informations sur les rectangles déplacés pour le cadre de bureau actuel.

Syntaxe

HRESULT GetFrameMoveRects(
  [in]  UINT                   MoveRectsBufferSize,
  [out] DXGI_OUTDUPL_MOVE_RECT *pMoveRectBuffer,
  [out] UINT                   *pMoveRectsBufferSizeRequired
);

Paramètres

[in] MoveRectsBufferSize

Taille en octets de la mémoire tampon que l’appelant a passée au paramètre pMoveRectBuffer .

[out] pMoveRectBuffer

Pointeur vers un tableau de structures DXGI_OUTDUPL_MOVE_RECT qui identifie les régions de rectangle déplacées pour le cadre de bureau.

[out] pMoveRectsBufferSizeRequired

Pointeur vers une variable qui reçoit le nombre d’octets dont GetFrameMoveRects a besoin pour stocker des informations sur les régions déplacées dans la mémoire tampon sur pMoveRectBuffer.

Pour plus d’informations sur le retour de la taille de mémoire tampon requise, consultez Remarques.

Valeur retournée

GetFrameMoveRects retourne :

  • S_OK s’il a correctement récupéré des informations sur les rectangles déplacés.
  • DXGI_ERROR_ACCESS_LOST si l’interface de duplication du bureau n’est pas valide. L’interface de duplication du bureau devient généralement non valide lorsqu’un autre type d’image est affiché sur le bureau. Voici quelques exemples de cette situation :
    • Commutateur de bureau
    • Changement de mode
    • Passer de DWM activé, DWM désactivé ou d’une autre application plein écran
    Dans ce cas, l’application doit libérer l’interface IDXGIOutputDuplication et créer un nouvel IDXGIOutputDuplication pour le nouveau contenu.
  • DXGI_ERROR_MORE_DATA si la mémoire tampon fournie par l’application appelante n’est pas assez grande.
  • DXGI_ERROR_INVALID_CALL si l’application a appelé GetFrameMoveRects sans posséder l’image de bureau.
  • E_INVALIDARG si l’un des paramètres de GetFrameMoveRects est incorrect ; par exemple, si pMoveRectBuffer a la valeur NULL.
  • Éventuellement d’autres codes d’erreur décrits dans la rubrique DXGI_ERROR .

Notes

GetFrameMoveRects stocke une valeur de taille dans la variable dans pMoveRectsBufferSizeRequired. Cette valeur spécifie le nombre d’octets dont GetFrameMoveRects a besoin pour stocker des informations sur les régions déplacées. Vous pouvez utiliser cette valeur dans les situations suivantes pour déterminer la quantité de mémoire à allouer pour les mémoires tampons futures que vous transmettez à pMoveRectBuffer :

  • GetFrameMoveRects échoue avec DXGI_ERROR_MORE_DATA car la mémoire tampon n’est pas assez grande.
  • GetFrameMoveRects fournit une mémoire tampon plus grande que nécessaire. La valeur de taille retournée dans pMoveRectsBufferSizeRequired informe l’appelant de la quantité d’espace tampon réellement utilisé par rapport à l’espace tampon alloué et spécifié par l’appelant dans le paramètre MoveRectsBufferSize .
L’appelant peut également utiliser la valeur retournée dans pMoveRectsBufferSizeRequired pour déterminer le nombre de structures DXGI_OUTDUPL_MOVE_RECT retournées.

La mémoire tampon contient la liste des RECT de déplacement pour le frame actuel.

Note Pour produire une copie visuellement précise du bureau, une application doit d’abord traiter tous les RECT de déplacement avant de traiter sale rects.
 

Spécifications

   
Client minimal pris en charge Windows 8 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau uniquement]
Plateforme cible Windows
En-tête dxgi1_2.h
Bibliothèque Dxgi.lib

Voir aussi

IDXGIOutputDuplication