Partager via


Méthode IDXGIOutput5 ::D uplicateOutput1 (dxgi1_5.h)

Permet de spécifier une liste des formats pris en charge pour les surfaces plein écran qui peuvent être retournées par l’objet IDXGIOutputDuplication .

Syntaxe

HRESULT DuplicateOutput1(
  [in]  IUnknown               *pDevice,
        UINT                   Flags,
  [in]  UINT                   SupportedFormatsCount,
  [in]  const DXGI_FORMAT      *pSupportedFormats,
  [out] IDXGIOutputDuplication **ppOutputDuplication
);

Paramètres

[in] pDevice

Type : IUnknown*

Pointeur vers l’interface d’appareil Direct3D que vous pouvez utiliser pour traiter l’image de bureau. Cet appareil doit être créé à partir de l’adaptateur auquel la sortie est connectée.

Flags

Type : UINT

Champ de bits de DXGI_OUTDUPL_FLAG valeurs d’énumération décrivant le type de surface de capture à créer.

[in] SupportedFormatsCount

Type : UINT

Spécifie le nombre de formats pris en charge.

[in] pSupportedFormats

Type : const DXGI_FORMAT*

Spécifie un tableau de longueur SupportedFormatsCount des entrées DXGI_FORMAT .

[out] ppOutputDuplication

Type : IDXGIOutputDuplication**

Pointeur vers une variable qui reçoit la nouvelle interface IDXGIOutputDuplication .

Valeur retournée

Type : HRESULT

  • S_OK si DuplicateOutput1 a correctement créé l’interface de duplication du bureau.
  • E_INVALIDARG pour l’une des raisons suivantes :
    • L’appareil spécifié (pDevice) n’est pas valide, n’a pas été créé sur l’adaptateur approprié ou n’a pas été créé à partir d’IDXGIFactory1 (ou d’une version ultérieure d’une interface d’usine DXGI qui hérite d’IDXGIFactory1).
    • L’application appelante duplique déjà cette sortie de bureau.
  • E_ACCESSDENIED si l’application n’a pas de privilège d’accès à l’image de bureau actuelle. Par exemple, seule une application qui s’exécute à LOCAL_SYSTEM peut accéder au bureau sécurisé.
  • DXGI_ERROR_UNSUPPORTED si l’interface IDXGIOutputDuplication créée ne prend pas en charge le mode bureau ou le scénario actuel. Par exemple, les modes de bureau 8bpp et non DWM ne sont pas pris en charge.

    Si DuplicateOutput1 échoue avec DXGI_ERROR_UNSUPPORTED, l’application peut attendre la notification système des commutateurs de bureau et des changements de mode, puis appeler à nouveau DuplicateOutput1 une fois qu’une telle notification s’est produite. Pour plus d’informations, consultez commutateur de bureau (EVENT_SYSTEM_DESKTOPSWITCH) et notification de changement de mode (WM_DISPLAYCHANGE).

  • DXGI_ERROR_NOT_CURRENTLY_AVAILABLE si DXGI a atteint la limite du nombre maximal d’applications de duplication simultanées (quatre par défaut). Par conséquent, l’application appelante ne peut pas créer d’interfaces de duplication de bureau tant que les autres applications ne sont pas fermées.
  • DXGI_ERROR_SESSION_DISCONNECTED si DuplicateOutput1 a échoué, car la session est actuellement déconnectée.
  • D’autres codes d’erreur sont décrits dans la rubrique DXGI_ERROR .

Remarques

Cette méthode permet de recevoir directement le format de mémoire tampon d’arrière-mémoire d’origine utilisé par une application plein écran en cours d’exécution. À des fins de comparaison, l’utilisation de la fonction DuplicateOutput d’origine convertit toujours la surface plein écran en format BGRA 32 bits. Dans les cas où l’application plein écran actuelle utilise un format de mémoire tampon différent, une conversion en BGRA 32 bits entraîne une pénalité de performances. Outre l’avantage en matière de performances de pouvoir ignorer la conversion de format, l’utilisation de DuplicateOutput1 permet également de recevoir la gamme complète des couleurs dans les cas où un format haute couleur (tel que R10G10B10A2) est présenté.

Le tableau pSupportedFormats doit uniquement contenir des formats d’analyse d’affichage. Consultez Prise en charge du format pour le matériel de niveau de fonctionnalité Direct3D 11.0 pour connaître les formats d’analyse requis à chaque niveau de fonctionnalité. Si le format de mémoire tampon plein écran actuel n’est pas contenu dans le tableau pSupportedFormats , DXGI sélectionne l’un des formats fournis et convertit la mémoire tampon plein écran dans ce format avant de retourner à partir d’IDXGIOutputDuplication ::AcquireNextFrame. La liste des formats pris en charge doit toujours contenir DXGI_FORMAT_B8G8R8A8_UNORM, car il s’agit du format le plus courant pour le bureau.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête dxgi1_5.h
Bibliothèque Dxgi.lib
DLL Dxgi.dll

Voir aussi

DuplicateOutput

IDXGIOutput5