次の方法で共有


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();

参照