IScanningTunerEx
COM公式ドキュメント
このトピックは Windows Vista に適用されます。
解説(Remarks)
このインターフェースのインターフェース識別子 (IID) を宣言するには、__uuidof 演算子を使用します: __uuidof(IScanningTunerEx)。
メソッド 8
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
このトピックは Windows Vista 以降に適用されます。
| pILocator | ILocator** | in | ロケーターオブジェクトの ILocator インターフェースへのポインターを受け取ります。呼び出し側はこのインターフェースを解放する必要があります。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
このトピックは Windows Vista 以降に適用されます。
| dwLowerFreq | INT | in | スキャンする周波数範囲の最低周波数。-1 を指定すると、デバイスによって決定される最小周波数を指定します。 |
| dwHigherFreq | INT | in | スキャンする周波数範囲の最高周波数。-1 を指定すると、デバイスによって決定される最大周波数を指定します。 |
| bFineTune | VARIANT_BOOL | in | チューナーが微調整を行うかどうかを指定します。チューナーが周波数にロックしたとき、このパラメーターが VARIANT_TRUE の場合、チューナーはその周波数付近で可能な限り最良の信号を見つけるために微調整を行います。 |
| hEvent | UINT_PTR | in | アプリケーションが作成したイベントへのハンドル。チューナーが信号にロックすると、このイベントをシグナル状態にします。 |
戻り値
HRESULT 値を返します。とりうる値には次のものがあります。
| 戻り値 | 説明 |
|---|---|
| 現在スキャンは実行されていません。 | |
| 周波数の引数が無効です (たとえば、dwLowerFrequency または dwHigherFreq が 0、あるいは dwLowerFrequency >= dwHigherFreq)。 | |
| 成功しました。 |
解説(Remarks)
このメソッドは非同期です。
このトピックは Windows Vista 以降に適用されます。
| pcurrentFreq | INT* | out | チューナーが停止する前に最後にスキャンした周波数を受け取ります。 |
戻り値
このトピックは Windows Vista 以降に適用されます。
| hEvent | UINT_PTR | in | アプリケーションが作成したイベントへのハンドル。チューナーが信号にロックすると、このイベントをシグナル状態にします。 |
戻り値
HRESULT 値を返します。とりうる値には次のものがあります。
| 戻り値 | 説明 |
|---|---|
| スキャンがまだ開始されていません。 | |
| hEvent の引数が無効です。 | |
| 成功しました。 |
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
アプリケーションが PerformExhaustiveScan を呼び出すと、チューナーは信号にロックするまでスキャンします。ロックすると、アプリケーションのイベントハンドルをシグナル状態にします。元の周波数範囲内で次の有効な信号のスキャンを再開するには、アプリケーションは ResumeCurrentScan を呼び出すことができます。
このトピックは Windows Vista 以降に適用されます。
| HardwareAssistedScanning | INT* | out | ブール値を受け取ります。値が TRUE の場合、スキャンアルゴリズムはすべてチューナーハードウェアによって実装されます。それ以外の場合、チューナーフィルターがスキャンアルゴリズムの一部をソフトウェアで実装します。 |
| NumStandardsSupported | INT* | out | チューナーがサポートする放送規格の数を受け取ります。 |
| BroadcastStandards | GUID* | out | GUID の配列へのポインター。この配列は、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 | デジタルケーブル |
このトピックは Windows Vista 以降に適用されます。
| SecondsLeft | INT* | out | スキャンが完了するまでの推定残り秒数を受け取ります。 |
| CurrentLockType | INT* | out | チューナーが信号にどの程度ロックしたかを示す TunerLockType 列挙型のメンバーを受け取ります。 |
| AutoDetect | INT* | out | ブール値を受け取ります。値が TRUE の場合、チューナーは自動検出モードです。 |
| CurrentFreq | INT* | out | 直近でスキャンされた周波数を受け取ります。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
スキャンの実行中、アプリケーションはこのメソッドを使用してスキャン完了までに必要な合計時間を推定できます。チューナーが周波数にロックしてアプリケーションのイベントハンドルをシグナル状態にすると、アプリケーションはこのメソッドを使用してロックした周波数を調べることができます。
このトピックは Windows Vista 以降に適用されます。
| CurrentBroadcastStandard | GUID | in | 照会する放送規格を指定する GUID。チューナーがサポートする放送規格を調べるには、GetTunerScanningCapability を呼び出します。 |
| SettlingTime | INT* | out | チューナーが周波数にチューニングするのに必要なおおよその時間をミリ秒単位で受け取ります。 |
| TvStandardsSupported | INT* | out | CurrentBroadcastStandard が ANALOG_TV_NETWORK_TYPE の場合、このパラメーターは AnalogVideoStandard 列挙型のフラグのビットごとの OR を受け取り、チューナーがサポートするアナログテレビ形式を示します。それ以外の場合、このパラメーターは無視されます。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
このトピックは Windows Vista 以降に適用されます。
| ScanModulationTypes | INT | in | ScanModulationTypes 列挙型のフラグのビットごとの OR として、変調方式を指定します。値が 0xFFFFFFFF の場合、チューナーは特定の変調方式をフィルターで除外しません。 |
| AnalogVideoStandard | INT | in | AnalogVideoStandard 列挙型のフラグのビットごとの OR として、アナログ規格を指定します。値が 0xFFFFFFFF の場合、チューナーは特定のアナログビデオ規格をフィルターで除外しません。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
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 指定が可能。#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 sptr #comfunc global IScanningTunerEx_ResumeCurrentScan 21 sptr #comfunc global IScanningTunerEx_GetTunerScanningCapability 22 sptr,sptr,sptr #comfunc global IScanningTunerEx_GetTunerStatus 23 sptr,sptr,sptr,sptr #comfunc global IScanningTunerEx_GetCurrentTunerStandardCapability 24 int,sptr,sptr #comfunc global IScanningTunerEx_SetScanSignalTypeFilter 25 int,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。