Partager via


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

Obtient des informations sur sale rectangles pour le cadre de bureau actuel.

Syntaxe

HRESULT GetFrameDirtyRects(
  [in]  UINT DirtyRectsBufferSize,
  [out] RECT *pDirtyRectsBuffer,
  [out] UINT *pDirtyRectsBufferSizeRequired
);

Paramètres

[in] DirtyRectsBufferSize

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

[out] pDirtyRectsBuffer

Pointeur vers un tableau de structures RECT qui identifie les régions de rectangle sale pour le cadre de bureau.

[out] pDirtyRectsBufferSizeRequired

Pointeur vers une variable qui reçoit le nombre d’octets dont GetFrameDirtyRects a besoin pour stocker des informations sur sale régions dans la mémoire tampon sur pDirtyRectsBuffer.

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

Valeur retournée

GetFrameDirtyRects retourne :

  • S_OK s’il a correctement récupéré des informations sur sale rectangles.
  • 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’était pas assez grande.
  • DXGI_ERROR_INVALID_CALL si l’application a appelé GetFrameDirtyRects sans posséder l’image de bureau.
  • E_INVALIDARG si l’un des paramètres de GetFrameDirtyRects est incorrect ; par exemple, si pDirtyRectsBuffer a la valeur NULL.
  • Éventuellement d’autres codes d’erreur décrits dans la rubrique DXGI_ERROR .

Notes

GetFrameDirtyRects stocke une valeur de taille dans la variable dans pDirtyRectsBufferSizeRequired. Cette valeur spécifie le nombre d’octets dont GetFrameDirtyRects a besoin pour stocker des informations sur sale régions. 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 à pDirtyRectsBuffer :

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

La mémoire tampon contient la liste des RECTsale pour le frame actuel.

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

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