Microsoft DirectX 8.0

IBasicVideo インターフェイス

IBasicVideo インターフェイスは、ビデオ レンダラ フィルタで実装され、PID を介してフィルタ グラフ マネージャで公開される。アプリケーションは、常にフィルタ グラフ マネージャを介してこのインターフェイスを取得する必要がある。このインターフェイスを使用すると、アプリケーションで、ビット レート、転送先矩形、転送元矩形などのビデオ プロパティを設定できる。これは、デュアル インターフェイスなので、C++ だけでなく Microsoft® Visual Basic® で記述されたアプリケーションからもアクセスできる。

IBasicVideo インターフェイスのメソッドを使用する場合、ビデオ レンダラが接続されていることだけが必要とされる。接続されていないと、インターフェイス メソッドはすべて VFW_E_NOT_CONNECTED を返す。ビデオ レンダラで設定されたプロパティは、連続した接続と接続解除の間で保持される。

ビデオを取り扱う場合、アプリケーションは使用するビデオの一部分を選択できる。この部分は、IBasicVideo インターフェイスが制御する転送元矩形となる。IBasicVideo を使用すると、この転送元矩形を設定および取得できる。IBasicVideo が使用するすべての矩形には、Microsoft® Win32® プログラミングで好まれる top、left、width、および height を使用し、top、left、right、および bottom は使用しない。転送元矩形を設定していない場合、その転送元矩形のプロパティはフル サイズのネイティブ ビデオを返す。矩形のディメンジョンはすべてピクセル単位で指定する。

vtable 順のメソッド

IUnknown メソッド説明
QueryInterface サポートされているインターフェイスへのポインタを取得する。
AddRef 参照カウントをインクリメントする。
Release 参照カウントをデクリメントする。
IDispatch メソッド説明
GetTypeInfoCount このディスプインターフェイスに利用可能なタイプ情報があるかどうか判断する。
GetTypeInfo GetTypeInfoCount が成功した場合は、このディスプインターフェイスのタイプ情報を取得する。
GetIDsOfNames (引数を含む) プロパティおよびメソッドのテキスト名を対応する DISPID に変換する。
Invoke DISPID およびその他の必要なパラメータが指定された場合は、このディスプインターフェイスのメソッドを呼び出すか、またはプロパティにアクセスする。
IBasicVideo メソッド説明
get_AvgTimePerFrame 連続するフレーム間の平均時間を 100 ナノ秒単位で取得する。
get_BitRate ビデオ ストリームのおよそのビット レートを取得する。
get_BitErrorRate ビデオ ストリームのおよそのビット エラー レートを取得する。
get_VideoWidth 現在のビデオの幅を取得する。
get_VideoHeight 現在のビデオの高さを取得する。
put_SourceLeft ビデオの転送元矩形の x 軸の座標を設定する。
get_SourceLeft ビデオの転送元矩形の x 軸の座標を取得する。
put_SourceWidth ビデオの転送元矩形の幅を設定する。
get_SourceWidth ビデオの転送元矩形の幅を取得する。
put_SourceTop ビデオの転送元矩形の y 軸の座標を設定する。
get_SourceTop ビデオの転送元矩形の y 軸の座標を取得する。
put_SourceHeight ビデオの転送元矩形の高さを設定する。
get_SourceHeight ビデオの転送元矩形の高さを取得する。
put_DestinationLeft ビデオの転送先矩形の x 軸の座標を設定する。
get_DestinationLeft ビデオの転送先矩形の x 軸の座標を取得する。
put_DestinationWidth ビデオの転送先矩形の幅を設定する。
get_DestinationWidth ビデオの転送先矩形の幅を取得する。
put_DestinationTop ビデオの転送先矩形の y 軸の座標を設定する。
get_DestinationTop ビデオの転送先矩形の y 軸の座標を取得する。
put_DestinationHeight ビデオの転送先矩形の高さを設定する。
get_DestinationHeight ビデオの転送先矩形の高さを取得する。
SetSourcePosition ビデオの転送元矩形を設定する。
GetSourcePosition ビデオの転送元矩形を取得する。
SetDefaultSourcePosition デフォルトの転送元矩形を使用するようにレンダラに指示する。
SetDestinationPosition ウィンドウに対する転送先矩形を設定する。
GetDestinationPosition ウィンドウに対するビデオの転送先矩形を取得する。
SetDefaultDestinationPosition ウィンドウに対するデフォルトの転送先位置を設定する。
GetVideoSize ネイティブ ビデオのディメンジョンを取得する。
GetVideoPaletteEntries ビデオで必要とされるカラー パレットのエントリを取得する。
GetCurrentImage レンダラで待機している現在のイメージのコピーを返す。
IsUsingDefaultSource レンダラがデフォルトの転送元矩形を使用しているかどうかを判別する。
IsUsingDefaultDestination レンダラがデフォルトの転送先矩形を使用しているかどうかを判別する。

IBasicVideo::get_AvgTimePerFrame

IBasicVideo インターフェイス

連続するフレーム間の平均時間を 100 ナノ秒単位で取得する。

構文

HRESULT get_AvgTimePerFrame(
    REFTIME *pAvgTimePerFrame
);

パラメータ

pAvgTimePerFrame
[out] フレーム間の時間へのポインタ。

戻り値

HRESULT 値を返す。

IBasicVideo::get_BitErrorRate

IBasicVideo インターフェイス

ビデオ ストリームのビット エラー レートを取得する (ほぼこのビット数に対して 1 つのエラー)。

構文

HRESULT get_BitErrorRate(
    long *pBitErrorRate
);

パラメータ

pBitErrorRate
[out] およそのビット エラー レートへのポインタ。

戻り値

HRESULT 値を返す。

IBasicVideo::get_BitRate

IBasicVideo インターフェイス

ビデオ ストリームのおよそのビット レート (ビット/秒単位) を取得する。

構文

HRESULT get_BitRate(
    long *pBitRate
);

パラメータ

pBitRate
[out] およそのビット レートへのポインタ。

戻り値

HRESULT 値を返す。

IBasicVideo::GetCurrentImage

IBasicVideo インターフェイス

レンダラで待機している現在のイメージを取得する。

構文

HRESULT GetCurrentImage(
    long *pBufferSize,
    long *pDIBImage
);

パラメータ

pBufferSize
[in, out] 呼び出し元が渡しているバッファ サイズへのポインタ。
pDIBImage
[out] イメージ全体がデバイスに依存しないビットマップ (DIB) フォーマットで格納されるバッファへのポインタ。このバッファはこの関数で使用できるように long 型のポインタにキャストされる必要がある。

戻り値

HRESULT 値を返す。

注意

このメソッドは、レンダラで DirectDraw アクセラレーションが使用されていると失敗する。失敗するかどうかはエンドユーザーのハードウェア構成に依存するため、実際にはこのメソッドを信頼することはできない。グラフ内のストリームからサンプルを取得する場合は、ISampleGrabber インターフェイスを使用する方がよい。

このメソッドを呼び出す前にビデオ レンダラをポーズする。ポーズしていないと、VFW_E_NOT_PAUSED が返される。ImediaCOntrol::GetState を呼び出すことによって完了することに注意すること。ポーズ操作が終了していないと、 GetCurrentImage の呼び出しは E_UNEXPECTED を返す。 ソース フィルタで利用可能になるデータによっては、ビデオ レンダラがこの要求に応じない場合もある。利用可能なイメージがない場合は、E_FAIL が返される。

イメージ ポインタを NULL にしてこのメソッドを呼び出すことで、イメージの保持に必要なバッファのサイズを取得する。この場合、バッファ サイズには必要なバイト数が返される。バッファ サイズ ポインタは必ず有効である必要がある。アプリケーションがこのメソッドを呼び出したときに、バッファ サイズが小さすぎてイメージ全体を保持できないと、レンダラは E_OUTOFMEMORY を返す。

このメソッドが成功すると、出力イメージ ポインタに DIB イメージ全体が格納される。これには、Microsoft Win32 BITMAPINFOHEADER 構造体、必要な任意のパレット、 および Win32 BITMAPINFO 構造体で定義されているビット マスクも含まれる。返されるイメージのフォーマットはソース フィルタが提供するタイプに応じて異なり、あらかじめ明示的に定義することはできない。通常、イメージは 24 ビット、16 ビット、または 8 ビットのパレット化されたイメージになる。

IBasicVideo::get_DestinationHeight

IBasicVideo インターフェイス

転送先矩形の高さを取得する。

構文

HRESULT get_DestinationHeight(
    long *pDestinationHeight
);

パラメータ

pDestinationHeight
[out] 現在の高さへのポインタ (ピクセル単位)。

戻り値

HRESULT 値を返す。

IBasicVideo::get_DestinationLeft

IBasicVideo インターフェイス

転送先矩形の x 軸の基点の座標を取得する。

構文

HRESULT get_DestinationLeft(
    long *pDestinationLeft
);

パラメータ

pDestinationLeft
[out] 現在の x 軸の基点へのポインタ。

戻り値

HRESULT 値を返す。

IBasicVideo::GetDestinationPosition

IBasicVideo インターフェイス

ウィンドウ座標内の転送先矩形の位置を取得する。

構文

HRESULT GetDestinationPosition(
    long *pLeft,
    long *pTop,
    long *pWidth,
    long *pHeight
);

パラメータ

pLeft
[out] 転送先ウィンドウの x 軸の基点へのポインタ。
pTop
[out] 転送先ウィンドウの y 軸の基点へのポインタ。
pWidth
[out] 転送先ウィンドウの幅へのポインタ (ピクセル単位)。
pHeight
[out] 転送先ウィンドウの高さへのポインタ (ピクセル単位)。

戻り値

HRESULT 値を返す。

注意

このメソッドを使用すると、IBasicVideo::get_DestinationLeftIBasicVideo::get_DestinationTopIBasicVideo::get_DestinationWidth、および IBasicVideo::get_DestinationHeight の各メソッドを個別に呼び出した場合と同じ結果が得られる。

IBasicVideo::get_DestinationTop

IBasicVideo インターフェイス

転送先の y 軸の基点の座標を取得する。

構文

HRESULT get_DestinationTop(
    long *pDestinationTop
);

パラメータ

pDestinationTop
[out] 現在の y 軸の基点へのポインタ。

戻り値

HRESULT 値を返す。

IBasicVideo::get_DestinationWidth

IBasicVideo インターフェイス

転送先矩形の幅を取得する。

構文

HRESULT get_DestinationWidth(
    long *pDestinationWidth
);

パラメータ

pDestinationWidth
[out] 現在の幅へのポインタ (ピクセル単位)。

戻り値

HRESULT 値を返す。

IBasicVideo::get_SourceHeight

IBasicVideo インターフェイス

転送元矩形の高さを取得する。

構文

HRESULT get_SourceHeight(
    long *pSourceHeight
);

パラメータ

pSourceHeight
[out] 現在の矩形の高さへのポインタ (ピクセル単位)。

戻り値

HRESULT 値を返す。

IBasicVideo::get_SourceLeft

IBasicVideo インターフェイス

転送元矩形の x 軸の座標を取得する。

構文

HRESULT get_SourceLeft(
    long *pSourceLeft
);

パラメータ

pSourceLeft
[out] 転送元矩形の x 軸の基点へのポインタ。

戻り値

HRESULT 値を返す。

IBasicVideo::GetSourcePosition

IBasicVideo インターフェイス

利用可能なビデオにクリップされる転送元矩形の位置を取得する。

構文

HRESULT GetSourcePosition(
    long *pLeft,
    long *pTop,
    long *pWidth,
    long *pHeight
);

パラメータ

pLeft
[out] 転送元ウィンドウの x 軸の基点へのポインタ。
pTop
[out] 転送元ウィンドウの y 軸の基点へのポインタ。
pWidth
[out] 転送元ウィンドウの幅へのポインタ (ピクセル単位)。
pHeight
[out] 転送元ウィンドウの高さへのポインタ (ピクセル単位)。

戻り値

HRESULT 値を返す。

注意

このメソッドを使用すると、IBasicVideo::get_SourceLeftIBasicVideo::get_SourceTopIBasicVideo::get_SourceWidth、および IBasicVideo::get_SourceHeight の各メソッドを個別に呼び出した場合と同じ結果が得られる。

IBasicVideo::get_SourceTop

IBasicVideo インターフェイス

転送元矩形の y 軸の基点の座標を取得する。

構文

HRESULT get_SourceTop(
    long *pSourceTop
);

パラメータ

pSourceTop
[out] 新しいトップ座標へのポインタ。

戻り値

HRESULT 値を返す。

注意

このメソッドを設定しても、転送元矩形の高さには影響を与えない。

IBasicVideo::get_SourceWidth

IBasicVideo インターフェイス

転送元矩形の幅を取得する。

構文

HRESULT get_SourceWidth(
    long *pSourceWidth
);

パラメータ

pSourceWidth
[out] 現在の幅へのポインタ (ピクセル単位)。

戻り値

HRESULT 値を返す。

注意

このメソッドは、転送元矩形の x 軸の座標に影響を与えない。

IBasicVideo::get_VideoHeight

IBasicVideo インターフェイス

現在のビデオの高さを取得する。

構文

HRESULT get_VideoHeight(
    long *pVideoHeight
);

パラメータ

pVideoHeight
[out] ビデオのネイティブの高さへのポインタ (ピクセル単位)。

戻り値

HRESULT 値を返す。

注意

このメソッドは、レンダラに供給されるビデオの実際の高さを返す。このメソッドは設定された転送元矩形を対象としておらず、単純にネイティブの垂直ディメンジョンを返す。アプリケーションはこのメソッドを使用して埋め込みコンテナ ドキュメントとの間でサイズ要件をネゴシエートできる。

IBasicVideo::GetVideoPaletteEntries

IBasicVideo インターフェイス

ビデオのパレットの色を取得する。

構文

HRESULT GetVideoPaletteEntries(
    long StartIndex,
    long Entries,
    long *pRetrieved,
    long *pPalette
);

パラメータ

StartIndex
[in] パレットの開始インデックス。
Entries
[in] 必要なパレット エントリの数。
pRetrieved
[out] 実際に返されるエントリの数へのポインタ。
pPalette
[out] Microsoft Win32 PALETTEENTRY 構造体の配列へのポインタ。

戻り値

HRESULT 値を返す。

注意

アプリケーションは、このメソッドを使用して、ビデオで必要となる色数を照会できる。アプリケーションは NULL の pPalette パラメータを渡すことができ、pRetrieved パラメータには使用されている色の数が返される。pPalette パラメータは、PALETTEENTRY 構造体の配列へのポインタである。StartIndex パラメータおよび Entries パラメータを使用すると、アプリケーションは 1 つのメソッドでパレットの連続しているセクションを要求できる。このインターフェイスは、Win32 GetSystemPaletteEntries 関数でモデル化されている。

IBasicVideo::GetVideoSize

IBasicVideo インターフェイス

ネイティブ ビデオのディメンジョンを取得する。

構文

HRESULT GetVideoSize(
    long *pWidth,
    long *pHeight
);

パラメータ

pWidth
[out] ビデオ ウィンドウの幅へのポインタ (ピクセル単位)。
pHeight
[out] ビデオ ウィンドウの高さへのポインタ (ピクセル単位)。

戻り値

HRESULT 値を返す。

注意

このメソッドは、設定されている可能性のある転送元矩形を無視して、ネイティブなビデオの幅および高さを取得する。Microsoft® ActiveX® コントロールまたはその他のアプリケーションは、この情報を使用して複合ドキュメント内の領域をネゴシエートできる。

IBasicVideo::get_VideoWidth

IBasicVideo インターフェイス

現在のビデオの幅を取得する。

構文

HRESULT get_VideoWidth(
    long *pVideoWidth
);

パラメータ

pVideoWidth
[out] ビデオのネイティブの幅へのポインタ (ピクセル単位)。

戻り値

HRESULT 値を返す。

注意

このメソッドは、レンダラに供給されるビデオの実際の幅を返す。このメソッドは設定された転送元矩形を対象としておらず、単純にネイティブの水平ディメンジョンを返す。アプリケーションはこのメソッドを使用して埋め込み ActiveX ドキュメントとの間でサイズ要件をネゴシエートできる。

IBasicVideo::IsUsingDefaultDestination

IBasicVideo インターフェイス

レンダラがデフォルトの転送先矩形を使用しているかどうかを判別する。

構文

HRESULT IsUsingDefaultDestination(void);

戻り値

HRESULT 値を返す。デフォルトの転送先矩形が使用されている場合は S_OK、それ以外の場合は S_FALSE を返す。

注意

フィルタに転送先矩形のデフォルト設定を使用するように指示する場合に、IBasicVideo::SetDefaultDestinationPosition メソッドを使用できる。IsUsingDefaultDestination メソッドは、その設定が使用されているかどうかを返す。

IBasicVideo::IsUsingDefaultSource

IBasicVideo インターフェイス

レンダラがデフォルトの転送元矩形を使用しているかどうかを判別する。

構文

HRESULT IsUsingDefaultSource(void);

戻り値

HRESULT 値を返す。デフォルトの転送元矩形が使用されている場合は S_OK、それ以外の場合は S_FALSE を返す。

注意

フィルタに転送元矩形のデフォルト設定を使用するように指示する場合に、IBasicVideo::SetDefaultSourcePosition メソッドを使用できる。IsUsingDefaultSource メソッドはその設定が使用されているかどうかを返す。

IBasicVideo::put_DestinationHeight

IBasicVideo インターフェイス

転送先矩形の高さを設定する。

構文

HRESULT put_DestinationHeight(
    long DestinationHeight
);

パラメータ

DestinationHeight
[in] 新しい高さ (ピクセル単位)。

戻り値

HRESULT 値を返す。

注意

この座標を設定しても、転送先矩形の y 軸の基点には影響を与えない。

IBasicVideo::put_DestinationLeft

IBasicVideo インターフェイス

転送先の x 軸の基点の座標を設定する。

構文

HRESULT put_DestinationLeft(
    long DestinationLeft
);

パラメータ

DestinationLeft
[in] 新しい x 軸の基点。

戻り値

HRESULT 値を返す。

注意

この座標を設定しても、転送先矩形の幅には影響を与えない。

IBasicVideo::put_DestinationTop

IBasicVideo インターフェイス

転送先の y 軸の基点の座標を設定する。

構文

HRESULT put_DestinationTop(
    long DestinationTop
);

パラメータ

DestinationTop
[in] 新しい y 軸の基点。

戻り値

HRESULT 値を返す。

注意

この座標を設定しても、転送先矩形の高さには影響を与えない。

IBasicVideo::put_DestinationWidth

IBasicVideo インターフェイス

転送先矩形の幅を設定する。

構文

HRESULT put_DestinationWidth(
    long DestinationWidth
);

パラメータ

DestinationWidth
[in] 新しい幅 (ピクセル単位)。

戻り値

HRESULT 値を返す。

注意

この座標を設定しても、転送先矩形の x 軸の基点には影響を与えない。

IBasicVideo::put_SourceHeight

IBasicVideo インターフェイス

転送元矩形の高さを設定する。

構文

HRESULT put_SourceHeight(
    long SourceHeight
);

パラメータ

SourceHeight
[in] 新しい矩形の高さ (ピクセル単位)。

戻り値

HRESULT 値を返す。

注意

転送元矩形の高さを設定しても、転送元の y 軸の座標には影響を与えない。

IBasicVideo::put_SourceLeft

IBasicVideo インターフェイス

転送元矩形の x 軸の座標を設定する。

構文

HRESULT put_SourceLeft(
    long SourceLeft
);

パラメータ

SourceLeft
[in] 転送元矩形の x 軸の基点。

戻り値

HRESULT 値を返す。

注意

このメソッドを設定しても、転送元矩形の幅には影響を与えない。

IBasicVideo::put_SourceTop

IBasicVideo インターフェイス

転送元矩形の y 軸の基点の座標を設定する。

構文

HRESULT put_SourceTop(
    long SourceTop
);

パラメータ

SourceTop
[in] 新しいトップ座標。

戻り値

HRESULT 値を返す。

注意

このメソッドを設定しても、転送元矩形の高さには影響を与えない。

IBasicVideo::put_SourceWidth

IBasicVideo インターフェイス

転送元矩形の幅を設定する。

構文

HRESULT put_SourceWidth(
    long SourceWidth
);

パラメータ

SourceWidth
[in] 転送元矩形の新しい幅 (ピクセル単位)。

戻り値

HRESULT 値を返す。

注意

このメソッドを設定しても、転送元矩形の x 軸の座標には影響を与えない。

IBasicVideo::SetDefaultDestinationPosition

IBasicVideo インターフェイス

レンダラが再生にウィンドウ全体を使用するように、ビデオ ウィンドウのデフォルトの転送先位置を設定する。

構文

HRESULT SetDefaultDestinationPosition(void);

戻り値

HRESULT 値を返す。

IBasicVideo::SetDefaultSourcePosition

IBasicVideo インターフェイス

デフォルトの転送元矩形を使用するようにレンダラに指示する。

構文

HRESULT SetDefaultSourcePosition(void);

戻り値

HRESULT 値を返す。

IBasicVideo::SetDestinationPosition

IBasicVideo インターフェイス

ウィンドウ座標内での転送先矩形の位置を設定する。

構文

HRESULT SetDestinationPosition(
    long Left,
    long Top,
    long Width,
    long Height
);

パラメータ

Left
[in] 転送先ウィンドウの x 軸の基点。
Top
[in] 転送先ウィンドウの y 軸の基点。
Width
[in] 転送先ウィンドウの幅 (ピクセル単位)。
Height
[in] 転送先ウィンドウの高さ (ピクセル単位)。

戻り値

HRESULT 値を返す。

注意

このメソッドを使用すると、IBasicVideo::put_DestinationLeftIBasicVideo::put_DestinationTopIBasicVideo::put_DestinationWidth、および IBasicVideo::put_DestinationHeight の各メソッドを個別に呼び出した場合と同じ結果が得られる。

IBasicVideo::SetSourcePosition

IBasicVideo インターフェイス

利用可能なビデオにクリップされる転送元矩形を設定する。

構文

HRESULT SetSourcePosition(
    long Left,
    long Top,
    long Width,
    long Height
);

パラメータ

Left
[in] 転送元ウィンドウの x 軸の基点。
Top
[in] 転送元ウィンドウの y 軸の基点。
Width
[in] 転送元ウィンドウの幅 (ピクセル単位)。
Height
[in] 転送元ウィンドウの高さ (ピクセル単位)。

戻り値

HRESULT 値を返す。

注意

このメソッドを使用すると、IBasicVideo::put_SourceLeftIBasicVideo::put_SourceTopIBasicVideo::put_SourceWidth、および IBasicVideo::put_SourceHeight の各メソッドを個別に呼び出した場合と同じ結果が得られる。

この座標を設定しても、転送先矩形の高さには影響を与えない。