Microsoft DirectX 8.0

IVPBaseConfig インターフェイス

IVPBaseConfig は、デコーダなどのハードウェア デバイスにグラフィックス アダプタへのビデオ ポートがある場合に、これらのデバイスをラップするフィルタに実装される。このインターフェイスを使用すると、ビデオ ポートがオーバーレイ ミキサーとの間で構成情報をやり取りできる。IVPConfig インターフェイスは、このインターフェイスから派生する。「IVPBaseNotify」および「IVPNotify」を参照すること。

アプリケーションからこのインターフェイスを使用しないこと。

要件

Dvp.h、Vptype.h、Vpconfig.h が必要である。

vtable 順のメソッド

IUnknown メソッド説明
QueryInterface サポートされているインターフェイスへのポインタを取得する。
AddRef 参照カウントをインクリメントする。
Release 参照カウントをデクリメントする。
IVPBaseConfig メソッド説明
GetConnectInfo コネクション情報の構造体を取得する。
SetConnectInfo ビデオ ポートの現在のコネクション情報のインデックスを設定する。
GetVPDataInfo ビデオ ポートの現在のデータ情報を取得する。
GetMaxPixelRate 所定の幅および高さに対応する最大レート (ピクセル/秒) を取得する。
InformVPInputFormats ビデオ ポートがサポートするビデオ フォーマットをデバイスに知らせる。
GetVideoFormats デコーダがサポートするビデオ フォーマットを取得する。
SetVideoFormat ビデオが使用するフォーマットを設定する。
SetInvertPolarity デコーダが使用する現在の極性を反転する。
GetOverlaySurface オーバーレイ ミキサーがドライバのオーバーレイ サーフェスを使用すべきかどうか判断し、使用すべき場合にはサーフェスへのポインタを取得する。
SetDirectDrawKernelHandle デコーダのミニドライバが使用する Microsoft® DirectDraw® カーネル ハンドルを設定する。
SetVideoPortID ビデオが使用するポート ID を設定する。
SetDDSurfaceKernelHandle DirectDraw サーフェスが使用するカーネル ハンドルを設定する。
SetSurfaceParameters オーバーレイ ミキサー フィルタまたは VBI サーフェス フィルタが代わりに作成したサーフェスについて、キャプチャ ドライバに知らせる。

IVPBaseConfig::GetConnectInfo

IVPBaseConfig インターフェイス

コネクション情報の構造体を取得する。

構文

HRESULT GetConnectInfo(
    LPDWORD pdwNumConnectInfo,
    LPDDVIDEOPORTCONNECT pddVPConnectInfo
    );

パラメータ

pdwNumConnectInfo
[in, out] pddVPConnectInfo パラメータが示す DDVIDEOPORTCONNECT 構造体の数が入ったバッファへのポインタ。実際に返された構造体の数が格納される。pddVPConnectInfo が NULL の場合、このパラメータはドライバでサポートされる構造体の数に置き換えられる。
pddVPConnectInfo
[in, out] ドライバが設定する DDVIDEOPORTCONNECT 構造体の配列へのポインタ。サポートされるフォーマットの総数を取得するには、NULL を指定する。

戻り値

カウントまたは構造体が取得された場合は、NOERROR を返す。それ以外の場合は、ドライバ エラーを返す。

注意

このメソッドは、GUID やポート幅などの各種コネクション情報の構造体を、pddVPConnectInfo で指定された構造体の配列に取得する。呼び出し先では、要求する構造体の数に適した正しい容量を割り当てる必要がある。

コネクション情報のインデックスを設定するには、IVPBaseConfig::SetConnectInfo メソッドを使用する。

IVPBaseConfig::GetMaxPixelRate

IVPBaseConfig インターフェイス

所定の幅および高さに対応する最大レート (ピクセル/秒) を取得する。

構文

HRESULT GetMaxPixelRate(
    LPAMVPSIZE pamvpSize,
    LPDWORD pdwMaxPixelsPerSecond
    );

パラメータ

pamvpSize
[in, out] 希望する幅および高さが格納された AMVPSIZE 構造体へのポインタ。メソッドから戻るときには、この構造体に最終的なディメンジョンが入る。
pdwMaxPixelsPerSecond
[out] 取得された最大レート (ピクセル/秒) へのポインタ。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。HRESULT は、次の標準的な定数の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_POINTERNULL ポインタ引数。
E_INVALIDARG無効な引数。
NOERROR 最大レート (ピクセル/秒) が取得された。

注意

このメソッドは、所定のフォーマットおよび所定のスケーリング係数で予想される最大レート (ピクセル/秒) を取得する。デコーダがこれらのスケーリング係数をサポートしていない場合は、レートおよびサポートする最も近いスケーリング係数を返す。

IVPBaseConfig::GetOverlaySurface

IVPBaseConfig インターフェイス

オーバーレイ ミキサーがドライバのオーバーレイ サーフェスを使用すべきかどうか判断し、使用すべき場合にはサーフェスへのポインタを取得する。

構文

HRESULT GetOverlaySurface(
    LPDIRECTDRAWSURFACE *ppddOverlaySurface
    );

パラメータ

ppddOverlaySurface
[out] 取得された DirectDraw® オーバーレイ サーフェス オブジェクトへのポインタのアドレス。

戻り値

オーバーレイ サーフェス オブジェクトが返された場合は、NOERROR を返す (デフォルトの実装では、サーフェスに NULL を設定し、NOERROR を返す)。

注意

オーバーレイ ミキサーは、この関数を使用して、オーバーレイ ミキサーがドライバ側のオーバーレイ サーフェスを使用する必要があるかどうか判断し、必要がある場合にはそのポインタを取得する。この関数が NULL を返した場合には、オーバーレイ ミキサーが独自のサーフェスを割り当てる。

IVPBaseConfig::GetVideoFormats

IVPBaseConfig インターフェイス

デコーダがサポートするビデオ フォーマットを取得する。

構文

HRESULT GetVideoFormats(
    LPDWORD pdwNumFormats,
    LPDDPIXELFORMAT pddPixelFormats
    );

パラメータ

pdwNumFormats
[in, out] pddPixelFormats パラメータが示す DDPIXELFORMAT 構造体の数へのポインタ。呼び出すと、このメソッドはこのパラメータを実際に取得された構造体の数に置き換える。pddPixelFormats が NULL の場合、このメソッドはこのパラメータをドライバがサポートするフォーマットの数に置き換える。
pddPixelFormats
[in, out] ドライバが設定する DDPIXELFORMAT 構造体の配列へのポインタ。サポートされるフォーマットの総数だけを pdwNumFormats に取得するには、NULL を指定する。

戻り値

数または構造体が返された場合は、NOERROR を返す。それ以外の場合は、ドライバ エラーを返す。

注意

このメソッドは、ドライバでサポートされる DDPIXELFORMAT 構造体の数を照会するか、または提供されたバッファに入るできるだけ多くの構造体を取得する。

呼び出し先では、要求された構造体の数に適した正しい容量を割り当てる必要がある。

ビデオ フォーマットを設定するには、IVPBaseConfig::SetVideoFormat を使用する。

IVPBaseConfig::GetVPDataInfo

IVPBaseConfig インターフェイス

ビデオ ポートの現在のデータ情報を取得する。

構文

HRESULT GetVPDataInfo(
    LPAMVPDATAINFO pamvpDataInfo
    );

パラメータ

pamvpDataInfo
[in, out] AMVPDATAINFO データ情報の構造体へのポインタ。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。HRESULT は、次の標準的な定数の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_POINTERNULL ポインタ引数。
E_INVALIDARG無効な引数。
NOERROR ビデオ ポートのデータ情報が取得された。

IVPBaseConfig::InformVPInputFormats

IVPBaseConfig インターフェイス

ビデオ ポートがサポートするビデオ フォーマットをデバイスに知らせる。

構文

HRESULT InformVPInputFormats(
    DWORD dwNumFormats,
    LPDDPIXELFORMAT pDDPixelFormats
    );

パラメータ

dwNumFormats
[in] pDDPixelFormats パラメータに格納されたビデオ フォーマットの数。
pDDPixelFormats
[in] デバイスに送るピクセル フォーマット構造体 (DDPIXELFORMAT) の配列へのポインタ。

戻り値

失敗した場合は、S_FALSE を返す。それ以外の場合は、NOERROR を返す。

注意

サポートされるビデオ ポート フォーマットとして指定した配列により、デバイスがそれらのフォーマットを提示する順序が決まることがある。

IVPBaseConfig::SetConnectInfo

IVPBaseConfig インターフェイス

ビデオ ポートの現在のコネクション情報のインデックスを設定する。

構文

HRESULT SetConnectInfo(
    DWORD dwChosenEntry
    );

パラメータ

dwChosenEntry
[in] ドライバに渡す (ビデオ ポートの) 新しいコネクション情報のインデックス (0 ベース)。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。HRESULT は、次の標準的な定数の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_INVALIDARG無効な引数。
NOERROR ビデオ ポートのコネクション情報が設定された。

注意

コネクション情報を取得するには、IVPBaseConfig::GetConnectInfo を使用する。

IVPBaseConfig::SetDDSurfaceKernelHandle

IVPBaseConfig インターフェイス

DirectDraw サーフェスによって使用されるカーネル ハンドルを設定する。

構文

HRESULT SetDDSurfaceKernelHandle(
    DWORD dwDDKernelHandle
    );

パラメータ

dwDDKernelHandle
[in] カーネル モード用の DirectDraw サーフェス ハンドル。DWORD 値として渡す。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。HRESULT は、次の標準的な定数の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_INVALIDARG無効な引数。
NOERROR 指定されたハンドルの設定に成功した。

注意

このメソッドは、ミニドライバに DirectDraw ハンドルを設定して、ミニドライバがビデオ ポートと直接通信できるようにする。

IVPBaseConfig::SetDirectDrawKernelHandle

IVPBaseConfig インターフェイス

デコーダのミニドライバが使用する DirectDraw® カーネル ハンドルを設定する。

構文

HRESULT SetDirectDrawKernelHandle(
    DWORD dwDDKernelHandle
    );

パラメータ

dwDDKernelHandle
[in] DirectDraw カーネル レベルのハンドル。DWORD 値として渡す。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。HRESULT は、次の標準的な定数の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_INVALIDARG無効な引数。
NOERROR 指定されたハンドルの設定に成功した。

IVPBaseConfig::SetInvertPolarity

IVPBaseConfig インターフェイス

デコーダが使用する現在の極性を反転する。

構文

HRESULT SetInvertPolarity(void);

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。HRESULT は、次の標準的な定数の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
NOERROR 極性が反転された。

注意

極性を反転するとは、デコーダに対し、偶数フィールドは奇数フィールドとして扱い、逆に奇数フィールドは偶数フィールドとして扱うように求めることを意味する。

IVPBaseConfig::SetSurfaceParameters

IVPBaseConfig インターフェイス

オーバーレイ ミキサー フィルタまたは VBI サーフェス フィルタが代わりに作成したサーフェスについて、キャプチャ ドライバに知らせる。

構文

HRESULT SetSurfaceParameters(
    DWORD dwPitch,
    DWORD dwXOrigin,
    DWORD dwYOrigin ) PURE;

パラメータ

dwPitch
[in] サーフェスのピッチ。サーフェスの連続する 2 ラインの開始ピクセル間の距離 (またはピッチ)。ピクセル単位で表す。
dwXOrigin
[in] 有効データが開始するピクセルの X 値。
dwYOrigin
[in] 有効データが開始するピクセルの Y 値。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。現在のデフォルトの実装は、呼び出しが成功した場合、NOERROR を返し、メソッドが実装されていない場合、E_NOTIMPL を返す。

IVPBaseConfig::SetVideoFormat

IVPBaseConfig インターフェイス

ビデオが使用するフォーマットを設定する。

構文

HRESULT SetVideoFormat(
    DWORD dwChosenEntry
    );

パラメータ

dwChosenEntry
[in] ビデオのピクセル フォーマットのインデックス (0 ベース) を指定する値。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。HRESULT は、次の標準的な定数の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_INVALIDARG無効な引数。
NOERROR 新しいビデオ フォーマットが設定された。

注意

ビデオ フォーマットを取得するには、IVPBaseConfig::GetVideoFormats を使用する。

IVPBaseConfig::SetVideoPortID

IVPBaseConfig インターフェイス

ビデオが使用するポート ID を設定する。

構文

HRESULT SetVideoPortID (
    DWORD dwVideoPortID
    );

パラメータ

dwVideoPortID
[in] DirectDraw ビデオ ポート ID。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。HRESULT は、次の標準的な定数の 1 つか、または一覧に示されていないその他の値となる。
E_FAIL失敗。
E_INVALIDARG無効な引数。
NOERROR 指定されたポート ID の設定に成功した。

注意

このメソッドは、ミニドライバに DirectDraw ビデオ ポート ID を設定して、ミニドライバがビデオ ポートと直接通信できるようにする。