IAMWstDecoder
COM公式ドキュメント
IAMWstDecoder インターフェイスは、World Standard Teletext (WST) に関する情報を設定および取得します。WST Decoder フィルターがこのインターフェイスを実装します。
メソッド 18
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
アプリケーションは GetDecoderLevel メソッドを使用して、WST デコーダーのレベルを取得します。このメソッドは実装されておらず、常に AM_WST_LEVEL_1_5 を返します。
| lpLevel | AM_WST_LEVEL* | inout | デコーダーのレベルを示す AM_WST_LEVEL 列挙型のメンバーを受け取ります。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
アプリケーションは GetCurrentService メソッドを使用して、現在の WST サービスを取得します。
| lpService | AM_WST_SERVICE* | inout | 現在使用されているサービスを受け取る AM_WST_SERVICE 列挙型へのポインターを指定します。
|
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
アプリケーションは GetServiceState メソッドを使用して、現在のサービス状態を取得します。
| lpState | AM_WST_STATE* | inout | 状態を受け取る変数へのポインター。AM_WST_STATE 列挙型のメンバーとして指定します。次の値が可能です。
|
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
アプリケーションは SetServiceState メソッドを使用して、サービス状態を割り当てます。
| State | AM_WST_STATE | in | サービス状態を割り当てる AM_WST_STATE 列挙型のメンバーを指定します。
|
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ダウンストリームフィルターは GetOutputFormat メソッドを使用して、出力ビデオのサイズ、ビット深度、その他のパラメーターを取得します。
| lpbmih | BITMAPINFOHEADER* | inout | 出力ビデオのサイズ、ビット深度、その他のプロパティを受け取る BITMAPINFOHEADER 構造体へのポインター。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ダウンストリームフィルターは SetOutputFormat メソッドを使用して、出力ビデオ形式を定義します。
| lpbmi | BITMAPINFO* | inout | サイズ、ビット深度、その他のプロパティなど、出力ビデオ形式を記述する BITMAPINFO 構造体へのポインター。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
| リターンコード | 説明 |
|---|---|
| 現時点では、ダウンストリームフィルターは出力形式を定義していません。 | |
| ダウンストリームフィルターは既に出力形式を定義しています。 |
ダウンストリームフィルターは GetBackgroundColor メソッドを使用して、オーバーレイミキシング用に背景をカラーキーイングする際に使用される現在の物理カラーを取得します。
| pdwPhysColor | DWORD* | inout | 物理カラーを RGB 値として受け取ります。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ダウンストリームフィルターは SetBackgroundColor メソッドを使用して、オーバーレイミキシング用に背景をカラーキーイングする際に使用する物理カラーを割り当てます。
| dwPhysColor | DWORD | in | 物理カラーを含む DWORD を指定します。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ダウンストリームフィルターは GetRedrawAlways メソッドを使用して、サンプルごとに出力ビットマップ全体を再描画するかどうかを示す値を取得します。
| lpbOption | BOOL* | inout | 常時再描画の値を受け取る BOOL へのポインター。
|
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ダウンストリームフィルターは SetRedrawAlways メソッドを使用して、サンプルごとに出力ビットマップ全体を再描画するかどうかを設定します。
| bOption | BOOL | in | サンプルごとに出力ビットマップ全体を再描画するかどうかを割り当てる BOOL を指定します。
|
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ダウンストリームフィルターは GetDrawBackgroundMode メソッドを使用して、キャプションテキストの背景が不透明か透明かを判定します。
| lpMode | AM_WST_DRAWBGMODE* | inout | AM_WST_DRAWBGMODE 列挙型のメンバーを受け取ります。このパラメーターは次のいずれかの値を受け取ります。
|
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ダウンストリームフィルターは SetDrawBackgroundMode メソッドを使用して、キャプションテキストの背景を不透明にするか透明にするかを割り当てます。
| Mode | AM_WST_DRAWBGMODE | in | キャプションテキストの背景を不透明にするか透明にするかを指定する AM_WST_DRAWBGMODE 列挙型のメンバー。
|
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ダウンストリームフィルターは SetAnswerMode メソッドを使用して、現在の解答モードを割り当てます。
| bAnswer | BOOL | in | 現在の解答モードを指定します。
|
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ダウンストリームフィルターは GetAnswerMode メソッドを使用して、現在の解答モードを取得します。
| pbAnswer | BOOL* | inout | 現在の解答モードを受け取ります。
|
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT コードを返します。
ダウンストリームフィルターは SetHoldPage メソッドを使用して、現在の WST ページを保持するよう WST デコーダーに指示します。WST デコーダーがページを保持している間、TV ストリームからの更新はすべてオフになります。これは、ページがリアルタイムで一時停止されたかのような状態です。
| bHoldPage | BOOL | in | 現在のページを保持するかどうかを指定します。
|
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ダウンストリームフィルターは GetHoldPage メソッドを使用して、現在の WST ページが保持されているかどうかを判定します。WST デコーダーがページを保持している間、TV ストリームからの更新はすべてオフになります。これは、ページがリアルタイムで一時停止されたかのような状態です。
| pbHoldPage | BOOL* | inout | WST ページの状態を受け取る BOOL へのポインター。
|
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ダウンストリームフィルターは GetCurrentPage メソッドを使用して、現在の WST ページを取得します。
| pWstPage | AM_WST_PAGE* | inout | 現在のページを受け取る AM_WST_PAGE 構造体へのポインター。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ダウンストリームフィルターは SetCurrentPage メソッドを使用して、現在のページを割り当てます。
| WstPage | AM_WST_PAGE | in | 現在のページを割り当てるために使用する AM_WST_PAGE 構造体を指定します。 |
戻り値
メソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IAMWstDecoder "{C056DE21-75C2-11D3-A184-00105AEF9F33}" #usecom global IAMWstDecoder IID_IAMWstDecoder "{}" #comfunc global IAMWstDecoder_GetDecoderLevel 3 var #comfunc global IAMWstDecoder_GetCurrentService 4 var #comfunc global IAMWstDecoder_GetServiceState 5 var #comfunc global IAMWstDecoder_SetServiceState 6 int #comfunc global IAMWstDecoder_GetOutputFormat 7 var #comfunc global IAMWstDecoder_SetOutputFormat 8 var #comfunc global IAMWstDecoder_GetBackgroundColor 9 var #comfunc global IAMWstDecoder_SetBackgroundColor 10 int #comfunc global IAMWstDecoder_GetRedrawAlways 11 var #comfunc global IAMWstDecoder_SetRedrawAlways 12 int #comfunc global IAMWstDecoder_GetDrawBackgroundMode 13 var #comfunc global IAMWstDecoder_SetDrawBackgroundMode 14 int #comfunc global IAMWstDecoder_SetAnswerMode 15 int #comfunc global IAMWstDecoder_GetAnswerMode 16 var #comfunc global IAMWstDecoder_SetHoldPage 17 int #comfunc global IAMWstDecoder_GetHoldPage 18 var #comfunc global IAMWstDecoder_GetCurrentPage 19 var #comfunc global IAMWstDecoder_SetCurrentPage 20 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IAMWstDecoder "{C056DE21-75C2-11D3-A184-00105AEF9F33}" #usecom global IAMWstDecoder IID_IAMWstDecoder "{}" #comfunc global IAMWstDecoder_GetDecoderLevel 3 sptr #comfunc global IAMWstDecoder_GetCurrentService 4 sptr #comfunc global IAMWstDecoder_GetServiceState 5 sptr #comfunc global IAMWstDecoder_SetServiceState 6 int #comfunc global IAMWstDecoder_GetOutputFormat 7 sptr #comfunc global IAMWstDecoder_SetOutputFormat 8 sptr #comfunc global IAMWstDecoder_GetBackgroundColor 9 sptr #comfunc global IAMWstDecoder_SetBackgroundColor 10 int #comfunc global IAMWstDecoder_GetRedrawAlways 11 sptr #comfunc global IAMWstDecoder_SetRedrawAlways 12 int #comfunc global IAMWstDecoder_GetDrawBackgroundMode 13 sptr #comfunc global IAMWstDecoder_SetDrawBackgroundMode 14 int #comfunc global IAMWstDecoder_SetAnswerMode 15 int #comfunc global IAMWstDecoder_GetAnswerMode 16 sptr #comfunc global IAMWstDecoder_SetHoldPage 17 int #comfunc global IAMWstDecoder_GetHoldPage 18 sptr #comfunc global IAMWstDecoder_GetCurrentPage 19 sptr #comfunc global IAMWstDecoder_SetCurrentPage 20 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。