Microsoft DirectX 8.0

CTransformOutputPin クラス

CTransformOutputPin クラスの階層

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

宣言: Transfrm.h

通常、このクラスを派生させる必要はない。このクラスの大部分のメソッドはオーバーライド可能な CTransformFilter クラスの対応するメソッドを呼び出している。このクラスから派生させるなら、フィルタの CTransformFilter::GetPin メソッドをオーバーライドし、その派生クラスのインスタンスを作成しなければならない。

Protected メンバ変数
m_pTransformFilter所有者フィルタへのポインタ。
Public Member Variables
m_pPositionシークコマンドをアップストリームに渡すヘルパー オブジェクト。
Public メソッド
CTransformOutputPinコンストラクタ メソッド。
~CTransformOutputPinデストラクタ メソッド。
CheckConnectピン接続が適切かどうかを確認する。
BreakConnectピンの接続を解除する。
CompleteConnect別のピンへの接続を完了する。
CheckMediaTypeピンが指定したメディア タイプを許容するかどうかを確認する。
SetMediaType接続の際のメディア タイプを設定する。
DecideBufferSizeバッファ要求を設定する。
GetMediaTypeインデックス値で優先メディア タイプを取得する。
CurrentMediaType現在のピン接続のメディア タイプを取得する。
IPin Methods
QueryIdピンの ID を取得する。
IQualityControl Methods
Notify品質変更が要求された事をピンに通知する。

CTransformOutputPin.m_pTransformFilter

CTransformOutputPin クラス

所有者フィルタへのポインタ。

構文

CTransformOutputPin *m_pTransformFilter;

CTransformOutputPin.m_pPosition

CTransformOutputPin クラス

シークコマンドをアップストリームに渡すヘルパー オブジェクト。

構文

IUnknown *m_pPosition;

注意

ピンが最初に IMediaPosition インターフェイスあるいは IMediaSeeking インターフェイスでクエリされるとき、それは CPosPassThru オブジェクトを作成、集成する。

CTransformOutputPin::BreakConnect

CTransformOutputPin クラス

ピンの接続を解除する。

構文

HRESULT BreakConnect(void);

戻り値

S_OK を返す、あるいは他の HRESULT 値を返す。

注意

このメソッドは CBaseOutputPin::BreakConnect メソッドをオーバーライドする。それは基底クラスでは S_OK を返す、フィルタの CTransformFilter::BreakConnect メソッドを呼び出す。派生クラスは CTransformFilter::BreakConnect メソッドをオーバーライドすることができる。

CTransformOutputPin::CheckConnect

CTransformOutputPin クラス

ピン接続が適切かどうかを確認する。

構文

HRESULT CheckConnect(
    IPin *pPin
);

パラメータ

pPin
出力ピンの IPin インターフェイスへのポインタ。

戻り値

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

S_OK成功。
E_UNEXPECTEDフィルタの入力ピンが接続されていない。

注意

このメソッドは CBaseOutputPin::CheckConnect メソッドをオーバーライドする。それは基底クラスでは S_OK を返すフィルタの CTransformFilter::CheckConnect メソッドを呼び出す。派生クラスは CTransformFilter::CheckConnect メソッドをオーバーライドして、追加のチェックを行うことができる。

CTransformOutputPin::CheckMediaType

CTransformOutputPin クラス

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

構文

HRESULT CheckMediaType(
    const CMediaType *mtIn
);

パラメータ

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

戻り値

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

S_OK成功。
E_INVALIDARGフィルタの入力ピンが接続されていない。

注意

このメソッドは純粋仮想 CBasePin::CheckMediaType メソッドを実装する。このメソッドはフィルタの入力ピンが接続されていないと失敗する。そうでなければ、それはフィルタの CTransformFilter::CheckTransform メソッドを呼び出す、それもまた純粋仮想である。フィルタの派生クラスは CheckTransform を実装して、提案された出力メディア タイプが入力メディア タイプと互換性があるかどうかを確認する。

CTransformOutputPin::CompleteConnect

CTransformOutputPin クラス

別のピンへの接続を完了する。

構文

HRESULT CompleteConnect(
    IPin *pReceivePin
);

パラメータ

pReceivePin
別のピンの IPin インターフェイスへのポインタ。

戻り値

S_OK を返す、あるいは他の HRESULT 値を返す。

注意

このメソッドは CBaseOutputPin::CompleteConnect メソッドをオーバーライドする。それは基底クラスでは S_OK を返すフィルタの CTransformFilter::CompleteConnect メソッドを呼び出す。派生クラスは CTransformFilter::CompleteConnect メソッドをオーバーライドして追加チェックを行うことができる。

CTransformOutputPin::CTransformOutputPin

CTransformOutputPin クラス

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

構文

CTransformOutputPin(
    TCHAR *pObjectName,
    CTransformFilter *pTransformFilter,
    HRESULT *phr,
    LPCWSTR pName
);

パラメータ

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

注意

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

CTransformOutputPin::~CTransformOutputPin

CTransformOutputPin クラス

デストラクタ メソッド。

構文

~CTransformOutputPin(void);

CTransformOutputPin::CurrentMediaType

CTransformOutputPin クラス

現在のピン接続のメディア タイプを取得する。

構文

CMediaType& CurrentMediaType(void);

戻り値

CBasePin::m_mt メンバ変数への参照を返す。

CTransformOutputPin::DecideBufferSize

CTransformOutputPin クラス

バッファ要求を設定する。

構文

HRESULT DecideBufferSize(
    IMemAllocator *pAlloc,
    ALLOCATOR_PROPERTIES *ppropInputRequest
); 

パラメータ

pAlloc
アロケータの IMemAllocator インターフェイスへのポインタ。
ppropInputRequest
入力ピンのバッファ要求が入る ALLOCATOR_PROPERTIES 構造体のポインタ。

戻り値

HRESULT 値を返す。

注意

このメソッドは CBaseOutputPin::DecideBufferSize メソッドをオーバーライドする。フィルタの純粋仮想 CTransformFilter::DecideBufferSize メソッドを呼び出す、フィルタの派生クラスはそれを実装しなければならない。

CTransformOutputPin::GetMediaType

CTransformOutputPin クラス

インデックス値で優先メディア タイプを取得する

構文

HRESULT GetMediaType(
    int iPosition,
    CMediaType *pMediaType
);

パラメータ

iPosition
ゼロから始まるインデックス データ。
pMediaType
メディア タイプを受け取る CMediaType オブジェクトへのポインタ。

戻り値

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

S_OK成功。
VFW_S_NO_MORE_ITEMSインデックスが制限幅を超えた。

注意

このメソッドは CBasePin::GetMediaType メソッドをオーバーライドする。フィルタの入力ピンが接続されていないと、そのメソッドは VFW_S_NO_MORE_ITEMS を返す。そうでなければ、フィルタの CTransformFilter::GetMediaType メソッドを呼び出し、メディア タイプを取得する。CTransformFilter::GetMediaType メソッドは純粋仮想である、フィルタの派生クラスはそれをオーバーライドしなければならない。

CTransformOutputPin::Notify

CTransformOutputPin クラス

品質変更が要求されたことをピンに通知する。IQualityControl::Notify メソッドの実装。

構文

HRESULT Notify(
    IBaseFilter *pSelf,
    Quality q
);

パラメータ

pSelf
品質管理メッセージを出力するフィルタの IBaseFilter インターフェイスへのポインタ。
q
品質管理メッセージが入る Quality 構造体。

戻り値

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

S_OK成功。
VFW_E_NOT_FOUNDメッセージを許容するオブジェクトを見つけられなかった。

注意

このメソッドはフィルタの CTransformFilter::AlterQuality メソッドを呼び出す。フィルタが品質メッセージを処理しないなら、このメソッドは CBaseInputPin::PassNotify メソッドをフィルタの入力ピンで呼び出す。PassNotify メソッドは品質メッセージをアップストリームに渡す (あるいは、インストールされているなら、カスタム品質マネージャに渡す)。

CTransformOutputPin::QueryId

CTransformOutputPin クラス

ピンの ID を取得する。IPin::QueryId メソッドの実装

構文

HRESULT QueryId(
    LPWSTR *Id
);

パラメータ

Id
ピン ID が入る文字列を受け取る変数のアドレス。

戻り値

以下の表に示される HRESULT 値の 1 つを返す。

S_OK成功。
E_OUTOFMEMORYメモリ不足。
E_POINTERNULL ポインタ引数。

注意

ピン ID はグラフで用いられる。このクラスのピン ID は Out である。このクラスは CBasePin クラスの振る舞いをオーバーライドする。CBasePin クラスでは、ピン ID はクラス コンストラクタで指定されたピン名と同じである。CTransformInputPin クラスでは、ピン ID とピン名は同じではない。

CTransformOutputPin::SetMediaType

CTransformOutputPin クラス

接続の際のメディア タイプを設定する。

構文

HRESULT SetMediaType(
    const CMediaType *mt
);

パラメータ

mt
メディア タイプを指定する CMediaType オブジェクトへのポインタ。

戻り値

S_OK を返す。

注意

このメソッドは CBasePin::SetMediaType メソッドをオーバーライドする。それはフィルタの CTransformFilter::SetMediaType メソッドを呼び出し、フィルタに情報を与える。

ピンはメディア タイプがこのメソッドを呼び出す前にアクセス可能であることを検証しなければならない。