次の方法で共有


CBaseAllocator::Alloc

Alloc メソッドは、バッファにメモリを割り当てる。

構文

  virtual HRESULT Alloc(void);

戻り値

次のいずれかの HRESULT 値を返す。

説明
S_FALSE バッファ要求は変更されていない。
S_OK バッファ要求は変更された。
VFW_E_SIZENOTSET バッファ要求は設定されなかった。

注意

このメソッドは CBaseAllocator::Commit メソッドから呼び出される。

基底クラスでは、このメソッドはメモリを割り当てない。バッファ要求が設定されていない場合はエラーを返し、要求が変更されていなければ S_FALSE を、要求が変更されていれば S_OK を返す。

派生クラスでこのメソッドをオーバーライドして実際のメモリ割り当てを行うべきである。通常、派生クラスでは次のようなステップを実行する。

  1. 基底クラスの実装を呼び出し、メモリを本当に割り当てる必要があるかどうかを決定する。
  2. メモリを割り当てる。
  3. ステップ 2 で割り当てたメモリのチャンクを含む CMediaSample オブジェクトを作成する。
  4. CMediaSample オブジェクトをフリー サンプル リストに追加する (CBaseAllocator::m_lFree)。

この例については、「CMemAllocator::Alloc」を参照すること。

参照