CBaseAllocator::Alloc
Alloc メソッドは、バッファにメモリを割り当てる。
構文
virtual HRESULT Alloc(void);
戻り値
次のいずれかの HRESULT 値を返す。
値 | 説明 |
S_FALSE | バッファ要求は変更されていない。 |
S_OK | バッファ要求は変更された。 |
VFW_E_SIZENOTSET | バッファ要求は設定されなかった。 |
注意
このメソッドは CBaseAllocator::Commit メソッドから呼び出される。
基底クラスでは、このメソッドはメモリを割り当てない。バッファ要求が設定されていない場合はエラーを返し、要求が変更されていなければ S_FALSE を、要求が変更されていれば S_OK を返す。
派生クラスでこのメソッドをオーバーライドして実際のメモリ割り当てを行うべきである。通常、派生クラスでは次のようなステップを実行する。
- 基底クラスの実装を呼び出し、メモリを本当に割り当てる必要があるかどうかを決定する。
- メモリを割り当てる。
- ステップ 2 で割り当てたメモリのチャンクを含む CMediaSample オブジェクトを作成する。
- 各 CMediaSample オブジェクトをフリー サンプル リストに追加する (CBaseAllocator::m_lFree)。
この例については、「CMemAllocator::Alloc」を参照すること。
参照