Microsoft DirectX 8.0

CBaseControlVideo クラス

CBaseControlVideo クラスの階層

CBaseControlVideo クラスは、IBasicVideo デュアル インターフェイスを実装し、汎用ビデオ ウィンドウのビデオのプロパティを制御する。一般的に、CBaseControlVideo オブジェクトは、ディスプレイ上のウィンドウにビデオを描画するビデオ レンダラである。

CBaseControlVideo クラスはプロパティとメソッドの両方をサポートする。プロパティは、多くのオートメーション コントローラ (Microsoft® Visual Basic® プログラミング環境など) からの方が容易にアクセスできる。ただし、処理によっては、アプリケーションで複数のプロパティを同時に変更できる機能が必要になる。このため、複数の関連するプロパティを変更できるメソッドが提供されている。

CBaseControlVideo の多くのメンバ関数では、ビデオ レンダラがフィルタ グラフに接続されている必要がある。接続されていない場合、メンバ関数は VFW_E_NOT_CONNECTED を返す。接続と切断を繰り返しても、ビデオ レンダラに設定されたプロパティは変化しない。すべてのアプリケーションで、プレゼンテーションを開始する前にレンダラのプロパティをリセットしたことを確認する必要がある。

ビデオを処理する場合、アプリケーションは使用するビデオの部分を選択できる。この部分は、CBaseControlVideo オブジェクトが制御する転送元矩形である。CBaseControlVideo は、アプリケーションが転送元矩形を設定および取得できるようにする。CBaseControlVideo が使用するすべての矩形では、Microsoft Win32® プログラミングで使用される上、左、右、下ではなく、上、左、幅、高さが使用される。転送元矩形が設定されていない場合、転送元矩形のプロパティはフル サイズのネイティブ ビデオのサイズを返す。

プロテクト データ メンバ

m_pFilter 所有するメディア フィルタへのポインタ。
m_pInterfaceLock 外部的に定義されるクリティカル セクション。
m_pPin 接続のメディア タイプの制御。

メンバ関数

CBaseControlVideo CBaseControlVideo オブジェクトを作成する。
CopyImage ビデオ イメージのメモリ コピーを作成する。
GetImageSize ビデオ イメージのサイズ情報を取得する。
SetControlVideoPin このオブジェクトが同期しなければならないピンを設定する。

オーバーライド可能なメンバ関数

CheckSourceRect 転送元矩形が有効であるかどうかを判断する。
CheckTargetRect 転送先矩形が有効であるかどうかを判断する。
GetSourceRect 現在のビデオの転送元矩形を取得する (純粋仮想)。
GetStaticImage メモリ バッファ内の現在のイメージを返す (純粋仮想)。
GetTargetRect 現在のビデオの転送先矩形を取得する (純粋仮想)。
GetVideoFormat ビデオ フォーマットを含む VIDEOINFOHEADER 構造体を取得する。
IsDefaultSourceRect レンダラがデフォルトの転送元矩形を使用しているかどうかを判断する (純粋仮想)。
IsDefaultTargetRect レンダラがデフォルトの転送先矩形を使用しているかどうかを判断する (純粋仮想)。
OnUpdateRectangles 転送元または転送先矩形が変更されると呼び出される。
OnVideoSizeChange EC_VIDEO_SIZE_CHANGED をアプリケーションに渡す。
SetDefaultSourceRect デフォルトのビデオの転送元矩形を設定する (純粋仮想)。
SetDefaultTargetRect デフォルトのビデオの転送先矩形を設定する (純粋仮想)。
SetSourceRect 現在のビデオの転送元矩形を設定する (純粋仮想)。
SetTargetRect 現在の転送先矩形を設定する (純粋仮想)。

実装される IBasicVideo メソッド

get_AvgTimePerFrame フレームごとのおよその平均時間を取得する。
get_BitErrorRate およそのビット エラー レートを取得する。
get_BitRate ビデオのおよそのビット レートを取得する。
GetCurrentImage 現在のイメージのメモリ レンダリングを取得する。
get_DestinationHeight 現在の転送先矩形の高さを取得する。
get_DestinationLeft 現在の転送先矩形の左の座標を取得する。
GetDestinationPosition 現在の転送先の位置を取得する。
get_DestinationTop 現在の転送先矩形の上の座標を取得する。
get_DestinationWidth 現在の転送先矩形の幅を取得する。
get_SourceHeight 現在の転送元矩形の高さを取得する。
get_SourceLeft 現在の転送元矩形の左の座標を取得する。
GetSourcePosition 現在の転送元の位置を取得する。
get_SourceTop 現在の転送元矩形の上の座標を取得する。
get_SourceWidth 現在の転送元矩形の幅を取得する。
get_VideoHeight ネイティブ ビデオの高さを取得する。
GetVideoPaletteEntries ビデオのパレット エントリの範囲を取得する。
GetVideoSize ネイティブ ビデオの幅と高さを取得する。
get_VideoWidth ネイティブ ビデオの幅を取得する。
IsUsingDefaultDestination レンダラがデフォルトの転送先ウィンドウを使用しているかどうかを判断する。
IsUsingDefaultSource レンダラがデフォルトの転送元ウィンドウを使用しているかどうかを判断する。
put_DestinationHeight 転送先矩形の高さを設定する。
put_DestinationLeft 転送先矩形の左の座標を設定する。
put_DestinationTop 転送先矩形の上の座標を設定する。
put_DestinationWidth 転送先矩形の幅を設定する。
put_SourceHeight 転送元矩形の高さを設定する。
put_SourceLeft 転送元矩形の左の座標を設定する。
put_SourceTop 転送元矩形の上の座標を設定する。
put_SourceWidth 転送元矩形の幅を設定する。
SetDefaultDestinationPosition デフォルトの転送先の位置を再度設定する。
SetDefaultSourcePosition デフォルトの転送元の位置を再度設定する。
SetDestinationPosition 転送先矩形の位置を設定する。
SetSourcePosition 転送元矩形の位置を設定する。

CBaseControlVideo::CBaseControlVideo

CBaseControlVideo クラス

CBaseControlVideo オブジェクトを作成する。

構文

CBaseControlVideo(
CBaseFilter *pFilter,
CCritSec *pInterfaceLock,
TCHAR *pName,
LPUNKNOWN pUnk,
HRESULT *phr
    );

パラメータ

pFilter
所有するメディア フィルタ オブジェクトへのポインタ。
pInterfaceLock
ロックのために使用するクリティカル セクションへのポインタ。
pName
オブジェクト記述へのポインタ。
pUnk
オブジェクトが集成の一部ではない場合は、制御する IUnknown インターフェイスへのポインタ。それ以外の場合は、NULL でなければならない。
phr
コンストラクタ メソッドの成功または失敗を示す HRESULT 値を受け取る変数へのポインタ。

戻り値

戻り値なし。

注意

このオブジェクトは、IBasicVideo コントロール インターフェイスを実装する。

このクラスで実装する IBasicVideo のすべてのインターフェイス メソッドでは、フィルタが正しく接続されている必要がある。このため、このクラスには同期しなければならないピンが渡される。インターフェイス メソッドが呼び出されると、オブジェクトは必ずピンが接続されていることを確認する。

CBaseControlVideo::CheckSourceRect

CBaseControlVideo クラス

転送元矩形が有効であるかどうかを判断する。

構文

virtual HRESULT CheckSourceRect(
RECT *pSourceRect
    );

パラメータ

pSourceRect
チェックする転送元矩形へのポインタ。

戻り値

有効ではない場合は E_INVALIDARG を返す。それ以外の場合は NOERROR (S_OK) を返す。

注意

このメンバ関数は、要求された転送元矩形が、使用可能な転送元ビデオよりも大きくないかチェックする。左および上の座標を負の値にすることはできない。また、幅および高さがビデオの右および下を超えることはできない。

CBaseControlVideo::CheckTargetRect

CBaseControlVideo クラス

転送先矩形が有効であるかどうかを判断する。

構文

virtual HRESULT CheckTargetRect(
RECT *pTargetRect
    );

パラメータ

pTargetRect
チェックする転送先矩形へのポインタ。

戻り値

有効ではない場合は E_INVALIDARG を返す。それ以外の場合は NOERROR (S_OK) を返す。

注意

このメンバ関数は、要求された転送先矩形が有効であるかどうかを判断する。転送先矩形は、ウィンドウの論理クライアントで位置を指定するので、最終的な幅および高さを 0 および負の値にすることはできないが、座標は負の値になる場合がある。

CBaseControlVideo::CopyImage

CBaseControlVideo クラス

イメージのメモリ コピーを作成する。

構文

HRESULT CopyImage(
IMediaSample *pMediaSample,
VIDEOINFOHEADER *pVideoInfo,
LONG *pBufferSize,
BYTE *pVideoImage,
RECT *pSourceRect
    );

パラメータ

pMediaSample
ビデオ イメージを含むサンプルへのポインタ。
pVideoInfo
ビデオ イメージを表すフォーマットへのポインタ。
pBufferSize
出力バッファのサイズへのポインタ。
pVideoImage
出力バッファへのポインタ。
pSourceRect
ビデオの転送元矩形へのポインタ。

戻り値

pVideoImage パラメータが NULL の場合、pBufferSize パラメータには、イメージを保存するために出力バッファが必要とするバイト数が格納される。渡されたバッファが小さすぎる場合や、このメンバ関数が十分なメモリを割り当てることができない場合、このメンバ関数は E_OUTOFMEMORY を返す。

注意

このメンバ関数はサンプルからイメージを取得し、出力バッファにコピーする。出力バッファにコピーされたビデオのセクションは、IBasicVideo インターフェイスで設定された転送元矩形を反映する (ただし、転送先矩形は反映しない)。

CBaseControlVideo::get_AvgTimePerFrame

CBaseControlVideo クラス

フレームごとの平均時間を取得する。

構文

HRESULT get_AvgTimePerFrame(
REFTIME *pAvgTimePerFrame
    );

パラメータ

pAvgTimePerFrame
フレームごとの平均時間へのポインタ。

戻り値

成功した場合は NOERROR を返す。十分なメモリがない場合は E_OUTOFMEMORY を返す。

注意

このメンバ関数は、IBasicVideo::get_AvgTimePerFrame メソッドを実装する。このメンバ関数は、純粋仮想メンバ関数 CBaseControlVideo::GetVideoFormat を呼び出して、派生クラスから VIDEOINFOHEADER 構造体を取得する。

CBaseControlVideo::get_BitErrorRate

CBaseControlVideo クラス

ビデオのおよそのビット エラー レートを取得する。

構文

HRESULT get_BitErrorRate(
long *pBitErrorRate
    );

パラメータ

pBitErrorRate
ビット エラー レート (およそこの数のビットについて 1 つのエラー) へのポインタ。

戻り値

成功した場合は NOERROR を返す。十分なメモリがない場合は E_OUTOFMEMORY を返す。

注意

このメンバ関数は、IBasicVideo::get_BitErrorRate メソッドを実装する。このメンバ関数は、純粋仮想メンバ関数 CBaseControlVideo::GetVideoFormat を呼び出して、派生クラスから VIDEOINFOHEADER 構造体を取得する。

CBaseControlVideo::get_BitRate

CBaseControlVideo クラス

ビデオのおよそのビット レートを取得する。

構文

HRESULT get_BitRate(
long *pBitRate
    );

パラメータ

pBitRate
ビット レート (ビット/秒) へのポインタ。

戻り値

成功した場合は NOERROR を返す。十分なメモリがない場合は E_OUTOFMEMORY を返す。

注意

このメンバ関数は、IBasicVideo::get_BitRate メソッドを実装する。このメンバ関数は、純粋仮想メンバ関数 CBaseControlVideo::GetVideoFormat を呼び出して、派生クラスから VIDEOINFOHEADER 構造体を取得する。

CBaseControlVideo::GetCurrentImage

CBaseControlVideo クラス

レンダラの現在のイメージのコピーを取得する。

構文

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

パラメータ

pBufferSize
出力バッファのサイズへのポインタ。
pVideoImage
イメージの出力バッファへのポインタ。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_INVALIDARG無効な引数。
E_OUTOFMEMORYメモリ不足。pVideoInfo パラメータが NULL の場合に返される。
NOERROR成功。
VFW_E_NOT_PAUSEDフィルタが停止されていないため、処理を実行できなかった。

注意

このメンバ関数はサンプルからイメージを取得し、出力バッファにコピーする。出力バッファにコピーされたビデオのセクションは、IBasicVideo インターフェイスで設定された転送元矩形を反映する。転送先の矩形は反映されない。

CBaseControlVideo::get_DestinationHeight

CBaseControlVideo クラス

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

構文

HRESULT get_DestinationHeight(
long *pDestinationHeight
    );

パラメータ

pDestinationHeight
転送先の高さへのポインタ。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_POINTERNull ポインタ引数。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。
NOERROR成功。

注意

このメンバ関数は、IBasicVideo::get_DestinationHeight メソッドを実装する。

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、ビデオが再生される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::get_DestinationLeft

CBaseControlVideo クラス

現在の転送先矩形の左の座標を取得する。

構文

HRESULT get_DestinationLeft(
long *pDestinationLeft
    );

パラメータ

pDestinationLeft
転送先矩形の左の座標へのポインタ。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_POINTERNull ポインタ引数。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。
NOERROR成功。

注意

このメンバ関数は、IBasicVideo::get_DestinationLeft メソッドを実装する。

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::GetDestinationPosition

CBaseControlVideo クラス

1 つの処理で転送先矩形を取得する。

構文

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

パラメータ

pLeft
転送先矩形の左の座標へのポインタ。
pTop
転送先矩形の上の座標へのポインタ。
pWidth
転送先矩形の幅へのポインタ。
pHeight
転送先矩形の高さへのポインタ。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_POINTERNull ポインタ引数。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。
NOERROR成功。

注意

このメンバ関数は、CBaseControlVideo::get_DestinationLeftCBaseControlVideo::get_DestinationTopCBaseControlVideo::get_DestinationWidth、および CBaseControlVideo::get_DestinationHeight メンバ関数の個々の呼び出しの代わりに使用できる。IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::get_DestinationTop

CBaseControlVideo クラス

現在の転送先矩形の上の座標を取得する。

構文

HRESULT get_DestinationTop(
long *pDestinationTop
    );

パラメータ

pDestinationTop
転送先矩形の上の座標へのポインタ。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_POINTERNull ポインタ引数。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。
NOERROR成功。

注意

このメンバ関数は、IBasicVideo::get_DestinationTop メソッドを実装する。

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::get_DestinationWidth

CBaseControlVideo クラス

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

構文

HRESULT get_DestinationWidth(
long *pDestinationWidth
    );

パラメータ

pDestinationWidth
転送先の幅へのポインタ。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_POINTERNull ポインタ引数。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。
NOERROR成功。

注意

このメンバ関数は、IBasicVideo::get_DestinationWidth メソッドを実装する。

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::GetImageSize

CBaseControlVideo クラス

ビデオ イメージのサイズ情報を取得する。

構文

HRESULT GetImageSize(
VIDEOINFOHEADER *pVideoInfo,
long *pBufferSize,
RECT *pSourceRect
    );

パラメータ

pVideoInfo
格納される VIDEOINFOHEADER 構造体へのポインタ。
pBufferSize
ビデオ バッファのサイズへのポインタ。
pSourceRect
ビデオの転送元矩形のディメンジョンへのポインタ。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_INVALIDARG無効な引数。データ フォーマットに互換性がない。
E_UNEXPECTED予期しないエラーが発生した。1 つ以上の引数が NULL である。
NOERROR成功。

注意

このメンバ関数は、DIB イメージのメモリ イメージ レンダリングを作成するために使用するヘルパー関数である。このメンバ関数に渡された pVideoImage パラメータが NULL である場合に、CBaseControlVideo::GetCurrentImage の基底クラスの実装から呼び出される。この結果、このメンバ関数は pBufferSize および pSourceRect の情報を使用して、VIDEOINFOHEADER 構造体を構築して返す。

CBaseControlVideo::get_SourceHeight

CBaseControlVideo クラス

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

構文

HRESULT get_SourceHeight(
long *pSourceHeight
    );

パラメータ

pSourceHeight
転送元矩形の高さへのポインタ。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_POINTERNull ポインタ引数。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。
NOERROR成功。

注意

このメンバ関数は、IBasicVideo::get_SourceHeight メソッドを実装する。

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::get_SourceLeft

CBaseControlVideo クラス

現在の転送元矩形の左の座標を取得する。

構文

HRESULT get_SourceLeft(
long *pSourceLeft
    );

パラメータ

pSourceLeft
現在の転送元矩形の左の座標へのポインタ。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_POINTERNull ポインタ引数。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。
NOERROR成功。

注意

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::GetSourcePosition

CBaseControlVideo クラス

1 つの処理で転送元矩形の位置およびディメンジョンを取得する。

構文

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

パラメータ

pLeft
転送元矩形の左の座標へのポインタ。
pTop
転送元矩形の上の座標へのポインタ。
pWidth
転送元矩形の幅へのポインタ。
pHeight
転送元矩形の高さへのポインタ。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_POINTERNull ポインタ引数。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。
NOERROR成功。

注意

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::GetSourceRect

CBaseControlVideo クラス

転送元矩形を取得する。これは内部的なメソッドである。

構文

virtual HRESULT GetSourceRect(
RECT *pSourceRect
) PURE;

パラメータ

pSourceRect
取得された転送元矩形へのポインタ。

戻り値

HRESULT 値を返す。

注意

ビデオ レンダラによって保持されている転送元矩形を返すには、このメンバ関数を派生クラスでオーバーライドしなければならない。このメンバ関数は、次の CBaseControlVideo メンバ関数から呼び出される。

次の例は、この関数を派生クラスに実装する方法を示している。

// 現在の転送元矩形を返す

HRESULT CVideoText::GetSourceRect(RECT *pSourceRect)
{
ASSERT(pSourceRect);
m_pRenderer->m_DrawImage.GetSourceRect(pSourceRect);
return NOERROR;
}

この例では、CVideoText は CBaseControlVideo から派生したクラスであり、m_pRenderer は CBaseVideoRenderer から派生したクラスのオブジェクトを保持する。また、派生クラスで定義される m_DrawImage データ メンバは CDrawImage オブジェクトを保持する。

CBaseControlVideo::get_SourceTop

CBaseControlVideo クラス

現在の転送元矩形の上の座標を取得する。

構文

HRESULT get_SourceTop(
long *pSourceTop
    );

パラメータ

pSourceTop
転送元矩形の上の座標へのポインタ。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_POINTERNull ポインタ引数。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。
NOERROR成功。

注意

このメンバ関数は、IBasicVideo::get_SourceTop メソッドを実装する。

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::get_SourceWidth

CBaseControlVideo クラス

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

構文

HRESULT get_SourceWidth(
long *pSourceWidth
    );

パラメータ

pSourceWidth
現在の転送元矩形の幅へのポインタ。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_POINTERNull ポインタ引数。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。
NOERROR成功。

注意

このメンバ関数は、IBasicVideo::get_SourceWidth メソッドを実装する。

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::GetStaticImage

CBaseControlVideo クラス

派生クラスでオーバーライドする純粋仮想メソッド。

構文

virtual HRESULT GetStaticImage(
long *pBufferSize,
long *pDIBImage
) PURE;

パラメータ

pBufferSize
出力バッファのサイズへのポインタ。
pDIBImage
出力バッファへのポインタ。

戻り値

HRESULT 値を返す。

注意

IBasicVideo インターフェイスを使用して、アプリケーションでメモリ バッファ内にある現在のイメージのコピーを要求できる (レンダラがサポートしていない場合は、E_NOIMPL を返すことができる)。イメージを取得する方法は、派生クラスで決定する。アプリケーションが CBaseControlVideo::GetStaticImage を呼び出す場合、アプリケーションは、派生クラスでオーバーライドして実装する必要があるこの純粋仮想メソッドを呼び出す。これは、CBaseControlVideo::GetCurrentImage メンバ関数によっても呼び出される。

このクラスは、イメージを含むサンプルを取得できるヘルパー メンバ関数 CBaseControlVideo::CopyImage を提供しする。このメンバ関数は (現在の転送元矩形に基づいて) イメージの関連するセクションをコピーし、アプリケーションによって提供された出力バッファにコピーする。

次の例は、このメンバ関数を派生クラスに実装する方法を示している。この例で、m_pRenderer は CBaseVideoRenderer から派生したクラスのオブジェクトを保持する。

// ビデオ レンダラ内の現在のイメージのコピーを返す。

HRESULT CVideoText::GetStaticImage(long *pBufferSize,long *pDIBImage)
{
// レンダラが保持しているサンプルを取得する。

IMediaSample *pMediaSample = m_pRenderer->GetCurrentSample();
if (pMediaSample == NULL) {
return E_UNEXPECTED;
    }

// 基底クラスのヘルパー メソッドを呼び出して処理を行う。

HRESULT hr = CopyImage(pMediaSample,          // イメージを含むバッファ
&m_pRenderer->m_mtIn,                // ビットマップを表すタイプ
pBufferSize,                                     // DIB のバッファのサイズ
(BYTE*) pDIBImage);                   // 出力用のデータ バッファ

pMediaSample->Release();
return hr;
}

CBaseControlVideo::GetTargetRect

CBaseControlVideo クラス

転送先矩形を取得する。これは内部的なヘルパー メンバ関数である。

構文

virtual HRESULT GetTargetRect(
RECT *pTargetRect
) PURE;

パラメータ

pTargetRect
転送先矩形へのポインタ。

戻り値

HRESULT 値を返す。

注意

ビデオ レンダラによって保持されている転送先矩形を返すには、このメンバ関数を派生クラスでオーバーライドしなければならない。このメンバ関数は、次の CBaseControlVideo メンバ関数から呼び出される。

次の例は、この関数を派生クラスに実装する方法を示している。

// 現在の転送先矩形を返す。

HRESULT CVideoText::GetTargetRect(RECT *pTargetRect)
{
ASSERT(pTargetRect);
m_pRenderer->m_DrawImage.GetTargetRect(pTargetRect);
return NOERROR;
}

この例では、CVideoText は CBaseControlVideo から派生したクラスであり、m_pRenderer は CBaseVideoRenderer から派生したクラスのオブジェクトを保持する。また、派生クラスで定義される m_DrawImage データ メンバは CDrawImage オブジェクトを保持する。

CBaseControlVideo::GetVideoFormat

CBaseControlVideo クラス

現在のビデオ フォーマットを表すビデオ サンプルを取得する。

構文

virtual VIDEOINFOHEADER * GetVideoFormat(void) PURE;

戻り値

現在のビデオ フォーマットを含む VIDEOINFOHEADER 構造体へのポインタを返す。

注意

IBasicVideo を使用して特定の情報を返してチェックするには、オブジェクトで現在のビデオ フォーマットがわかっている必要がある。オブジェクトは、派生クラスでオーバーライドする必要があるこの純粋仮想メソッドを呼び出すことによって、この情報を取得する。このメンバ関数は、次の CBaseControlVideo メンバ関数から呼び出される。

CBaseControlVideo::get_VideoHeight

CBaseControlVideo クラス

ネイティブ ビデオの高さを取得する。

構文

HRESULT get_VideoHeight(
long *pVideoHeight
    );

パラメータ

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

戻り値

成功した場合は NOERROR を返す。十分なメモリがない場合は E_OUTOFMEMORY を返す。

注意

このメンバ関数は、IBasicVideo::get_VideoHeight メソッドを実装する。このメンバ関数は、純粋仮想メンバ関数 CBaseControlVideo::GetVideoFormat を呼び出して、派生クラスから VIDEOINFOHEADER 構造体を取得する。

CBaseControlVideo::GetVideoPaletteEntries

CBaseControlVideo クラス

ビデオのパレット エントリの範囲を取得する。

構文

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

パラメータ

StartIndex
0 から始まる開始パレット エントリ。
Entries
必要なエントリの数。
pRetrieved
取得されたカラーの数へのポインタ。
pPalette
カラーの出力バッファへのポインタ。

戻り値

成功した場合は NOERROR、ビデオ サンプルにカラー パレットがない場合は VFW_E_NO_PALETTE_AVAILABLE、十分なメモリがない場合は E_OUTOFMEMORY、StartIndex が無効である場合は E_INVALIDARG、パレットにカラーがない場合は S_FALSE を返す。

注意

このメンバ関数は、現在のビデオのパレットを、ユーザーによって割り当てられた配列として返す。一貫性を保つために、Win32 PALETTEENTRY 構造体のメンバを使用してカラーを返す。パラメータは LONG であるが、RGBQUAD 構造体のメンバは使用しない。メモリは呼び出し元によって割り当てられるので、単にそれぞれをコピーする。要求されたエントリの数および開始位置のオフセットの両方が有効であることを確認する。エントリの数が 0 である場合は、S_FALSE コードを返す。

CBaseControlVideo::GetVideoSize

CBaseControlVideo クラス

ネイティブ ビデオの幅と高さを取得する。

構文

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

パラメータ

pWidth
ビデオの幅へのポインタ。
pHeight
ビデオの高さへのポインタ。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_OUTOFMEMORYメモリ不足。
E_POINTERNull ポインタ引数。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。
NOERROR成功。

CBaseControlVideo::get_VideoWidth

CBaseControlVideo クラス

ネイティブ ビデオの幅を取得する。

構文

HRESULT get_VideoWidth(
long *pVideoWidth
    );

パラメータ

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

戻り値

成功した場合は NOERROR を返す。十分なメモリがない場合は E_OUTOFMEMORY を返す。

注意

このメンバ関数は、IBasicVideo::get_VideoWidth メソッドを実装する。このメンバ関数は、純粋仮想メンバ関数 CBaseControlVideo::GetVideoFormat を呼び出して、派生クラスから VIDEOINFOHEADER 構造体を取得する。

CBaseControlVideo::IsDefaultSourceRect

CBaseControlVideo クラス

レンダラがデフォルトの転送元矩形を使用しているかどうかを判断する (純粋仮想)。

構文

virtual HRESULT IsDefaultSourceRect(void) PURE;

戻り値

HRESULT 値を返す。レンダラがデフォルトの転送元を使用している場合は S_OK、それ以外の場合は S_FALSE を返す。

注意

このメンバ関数は派生クラスで実装しなければならない。これは、CBaseControlVideo::IsUsingDefaultSource メンバ関数によって呼び出される。

次の例は、この関数を派生クラスに実装する方法を示している。

// デフォルトの転送元を使用している場合は S_OK、それ以外の場合は S_FALSE を返す。

HRESULT CVideoText::IsDefaultSourceRect()
{
RECT SourceRect;

VIDEOINFO *pVideoInfo = (VIDEOINFO *) m_pRenderer->m_mtIn.Format();
BITMAPINFOHEADER *pHeader = HEADER(pVideoInfo);
m_pRenderer->m_DrawImage.GetSourceRect(&SourceRect);

// ビデオのディメンジョンに一致する座標をチェックする。

if (SourceRect.left != 0 || SourceRect.top != 0 ||
SourceRect.right != pHeader->biWidth ||
SourceRect.bottom != pHeader->biHeight) {
return S_FALSE;
    }
return S_OK;
}

この例では、CVideoText は CBaseControlVideo から派生したクラスであり、m_pRenderer は CBaseVideoRenderer から派生したクラスのオブジェクトを保持する。また、派生クラスで定義される m_DrawImage データ メンバは CDrawImage オブジェクトを保持する。この派生クラスで定義される m_mtIn データ メンバも、入力ピンのメディア タイプを持つ CMediaType オブジェクトを保持する。

CBaseControlVideo::IsDefaultTargetRect

CBaseControlVideo クラス

レンダラがデフォルトの転送先矩形を使用しているかどうかを判断する (純粋仮想)。

構文

virtual HRESULT IsDefaultTargetRect(void) PURE;

戻り値

HRESULT 値を返す。レンダラがデフォルトの転送先を使用している場合は S_OK、それ以外の場合は S_FALSE を返す。

注意

このメンバ関数は派生クラスで実装しなければならない。これは、CBaseControlVideo::IsUsingDefaultDestination メンバ関数によって呼び出される。

次の例は、この関数を派生クラスに実装する方法を示している。

// デフォルトの転送先を使用している場合は S_OK、それ以外の場合は S_FALSE を返す。

HRESULT CVideoText::IsDefaultTargetRect()
{
RECT TargetRect;

VIDEOINFO *pVideoInfo = (VIDEOINFO *) m_pRenderer->m_mtIn.Format();
BITMAPINFOHEADER *pHeader = HEADER(pVideoInfo);
m_pRenderer->m_DrawImage.GetTargetRect(&TargetRect);

// 初期クライアント領域に一致する転送先をチェックする。

if (TargetRect.left != 0 || TargetRect.top != 0 ||
TargetRect.right != m_Size.cx ||
TargetRect.bottom != m_Size.cy) {
return S_FALSE;
    }
return S_OK;
}

この例では、CVideoText は CBaseControlVideo から派生したクラスであり、m_pRenderer は CBaseVideoRenderer から派生したクラスのオブジェクトを保持する。また、派生クラスで定義される m_DrawImage データ メンバは CDrawImage オブジェクトを保持する。この派生クラスで定義される m_mtIn データ メンバも、入力ピンのメディア タイプを持つ CMediaType オブジェクトを保持する。

CBaseControlVideo::IsUsingDefaultSource

CBaseControlVideo クラス

レンダラがデフォルトの転送元ウィンドウを使用しているかどうかを判断する。

構文

virtual HRESULT IsUsingDefaultSource(void);

戻り値

HRESULT 値を返す。レンダラがデフォルトの転送元を使用している場合は S_OK、それ以外の場合は S_FALSE を返す。

CBaseControlVideo::IsUsingDefaultDestination

CBaseControlVideo クラス

レンダラがデフォルトの転送先ウィンドウを使用しているかどうかを判断する。

構文

virtual HRESULT IsUsingDefaultDestination(void);

戻り値

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

CBaseControlVideo::OnUpdateRectangles

CBaseControlVideo クラス

転送元矩形または転送先矩形のいずれかが変更されると呼び出される。

構文

virtual HRESULT OnUpdateRectangles(void);

戻り値

NOERROR を返す。

CBaseControlVideo::OnVideoSizeChange

CBaseControlVideo クラス

EC_VIDEO_SIZE_CHANGED メッセージをフィルタ グラフ マネージャに渡す。

構文

virtual HRESULT OnVideoSizeChange(void);

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_OUTOFMEMORYメモリ不足。

注意

ビデオ レンダラはビデオのサイズが変更されるたびにこのメンバ関数を呼び出す必要がある。通常、最初の接続の後に 1 回呼び出される。レンダラが動的なフォーマットの変更 (320 x 240 から 160 x 120) をサポートしている場合、レンダラは各変更の後にもこのメンバ関数を呼び出す必要がある。

CBaseControlVideo::put_DestinationHeight

CBaseControlVideo クラス

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

構文

HRESULT put_DestinationHeight(
long DestinationHeight
    );

パラメータ

DestinationHeight
新しい転送先の高さ。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_INVALIDARG無効な引数。
E_POINTERNull ポインタ引数。
NOERROR成功。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。

注意

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::put_DestinationLeft

CBaseControlVideo クラス

転送先矩形の左の座標を設定する。

構文

HRESULT put_DestinationLeft(
long DestinationLeft
    );

パラメータ

DestinationLeft
新しい転送先の左の座標。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_INVALIDARG無効な引数。
E_POINTERNull ポインタ引数。
NOERROR成功。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。

注意

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::put_DestinationTop

CBaseControlVideo クラス

転送先矩形の上の座標を設定する。

構文

HRESULT put_DestinationTop(
long DestinationTop
    );

パラメータ

DestinationTop
新しい転送先の上の座標。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_INVALIDARG無効な引数。
E_POINTERNull ポインタ引数。
NOERROR成功。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。

注意

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::put_DestinationWidth

CBaseControlVideo クラス

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

構文

HRESULT put_DestinationWidth(
long DestinationWidth
    );

パラメータ

DestinationWidth
新しい転送先の幅。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_INVALIDARG無効な引数。
E_POINTERNull ポインタ引数。
NOERROR成功。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。

注意

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::put_SourceHeight

CBaseControlVideo クラス

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

構文

HRESULT put_SourceHeight(
long SourceHeight
    );

パラメータ

SourceHeight
転送元の高さ。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_INVALIDARG無効な引数。
E_POINTERNull ポインタ引数。
NOERROR成功。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。

注意

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::put_SourceLeft

CBaseControlVideo クラス

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

構文

HRESULT put_SourceLeft(
long SourceLeft
    );

パラメータ

SourceLeft
新しい転送元の左の座標。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_INVALIDARG無効な引数。
E_POINTERNull ポインタ引数。
NOERROR成功。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。

注意

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::put_SourceTop

CBaseControlVideo クラス

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

構文

HRESULT put_SourceTop(
long SourceTop
    );

パラメータ

SourceTop
新しい転送元の上の座標。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_INVALIDARG無効な引数。
E_POINTERNull ポインタ引数。
NOERROR成功。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。

注意

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::put_SourceWidth

CBaseControlVideo クラス

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

構文

HRESULT put_SourceWidth(
long SourceWidth
    );

パラメータ

SourceWidth
新しい転送元矩形の幅。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_INVALIDARG無効な引数。
E_POINTERNull ポインタ引数。
NOERROR成功。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。

注意

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::SetControlVideoPin

CBaseControlVideo クラス

フィルタによって使用されるピンを設定する。

構文

void SetControlVideoPin(
CBasePin *pPin
    );

パラメータ

pPin
インターフェイスが同期するピンへのポインタ。

戻り値

戻り値なし。

注意

このインターフェイスは、フィルタが正常に接続された場合にのみ呼び出すことができる。オブジェクトは、このメソッドによって同期されるピンに渡される。ほとんどの場合、インターフェイス メソッドが呼び出されたときにピンが接続されているかどうかを判断し、失敗した場合は VFW_E_NOT_CONNECTED を返す。

CBaseControlVideo::SetDefaultDestinationPosition

CBaseControlVideo クラス

レンダラがデフォルトの転送先の位置 (通常、ウィンドウ クライアント領域全体) を使用するように設定する。

構文

HRESULT SetDefaultDestinationPosition(void);

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
NOERROR成功。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。

注意

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::SetDefaultSourcePosition

CBaseControlVideo クラス

レンダラがデフォルトの転送元の位置 (通常、すべてのネイティブ ビデオ) を使用するように設定する。

構文

HRESULT SetDefaultSourcePosition(void);

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
NOERROR成功。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。

注意

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::SetDefaultSourceRect

CBaseControlVideo クラス

デフォルトのビデオの転送元矩形を設定する (純粋仮想)。これは、転送元矩形がリセットされたときに呼び出される内部的なメンバ関数である。

構文

virtual HRESULT SetDefaultSourceRect(void) PURE;

戻り値

HRESULT 値を返す。

注意

転送元矩形をリセットするには、派生クラスでこれをオーバーライドする必要がある。このメンバ関数は CBaseControlVideo::SetDefaultSourcePosition から呼び出される。

次の例は、この関数を派生クラスに実装する方法を示している。

// これはデフォルトの転送元矩形をリセットすると呼び出される。

HRESULT CVideoText::SetDefaultSourceRect()
{
VIDEOINFO *pVideoInfo = (VIDEOINFO *) m_pRenderer->m_mtIn.Format();
BITMAPINFOHEADER *pHeader = HEADER(pVideoInfo);
RECT SourceRect = {0,0,pHeader->biWidth,pHeader->biHeight};
m_pRenderer->m_DrawImage.SetSourceRect(&SourceRect);
return NOERROR;
}

この例では、CVideoText は CBaseControlVideo から派生したクラスであり、m_pRenderer は CBaseVideoRenderer から派生したクラスのオブジェクトを保持する。また、派生クラスで定義される m_DrawImage データ メンバは CDrawImage オブジェクトを保持する。この派生クラスで定義される m_mtIn データ メンバも、入力ピンのメディア タイプを持つ CMediaType オブジェクトを保持する。

CBaseControlVideo::SetDefaultTargetRect

CBaseControlVideo クラス

デフォルトのビデオの転送先矩形を設定する (純粋仮想)。これは、転送先矩形がリセットされたときに呼び出される内部的なメンバ関数である。

構文

virtual HRESULT SetDefaultTargetRect(void) PURE;

戻り値

HRESULT 値を返す。

注意

ビデオの転送先矩形をリセットするには、派生クラスでこれをオーバーライドする必要がある。このメンバ関数は CBaseControlVideo::SetDefaultDestinationPosition メンバ関数から呼び出される。

次の例は、この関数を派生クラスに実装する方法を示している。

// これはデフォルトの転送先矩形をリセットすると呼び出される。

HRESULT CVideoText::SetDefaultTargetRect()
{
VIDEOINFO *pVideoInfo = (VIDEOINFO *) m_pRenderer->m_mtIn.Format();
BITMAPINFOHEADER *pHeader = HEADER(pVideoInfo);
RECT TargetRect = {0,0,m_Size.cx,m_Size.cy};
m_pRenderer->m_DrawImage.SetTargetRect(&TargetRect);
return NOERROR;
}

この例では、CVideoText は CBaseControlVideo から派生したクラスであり、m_pRenderer は CBaseVideoRenderer から派生したクラスのオブジェクトを保持する。また、派生クラスで定義される m_DrawImage データ メンバは CDrawImage オブジェクトを保持する。この派生クラスで定義される m_mtIn データ メンバも、入力ピンのメディア タイプを持つ CMediaType オブジェクトを保持する。

CBaseControlVideo::SetDestinationPosition

CBaseControlVideo クラス

ビデオの転送先矩形を設定する。

構文

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

パラメータ

Left
新しい左の座標。
Top
新しい上の座標。
Width
新しい幅。
Height
新しい高さ。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_INVALIDARG無効な引数。
E_POINTERNull ポインタ引数。
NOERROR成功。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。

注意

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::SetSourcePosition

CBaseControlVideo クラス

ビデオの新しい転送元の位置を設定する。

構文

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

パラメータ

Left
新しい左の座標。
Top
新しい上の座標。
Width
新しい幅。
Height
新しい高さ。

戻り値

実装に応じた HRESULT 値を返す。この値は、次の値の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_INVALIDARG無効な引数。
E_POINTERNull ポインタ引数。
NOERROR成功。
VFW_E_NOT_CONNECTEDピンが接続されていないため、処理を実行できない。

注意

IBasicVideo インターフェイスを使用して、アプリケーションでビデオの転送元矩形および転送先矩形を変更することができる。転送元矩形は、ネイティブ ビデオ ソースのいずれのセクションが画面上に表示されるかに影響を及ぼす。転送先矩形は、再生時にビデオが表示される場所に影響を及ぼす。転送先矩形は、再生されるウィンドウのクライアント領域に比例する。ウィンドウの左上角の座標は (0,0) である。

CBaseControlVideo::SetSourceRect

CBaseControlVideo クラス

現在のビデオの転送元矩形を設定する (純粋仮想)。これは、転送元矩形が変更されたときに呼び出される内部的なメンバ関数である。

構文

virtual HRESULT SetSourceRect(
RECT *pSourceRect
) PURE;

パラメータ

pSourceRect
転送元矩形へのポインタ。

戻り値

HRESULT 値を返す。

注意

転送元矩形が変更されたことを知るには、派生クラスでこのメンバ関数をオーバーライドする必要がある。このメンバ関数は、次のメンバ関数から呼び出される。

次の例は、この関数を派生クラスに実装する方法を示している。

HRESULT CVideoText::SetSourceRect(RECT *pSourceRect)
{
m_pRenderer->m_DrawImage.SetSourceRect(pSourceRect);
return NOERROR;
}

この例では、CVideoText は CBaseControlVideo から派生したクラスであり、m_pRenderer は CBaseVideoRenderer から派生したクラスのオブジェクトを保持する。また、派生クラスで定義される m_DrawImage データ メンバは CDrawImage オブジェクトを保持する。

CBaseControlVideo::SetTargetRect

CBaseControlVideo クラス

現在の転送先矩形を設定する (純粋仮想)。これは、転送先矩形が変更されたときに呼び出される内部的なメンバ関数である。

構文

virtual HRESULT SetTargetRect(
RECT *pTargetRect
) PURE;

パラメータ

pTargetRect
転送先矩形へのポインタ。

戻り値

HRESULT 値を返す。

注意

転送先矩形が変更されたことを知るには、派生クラスでこのメンバ関数をオーバーライドする必要がある。このメンバ関数は、次のメンバ関数から呼び出される。

次の例は、この関数を派生クラスに実装する方法を示している。

HRESULT CVideoText::SetTargetRect(RECT *pTargetRect)
{
m_pRenderer->m_DrawImage.SetTargetRect(pTargetRect);
return NOERROR;
}

この例では、CVideoText は CBaseControlVideo から派生したクラスであり、m_pRenderer は CBaseVideoRenderer から派生したクラスのオブジェクトを保持する。また、派生クラスで定義される m_DrawImage データ メンバは CDrawImage オブジェクトを保持する。