Condividi tramite


Metodo IDXGIOutputDuplica::AcquireNextFrame (dxgi1_2.h)

Indica che l'applicazione è pronta per elaborare l'immagine desktop successiva.

Sintassi

HRESULT AcquireNextFrame(
  [in]  UINT                    TimeoutInMilliseconds,
  [out] DXGI_OUTDUPL_FRAME_INFO *pFrameInfo,
  [out] IDXGIResource           **ppDesktopResource
);

Parametri

[in] TimeoutInMilliseconds

Intervallo di timeout, in millisecondi. Questo intervallo specifica la quantità di tempo in cui questo metodo attende un nuovo frame prima di tornare al chiamante. Questo metodo restituisce se l'intervallo è trascorso e non è disponibile una nuova immagine desktop.

Per altre informazioni sull'intervallo di timeout, vedere Osservazioni.

[out] pFrameInfo

Puntatore a una posizione di memoria che riceve la struttura DXGI_OUTDUPL_FRAME_INFO che descrive le statistiche relative alla tempistica e alla presentazione per un frame.

[out] ppDesktopResource

Puntatore a una variabile che riceve l'interfaccia IDXGIResource dell'area che contiene la bitmap desktop.

Valore restituito

AcquireNextFrame restituisce:

  • S_OK se ha ricevuto correttamente l'immagine desktop successiva.
  • DXGI_ERROR_ACCESS_LOST se l'interfaccia di duplicazione desktop non è valida. L'interfaccia di duplicazione desktop diventa in genere non valida quando viene visualizzato un tipo diverso di immagine sul desktop. Esempi di questa situazione sono:
    • Commutatore desktop
    • Modifica della modalità
    • Passare da DWM su, DWM disattivato o da un'altra applicazione a schermo intero
    In questo caso, l'applicazione deve rilasciare l'interfaccia IDXGIOutputDuplicazione e creare un nuovo IDXGIOutputDuplicazione per il nuovo contenuto.
  • DXGI_ERROR_WAIT_TIMEOUT se l'intervallo di timeout è trascorso prima della successiva disponibilità del frame desktop.
  • DXGI_ERROR_INVALID_CALL se l'applicazione denominata AcquireNextFrame senza rilasciare il frame precedente.
  • E_INVALIDARG se uno dei parametri di AcquireNextFrame non è corretto; ad esempio, se pFrameInfo è NULL.
  • Eventualmente altri codici di errore descritti nell'argomento DXGI_ERROR .

Commenti

Quando AcquireNextFrame restituisce correttamente, l'applicazione chiamante può accedere all'immagine desktop che AcquireNextFrame restituisce nella variabile in ppDesktopResource. Se il chiamante specifica un intervallo di timeout zero nel parametro TimeoutInMilliseconds , AcquireNextFrame verifica se è disponibile una nuova immagine desktop, restituisce immediatamente e indica il relativo risultato con il valore restituito. Se il chiamante specifica un intervallo di timeout INFINITO nel parametro TimeoutInMilliseconds , l'intervallo di timeout non scade mai.

Nota Non è possibile annullare l'attesa specificata nel parametro TimeoutInMilliseconds . Pertanto, se è necessario verificare periodicamente altre condizioni (ad esempio, un segnale di terminazione), è necessario specificare un intervallo di timeout non INFINITO . Dopo aver trascorso l'intervallo di timeout, è possibile verificare la presenza di queste altre condizioni e quindi chiamare di nuovo AcquireNextFrame per attendere il frame successivo.
 
AcquireNextFrame acquisisce un nuovo frame desktop quando il sistema operativo aggiorna l'immagine bitmap desktop o modifica la forma o la posizione di un puntatore hardware. Il nuovo frame acquisito AcquireNextFrame potrebbe avere solo l'immagine desktop aggiornata, solo la forma del puntatore o la posizione aggiornata o entrambe.

Requisiti

Requisito Valore
Client minimo supportato Windows 8 [solo app desktop]
Server minimo supportato Windows Server 2012 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione dxgi1_2.h
Libreria Dxgi.lib

Vedi anche

IDXGIOutputDuplicazione