IBDA_FrequencyFilter
COM公式ドキュメント
IBDA_FrequencyFilter インターフェースは BDA チューナーデバイス上に実装され、Network Provider がチューナーに対して周波数の設定方法を指示するために使用します。
解説(Remarks)
このインターフェースのインターフェース識別子 (IID) を宣言するには、__uuidof 演算子を使用します: __uuidof(IBDA_FrequencyFilter)。
メソッド 12
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
put_Autotune メソッドは、デバイスのオートチューン機能を有効にするかどうかを指定します。
| ulTransponder | DWORD | in | トランスポンダー周波数を指定します。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
get_Autotune メソッドは、オートチューン周波数を取得します。
| pulTransponder | DWORD* | inout | トランスポンダー周波数を指定します。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
put_Frequency メソッドは、周波数を指定します。
| ulFrequency | DWORD | in | 周波数を指定します。単位は 1 Hz × 周波数乗数です。ここで 周波数乗数 は IBDA_FrequencyFilter::get_FrequencyMultiplier メソッドが返す値です。既定の周波数乗数は 1000 であるため、既定の単位はキロヘルツ (kHz) です。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
DVB-S、DVB-T、および ATSC の周波数はすべてキロヘルツで表現される必要があるため、既定の周波数乗数は変更しないでください。
get_Frequency メソッドは、周波数を取得します。
| pulFrequency | DWORD* | inout | 周波数を受け取るポインターです。単位は 1 Hz × 周波数乗数です。ここで 周波数乗数 は IBDA_FrequencyFilter::get_FrequencyMultiplier メソッドが返す値です。既定の周波数乗数は 1000 であるため、既定の単位はキロヘルツ (kHz) です。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
DVB-S、DVB-T、および ATSC の周波数はすべてキロヘルツで表現される必要があるため、既定の周波数乗数は変更しないでください。
put_Polarity メソッドは、信号の極性を指定します。
| Polarity | Polarisation | in | Polarisation 列挙型のメンバーとして極性を指定します。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
get_Polarity メソッドは、極性を取得します。
| pPolarity | Polarisation* | inout | Polarisation 変数を受け取るポインターです。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
put_Range メソッドは、チューナーの範囲を指定します。チューナーの範囲とは、特定のキャリア周波数を探索する周波数領域のことです。
| ulRange | DWORD | in | チューナーの範囲を指定します。単位は 1 Hz × 周波数乗数です。ここで 周波数乗数 は IBDA_FrequencyFilter::get_FrequencyMultiplier メソッドが返す値です。既定の周波数乗数は 1000 であるため、既定の単位はキロヘルツ (kHz) です。このパラメーター値を -1 に設定すると、チューナーの範囲は設定されません。パラメーター値を 0 に設定すると、チューナーの範囲は未定義になります。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
get_Range メソッドは、チューナーの範囲を取得します。チューナーの範囲とは、特定のキャリア周波数を探索する周波数領域のことです。
| pulRange | DWORD* | inout | チューナーの範囲を受け取るポインターです。単位は 1 Hz × 周波数乗数です。ここで 周波数乗数 は IBDA_FrequencyFilter::get_FrequencyMultiplier メソッドが返す値です。既定の周波数乗数は 1000 であるため、既定の単位はキロヘルツ (kHz) です。このパラメーターの値が -1 の場合は、チューナーの範囲が設定されていないことを示します。このパラメーターの値が 0 の場合は、チューナーの範囲が未定義であることを示します。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
put_Bandwidth メソッドは、帯域幅を指定します。
| ulBandwidth | DWORD | in | 帯域幅を指定します。単位は 1 Hz × 周波数乗数です。ここで 周波数乗数 は IBDA_FrequencyFilter::get_FrequencyMultiplier メソッドが返す値です。既定の周波数乗数は 1000 であるため、既定の単位はキロヘルツ (kHz) です。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
get_Bandwidth メソッドは、帯域幅を取得します。
| pulBandwidth | DWORD* | inout | 帯域幅を受け取るポインターです。単位は 1 Hz × 周波数乗数です。ここで 周波数乗数 は IBDA_FrequencyFilter::get_FrequencyMultiplier メソッドが返す値です。既定の周波数乗数は 1000 であるため、既定の単位はキロヘルツ (kHz) です。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
put_FrequencyMultiplier メソッドは、周波数乗数を指定します。周波数乗数は、このインターフェースのメソッドで使用される周波数の単位を決定します。既定値は 1000 であり、周波数がキロヘルツ (kHz) で表現されることを意味します。
| ulMultiplier | DWORD | in | 乗数を指定します。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
DVB-S、DVB-T、および ATSC の周波数はすべてキロヘルツで表現される必要があるため、既定の周波数乗数は決して変更しないでください。
get_FrequencyMultiplier メソッドは、周波数乗数を取得します。周波数乗数は、このインターフェースのメソッドで使用される周波数の単位を決定します。既定値は 1000 であり、周波数がキロヘルツ (kHz) で表現されることを意味します。
| pulMultiplier | DWORD* | inout | 乗数を受け取るポインターです。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。
解説(Remarks)
DVB-S、DVB-T、および ATSC の周波数はすべてキロヘルツで表現される必要があるため、既定の周波数乗数は変更しないでください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IBDA_FrequencyFilter "{71985F47-1CA1-11D3-9CC8-00C04F7971E0}" #usecom global IBDA_FrequencyFilter IID_IBDA_FrequencyFilter "{}" #comfunc global IBDA_FrequencyFilter_put_Autotune 3 int #comfunc global IBDA_FrequencyFilter_get_Autotune 4 var #comfunc global IBDA_FrequencyFilter_put_Frequency 5 int #comfunc global IBDA_FrequencyFilter_get_Frequency 6 var #comfunc global IBDA_FrequencyFilter_put_Polarity 7 int #comfunc global IBDA_FrequencyFilter_get_Polarity 8 var #comfunc global IBDA_FrequencyFilter_put_Range 9 int #comfunc global IBDA_FrequencyFilter_get_Range 10 var #comfunc global IBDA_FrequencyFilter_put_Bandwidth 11 int #comfunc global IBDA_FrequencyFilter_get_Bandwidth 12 var #comfunc global IBDA_FrequencyFilter_put_FrequencyMultiplier 13 int #comfunc global IBDA_FrequencyFilter_get_FrequencyMultiplier 14 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IBDA_FrequencyFilter "{71985F47-1CA1-11D3-9CC8-00C04F7971E0}" #usecom global IBDA_FrequencyFilter IID_IBDA_FrequencyFilter "{}" #comfunc global IBDA_FrequencyFilter_put_Autotune 3 int #comfunc global IBDA_FrequencyFilter_get_Autotune 4 sptr #comfunc global IBDA_FrequencyFilter_put_Frequency 5 int #comfunc global IBDA_FrequencyFilter_get_Frequency 6 sptr #comfunc global IBDA_FrequencyFilter_put_Polarity 7 int #comfunc global IBDA_FrequencyFilter_get_Polarity 8 sptr #comfunc global IBDA_FrequencyFilter_put_Range 9 int #comfunc global IBDA_FrequencyFilter_get_Range 10 sptr #comfunc global IBDA_FrequencyFilter_put_Bandwidth 11 int #comfunc global IBDA_FrequencyFilter_get_Bandwidth 12 sptr #comfunc global IBDA_FrequencyFilter_put_FrequencyMultiplier 13 int #comfunc global IBDA_FrequencyFilter_get_FrequencyMultiplier 14 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。