Partager via


MÉTHODE IDXGIOutput1 ::D uplicateOutput (dxgi1_2.h)

Crée une interface de duplication de bureau à partir de l’interface IDXGIOutput1 qui représente une sortie d’adaptateur.

Syntaxe

HRESULT DuplicateOutput(
  [in]  IUnknown               *pDevice,
  [out] IDXGIOutputDuplication **ppOutputDuplication
);

Paramètres

[in] pDevice

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.

[out] ppOutputDuplication

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

Valeur retournée

DuplicateOutput retourne :

  • S_OK si DuplicateOutput 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 DuplicateOutput é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 DuplicateOutput une fois qu’une telle notification s’est produite. Pour plus d’informations, reportez-vous à EVENT_SYSTEM_DESKTOPSWITCH et aux notifications de modification (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 DuplicateOutput a échoué, car la session est actuellement déconnectée.
  • D’autres codes d’erreur sont décrits dans la rubrique DXGI_ERROR .

Mise à jour de plateforme pour Windows 7 : Sur Windows 7 ou Windows Server 2008 R2 avec la mise à jour de plateforme pour Windows 7 installée, DuplicateOutput échoue avec E_NOTIMPL. Pour plus d’informations sur la mise à jour de plateforme pour Windows 7, consultez Mise à jour de plateforme pour Windows 7.

Remarques

Si une application souhaite dupliquer l’intégralité du bureau, elle doit créer une interface de duplication de bureau sur chaque sortie active sur le bureau. Cette interface ne fournit pas de moyen explicite de synchroniser le minutage de chaque image de sortie. Au lieu de cela, l’application doit utiliser l’horodatage de chaque sortie, puis déterminer comment combiner les images.

Pour que DuplicateOutput réussisse, vous devez créer pDevice à partir d’IDXGIFactory1 ou d’une version ultérieure d’une interface de fabrique DXGI qui hérite d’IDXGIFactory1.

Si le mode actuel est un mode stéréo, l’interface de duplication du bureau fournit l’image pour l’image stéréo gauche uniquement.

Par défaut, seuls quatre processus peuvent utiliser une interface IDXGIOutputDuplication en même temps au sein d’une même session. Un processus ne peut avoir qu’une seule interface de duplication de bureau sur une seule sortie de bureau ; Toutefois, ce processus peut avoir une interface de duplication de bureau pour chaque sortie qui fait partie du bureau.

Pour améliorer les performances, envisagez d’utiliser DuplicateOutput1.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 et mise à jour de plateforme pour Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2012 et mise à jour de plateforme pour Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête dxgi1_2.h
Bibliothèque Dxgi.lib

Voir aussi

DuplicateOutput1

IDXGIOutput1