IETFilter
COM公式ドキュメント
IETFilter インターフェースは Encrypter/Tagger フィルターによって公開されます。ほとんどのアプリケーションでは、このインターフェースを使用する必要はありません。
解説(Remarks)
このインターフェースのインターフェース識別子 (IID) を宣言するには、__uuidof 演算子を使用します: __uuidof(IETFilter)。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
.
| 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 を、それ以外の場合はエラーコードを返します。
このメソッドは現在サポートされていません。
| protType | ProtType* | in | 予約されています。 |
| lpDateTime | INT* | out | 予約されています。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
実装されていません。
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| 実装されていません |
SetRecordingOn メソッドは、Video Control が録画を開始または停止しようとしていることを Encrypter/Tagger フィルターに通知します。
| fRecState | BOOL | in | 録画を開始しようとしている場合は TRUE、録画を停止しようとしている場合は FALSE です。 |
戻り値
このメソッドは HRESULT を返します。取り得る値には、次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
SetRecordingOn メソッドを使用すると、Video Control はテレビ放送信号内のコピープロテクションを適用できます。Video Control が Stream Buffer Engine を使用してテレビコンテンツを再生する場合、Encrypter/Tagger フィルターは Stream Buffer Sink グラフ内に配置されます。Encrypter/Tagger は、再生と録画の両方のために Stream Buffer Sink にデータを送信します。SetRecordingOn が値 TRUE で呼び出されると、Encrypter/Tagger はビデオストリームのコピープロテクションフラグを監視し、それらが変化した場合にはブロードキャストイベントを送信します。Video Control はこのイベントを待ち受け、コピープロテクションフラグで示されている場合には録画を禁止します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IETFilter "{C4C4C4B1-0049-4E2B-98FB-9537F6CE516D}" #usecom global IETFilter IID_IETFilter "{C4C4C4F1-0049-4E2B-98FB-9537F6CE516D}" #comfunc global IETFilter_get_EvalRatObjOK 3 var #comfunc global IETFilter_GetCurrRating 4 var,var,var #comfunc global IETFilter_GetCurrLicenseExpDate 5 var,var #comfunc global IETFilter_GetLastErrorCode 6 #comfunc global IETFilter_SetRecordingOn 7 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IETFilter "{C4C4C4B1-0049-4E2B-98FB-9537F6CE516D}" #usecom global IETFilter IID_IETFilter "{C4C4C4F1-0049-4E2B-98FB-9537F6CE516D}" #comfunc global IETFilter_get_EvalRatObjOK 3 sptr #comfunc global IETFilter_GetCurrRating 4 sptr,sptr,sptr #comfunc global IETFilter_GetCurrLicenseExpDate 5 sptr,sptr #comfunc global IETFilter_GetLastErrorCode 6 #comfunc global IETFilter_SetRecordingOn 7 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。