Microsoft DirectX 8.0

IFileSinkFilter インターフェイス

IFileSinkFilter インターフェイスは、メディア ストリームをファイルに書き込むフィルタに実装される。たとえば、ビデオ キャプチャ用フィルタ グラフのファイル シンク フィルタでは、ビデオ圧縮フィルタの出力をファイルに書き込む。通常、このフィルタ グラフを実行するアプリケーションでは、ユーザーが出力先のファイル名を入力できる必要がある。このインターフェイスを使用すると、その情報をやり取りできる。

Microsoft® ActiveMovie® 1.0 との後方互換性を保つ必要がない場合は、このインターフェイスではなく IFileSinkFilter2 を使用してもよい。

出力ファイル名を受け取る必要があるフィルタでは、アプリケーションからファイル名を設定するため、このインターフェイスを公開しなければならない。現在、このインターフェイスを実装する基底クラスはない。

ファイル シンク フィルタの出力先ファイル名を設定する必要があるアプリケーションでは、このインターフェイスを使用してファイル名を取得および設定すること。

vtable 順のメソッド

IUnknown メソッド説明
QueryInterface サポートされているインターフェイスへのポインタを取得する。
AddRef 参照カウントをインクリメントする。
Release 参照カウントをデクリメントする。
IFileSinkFilter メソッド説明
SetFileName メディア サンプルの出力先ファイル名を設定する。
GetCurFile メディア サンプルが書き込まれる現在のファイル (シンク ファイル) の名前を取得する。

IFileSinkFilter::GetCurFile

IFileSinkFilter インターフェイス

メディア サンプルが書き込まれる現在のファイル (シンク ファイル) の名前を取得する。

構文

HRESULT GetCurFile(
    LPOLESTR *ppszFileName,
    AM_MEDIA_TYPE *pmt
);

パラメータ

ppszFileName
[out] メディア サンプルの出力先ファイル名へのポインタのアドレス。
pmt
[out] ファイルに書き込まれるメディア サンプルのタイプへのポインタ。

戻り値

実装に応じた HRESULT 値を返す。HRESULT は、次の標準的な定数の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_POINTERNull ポインタ引数。
E_INVALIDARG無効な引数。
E_NOTIMPLメソッドがサポートされていない。
S_OK または NOERROR成功。

ファイル名が割り当てられなかった場合、このメソッドは E_FAIL を返す。

IFileSinkFilter::SetFileName

IFileSinkFilter インターフェイス

メディア サンプルの出力先ファイル名を設定する。

構文

HRESULT SetFileName(
    LPCOLESTR pszFileName,
    const AM_MEDIA_TYPE *pmt
);

パラメータ

pszFileName
[in] メディア サンプルの出力先ファイル名へのポインタ。
pmt
[in] ファイルに書き込むメディア サンプルのタイプと、シンク フィルタの入力ピンのメディア タイプへのポインタ。

戻り値

実装に応じた HRESULT 値を返す。HRESULT は、次の標準的な定数の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_POINTERNull ポインタ引数。
E_INVALIDARG無効な引数。
E_NOTIMPLメソッドがサポートされていない。
S_OK または NOERROR成功。

注意

pszFileName パラメータのファイルが存在しない場合には、そのファイルが作成される。既存ファイルの場合、シンク フィルタはファイルを先に破棄ぜすにオーバーライドする。