Microsoft DirectX 8.0

CTransInPlaceOutputPin クラス

CTransInPlaceOutputPin クラスの階層

CTransInPlaceFilter クラスが使用する出力ピン。

宣言 : Transip.h

通常、このクラスから派生させる必要はない。派生させるなら、フィルタの CTransInPlaceFilter::GetPin メソッド をオーバーライドし、派生クラスのインスタンスを作成しなければならない。

Protected Member 変数
m_pTIPFilterこのピンを作成したフィルタへのポインタ。
Public メソッド
CTransInPlaceOutputPinコンストラクタ メソッド。
DecideAllocatorメモリ アロケータを選択する。
CheckMediaType指定したメディア タイプをピンが許容することを確認する。
SetAllocator接続の際のアロケータを指定する。
ConnectedIMemInputPinダウンストリーム入力ピンへのポインタを取得する。
PeekAllocatorピンのアロケータへのポインタを取得する。
IPin メソッド
EnumMediaTypesピンの優先メディア タイプを列挙する。

CTransInPlaceOutputPin.m_pTIPFilter

CTransInPlaceOutputPin クラス

このピンを作成したフィルタへのポインタ。

構文

CTransInPlaceFilter * const m_pTIPFilter;

CTransInPlaceOutputPin::CheckMediaType

CTransInPlaceOutputPin クラス

指定したメディア タイプをピンが許容することを確認する。

構文

HRESULT CheckMediaType(
    const CMediaType *pmt
);

パラメータ

pmt
提案されたメディアタイプを入れる CMediaType オブジェクトへのポインタ。

戻り値

HRESULT 値を返す。以下のテーブルに示されるいずれかの値。

S_OK成功。
VFW_E_TYPE_NOT_ACCEPTEDメディア タイプは許容されなかった。

注意

このメソッドは CTransformOutputPin::CheckMediaType メソッドをオーバーライドする。

フィルタが既にストリーミングを流し、2 つのアロケータを使っているなら、このメソッドはすべてのフォーマット変更を拒否する。それ以外なら、このメソッドはフィルタの CTransformFilter::CheckInputType メソッドを呼び出し、メディア タイプをチェックする。入力ピンが接続されているなら、アップストリーム出力ピンの IPin::QueryAccept メソッドをも呼び出す。

CTransInPlaceOutputPin::ConnectedIMemInputPin

CTransInPlaceOutputPin クラス

ダウンストリーム入力ピンへのポインタを取得する。このメソッドは CBaseOutputPin.m_pInputPin メンバ変数を返す。

構文

IMemInputPin *ConnectedIMemInputPin(void);

戻り値

ダウンストリーム入力ピンの IMemInputPin インターフェイスへのポインタを返す。

CTransInPlaceOutputPin::CTransInPlaceOutputPin

CTransInPlaceOutputPin クラス

コンストラクタ メソッド。

構文

CTransInPlaceOutputPin(
    TCHAR *pObjectName,
    CTransInPlaceFilter *pFilter,
    HRESULT *phr,
    LPCWSTR pName
);

パラメータ

pObjectName
オブジェクトのデバッグ名が入る文字列。詳細については、「CBaseObject」を参照すること。
pFilter
このピンを作成したフィルタへのポインタ、これは CTransInPlaceFilter オブジェクトでなければならない。
phr
メソッドの成功失敗を示す HRESULT 値を受け取る変数へのポインタ。この値はオブジェクトを作成する前に S_OK で初期化される。値はエラーが起きた場合のみ変更される。
pName
ピン名が入る Unicode™ 文字列。

注意

pName パラメータは IPin::QueryPinInfo メソッドが返すピン名を指定する。しかし、この文字列はピン ID としては 使われていない。このクラスではピン ID は必ず Out である。詳細については、「QueryId」を参照すること。

CTransInPlaceOutputPin::DecideAllocator

CTransInPlaceOutputPin クラス

メモリ アロケータを選択する。

構文

HRESULT DecideAllocator(
    IMemInputPin *pPin,
    IMemAllocator **ppAlloc
);

パラメータ

pPin
入力ピンの IMemInputPin インターフェイスへのポインタ。
ppAlloc
アロケータの IMemAllocator インターフェイスのポインタを受け取る変数のアドレス。

戻り値

S_OK を返す。

注意

このメソッドは CBaseOutputPin::DecideAllocator メソッドをオーバーライドする。

これは何もしないダミーメソッドである、なぜならこのフィルタの出力ピンはアロケータを提供しないからである。そのかわり、アロケータは入力ピンの接続プロセス中に決定される。入力ピンの CTransInPlaceInputPin::NotifyAllocator メソッドはダウンストリーム入力ピンの NotifyAllocator を呼び出す。

CTransInPlaceOutputPin::EnumMediaTypes

CTransInPlaceOutputPin クラス

ピンの優先メディア タイプを列挙する。IPin::EnumMediaTypes メソッドの実装。

構文

HRESULT EnumMediaTypes(    
    IEnumMediaTypes **ppEnum
);

パラメータ

ppEnum
IEnumMediaTypes インターフェイスへのポインタを受け取る変数のアドレス。

戻り値

HRESULT 値を返す。以下の表に示されるいずれかの値。

S_OK成功。
E_OUTOFMEMORYメモリ不足。
E_POINTERNULL ポインタ。
VFW_E_NOT_CONNECTEDフィルタの入力ピンが接続されていない。

注意

このメソッドはアップストリーム出力ピンから IEnumMediaTypes インターフェイスを返す。

CTransInPlaceOutputPin::PeekAllocator

CTransInPlaceOutputPin クラス

ピンのアロケータへのポインタを取得する。このメソッドはインターフェイスの参照カウントをインクリメントしない。

構文

IMemAllocator *PeekAllocator(void)

戻り値

CBaseOutputPin.m_pAllocator メンバ変数を返す。

CTransInPlaceOutputPin::SetAllocator

CTransInPlaceOutputPin クラス

接続の際のアロケータを指定する。

構文

void SetAllocator(
    IMemAllocator *pAllocator
);

パラメータ

pAllocator
アロケータの IMemAllocator インターフェイスへのポインタ。

注意

このフィルタの出力ピンはアロケータを提供しない。このメソッドは出力ピン用のアロケータを指定する。それは CBaseOutputPin.m_pAllocator メンバ変数の値を設定する。