IAMStreamConfig::GetFormat
GetFormat メソッドは、現在の出力フォーマットまたは優先出力フォーマットを取得する。
構文
HRESULT GetFormat(
AM_MEDIA_TYPE **pmt
);
パラメータ
pmt
[out] AM_MEDIA_TYPE 構造体へのポインタのアドレス。
戻り値
HRESULT 値を返す。可能な値は次のとおりである。
戻りコード | 説明 |
S_OK | 成功。 |
E_OUTOFMEMORY | メモリ不足。 |
E_POINTER | NULL ポインタ値。 |
VFW_E_NOT_CONNECTED | 入力ピンが接続されていない。 |
注意
ピンが接続されている場合、このメソッドは、ピンが現在使用しているフォーマットを返す。そうでない場合、このメソッドは、次のピン接続に使うピンの優先フォーマットを返す。フォーマットを設定するために既に IAMStreamConfig::SetFormat メソッドを呼び出した場合、GetFormat は同じフォーマットを返す。そうでない場合は、IPin::EnumMediaTypes メソッドによって指定された、ピンの優先フォーマット リストの最初のフォーマットを返す。
このメソッドは、AM_MEDIA_TYPE 構造体にメモリを割り当て、構造体に埋め込み、pmt 引数内に返す。呼び出し元は、フォーマット ブロックを含め、メモリを解放する必要がある。基底クラス ライブラリのヘルパー関数 DeleteMediaType を使える。
いくつかの圧縮フィルタでは、フィルタの入力ピンが接続されていない場合、このメソッドは失敗する。
サンプル コード
IAMStreamConfig *pConfig = NULL;
// IAMStreamConfig に対して出力ピンを問い合わせる (ここでは示されていない)。
AM_MEDIA_TYPE *pmt = NULL;
hr = pConfig->GetFormat(&pmt);
if (SUCCEEDED(hr))
{
/* 必要な情報のためにメディア タイプを調べる。 */
DeleteMediaType(pmt);
}
pConfig->Release();
参照