IAMTuner
COM公式ドキュメント
IAMTuner インターフェイスは TV チューナーを制御します。
メソッド 15
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
put_Channel メソッドは TV チャンネルを設定します。
| lChannel | INT | in | TV チャンネル番号。 |
| lVideoSubChannel | INT | in | 定義済みのビデオサブチャンネル値。チューニングを行わない場合は AMTUNER_SUBCHAN_NO_TUNE を、既定のサブチャンネルの場合は AMTUNER_SUBCHAN_DEFAULT を指定します。衛星放送でのみ意味を持ちます。 |
| lAudioSubChannel | INT | in | 定義済みのオーディオサブチャンネル値。チューニングを行わない場合は AMTUNER_SUBCHAN_NO_TUNE を、既定のサブチャンネルの場合は AMTUNER_SUBCHAN_DEFAULT を指定します。衛星放送でのみ意味を持ちます。 |
戻り値
インターフェイスの実装に依存する HRESULT 値を返します。
解説(Remarks)
このメソッドは、TV チャンネルを TV 周波数に変換するチャンネル-周波数関数呼び出しを処理します。チャンネルの周波数一覧については、International Analog TV Tuning を参照してください。
get_Channel メソッドは、チューナーが設定されているチャンネルを取得します。
| plChannel | INT* | out | チャンネルを受け取る変数へのポインター。周波数については International Analog TV Tuning を参照してください。 | ||||||
| plVideoSubChannel | INT* | out | ビデオサブチャンネル、または次のいずれかのフラグを受け取る変数へのポインター:
| ||||||
| plAudioSubChannel | INT* | out | オーディオサブチャンネル、または次のいずれかのフラグを受け取る変数へのポインター:
|
戻り値
インターフェイスの実装に依存する HRESULT 値を返します。
ChannelMinMax メソッドは、利用可能な最高および最低のチャンネルを取得します。
| lChannelMin | INT* | out | 最低チャンネルを受け取る変数へのポインター。 |
| lChannelMax | INT* | out | 最高チャンネルを受け取る変数へのポインター。 |
戻り値
put_CountryCode メソッドは、使用する周波数を確定するために国/地域コードを設定します。
| lCountryCode | INT | in | 国/地域コードを示す値。 |
戻り値
インターフェイスの実装に依存する HRESULT 値を返します。
解説(Remarks)
このメソッドは、指定した国/地域の基準周波数を確定します。新しい国/地域に対して以前にキャッシュされた設定がない限り、特定の地域の正確な周波数を判定するには IAMTVTuner::AutoTune メソッドを使用してください。
国や地域によってチャンネルが異なる周波数にマッピングされるため、付録 International Analog TV Tuning に世界全体のマッピングテーブルが用意されています。付録から新しい値を選び、それを put_CountryCode メソッドのパラメーターとして渡すことで、既存の国/地域コードを上書きできます。これは、ある国/地域が別の国の放送映像を受信したい場合に役立ちます。
get_CountryCode メソッドは、現在のチャンネル-周波数マッピングを確定している国/地域コードを取得します。
| plCountryCode | INT* | out | TV Tuner フィルターが現在使用している国/地域コードを受け取る変数へのポインター。 |
戻り値
インターフェイスの実装に依存する HRESULT 値を返します。
解説(Remarks)
IAMTuner::put_CountryCode メソッドは、どのチャンネル-周波数マッピングテーブルを使用するかを決定します。これにより、指定した国/地域の基準周波数が確定します。特定の地域の正確な周波数を判定するには IAMTVTuner::AutoTune メソッドを使用してください。
ある国/地域が別の国の放送映像を受信したい場合は、国/地域コードを上書きします。国/地域コードの一覧については、International Analog TV Tuning を参照してください。
put_TuningSpace メソッドは、地域ごとのチャンネル-周波数マッピングの格納インデックスを設定します。
| lTuningSpace | INT | in | 現在のロケールを示す値。 |
戻り値
インターフェイスの実装に依存する HRESULT 値を返します。
解説(Remarks)
TV チューナーがポータブルシステムに搭載されるようになるにつれ、利用可能なチャンネルとその実際の周波数についてロケール固有のマッピングを保持する必要があります。ロケールごとに異なる lTuningSpace 値を設定することで、地域から地域へ移動する際にチャンネル-周波数マッピングを切り替える手段が得られます。
get_TuningSpace メソッドは、チューニングスペースを取得します。
| plTuningSpace | INT* | out | 現在のチューニングスペースを受け取る変数へのポインター。 |
戻り値
HRESULT 値を返します。
解説(Remarks)
このメソッドが取得する値はアプリケーションが定義します。値は IAMTuner::put_TuningSpace の呼び出しを通じて設定されます。
Logon メソッドは、ユーザーをシステムにログオンさせます。
| hCurrentUser | HANDLE | in | 現在のユーザーを識別するアプリケーション定義のデータ構造体へのハンドル。 |
戻り値
HRESULT 値を返します。
解説(Remarks)
Logon メソッドと Logout メソッドにより、ユーザーの選択的なアクセス制御を実装できます。
Logout メソッドは、現在のユーザーをログアウトさせます。
戻り値
HRESULT 値を返します。
SignalPresent メソッドは、指定したチャンネルの信号強度を取得します。
| plSignalStrength | INT* | out | 現在のチャンネルに信号が存在するかどうかを示す値を受け取る変数へのポインター。次のいずれかの値になります。
AMTUNER_HASNOSIGNALSTRENGTH の値は、現時点では信号強度を判定できないことを意味します。 |
戻り値
HRESULT 値を返します。
put_Mode メソッドは、多機能チューナーを指定したモードに設定します。
| lMode | AMTunerModeType | in | 切り替えるモードを示すフラグ。取り得る値は AMTunerModeType 列挙体で定義されています。 カードが対応している場合は、モードをデジタル TV に設定することもできます。そのためには、AMTUNER_MODE_DTV を値 0x0010 として定義します。 |
戻り値
HRESULT 値を返します。
get_Mode メソッドは、多機能チューナーの現在のモードを取得します。
| plMode | AMTunerModeType* | out | 現在のモード設定を示すフラグを受け取る変数へのポインター。取り得る値は AMTunerModeType 列挙体で定義されています。 |
戻り値
インターフェイスの実装に依存する HRESULT 値を返します。
GetAvailableModes メソッドは、チューナーが対応しているモードを取得します。
| plModes | INT* | out | AMTunerModeType 列挙体で指定されている値の任意の組み合わせを受け取る変数へのポインター。 |
戻り値
HRESULT 値を返します。
RegisterNotificationCallBack メソッドにより、チューナーの状態が変化したときにオブジェクトがイベント通知を受け取れるようになります。
| pNotify | IAMTunerNotification* | in | イベント通知を受け取る IAMTunerNotification インターフェイスへのポインター。 |
| lEvents | INT | in | イベントが発生したことを示すフラグ。 |
戻り値
E_NOTIMPL を返します。
UnRegisterNotificationCallBack メソッドは、イベント通知に対するオブジェクトの登録を解除します。(IAMTuner.UnRegisterNotificationCallBack)
| pNotify | IAMTunerNotification* | in | 以前の RegisterNotificationCallBack 呼び出しで指定した IAMTunerNotification インターフェイスへのポインター。 |
戻り値
E_NOTIMPL を返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IAMTuner "{211A8761-03AC-11D1-8D13-00AA00BD8339}" #usecom global IAMTuner IID_IAMTuner "{}" #comfunc global IAMTuner_put_Channel 3 int,int,int #comfunc global IAMTuner_get_Channel 4 var,var,var #comfunc global IAMTuner_ChannelMinMax 5 var,var #comfunc global IAMTuner_put_CountryCode 6 int #comfunc global IAMTuner_get_CountryCode 7 var #comfunc global IAMTuner_put_TuningSpace 8 int #comfunc global IAMTuner_get_TuningSpace 9 var #comfunc global IAMTuner_Logon 10 sptr #comfunc global IAMTuner_Logout 11 #comfunc global IAMTuner_SignalPresent 12 var #comfunc global IAMTuner_put_Mode 13 int #comfunc global IAMTuner_get_Mode 14 var #comfunc global IAMTuner_GetAvailableModes 15 var #comfunc global IAMTuner_RegisterNotificationCallBack 16 sptr,int #comfunc global IAMTuner_UnRegisterNotificationCallBack 17 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IAMTuner "{211A8761-03AC-11D1-8D13-00AA00BD8339}" #usecom global IAMTuner IID_IAMTuner "{}" #comfunc global IAMTuner_put_Channel 3 int,int,int #comfunc global IAMTuner_get_Channel 4 sptr,sptr,sptr #comfunc global IAMTuner_ChannelMinMax 5 sptr,sptr #comfunc global IAMTuner_put_CountryCode 6 int #comfunc global IAMTuner_get_CountryCode 7 sptr #comfunc global IAMTuner_put_TuningSpace 8 int #comfunc global IAMTuner_get_TuningSpace 9 sptr #comfunc global IAMTuner_Logon 10 sptr #comfunc global IAMTuner_Logout 11 #comfunc global IAMTuner_SignalPresent 12 sptr #comfunc global IAMTuner_put_Mode 13 int #comfunc global IAMTuner_get_Mode 14 sptr #comfunc global IAMTuner_GetAvailableModes 15 sptr #comfunc global IAMTuner_RegisterNotificationCallBack 16 sptr,int #comfunc global IAMTuner_UnRegisterNotificationCallBack 17 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。