IDTFilter
COM公式ドキュメント
IDTFilter インターフェイスは Decrypter/Detagger フィルターによって公開されます。アプリケーションはこのインターフェイスを使用して、レーティング(視聴制限)の許可を設定できます。
解説(Remarks)
このインターフェイスのインターフェイス識別子 (IID) を宣言するには、__uuidof 演算子を使用します: __uuidof(IDTFilter)。
メソッド 8
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
get_EvalRatObjOK メソッドは、EvalRat オブジェクトが正常に作成されたかどうかを照会します。
| pHrCoCreateRetVal | HRESULT* | out | HRESULT 値を受け取ります。この HRESULT は、フィルターが EvalRat オブジェクトを作成するために CoCreateInstance を呼び出したときに返された値です。S_OK に等しい場合、EvalRat オブジェクトは正常に作成されています。 |
戻り値
GetCurrRating メソッドは、最新のメディアサンプルに基づいて現在のレーティングを取得します。
| pEnSystem | EnTvRat_System* | out | レーティングシステムを EnTvRat_System 列挙型として受け取ります。 |
| pEnRating | EnTvRat_GenericLevel* | out | レーティングレベルを EnTvRat_GenericLevel 列挙型として受け取ります。この値の意味はレーティングシステムによって異なります。 |
| plbfEnAttr | INT* | out | BfEnTvRat_GenericAttributes 列挙のフラグのビット単位の組み合わせを受け取ります。これらのフラグは、暴力表現や成人向けの言葉遣いといったコンテンツ属性を指定します。コンテンツ属性はすべてのレーティングシステムに適用されるわけではありません。 |
戻り値
成功した場合は S_OK を、それ以外の場合はエラーコードを返します。
get_BlockedRatingAttributes メソッドは、指定したレーティングシステムおよびレーティングレベルに対してコンテンツがブロックされるかどうかを判定します。
| enSystem | EnTvRat_System | in | レーティングシステムを EnTvRat_System 列挙型として指定します。 |
| enLevel | EnTvRat_GenericLevel | in | レーティングレベルを EnTvRat_GenericLevel 列挙型として指定します。 |
| plbfEnAttr | INT* | out | BfEnTvRat_GenericAttributes 列挙のフラグのビット単位の組み合わせを受け取ります。 |
戻り値
HRESULT を返します。取り得る値には次のものがあります。
| リターンコード | 説明 |
|---|---|
| EvalRat オブジェクトが正常に作成されませんでした。 | |
| 成功。 |
解説(Remarks)
フィルターはこの呼び出しを EvalRat オブジェクトへそのまま渡します。詳細については、IEvalRat::get_BlockedRatingAttributes を参照してください。
put_BlockedRatingAttributes メソッドは、指定したレーティングを持つコンテンツをブロックするかどうかを指定します。
| enSystem | EnTvRat_System | in | レーティングシステムを EnTvRat_System 列挙型として指定します。 |
| enLevel | EnTvRat_GenericLevel | in | レーティングレベルを EnTvRat_GenericLevel 列挙型として指定します。 |
| lbfAttrs | INT | in | BfEnTvRat_GenericAttributes 列挙の 0 個以上のフラグのビット単位の組み合わせです。 |
戻り値
HRESULT を返します。取り得る値には次のものがあります。
| リターンコード | 説明 |
|---|---|
| EvalRat オブジェクトが正常に作成されませんでした。 | |
| 成功。 |
解説(Remarks)
フィルターはこの呼び出しを EvalRat オブジェクトへそのまま渡します。詳細については、IEvalRat::put_BlockedRatingAttributes を参照してください。
get_BlockUnRated メソッドは、レーティング情報のない番組がブロックされるかどうかを示します。
| pfBlockUnRatedShows | BOOL* | out | ブール値を受け取ります。値が TRUE の場合、レーティングのない番組はブロックされます。それ以外の場合はブロックされません。 |
戻り値
HRESULT を返します。取り得る値には次のものがあります。
| リターンコード | 説明 |
|---|---|
| EvalRat オブジェクトが正常に作成されませんでした。 | |
| 成功。 |
解説(Remarks)
フィルターはこの呼び出しを EvalRat オブジェクトへそのまま渡します。詳細については、IEvalRat::get_BlockUnRated を参照してください。
put_BlockUnRated メソッドは、レーティング情報が取得されていない番組をブロックするかどうかを指定します。
| fBlockUnRatedShows | BOOL | in | ブール値です。レーティングのない番組をブロックするには TRUE を、ブロックしない場合は FALSE を指定します。 |
戻り値
HRESULT を返します。取り得る値には次のものがあります。
| リターンコード | 説明 |
|---|---|
| EvalRat オブジェクトが正常に作成されませんでした。 | |
| 成功。 |
解説(Remarks)
フィルターはこの呼び出しを EvalRat オブジェクトへそのまま渡します。詳細については、IEvalRat::put_BlockUnRated を参照してください。
get_BlockUnRatedDelay メソッドは、フィルターがレーティングのないコンテンツをブロックするまでに待機する時間の長さを取得します。
| pmsecsDelayBeforeBlock | INT* | out | 遅延時間をミリ秒単位で受け取ります。 |
戻り値
解説(Remarks)
このプロパティの値にかかわらず、BlockUnRated プロパティが TRUE でない限り、フィルターはレーティングのないコンテンツをブロックしません。
put_BlockUnRatedDelay メソッドは、フィルターがレーティングのないコンテンツをブロックするまでに待機する時間の長さを設定します。
| msecsDelayBeforeBlock | INT | in | 遅延時間をミリ秒単位で指定します。値は 0 から 60000(60 秒)までである必要があります。 |
戻り値
HRESULT を返します。取り得る値には次のものがあります。
| リターンコード | 説明 |
|---|---|
| 無効な引数 | |
| 成功 |
解説(Remarks)
このプロパティの値にかかわらず、BlockUnRated プロパティが TRUE でない限り、フィルターはレーティングのないコンテンツをブロックしません。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IDTFilter "{C4C4C4B2-0049-4E2B-98FB-9537F6CE516D}" #usecom global IDTFilter IID_IDTFilter "{C4C4C4F2-0049-4E2B-98FB-9537F6CE516D}" #comfunc global IDTFilter_get_EvalRatObjOK 3 var #comfunc global IDTFilter_GetCurrRating 4 var,var,var #comfunc global IDTFilter_get_BlockedRatingAttributes 5 int,int,var #comfunc global IDTFilter_put_BlockedRatingAttributes 6 int,int,int #comfunc global IDTFilter_get_BlockUnRated 7 var #comfunc global IDTFilter_put_BlockUnRated 8 int #comfunc global IDTFilter_get_BlockUnRatedDelay 9 var #comfunc global IDTFilter_put_BlockUnRatedDelay 10 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IDTFilter "{C4C4C4B2-0049-4E2B-98FB-9537F6CE516D}" #usecom global IDTFilter IID_IDTFilter "{C4C4C4F2-0049-4E2B-98FB-9537F6CE516D}" #comfunc global IDTFilter_get_EvalRatObjOK 3 sptr #comfunc global IDTFilter_GetCurrRating 4 sptr,sptr,sptr #comfunc global IDTFilter_get_BlockedRatingAttributes 5 int,int,sptr #comfunc global IDTFilter_put_BlockedRatingAttributes 6 int,int,int #comfunc global IDTFilter_get_BlockUnRated 7 sptr #comfunc global IDTFilter_put_BlockUnRated 8 int #comfunc global IDTFilter_get_BlockUnRatedDelay 9 sptr #comfunc global IDTFilter_put_BlockUnRatedDelay 10 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。