IAsyncReader::RequestAllocator
RequestAllocator メソッドは、ピン接続中にアロケータを要求する。
構文
HRESULT RequestAllocator(
IMemAllocator *pPreferred,
ALLOCATOR_PROPERTIES *pProps,
IMemAllocator **ppActual
);
パラメータ
pPreferred
[in] 入力ピンの優先アロケータの IMemAllocator インターフェイスへのポインタ。または NULL。
pProps
[in] 呼び出し元が割り当てた ALLOCATOR_PROPERTIES 構造体のアドレスを指定する。呼び出し元は、入力ピンに必要なアロケータ プロパティを設定し、残りのメンバはゼロに設定しなければならない。
ppActual
[out] IMemAllocator インターフェイス ポインタを受け取る変数のアドレス。
戻り値
HRESULT 値を返す。可能な値は次のとおりである。
戻りコード | 説明 |
E_FAIL | アロケータの初期化が失敗した。 |
VFW_E_BADALIGN | 無効なアラインメントが指定された。 |
S_OK | アロケータが返された。 |
注意
ダウンストリーム入力ピンは、接続処理中はこのメソッドを呼び出すこと。ピンに優先アロケータがあるときは、その優先アロケータを pPreferred 引数で指定する。バッファ サイズやアラインメントなどのバッファ条件があるときは、pProps 引数で指定する。出力ピンはアロケータを選択して、そのアロケータへのポインタを ppActual 引数で返す。
出力ピンは、入力ピンの要求を受け入れる必要はない。入力ピンに絶対条件があるときは、返されるアロケータに対して IMemAllocator::GetProperties メソッドを呼び出す必要がある。アロケータのプロパティが適切でないと、接続に失敗する可能性がある。接続が確立されたら、入力ピンは出力ピンが選択したアロケータを "必ず" 使わなければならない。
アロケータのコミットおよびデコミットは、入力ピンが行うこと。
参照