ISCTE_EAS
COM公式ドキュメント
ISCTE_EAS インターフェースを使用すると、クライアントは ATSC の緊急警報メッセージ (EAS) テーブルからデータを取得できます。
メソッド 29
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
Initialize メソッドは、キャプチャしたテーブルセクションデータを使用してオブジェクトを初期化します。このメソッドは IAtscPsipParser::GetEAS メソッドによって内部的に呼び出されるため、通常はアプリケーションから呼び出す必要はありません。
| pSectionList | ISectionList* | inoptional | ISectionList インターフェースへのポインター。 |
| pMPEGData | IMpeg2Data* | inoptional | MPEG-2 Sections and Tables フィルターの IMpeg2Data インターフェースへのポインター。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| 引数が無効です。 | |
| メモリが不足しています。 | |
| EAS テーブルが正しく構成されていません。 | |
| メソッドが成功しました。 |
GetVersionNumber メソッドは、EAS テーブルのバージョン番号を返します。
| pbVal | BYTE* | out | version_number フィールドを受け取ります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
GetSequencyNumber メソッドは、シーケンス番号を返します。
| pbVal | BYTE* | out | sequence_number フィールドを受け取ります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
GetProtocolVersion メソッドは、EAS テーブルのプロトコルバージョンを返します。
| pbVal | BYTE* | out | protocol_version フィールドを受け取ります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
GetEASEventID メソッドは、この緊急イベントの識別子を返します。
| pwVal | WORD* | out | EAS_Event_ID フィールドを受け取ります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
GetOriginatorCode メソッドは、EAS 発信元コードを返します。
| pbVal | BYTE* | out | EAS_originator_code フィールドを受け取ります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
GetEASEventCodeLen メソッドは、EAS イベントコードのサイズを返します。
| pbVal | BYTE* | out | EAS イベントコードのサイズをバイト単位で受け取ります。イベントコードを取得するには、このサイズのバッファーを割り当てて ISCTE_EAS::GetEASEventCode を呼び出します。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
GetEASEventCode メソッドは、EAS イベントコードを返します。
| pbVal | BYTE* | out | EAS_event_code フィールドを受け取るバッファーへのポインター。呼び出し側がバッファーを割り当てる必要があり、イベントコードを保持できる十分な大きさが必要です。必要なバッファーサイズを取得するには ISCTE_EAS::GetEASEventCodeLen を呼び出します。イベントコードは ASCII 文字で構成されます。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
nature_of_activation_text フィールドの長さを取得します。
| pbVal | BYTE* | out | nature_of_activation_text フィールドのサイズをバイト単位で受け取ります。フィールドの値を取得するには、このサイズのバッファーを割り当てて ISCTE_EAS::GetRawNatureOfActivationText を呼び出します。 |
戻り値
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
EAS テーブルから生の nature_of_activation_text フィールドを取得します。
| pbVal | BYTE* | out | nature_of_activation_text フィールドを受け取るバッファーへのポインター。呼び出し側がバッファーを割り当てる必要があります。必要なバッファーサイズを取得するには ISCTE_EAS::GetRawNatureOfActivationTextLen を呼び出します。テキストは ATSC PSIP 規格 A/65 で定義される Multiple String Structure 形式です。 |
戻り値
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
特定の言語のテキストを取得するには ISCTE_EAS::GetNatureOfActivationText を呼び出します。
GetNatureOfActivationText メソッドは、指定された ISO 639 言語コードに対応する警報のテキスト表現を取得します。
| bstrIS0639code | LPWSTR | in | ISO 639 言語コード。 |
| pbstrString | LPWSTR* | out | テキストを BSTR として受け取ります。呼び出し側は SysFreeString を呼び出して文字列を解放する必要があります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| メソッドが成功しました。 | |
| 指定された言語が存在しません。 |
解説(Remarks)
返される文字列は、ANSI-J-STD-042-A で定義される nature_of_activation_text フィールドから取得されます。
GetTimeRemaining メソッドは、警報メッセージの残り時間を返します。
| pbVal | BYTE* | out | alert_message_time_remaining フィールドを受け取ります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
GetStartTime メソッドは、警報の開始時刻を返します。
| pdwVal | DWORD* | out | event_start_time フィールドを受け取ります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
GetDuration メソッドは、警報の予想される継続時間を返します。
| pwVal | WORD* | out | event_duration フィールドを受け取ります。このフィールドの値は予想される継続時間を分単位で表し、最上位ビットが先頭になります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
GetAlertPriority メソッドは、警報の優先度を返します。
| pbVal | BYTE* | out | alert_priority フィールドを受け取ります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
GetDetailsOOBSourceID メソッドは、緊急警報の詳細情報用仮想チャンネルのソース識別子を返します。
| pwVal | WORD* | out | details_OOB_source_ID フィールドを受け取ります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
GetDetailsMajor メソッドは、詳細情報チャンネルのメジャーチャンネル番号を返します。
| pwVal | WORD* | out | details_major_channel_number フィールドを受け取ります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
GetDetailsMinor メソッドは、詳細情報チャンネルのマイナーチャンネル番号を返します。
| pwVal | WORD* | out | details_minor_channel_number フィールドを受け取ります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
GetDetailsAudioOOBSourceID メソッドは、緊急警報の音声用仮想チャンネルのソース識別子を返します。
| pwVal | WORD* | out | audio_OOB_source_ID フィールドを受け取ります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
GetAlertText メソッドは、指定された ISO 639 言語コードに対応する警報テキストを取得します。
| bstrIS0639code | LPWSTR | in | ISO 639 言語コード。 |
| pbstrString | LPWSTR* | out | 警報テキストを BSTR として受け取ります。呼び出し側は SysFreeString を呼び出して文字列を解放する必要があります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| メソッドが成功しました。 | |
| 指定された言語が存在しません。 |
解説(Remarks)
返される文字列は、ANSI-J-STD-042-A で定義される alert_text フィールドから取得されます。
alert_text フィールドの長さを取得します。
| pwVal | WORD* | out | alert_text フィールドのサイズをバイト単位で受け取ります。フィールドの値を取得するには、このサイズのバッファーを割り当てて ISCTE_EAS::GetRawAlertText を呼び出します。 |
戻り値
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
EAS テーブルから生の alert_text フィールドを取得します。
| pbVal | BYTE* | out | alert_text フィールドを受け取るバッファーへのポインター。呼び出し側がバッファーを割り当てる必要があります。必要なバッファーサイズを取得するには ISCTE_EAS::GetRawAlertTextLen を呼び出します。テキストは ATSC PSIP 規格 A/65 で定義される Multiple String Structure 形式です。 |
戻り値
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
特定の言語の警報テキストを取得するには ISCTE_EAS::GetAlertText を呼び出します。
GetLocationCount メソッドは、EAS テーブル内のロケーション数を返します。
| pbVal | BYTE* | out | location_code_count フィールドを受け取ります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
GetLocationCodes メソッドは、EAS テーブルからロケーションコードを返します。
| bIndex | BYTE | in | 取得するロケーションコードの 0 から始まるインデックス。ロケーション数を取得するには ISCTE_EAS::GetLocationCount を呼び出します。 |
| pbState | BYTE* | out | state_code フィールドを受け取ります。 |
| pbCountySubdivision | BYTE* | out | county_subdivision フィールドを受け取ります。 |
| pwCounty | WORD* | out | county_code フィールドを受け取ります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| インデックスが範囲外です。 | |
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
GetExceptionCount メソッドは、例外サービスの数を返します。
| pbVal | BYTE* | out | exception_count フィールドを受け取ります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
GetExceptionService メソッドは、例外サービスに関する情報を返します。
| bIndex | BYTE | in | 取得する例外サービスの 0 から始まるインデックス。例外サービスの数を取得するには ISCTE_EAS::GetExceptionCount を呼び出します。 |
| pbIBRef | BYTE* | out | in_band_reference フラグを受け取ります。 |
| pwFirst | WORD* | out | in_band_reference フラグが TRUE の場合は exception_major_channel_number フィールドを受け取ります。それ以外の場合は exception_OOB_source_ID フィールドを受け取ります。 |
| pwSecond | WORD* | out | in_band_reference フラグが TRUE の場合は exception_minor_channel_number フィールドを受け取ります。それ以外の場合は値が未定義であり、このパラメーターは無視してください。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| インデックスが範囲外です。 | |
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
GetCountOfTableDescriptors メソッドは、EAS テーブル内の記述子の数を返します。
| pdwVal | DWORD* | out | 記述子の数を受け取ります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
GetTableDescriptorByIndex メソッドは、EAS テーブルの記述子を返します。
| dwIndex | DWORD | in | 取得する記述子の 0 から始まるインデックス。テーブル記述子の数を取得するには ISCTE_EAS::GetCountOfTableDescriptors メソッドを呼び出します。 |
| ppDescriptor | IGenericDescriptor** | out | IGenericDescriptor インターフェースへのポインターを受け取ります。呼び出し側はインターフェースを解放する必要があります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| インデックスが範囲外です。 | |
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| メソッドが成功しました。 |
GetTableDescriptorByTag メソッドは、指定された記述子タグを持つ記述子を EAS テーブルから検索します。
| bTag | BYTE | in | 検索する記述子タグ。 |
| pdwCookie | DWORD* | inout | 記述子リスト内の開始位置を指定する変数へのポインター。このパラメーターは NULL にできます。値が NULL の場合、検索はリストの最初の記述子から開始されます。それ以外の場合、検索は *pdwCookie で指定された位置から開始されます。メソッドが返るとき、pdwCookie パラメーターには、次に一致する記述子があればその位置が格納されます。このパラメーターを使用して記述子リストを反復処理し、特定の記述子タグのすべてのインスタンスを検索できます。 |
| ppDescriptor | IGenericDescriptor** | out | IGenericDescriptor インターフェースへのポインターを受け取ります。このインターフェースを使用して記述子内の情報を取得します。呼び出し側はインターフェースを解放する必要があります。 |
戻り値
このメソッドは HRESULT を返します。指定可能な値には、次の表の値が含まれますが、これらに限定されません。
| 戻り値コード | 説明 |
|---|---|
| 指定されたタグが見つかりませんでした。 | |
| インデックスが範囲外です。 | |
| ISCTE_EAS::Initialize メソッドが呼び出されていません。 | |
| このタグを持つ記述子がレコードにさらに 1 つ以上含まれています。 | |
| このタグを持つ記述子はレコードにこれ以上含まれていません。 | |
| メソッドが成功しました。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ISCTE_EAS "{1FF544D6-161D-4FAE-9FAA-4F9F492AE999}" #usecom global ISCTE_EAS IID_ISCTE_EAS "{}" #comfunc global ISCTE_EAS_Initialize 3 sptr,sptr #comfunc global ISCTE_EAS_GetVersionNumber 4 var #comfunc global ISCTE_EAS_GetSequencyNumber 5 var #comfunc global ISCTE_EAS_GetProtocolVersion 6 var #comfunc global ISCTE_EAS_GetEASEventID 7 var #comfunc global ISCTE_EAS_GetOriginatorCode 8 var #comfunc global ISCTE_EAS_GetEASEventCodeLen 9 var #comfunc global ISCTE_EAS_GetEASEventCode 10 var #comfunc global ISCTE_EAS_GetRawNatureOfActivationTextLen 11 var #comfunc global ISCTE_EAS_GetRawNatureOfActivationText 12 var #comfunc global ISCTE_EAS_GetNatureOfActivationText 13 wstr,var #comfunc global ISCTE_EAS_GetTimeRemaining 14 var #comfunc global ISCTE_EAS_GetStartTime 15 var #comfunc global ISCTE_EAS_GetDuration 16 var #comfunc global ISCTE_EAS_GetAlertPriority 17 var #comfunc global ISCTE_EAS_GetDetailsOOBSourceID 18 var #comfunc global ISCTE_EAS_GetDetailsMajor 19 var #comfunc global ISCTE_EAS_GetDetailsMinor 20 var #comfunc global ISCTE_EAS_GetDetailsAudioOOBSourceID 21 var #comfunc global ISCTE_EAS_GetAlertText 22 wstr,var #comfunc global ISCTE_EAS_GetRawAlertTextLen 23 var #comfunc global ISCTE_EAS_GetRawAlertText 24 var #comfunc global ISCTE_EAS_GetLocationCount 25 var #comfunc global ISCTE_EAS_GetLocationCodes 26 int,var,var,var #comfunc global ISCTE_EAS_GetExceptionCount 27 var #comfunc global ISCTE_EAS_GetExceptionService 28 int,var,var,var #comfunc global ISCTE_EAS_GetCountOfTableDescriptors 29 var #comfunc global ISCTE_EAS_GetTableDescriptorByIndex 30 int,sptr #comfunc global ISCTE_EAS_GetTableDescriptorByTag 31 int,var,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ISCTE_EAS "{1FF544D6-161D-4FAE-9FAA-4F9F492AE999}" #usecom global ISCTE_EAS IID_ISCTE_EAS "{}" #comfunc global ISCTE_EAS_Initialize 3 sptr,sptr #comfunc global ISCTE_EAS_GetVersionNumber 4 sptr #comfunc global ISCTE_EAS_GetSequencyNumber 5 sptr #comfunc global ISCTE_EAS_GetProtocolVersion 6 sptr #comfunc global ISCTE_EAS_GetEASEventID 7 sptr #comfunc global ISCTE_EAS_GetOriginatorCode 8 sptr #comfunc global ISCTE_EAS_GetEASEventCodeLen 9 sptr #comfunc global ISCTE_EAS_GetEASEventCode 10 sptr #comfunc global ISCTE_EAS_GetRawNatureOfActivationTextLen 11 sptr #comfunc global ISCTE_EAS_GetRawNatureOfActivationText 12 sptr #comfunc global ISCTE_EAS_GetNatureOfActivationText 13 wstr,sptr #comfunc global ISCTE_EAS_GetTimeRemaining 14 sptr #comfunc global ISCTE_EAS_GetStartTime 15 sptr #comfunc global ISCTE_EAS_GetDuration 16 sptr #comfunc global ISCTE_EAS_GetAlertPriority 17 sptr #comfunc global ISCTE_EAS_GetDetailsOOBSourceID 18 sptr #comfunc global ISCTE_EAS_GetDetailsMajor 19 sptr #comfunc global ISCTE_EAS_GetDetailsMinor 20 sptr #comfunc global ISCTE_EAS_GetDetailsAudioOOBSourceID 21 sptr #comfunc global ISCTE_EAS_GetAlertText 22 wstr,sptr #comfunc global ISCTE_EAS_GetRawAlertTextLen 23 sptr #comfunc global ISCTE_EAS_GetRawAlertText 24 sptr #comfunc global ISCTE_EAS_GetLocationCount 25 sptr #comfunc global ISCTE_EAS_GetLocationCodes 26 int,sptr,sptr,sptr #comfunc global ISCTE_EAS_GetExceptionCount 27 sptr #comfunc global ISCTE_EAS_GetExceptionService 28 int,sptr,sptr,sptr #comfunc global ISCTE_EAS_GetCountOfTableDescriptors 29 sptr #comfunc global ISCTE_EAS_GetTableDescriptorByIndex 30 int,sptr #comfunc global ISCTE_EAS_GetTableDescriptorByTag 31 int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。