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

IScanningTunerEx

COM
IID04bbd195-0e2d-4593-9bd5-4f908bc33cf5継承元IScanningTuner自前メソッド開始 vtbl18

公式ドキュメント

このトピックは Windows Vista に適用されます。

解説(Remarks)

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

メソッド 8

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 18 HRESULT GetCurrentLocator(ILocator** pILocator)

このトピックは Windows Vista 以降に適用されます。

pILocatorILocator**inロケーターオブジェクトの ILocator インターフェースへのポインターを受け取ります。呼び出し側はこのインターフェースを解放する必要があります。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 19 HRESULT PerformExhaustiveScan(INT dwLowerFreq, INT dwHigherFreq, VARIANT_BOOL bFineTune, UINT_PTR hEvent)

このトピックは Windows Vista 以降に適用されます。

dwLowerFreqINTinスキャンする周波数範囲の最低周波数。-1 を指定すると、デバイスによって決定される最小周波数を指定します。
dwHigherFreqINTinスキャンする周波数範囲の最高周波数。-1 を指定すると、デバイスによって決定される最大周波数を指定します。
bFineTuneVARIANT_BOOLinチューナーが微調整を行うかどうかを指定します。チューナーが周波数にロックしたとき、このパラメーターが VARIANT_TRUE の場合、チューナーはその周波数付近で可能な限り最良の信号を見つけるために微調整を行います。
hEventUINT_PTRinアプリケーションが作成したイベントへのハンドル。チューナーが信号にロックすると、このイベントをシグナル状態にします。

戻り値

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

戻り値 説明
S_FALSE
現在スキャンは実行されていません。
E_INVALIDARG
周波数の引数が無効です (たとえば、dwLowerFrequency または dwHigherFreq が 0、あるいは dwLowerFrequency >= dwHigherFreq)。
S_OK
成功しました。

解説(Remarks)

このメソッドは非同期です。

vtbl 20 HRESULT TerminateCurrentScan(INT* pcurrentFreq)

このトピックは Windows Vista 以降に適用されます。

pcurrentFreqINT*outチューナーが停止する前に最後にスキャンした周波数を受け取ります。

戻り値

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

戻り値 説明
S_FALSE
現在スキャンは実行されていません。
S_OK
成功しました。
vtbl 21 HRESULT ResumeCurrentScan(UINT_PTR hEvent)

このトピックは Windows Vista 以降に適用されます。

hEventUINT_PTRinアプリケーションが作成したイベントへのハンドル。チューナーが信号にロックすると、このイベントをシグナル状態にします。

戻り値

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

戻り値 説明
S_FALSE
スキャンがまだ開始されていません。
E_INVALIDARG
hEvent の引数が無効です。
S_OK
成功しました。

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

アプリケーションが PerformExhaustiveScan を呼び出すと、チューナーは信号にロックするまでスキャンします。ロックすると、アプリケーションのイベントハンドルをシグナル状態にします。元の周波数範囲内で次の有効な信号のスキャンを再開するには、アプリケーションは ResumeCurrentScan を呼び出すことができます。

vtbl 22 HRESULT GetTunerScanningCapability(INT* HardwareAssistedScanning, INT* NumStandardsSupported, GUID* BroadcastStandards)

このトピックは Windows Vista 以降に適用されます。

HardwareAssistedScanningINT*outブール値を受け取ります。値が TRUE の場合、スキャンアルゴリズムはすべてチューナーハードウェアによって実装されます。それ以外の場合、チューナーフィルターがスキャンアルゴリズムの一部をソフトウェアで実装します。
NumStandardsSupportedINT*outチューナーがサポートする放送規格の数を受け取ります。
BroadcastStandardsGUID*outGUID の配列へのポインター。この配列は、NumStandardsSupported パラメーターで返される値と同じ数の要素を保持できる大きさが必要です。必要な配列サイズを調べるには、このパラメーターを NULL に設定してメソッドを一度呼び出します。その後、配列を割り当て、このパラメーターに配列のアドレスを設定して、メソッドを再度呼び出します。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

次の放送規格 GUID が Bdamedia.h で定義されています。

GUID 説明
ANALOG_AUXIN_NETWORK_TYPE 補助ビデオ入力
ANALOG_FM_NETWORK_TYPE FM ラジオチューナー
ANALOG_TV_NETWORK_TYPE アナログテレビ
DIGITAL_CABLE_NETWORK_TYPE デジタルケーブル
vtbl 23 HRESULT GetTunerStatus(INT* SecondsLeft, INT* CurrentLockType, INT* AutoDetect, INT* CurrentFreq)

このトピックは Windows Vista 以降に適用されます。

SecondsLeftINT*outスキャンが完了するまでの推定残り秒数を受け取ります。
CurrentLockTypeINT*outチューナーが信号にどの程度ロックしたかを示す TunerLockType 列挙型のメンバーを受け取ります。
AutoDetectINT*outブール値を受け取ります。値が TRUE の場合、チューナーは自動検出モードです。
CurrentFreqINT*out直近でスキャンされた周波数を受け取ります。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

スキャンの実行中、アプリケーションはこのメソッドを使用してスキャン完了までに必要な合計時間を推定できます。チューナーが周波数にロックしてアプリケーションのイベントハンドルをシグナル状態にすると、アプリケーションはこのメソッドを使用してロックした周波数を調べることができます。

vtbl 24 HRESULT GetCurrentTunerStandardCapability(GUID CurrentBroadcastStandard, INT* SettlingTime, INT* TvStandardsSupported)

このトピックは Windows Vista 以降に適用されます。

CurrentBroadcastStandardGUIDin照会する放送規格を指定する GUID。チューナーがサポートする放送規格を調べるには、GetTunerScanningCapability を呼び出します。
SettlingTimeINT*outチューナーが周波数にチューニングするのに必要なおおよその時間をミリ秒単位で受け取ります。
TvStandardsSupportedINT*outCurrentBroadcastStandard が ANALOG_TV_NETWORK_TYPE の場合、このパラメーターは AnalogVideoStandard 列挙型のフラグのビットごとの OR を受け取り、チューナーがサポートするアナログテレビ形式を示します。それ以外の場合、このパラメーターは無視されます。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 25 HRESULT SetScanSignalTypeFilter(INT ScanModulationTypes, INT AnalogVideoStandard)

このトピックは Windows Vista 以降に適用されます。

ScanModulationTypesINTinScanModulationTypes 列挙型のフラグのビットごとの OR として、変調方式を指定します。値が 0xFFFFFFFF の場合、チューナーは特定の変調方式をフィルターで除外しません。
AnalogVideoStandardINTinAnalogVideoStandard 列挙型のフラグのビットごとの OR として、アナログ規格を指定します。値が 0xFFFFFFFF の場合、チューナーは特定のアナログビデオ規格をフィルターで除外しません。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IScanningTunerEx "{04BBD195-0E2D-4593-9BD5-4F908BC33CF5}"
#usecom global IScanningTunerEx IID_IScanningTunerEx "{}"
#comfunc global IScanningTunerEx_GetCurrentLocator                  18 sptr
#comfunc global IScanningTunerEx_PerformExhaustiveScan              19 int,int,int,sptr
#comfunc global IScanningTunerEx_TerminateCurrentScan               20 var
#comfunc global IScanningTunerEx_ResumeCurrentScan                  21 sptr
#comfunc global IScanningTunerEx_GetTunerScanningCapability         22 var,var,var
#comfunc global IScanningTunerEx_GetTunerStatus                     23 var,var,var,var
#comfunc global IScanningTunerEx_GetCurrentTunerStandardCapability  24 int,var,var
#comfunc global IScanningTunerEx_SetScanSignalTypeFilter            25 int,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。