Método IDXGIOutput1::D uplicateOutput (dxgi1_2.h)
Cria uma interface de duplicação da área de trabalho da interface IDXGIOutput1 que representa uma saída do adaptador.
Sintaxe
HRESULT DuplicateOutput(
[in] IUnknown *pDevice,
[out] IDXGIOutputDuplication **ppOutputDuplication
);
Parâmetros
[in] pDevice
Um ponteiro para a interface do dispositivo Direct3D que você pode usar para processar a imagem da área de trabalho. Esse dispositivo deve ser criado a partir do adaptador ao qual a saída está conectada.
[out] ppOutputDuplication
Um ponteiro para uma variável que recebe a nova interface IDXGIOutputDuplication .
Retornar valor
DuplicateOutput retorna:
- S_OK se DuplicateOutput tiver criado com êxito a interface de duplicação da área de trabalho.
- E_INVALIDARG por um dos seguintes motivos:
- O dispositivo especificado (pDevice) é inválido, não foi criado no adaptador correto ou não foi criado a partir de IDXGIFactory1 (ou uma versão posterior de uma interface de fábrica DXGI herdada de IDXGIFactory1).
- O aplicativo de chamada já está duplicando essa saída da área de trabalho.
- E_ACCESSDENIED se o aplicativo não tiver privilégio de acesso à imagem da área de trabalho atual. Por exemplo, somente um aplicativo executado em LOCAL_SYSTEM pode acessar a área de trabalho segura.
- DXGI_ERROR_UNSUPPORTED se a interface IDXGIOutputDuplication criada não oferecer suporte ao modo ou cenário da área de trabalho atual. Por exemplo, não há suporte para modos de área de trabalho 8bpp e não DWM. Se DuplicateOutput falhar com DXGI_ERROR_UNSUPPORTED, o aplicativo poderá aguardar a notificação do sistema de alterações de modo e comutadores de área de trabalho e, em seguida, chamar DuplicateOutput novamente depois que essa notificação ocorrer. Para obter mais informações, consulte EVENT_SYSTEM_DESKTOPSWITCH e notificação de alteração de modo (WM_DISPLAYCHANGE).
- DXGI_ERROR_NOT_CURRENTLY_AVAILABLE se o DXGI atingiu o limite no número máximo de aplicativos de duplicação simultânea (padrão de quatro). Portanto, o aplicativo de chamada não pode criar nenhuma interface de duplicação da área de trabalho até que os outros aplicativos sejam fechados.
- DXGI_ERROR_SESSION_DISCONNECTED se DuplicateOutput falhou porque a sessão está desconectada no momento.
- Outros códigos de erro são descritos no tópico DXGI_ERROR .
Atualização de plataforma para Windows 7: No Windows 7 ou Windows Server 2008 R2 com a Atualização de Plataforma para Windows 7 instalada, DuplicateOutput falha com E_NOTIMPL. Para obter mais informações sobre a Atualização de Plataforma para Windows 7, consulte Atualização de plataforma para Windows 7.
Comentários
Se um aplicativo quiser duplicar toda a área de trabalho, ele deverá criar uma interface de duplicação da área de trabalho em cada saída ativa na área de trabalho. Essa interface não fornece uma maneira explícita de sincronizar o tempo de cada imagem de saída. Em vez disso, o aplicativo deve usar o carimbo de data/hora de cada saída e determinar como combinar as imagens.
Para que DuplicateOutput tenha êxito, você deve criar o pDevice do IDXGIFactory1 ou uma versão posterior de uma interface de fábrica DXGI herdada do IDXGIFactory1.
Se o modo atual for um modo estéreo, a interface de duplicação da área de trabalho fornecerá a imagem somente para a imagem estéreo esquerda.
Por padrão, apenas quatro processos podem usar uma interface IDXGIOutputDuplication ao mesmo tempo em uma única sessão. Um processo pode ter apenas uma interface de duplicação da área de trabalho em uma única saída da área de trabalho; no entanto, esse processo pode ter uma interface de duplicação da área de trabalho para cada saída que faz parte da área de trabalho.
Para melhorar o desempenho, considere usar DuplicateOutput1.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8 e Atualização de Plataforma para Windows 7 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2012 e Atualização de Plataforma para Windows Server 2008 R2 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | dxgi1_2.h |
Biblioteca | Dxgi.lib |