Win32 API 日本語リファレンス
ホームMedia.DirectShow.Tv › IMSVidCtl

IMSVidCtl

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IIDb0edf162-910a-11d2-b632-00c04f79498e継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

IMSVidCtl インターフェイスは、Video Control のメインインターフェイスです。

解説(Remarks)

このインターフェイスのインターフェイス識別子 (IID) を宣言するには、__uuidof 演算子を使用します: __uuidof(IMSVidCtl)

メソッド 43

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_AutoSize(VARIANT_BOOL* pbool)

get_AutoSize メソッドは、Video Control がその内容全体を表示するために自動的にサイズ変更されるかどうかを決定する値を取得します。

pboolVARIANT_BOOL*outプロパティの現在の値を受け取る VARIANT_BOOL 型の変数へのポインター。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 8 HRESULT put_AutoSize(VARIANT_BOOL vbool)

put_AutoSize メソッドは、Video Control がその内容全体を表示するために自動的にサイズ変更されるかどうかを指定します。

vboolVARIANT_BOOLin

Video Control が自動的にサイズ変更されるかどうかを指定します。次のいずれかの値を使用します。

説明
VARIANT_TRUE Video Control は自動的にサイズ変更されます。
VARIANT_FALSE Video Control は自動的にサイズ変更されません。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 9 HRESULT get_BackColor(DWORD* backcolor)

get_BackColor メソッドは、Video Control の背景色を取得します。

backcolorDWORD*outOLE_COLOR 値を受け取ります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 10 HRESULT put_BackColor(DWORD backcolor)

put_BackColor メソッドは、Video Control の背景色を指定します。

backcolorDWORDin背景色を OLE_COLOR 値として指定します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

Video Control は、フィルターグラフが停止しているか、または構築されていないときに背景色を使用します。また、レターボックスモードでビデオ矩形の未使用領域を塗りつぶす際にもこの色を使用します。背景色は「境界」色と呼ばれることもあります。


COLORREF orange = RGB(0xFF, 0x80, 0x00);
hr = pVideoControl->put_BackColor(static_cast<OLE_COLOR>(orange));
vtbl 11 HRESULT get_Enabled(VARIANT_BOOL* pbool)

get_Enabled メソッドは、Video Control がユーザー生成イベントに応答できるかどうかを決定する値を取得します。

pboolVARIANT_BOOL*outプロパティの現在の値を受け取る VARIANT_BOOL 型の変数。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 12 HRESULT put_Enabled(VARIANT_BOOL vbool)

put_Enabled メソッドは、Video Control がユーザー生成イベントに応答できるかどうかを決定する値を指定します。

vboolVARIANT_BOOLinプロパティの新しい値を指定します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 13 HRESULT get_TabStop(VARIANT_BOOL* pbool)

get_TabStop メソッドは、ユーザーが TAB キーを使用して Video Control にフォーカスを与えられるかどうかを照会します。

pboolVARIANT_BOOL*out

次のいずれかの値を受け取ります。

説明
VARIANT_TRUE Video Control はタブ順序に含まれます。
VARIANT_FALSE Video Control はタブ順序に含まれません。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 14 HRESULT put_TabStop(VARIANT_BOOL vbool)

put_TabStop メソッドは、ユーザーが TAB キーを使用して Video Control にフォーカスを与えられるかどうかを指定します。

vboolVARIANT_BOOLin

次のいずれかの値を指定します。

説明
VARIANT_TRUE Video Control をタブ順序に含めます。
VARIANT_FALSE Video Control をタブ順序に含めません。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 15 HRESULT get_Window(HWND* phwnd)

get_Window メソッドは、Video Control に関連付けられたウィンドウを取得します。

phwndHWND*outウィンドウへのハンドルを受け取ります。

戻り値

HRESULT 値を返します。取り得る値には次のものがあります。

戻り値コード 説明
S_OK
成功。
E_POINTER
NULL ポインター引数。
vtbl 16 HRESULT Refresh()

Refresh メソッドは、Video Control の外観を直ちに更新します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

このメソッドは、標準の ActiveX コントロールメソッドです。Video Control ウィンドウに再描画を強制します。再描画の前に、Video Control はビデオ矩形が最新であること、およびすべての Video Mixing Renderer の設定が正しいことを確認します。

vtbl 17 HRESULT get_DisplaySize(DisplaySizeList* CurrentValue)

get_DisplaySize メソッドは、表示サイズを取得します。

CurrentValueDisplaySizeList*outDisplaySizeList 列挙体のメンバーを受け取ります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

AutoSize プロパティが false の場合、表示サイズは効果を持ちません。

vtbl 18 HRESULT put_DisplaySize(DisplaySizeList NewValue)

put_DisplaySize メソッドは、表示サイズを指定します。

NewValueDisplaySizeListin表示サイズを DisplaySizeList 列挙体のメンバーとして指定します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

AutoSize プロパティが false の場合、このプロパティを設定しても効果はありません。

vtbl 19 HRESULT get_MaintainAspectRatio(VARIANT_BOOL* CurrentValue)

get_MaintainAspectRatio メソッドは、Video Control がソースビデオのアスペクト比を維持するかどうかを照会します。

CurrentValueVARIANT_BOOL*out

次のいずれかの値を受け取ります。

説明
VARIANT_TRUE Video Control はソースビデオのアスペクト比を維持します。
VARIANT_FALSE Video Control はビデオを引き伸ばしてウィンドウを埋めます。

戻り値

HRESULT 値を返します。取り得る値には次のものがあります。

戻り値コード 説明
S_OK
成功。
E_POINTER
NULL ポインター引数。
vtbl 20 HRESULT put_MaintainAspectRatio(VARIANT_BOOL NewValue)

put_MaintainAspectRatio メソッドは、Video Control がソースビデオのアスペクト比を維持するかどうかを指定します。

NewValueVARIANT_BOOLin

次のいずれかの値を指定します。

説明
VARIANT_TRUE Video Control はソースビデオのアスペクト比を維持します。
VARIANT_FALSE Video Control はビデオを引き伸ばしてウィンドウを埋めます。(既定)

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 21 HRESULT get_ColorKey(DWORD* CurrentValue)

get_ColorKey メソッドは、ビデオレンダラーが使用しているカラーキーを取得します。

CurrentValueDWORD*outOLE_COLOR 値を受け取ります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

カラーキーは、ビデオレンダラーがオーバーレイサーフェスに描画する際に使用されます。


OLE_COLOR ocKey;
COLORREF clrKey;
pVideoControl->get_ColorKey(&ocKey);
OleTranslateColor(ocKey, 0, &clrKey);
vtbl 22 HRESULT put_ColorKey(DWORD NewValue)

put_ColorKey メソッドは、カラーキーを指定します。

NewValueDWORDinカラーキーを OLE_COLOR 値として指定します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

カラーキーは、ビデオレンダラーがオーバーレイサーフェスに描画する際に使用されます。

vtbl 23 HRESULT get_InputsAvailable(LPWSTR CategoryGuid, IMSVidInputDevices** pVal)

get_InputsAvailable メソッドは、指定されたカテゴリ内で使用可能な入力デバイスを取得します。

CategoryGuidLPWSTRin列挙するカテゴリの GUID を指定する BSTR
pValIMSVidInputDevices**outIMSVidInputDevices インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

このメソッドは、オートメーションクライアント向けに提供されています。C++ アプリケーションでは、BSTR 値ではなく GUID を受け取る IMSVidCtl::get__InputsAvailable メソッドを使用できます。

メソッドが成功すると、IMSVidInputDevices インターフェイスには未解放の参照カウントが残ります。呼び出し元はインターフェイスを解放する必要があります。

vtbl 24 HRESULT get_OutputsAvailable(LPWSTR CategoryGuid, IMSVidOutputDevices** pVal)

get_OutputsAvailable メソッドは、指定されたカテゴリで使用可能な出力デバイスを取得します。

CategoryGuidLPWSTRin列挙するカテゴリの GUID を指定する BSTR
pValIMSVidOutputDevices**outIMSVidOutputDevices インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 25 HRESULT get__InputsAvailable(GUID* CategoryGuid, IMSVidInputDevices** pVal)

get__InputsAvailable メソッドは、指定されたカテゴリで使用可能な入力デバイスを取得します。

CategoryGuidGUID*in

列挙するカテゴリを指定する GUID へのポインター。サポートされるカテゴリには次のものがあります。

説明
KSCATEGORY_BDA_NETWORK_PROVIDER BDA 互換のチューナーデバイス。
KSCATEGORY_TVTUNER 非 BDA のアナログチューナーデバイス。
GUID_NULL その他のデバイス (ファイルソース、DVD)。
pValIMSVidInputDevices**outIMSVidInputDevices インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

このメソッドは、入力デバイスの読み取り専用コレクションを返します。返された IMSVidInputDevices ポインターを使用してコレクションを列挙します。

次の例は、使用可能な BDA 互換チューナーを列挙し、そのフレンドリ名を取得します。


CComPtr<IMSVidInputDevices> pInputs;
hr = pVidControl->get__InputsAvailable(&KSCATEGORY_BDA_NETWORK_PROVIDER, &pInputs);
if (SUCCEEDED(hr))
{
    long lCount;
    hr = pInputs->get_Count(&lCount);
    for (long ix = 0; ix < lCount; ix++)
    {
        CComBSTR bstrName;
        CComVariant var(ix);
        CComPtr<IMSVidInputDevice> pInput;
        hr = pInputs->get_Item(var, &pInput);
        hr = pInput->get_Name(&bstrName);
        // 名前を表示します。
    }
}

vtbl 26 HRESULT get__OutputsAvailable(GUID* CategoryGuid, IMSVidOutputDevices** pVal)

get__OutputsAvailable メソッドは、指定されたカテゴリで使用可能な出力デバイスを取得します。

CategoryGuidGUID*in列挙するカテゴリを指定する GUID へのポインター。
pValIMSVidOutputDevices**outIMSVidOutputDevices インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

使用可能なレンダラーを取得するには、get_AudioRenderersAvailable メソッドおよび get_VideoRenderersAvailable メソッドを使用します。

vtbl 27 HRESULT get_VideoRenderersAvailable(IMSVidVideoRendererDevices** pVal)

get_VideoRenderersAvailable メソッドは、ローカルシステムで使用可能なビデオレンダラーのコレクションを取得します。

pValIMSVidVideoRendererDevices**outIMSVidVideoRendererDevices インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

このメソッドは、ビデオレンダラーデバイスのコレクションを返します。返された IMSVidVideoRendererDevices ポインターを使用してコレクションを列挙します。

注意 現在の実装では、コレクションには常に 1 つの項目のみが含まれます。それは Video Mixing Renderer フィルターを表す MSVidVideoRenderer オブジェクトです。
vtbl 28 HRESULT get_AudioRenderersAvailable(IMSVidAudioRendererDevices** pVal)

get_AudioRenderersAvailable メソッドは、使用可能なオーディオレンダラーを取得します。

pValIMSVidAudioRendererDevices**outIMSVidAudioRendererDevices インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

このメソッドは、入力デバイスの読み取り専用コレクションを返します。返された IMSVidAudioRendererDevices ポインターを使用してコレクションを列挙します。

vtbl 29 HRESULT get_FeaturesAvailable(IMSVidFeatures** pVal)

get_FeaturesAvailable メソッドは、ローカルシステムで使用可能な機能を取得します。

pValIMSVidFeatures**outIMSVidFeatures インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

このメソッドは、機能オブジェクトのコレクションを返します。返された IMSVidFeatures ポインターを使用してコレクションを列挙します。機能を有効化するには、それをアクティブな機能コレクションに追加します。特定の機能を検索するには、各機能に対して IMSVidDevice::get__ClassID メソッドを呼び出し、その結果を目的の機能の CLSID と比較します。

vtbl 30 HRESULT get_InputActive(IMSVidInputDevice** pVal)

get_InputActive メソッドは、現在アクティブな入力デバイスを取得します。

pValIMSVidInputDevice**outIMSVidInputDevice インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 31 HRESULT put_InputActive(IMSVidInputDevice* pVal)

put_InputActive メソッドは、フィルターグラフで使用する入力デバイスを指定します。

pValIMSVidInputDevice*in入力デバイスの IMSVidInputDevice インターフェイスへのポインターを指定します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

Video Control の状態が STATE_UNBUILT でない場合は、このメソッドを呼び出す前に IMSVidCtl::Decompose を呼び出してフィルターグラフを解体してください。

vtbl 32 HRESULT get_OutputsActive(IMSVidOutputDevices** pVal)

get_OutputsActive メソッドは、現在アクティブな出力デバイスを取得します。

pValIMSVidOutputDevices**outIMSVidOutputDevices インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 33 HRESULT put_OutputsActive(IMSVidOutputDevices* pVal)

put_OutputsActive メソッドは、アクティブな出力デバイスを指定します。

pValIMSVidOutputDevices*in出力デバイスの新しいコレクションへのポインター。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 34 HRESULT get_VideoRendererActive(IMSVidVideoRenderer** pVal)

get_VideoRendererActive メソッドは、現在アクティブなビデオレンダラーを取得します。

pValIMSVidVideoRenderer**outIMSVidVideoRenderer インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。アクティブなビデオレンダラーがない場合、このパラメーターは値 NULL を受け取ります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 35 HRESULT put_VideoRendererActive(IMSVidVideoRenderer* pVal)

put_VideoRendererActive メソッドは、アクティブなビデオレンダラーを指定します。

pValIMSVidVideoRenderer*inビデオレンダラーデバイスの IMSVidVideoRenderer インターフェイスへのポインターを指定します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

現在サポートされている唯一のビデオレンダラーは Video Mixing Renderer (VMR) フィルターです。VMR は既定で使用されるため、このメソッドを呼び出す必要はありません。

vtbl 36 HRESULT get_AudioRendererActive(IMSVidAudioRenderer** pVal)

get_AudioRendererActive メソッドは、現在アクティブなオーディオレンダラーを取得します。

pValIMSVidAudioRenderer**outIMSVidAudioRenderer インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。アクティブなオーディオレンダラーがない場合、このパラメーターは値 NULL を受け取ります。

戻り値

HRESULT 値を返します。取り得る値には次のものがあります。

戻り値コード 説明
S_OK
成功。
E_POINTER
NULL ポインター引数。
vtbl 37 HRESULT put_AudioRendererActive(IMSVidAudioRenderer* pVal)

put_AudioRendererActive メソッドは、アクティブなオーディオレンダラーを指定します。

pValIMSVidAudioRenderer*inオーディオレンダラーを指定する IMSVidAudioRenderer インターフェイスへのポインター。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 38 HRESULT get_FeaturesActive(IMSVidFeatures** pVal)

get_FeaturesActive メソッドは、現在アクティブな機能を取得します。

pValIMSVidFeatures**outIMSVidFeatures インターフェイスポインターを受け取ります。呼び出し元はインターフェイスを解放する必要があります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

アクティブな機能がない場合、メソッドは pVal パラメーターに NULL を返すことがあります。それ以外の場合は、機能オブジェクトのコレクションを返します。返された IMSVidFeatures ポインターを使用してコレクションを列挙します。


CComPtr<IMSVidFeatures> pFeatures;
hr = m_pVideoControl->get_FeaturesActive(&pFeatures);
if (SUCCEEDED(hr) && pFeatures)
{
    long c;
    pFs->get_Count(&c);
    /* 機能を列挙します */
}
vtbl 39 HRESULT put_FeaturesActive(IMSVidFeatures* pVal)

put_FeaturesActive メソッドは、有効化する機能のコレクションを指定します。

pValIMSVidFeatures*in機能のコレクション上の IMSVidFeatures インターフェイスへのポインター。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

機能は、クローズドキャプションや IP データサービスなど、基本的なチューニングおよびレンダリングを超える追加機能を表します。Video Control はフィルターグラフを構築する際に、アクティブな機能コレクションを使用してグラフを構成します。

既定のグラフでは、アクティブな機能を指定する必要はありません。機能を有効化するには、新しい MSVidFeatures コレクションオブジェクトを作成します。次に IMSVidCtl::get_FeaturesAvailable メソッドを使用して使用可能な機能を列挙し、各機能に対して IMSVidDevice::get__ClassID を呼び出します。CLSID が有効化したい機能と一致する場合は、その機能を MSVidFeatures コレクションに追加します。次に、MSVidFeatures コレクションへのポインターを指定して put_FeaturesActive を呼び出します。

Video Control の状態が STATE_UNBUILT でない場合は、このメソッドを呼び出す前に IMSVidCtl::Decompose を呼び出してフィルターグラフを解体してください。

vtbl 40 HRESULT get_State(MSVidCtlStateList* lState)

get_State メソッドは、フィルターグラフの状態を取得します。

lStateMSVidCtlStateList*outMSVidCtlStateList 列挙体のメンバーを受け取ります。

戻り値

HRESULT 値を返します。取り得る値には次のものがあります。

戻り値コード 説明
S_OK
成功。
E_POINTER
NULL ポインター引数。
vtbl 41 HRESULT View(VARIANT* v)

View メソッドは、入力ソースを表示するように Video Control を構成します。入力ソースは、チューン要求、DVD、またはメディアファイルのいずれかです。

vVARIANT*in

入力ソースへのポインターを VARIANT 型として指定します。このパラメーターは次のいずれかである必要があります:

  • ITuneRequest インターフェイスをサポートする有効なチューン要求オブジェクトへのポインター。チューン要求は、対象のネットワークタイプに必要なすべてのチューニング情報で初期化されている必要があります。
  • DVD 再生用の文字列 "DVD:"。
  • メディアファイルの名前。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

Video Control に既にアクティブな入力デバイスがある場合、このメソッドは指定された入力に合わせてそのデバイスを構成します。それ以外の場合、このメソッドは入力を処理できる入力デバイスを探し出し、それを有効化します。

入力デバイスは通常、ソースフィルターに対応します。pv パラメーターがチューン要求オブジェクトの場合、Video Control はチューン要求上のネットワークタイプを調べて、どのフィルターを使用するかを決定します。デジタルテレビの場合、入力デバイスは BDA Network Provider フィルターになります。アナログテレビの場合は WDM TV Tuner フィルターになります。フィルターの具体的な名前と実装はデバイスに依存します。

View を呼び出した後、次のメソッドを使用してフィルターグラフを構築および実行します:

フィルターグラフが既に構築されて実行されている場合、アプリケーションは View を呼び出して、同じネットワークタイプまたは別のネットワークタイプ上の新しいチューン要求を指定できます。

View メソッドが成功した場合、IMSVidCtl::get_InputActive メソッドを呼び出して入力デバイスを取得できます。

特定の入力デバイスを指定するには、Video Control で View を呼び出す代わりに、IMSVidCtl::put_InputActive メソッドを呼び出してから、そのデバイスで IMSVidInputDevice::View を呼び出します。これは、ローカルシステムに同じタイプのデバイスが複数ある場合に役立つことがあります。ただし、View メソッドは正しいデバイスタイプを自動的に探し出すため、こちらが推奨されます。

次の例は、Video Control にチューン要求を送信する方法を示しています:


ITuneRequest *pTuneReq;
/* チューン要求を取得します (コードは省略)。 */
CComVariant varTuneRequest = pTuneReq;
hr = pVidControl->View(&varTuneRequest);

次の例は、ローカルファイルを再生する方法を示しています:


CComVariant varFileName(OLESTR("C:Example.avi"));
hr = pVidControl->View(&varFileName);
vtbl 42 HRESULT Build()

Build メソッドは、フィルターグラフを構築し、すべてのフィルターを接続します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

このメソッドは、現在の入力デバイスを使用してフィルターグラフを構築します。入力デバイスを選択するには、IMSVidCtl::View メソッドまたは IMSVidCtl::put_InputActive メソッドを呼び出します。入力デバイスが選択されていない場合、メソッドは失敗します。

vtbl 43 HRESULT Pause()

Pause メソッドは、フィルターグラフを一時停止します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 44 HRESULT Run()

Run メソッドは、フィルターグラフを実行します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

このメソッドは、状態が未構築の場合にフィルターグラフを構築し、グラフを実行状態にします。BuildView、および Run の動作の詳細については、IMSVidCtl::View を参照してください。

vtbl 45 HRESULT Stop()

Stop メソッドは、フィルターグラフを停止します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

このメソッドは、フィルターグラフをそのまま残し、一時停止または実行が可能な状態にします。フィルターグラフを解体するには、IMSVidCtl::Decompose メソッドを使用します。

vtbl 46 HRESULT Decompose()

Decompose メソッドは、フィルターグラフを解体します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

このメソッドは、IMSVidCtl::Build メソッドの逆の操作です。アクティブな機能コレクションを変更する、新しいレンダラーを指定する、または新しい入力デバイスを指定する前に、このメソッドを呼び出します。このメソッドはアクティブな機能コレクションを変更しません。

vtbl 47 HRESULT DisableVideo()

DisableVideo メソッドは、ビデオレンダラーを無効化します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

このメソッドは、アクティブなビデオレンダラーデバイスを NULL に設定します。

vtbl 48 HRESULT DisableAudio()

DisableAudio メソッドは、オーディオ出力デバイスを無効化します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

このメソッドは、アクティブなオーディオ出力デバイスを NULL に設定します。

vtbl 49 HRESULT ViewNext(VARIANT* v)

ViewNext メソッドは、指定されたチューン要求を表示するための別の入力デバイスを探します。

vVARIANT*inチューン要求を VARIANT 型として指定します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

解説(Remarks)

このメソッドは IMSVidCtl::View メソッドと同様に動作しますが、次の点が異なります: システムに指定されたネットワークタイプをサポートするチューナーが複数ある場合、ViewNext メソッドは現在の入力デバイスをスキップして次のデバイスを使用します。(デバイスの順序は任意です。)

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IMSVidCtl "{B0EDF162-910A-11D2-B632-00C04F79498E}"
#usecom global IMSVidCtl IID_IMSVidCtl "{B0EDF163-910A-11D2-B632-00C04F79498E}"
#comfunc global IMSVidCtl_get_AutoSize                 7 var
#comfunc global IMSVidCtl_put_AutoSize                 8 int
#comfunc global IMSVidCtl_get_BackColor                9 var
#comfunc global IMSVidCtl_put_BackColor                10 int
#comfunc global IMSVidCtl_get_Enabled                  11 var
#comfunc global IMSVidCtl_put_Enabled                  12 int
#comfunc global IMSVidCtl_get_TabStop                  13 var
#comfunc global IMSVidCtl_put_TabStop                  14 int
#comfunc global IMSVidCtl_get_Window                   15 sptr
#comfunc global IMSVidCtl_Refresh                      16
#comfunc global IMSVidCtl_get_DisplaySize              17 var
#comfunc global IMSVidCtl_put_DisplaySize              18 int
#comfunc global IMSVidCtl_get_MaintainAspectRatio      19 var
#comfunc global IMSVidCtl_put_MaintainAspectRatio      20 int
#comfunc global IMSVidCtl_get_ColorKey                 21 var
#comfunc global IMSVidCtl_put_ColorKey                 22 int
#comfunc global IMSVidCtl_get_InputsAvailable          23 wstr,sptr
#comfunc global IMSVidCtl_get_OutputsAvailable         24 wstr,sptr
#comfunc global IMSVidCtl_get__InputsAvailable         25 var,sptr
#comfunc global IMSVidCtl_get__OutputsAvailable        26 var,sptr
#comfunc global IMSVidCtl_get_VideoRenderersAvailable  27 sptr
#comfunc global IMSVidCtl_get_AudioRenderersAvailable  28 sptr
#comfunc global IMSVidCtl_get_FeaturesAvailable        29 sptr
#comfunc global IMSVidCtl_get_InputActive              30 sptr
#comfunc global IMSVidCtl_put_InputActive              31 sptr
#comfunc global IMSVidCtl_get_OutputsActive            32 sptr
#comfunc global IMSVidCtl_put_OutputsActive            33 sptr
#comfunc global IMSVidCtl_get_VideoRendererActive      34 sptr
#comfunc global IMSVidCtl_put_VideoRendererActive      35 sptr
#comfunc global IMSVidCtl_get_AudioRendererActive      36 sptr
#comfunc global IMSVidCtl_put_AudioRendererActive      37 sptr
#comfunc global IMSVidCtl_get_FeaturesActive           38 sptr
#comfunc global IMSVidCtl_put_FeaturesActive           39 sptr
#comfunc global IMSVidCtl_get_State                    40 var
#comfunc global IMSVidCtl_View                         41 var
#comfunc global IMSVidCtl_Build                        42
#comfunc global IMSVidCtl_Pause                        43
#comfunc global IMSVidCtl_Run                          44
#comfunc global IMSVidCtl_Stop                         45
#comfunc global IMSVidCtl_Decompose                    46
#comfunc global IMSVidCtl_DisableVideo                 47
#comfunc global IMSVidCtl_DisableAudio                 48
#comfunc global IMSVidCtl_ViewNext                     49 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。