Metodo IMF2DBuffer2::Lock2DSize (mfobjects.h)
Consente al chiamante di accedere alla memoria nel buffer.
HRESULT Lock2DSize(
[in] MF2DBuffer_LockFlags lockFlags,
[out] BYTE **ppbScanline0,
[out] LONG *plPitch,
[out] BYTE **ppbBufferStart,
[out] DWORD *pcbBufferLength
);
[in] lockFlags
Membro dell'enumerazione MF2DBuffer_LockFlags che specifica se bloccare il buffer per la lettura, la scrittura o entrambi.
[out] ppbScanline0
Riceve un puntatore al primo byte della riga superiore di pixel nell'immagine. La riga superiore è definita come riga superiore quando l'immagine viene presentata al visualizzatore e potrebbe non essere la prima riga in memoria.
[out] plPitch
Riceve lo stride di superficie, in byte. Lo stride potrebbe essere negativo, che indica che l'immagine è orientata dal basso verso il basso in memoria.
[out] ppbBufferStart
Riceve un puntatore all'inizio del buffer accessibile in memoria.
[out] pcbBufferLength
Riceve la lunghezza del buffer, in byte.
Questo metodo può restituire uno di questi valori.
Codice restituito | Descrizione |
---|---|
|
Operazione completata. |
|
Richiesta non valida. Il buffer potrebbe essere già bloccato con un flag di blocco non compatibile. Vedere la sezione Osservazioni. |
|
Memoria insufficiente per completare l'operazione. |
Al termine dell'accesso alla memoria, chiamare FMI2DBuffer::Unlock2D per sbloccare il buffer. È necessario chiamare Unlock2D una volta per ogni chiamata a Lock2DSize.
Questo metodo equivale al metodo IMF2DBuffer::Lock2D . Tuttavia, Lock2DSize è preferito perché consente al chiamante di convalidare i puntatori di memoria e perché supporta blocchi di sola lettura. Un buffer non è garantito per supportare l'interfaccia FMI2DBuffer2 . Per accedere a un buffer, è necessario provare i metodi seguenti nell'ordine elencato:
- FMI2DBuffer2::Lock2DSize
- FMI2DBuffer::Lock2D
- FMMediaBuffer::Lock
Il parametro lockFlags specifica se il buffer è bloccato per l'accesso in sola lettura, l'accesso in sola scrittura o l'accesso in lettura/scrittura.
- Se il buffer è già bloccato per l'accesso in sola lettura, non può essere bloccato per l'accesso in scrittura.
- Se il buffer è già bloccato per l'accesso in sola scrittura, non può essere bloccato per l'accesso in lettura.
- Se il buffer è già bloccato per l'accesso in lettura/scrittura, può essere bloccato per l'accesso in lettura o scrittura.
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 [app desktop | App UWP] |
Server minimo supportato | Windows Server 2012 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | mfobjects.h (include Mfidl.h) |