IAMLine21Decoder
COM公式ドキュメント
IAMLine21Decoder インターフェイスは、クローズドキャプションに関する情報を設定および取得します。Line 21 Decoder フィルターがこのインターフェイスを公開します。
メソッド 13
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
GetDecoderLevel メソッドは、クローズドキャプションのデコーダーレベルを取得します。
| lpLevel | AM_LINE21_CCLEVEL* | inout | AM_LINE21_CCLEVEL 列挙体のメンバーを受け取る変数へのポインター。返される値は常に AM_L21_CCLEVEL_TC2(TeleCaption II)です。 |
戻り値
HRESULT 値を返します。指定できる値は次のとおりです。
| 戻り値コード | 説明 |
|---|---|
| 無効な引数 | |
| 成功 |
解説(Remarks)
TeleCaption I および TeleCaption II は、クローズドキャプションデコーダーの規格です。Line 21 Decoder フィルターは TeleCaption II をサポートしており、これは TeleCaption I と下位互換性があります。
GetCurrentService メソッドは、現在のクローズドキャプションサービスを取得します。
| lpService | AM_LINE21_CCSERVICE* | inout | AM_LINE21_CCSERVICE 列挙体のメンバーを受け取る変数へのポインター。既定のサービスは CC1 です。 |
戻り値
HRESULT 値を返します。指定できる値は次のとおりです。
| 戻り値コード | 説明 |
|---|---|
| 無効な引数 | |
| 成功 |
SetCurrentService メソッドは、クローズドキャプションサービスを設定します。
| Service | AM_LINE21_CCSERVICE | in | クローズドキャプションサービスを指定する AM_LINE21_CCSERVICE 列挙体のメンバー。既定のサービスは CC1 です。 |
戻り値
| 値 | 説明 |
|---|---|
| E_INVALIDARG | 無効な引数 |
| E_NOTIMPL | 要求されたサービスは実装されていません。 |
| S_OK | 成功 |
GetServiceState メソッドは、クローズドキャプションがオンかオフかを示します。
| lpState | AM_LINE21_CCSTATE* | inout | AM_LINE21_CCSTATE 列挙体のメンバーを受け取る変数へのポインター。 |
戻り値
HRESULT 値を返します。指定できる値は次のとおりです。
| 戻り値コード | 説明 |
|---|---|
| 無効な引数 | |
| 成功 |
解説(Remarks)
既定では、Line 21 Decoder はクローズドキャプションを有効にします。
SetServiceState メソッドは、クローズドキャプションを有効または無効にします。
| State | AM_LINE21_CCSTATE | in | クローズドキャプションを有効にするか無効にするかを指定する AM_LINE21_CCSTATE 列挙体のメンバー。 |
戻り値
HRESULT 値を返します。指定できる値は次のとおりです。
| 戻り値コード | 説明 |
|---|---|
| 無効な引数 | |
| 成功 |
GetOutputFormat メソッドは、Line 21 Decoder フィルターの出力形式を取得します。
| lpbmih | BITMAPINFOHEADER* | inout | 呼び出し側が割り当てた BITMAPINFOHEADER 構造体へのポインター。 |
戻り値
HRESULT 値を返します。指定できる値は次のとおりです。
| 戻り値コード | 説明 |
|---|---|
| 無効な引数 | |
| 成功 | |
| 出力形式が設定されていません。 |
SetOutputFormat メソッドは、Line 21 Decoder フィルターの出力形式を設定します。
| lpbmi | BITMAPINFO* | inout | 出力形式を記述する BITMAPINFO 構造体へのポインター。 |
戻り値
E_NOTIMPL を返します。
GetBackgroundColor メソッドは、Line 21 Decoder フィルターがオーバーレイに使用する背景色を取得します。既定の背景色はマゼンタです。
| pdwPhysColor | DWORD* | inout | 背景色をピクセルのカラー値として受け取る変数へのポインター。ピクセル値の意味は、フィルターの現在の出力形式のビット深度によって定義されます。 |
戻り値
HRESULT 値を返します。指定できる値は次のとおりです。
| 戻り値コード | 説明 |
|---|---|
| 無効な引数 | |
| 成功 |
SetBackgroundColor メソッドは、Line 21 Decoder フィルターがオーバーレイに使用する背景色を設定します。既定の背景色はマゼンタです。
| dwPhysColor | DWORD | in | 背景色をピクセルのカラー値として設定します。ピクセル値の意味は、フィルターの現在の出力形式のビット深度によって定義されます。 |
戻り値
成功した場合は S_OK を、それ以外の場合はエラーコードを返します。
GetRedrawAlways メソッドは、Line 21 Decoder フィルターがサンプルごとに出力ビットマップ全体を再描画するかどうかを示します。
| lpbOption | BOOL* | inout | 次のいずれかの値を受け取る変数へのポインター。
|
戻り値
HRESULT 値を返します。指定できる値は次のとおりです。
| 戻り値コード | 説明 |
|---|---|
| 無効な引数 | |
| 成功 |
SetRedrawAlways メソッドは、Line 21 Decoder フィルターがサンプルごとに出力ビットマップ全体を再描画するかどうかを指定します。
| bOption | BOOL | in | 次のいずれかの値を指定します。
|
戻り値
成功した場合は S_OK を、それ以外の場合はエラーコードを返します。
解説(Remarks)
一般に、アプリケーションはこのメソッドを呼び出すべきではありません。下流のミキサーまたはレンダラーフィルターが Line 21 Decoder フィルターから受け取ったバッファに書き込みを行う場合、そのフィルターは値 TRUE を指定してこのメソッドを呼び出す必要があります。再描画は潜在的な最適化を無効にするため、パフォーマンスを低下させ、CPU 負荷を増加させます。
GetDrawBackgroundMode メソッドは、Line 21 Decoder フィルターがキャプションを透明な背景と不透明な背景のどちらに描画するかを示します。既定では、キャプションの背景は不透明です。
| lpMode | AM_LINE21_DRAWBGMODE* | inout | AM_LINE21_DRAWBGMODE 列挙体のメンバーを受け取る変数へのポインター。 |
戻り値
HRESULT 値を返します。指定できる値は次のとおりです。
| 戻り値コード | 説明 |
|---|---|
| 無効な引数 | |
| 成功 |
SetDrawBackgroundMode メソッドは、Line 21 Decoder フィルターがキャプションを透明な背景と不透明な背景のどちらに描画するかを指定します。既定では、キャプションの背景は不透明です。
| Mode | AM_LINE21_DRAWBGMODE | in | AM_LINE21_DRAWBGMODE 列挙体のメンバーを指定します。 |
戻り値
HRESULT 値を返します。指定できる値は次のとおりです。
| 戻り値コード | 説明 |
|---|---|
| 無効な引数 | |
| 成功 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IAMLine21Decoder "{6E8D4A21-310C-11D0-B79A-00AA003767A7}" #usecom global IAMLine21Decoder IID_IAMLine21Decoder "{}" #comfunc global IAMLine21Decoder_GetDecoderLevel 3 var #comfunc global IAMLine21Decoder_GetCurrentService 4 var #comfunc global IAMLine21Decoder_SetCurrentService 5 int #comfunc global IAMLine21Decoder_GetServiceState 6 var #comfunc global IAMLine21Decoder_SetServiceState 7 int #comfunc global IAMLine21Decoder_GetOutputFormat 8 var #comfunc global IAMLine21Decoder_SetOutputFormat 9 var #comfunc global IAMLine21Decoder_GetBackgroundColor 10 var #comfunc global IAMLine21Decoder_SetBackgroundColor 11 int #comfunc global IAMLine21Decoder_GetRedrawAlways 12 var #comfunc global IAMLine21Decoder_SetRedrawAlways 13 int #comfunc global IAMLine21Decoder_GetDrawBackgroundMode 14 var #comfunc global IAMLine21Decoder_SetDrawBackgroundMode 15 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IAMLine21Decoder "{6E8D4A21-310C-11D0-B79A-00AA003767A7}" #usecom global IAMLine21Decoder IID_IAMLine21Decoder "{}" #comfunc global IAMLine21Decoder_GetDecoderLevel 3 sptr #comfunc global IAMLine21Decoder_GetCurrentService 4 sptr #comfunc global IAMLine21Decoder_SetCurrentService 5 int #comfunc global IAMLine21Decoder_GetServiceState 6 sptr #comfunc global IAMLine21Decoder_SetServiceState 7 int #comfunc global IAMLine21Decoder_GetOutputFormat 8 sptr #comfunc global IAMLine21Decoder_SetOutputFormat 9 sptr #comfunc global IAMLine21Decoder_GetBackgroundColor 10 sptr #comfunc global IAMLine21Decoder_SetBackgroundColor 11 int #comfunc global IAMLine21Decoder_GetRedrawAlways 12 sptr #comfunc global IAMLine21Decoder_SetRedrawAlways 13 int #comfunc global IAMLine21Decoder_GetDrawBackgroundMode 14 sptr #comfunc global IAMLine21Decoder_SetDrawBackgroundMode 15 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。