CBaseAllocator.Alloc メソッド
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
メソッドは Alloc
、バッファーにメモリを割り当てます。
構文
virtual HRESULT Alloc();
パラメーター
このメソッドにはパラメーターはありません。
戻り値
次のいずれかの HRESULT 値を 返します。
リターン コード | 説明 |
---|---|
|
バッファーの要件は変更されていません。 |
|
バッファーの要件が変更されました。 |
|
バッファー要件が設定されていません。 |
解説
このメソッドは、 CBaseAllocator::Commit メソッドによって呼び出されます。
基底クラスでは、このメソッドはメモリを割り当てません。 バッファー要件が設定されていない場合はエラーを返し、要件が変更されていない場合はS_FALSE、要件が変更された場合はS_OK。
派生クラスは、実際のメモリ割り当てを実行するには、このメソッドをオーバーライドする必要があります。 通常、派生クラスは次の手順を実行します。
- 基底クラスの実装を呼び出して、メモリに本当に割り当てる必要があるかどうかを判断します。
- メモリを割り当てます。
- 手順 2 のメモリのチャンクを含む CMediaSample オブジェクトを作成します。
- 各 CMediaSample オブジェクトを無料のサンプルの一覧に追加します (CBaseAllocator::m_lFree)。
例については、「 CMemAllocator::Alloc」を参照してください。
要件
要件 | 値 |
---|---|
ヘッダー |
|
ライブラリ |
|