IMF2DBuffer2::Lock2DSize メソッド (mfobjects.h)
呼び出し元にバッファー内のメモリへのアクセス権を付与します。
構文
HRESULT Lock2DSize(
[in] MF2DBuffer_LockFlags lockFlags,
[out] BYTE **ppbScanline0,
[out] LONG *plPitch,
[out] BYTE **ppbBufferStart,
[out] DWORD *pcbBufferLength
);
パラメーター
[in] lockFlags
読み取り、書き込み、またはその両方のためにバッファーをロックするかどうかを指定するMF2DBuffer_LockFlags列挙体のメンバー。
[out] ppbScanline0
画像内のピクセルの先頭行の最初のバイトへのポインターを受け取ります。 上部の行は、画像がビューアーに表示されるときに先頭行として定義され、メモリ内の最初の行ではない可能性があります。
[out] plPitch
サーフェスストライドをバイト単位で受け取ります。 ストライドは負の値になる可能性があり、画像がメモリの下端から上に向かっていることを示します。
[out] ppbBufferStart
メモリ内のアクセス可能なバッファーの先頭へのポインターを受け取ります。
[out] pcbBufferLength
バッファーの長さをバイト単位で受け取ります。
戻り値
このメソッドは、これらの値のいずれかを返すことができます。
リターン コード | 説明 |
---|---|
|
正常終了しました。 |
|
無効な要求です。 バッファーは、互換性のないロック フラグで既にロックされている可能性があります。 「解説」を参照してください。 |
|
操作を完了するためのメモリが不足しています。 |
注釈
メモリへのアクセスが完了したら、 IMF2DBuffer::Unlock2D を呼び出してバッファーのロックを解除します。 Lock2DSize の呼び出しごとに Unlock2D を 1 回呼び出す必要があります。
このメソッドは、 IMF2DBuffer::Lock2D メソッドと 同じです。 ただし、 Lock2DSize は、呼び出し元がメモリ ポインターを検証できるようにするため、および読み取り専用ロックをサポートするため、推奨されます。 バッファーは、 IMF2DBuffer2 インターフェイスをサポートする保証はありません。 バッファーにアクセスするには、一覧表示されている順序で次のメソッドを試す必要があります。
- IMF2DBuffer2::Lock2DSize
- IMF2DBuffer::Lock2D
- IMFMediaBuffer::Lock
lockFlags パラメーターは、バッファーが読み取り専用アクセス、書き込み専用アクセス、または読み取り/書き込みアクセス用にロックされているかどうかを指定します。
- バッファーが既に読み取り専用アクセス用にロックされている場合、書き込みアクセス用にロックすることはできません。
- 書き込み専用アクセス用にバッファーが既にロックされている場合、読み取りアクセス用にロックすることはできません。
- バッファーが既に読み取り/書き込みアクセス用にロックされている場合は、読み取りまたは書き込みアクセス用にロックできます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | mfobjects.h (Mfidl.h を含む) |