Win32 API 日本語リファレンス
ホームMedia.DirectShow.Tv › IMPEG2_TIF_CONTROL

IMPEG2_TIF_CONTROL

COM
IIDf9bac2f9-4149-4916-b2ef-faa202326862継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IMPEG2_TIF_CONTROL は現在使用できません。

解説(Remarks)

このインターフェイスのインターフェイス識別子 (IID) を宣言するには、__uuidof 演算子を使用します: __uuidof(IMPEG2_TIF_CONTROL)

メソッド 6

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT RegisterTIF(IUnknown* pUnkTIF, DWORD* ppvRegistrationContext)

RegisterTIF メソッドは、Transport Information Filter (TIF) が自身を Network Provider に登録するために呼び出されます。

pUnkTIFIUnknown*inTIF の IUnknown インターフェイスへのポインター。
ppvRegistrationContextDWORD*inout識別子を受け取る変数へのポインター。この値は IMPEG2_TIF_CONTROL::UnregisterTIF メソッドのパラメーターとして使用します。

戻り値

このメソッドは HRESULT を返します。とり得る値には次の表に示すものが含まれます。

戻り値 説明
S_OK
メソッドは成功しました。
E_INVALIDARG
引数が無効です。
E_NOINTERFACE
TIF 上で必要なインターフェイスが見つかりませんでした。
VFW_E_ALREADY_CONNECTED
TIF は既に Network Provider に登録されています。

解説(Remarks)

このメソッドは、TIF の入力ピンが Demux に接続された直後に呼び出してください。

vtbl 4 HRESULT UnregisterTIF(DWORD pvRegistrationContext)

UnregisterTIF メソッドは、TIF の Network Provider への登録を解除します。

pvRegistrationContextDWORDinIMPEG2_TIF_CONTROL::RegisterTIF メソッドが返した識別子。

戻り値

このメソッドは HRESULT を返します。とり得る値には次の表に示すものが含まれます。

戻り値 説明
S_OK
メソッドは成功しました。
E_INVALIDARG
引数が無効です。

解説(Remarks)

このメソッドは、TIF の入力ピンが Demux から切断された後に呼び出してください。

vtbl 5 HRESULT AddPIDs(DWORD ulcPIDs, DWORD* pulPIDs)

AddPIDs メソッドは、TIF が受信すべき PID を Network Provider に通知します。

ulcPIDsDWORDin追加する PID の数を指定します。この値は pulPIDs で指定される配列の要素数と等しくなければなりません。
pulPIDsDWORD*in追加する PID 値の配列を指定します。この配列は ulcPIDs 個の要素を含んでいる必要があります。

戻り値

このメソッドは HRESULT を返します。とり得る値には次の表に示すものが含まれます。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

どのテーブルセクションが必要かを把握しているのは TIF のみです。TIF はこのメソッドを使用して、それらのテーブルを含むパケットの PID を Network Provider に通知します。Network Provider はその情報を Demux に転送し、Demux は指定された PID を持つパケットを直ちに TIF へルーティングし始めます。

vtbl 6 HRESULT DeletePIDs(DWORD ulcPIDs, DWORD* pulPIDs)

DeletePIDs メソッドは、指定された PID が TIF で不要になったことを Network Provider に通知します。

ulcPIDsDWORDin削除する PID の数を指定します。この値は pulPIDs で指定される配列の要素数と等しくなければなりません。
pulPIDsDWORD*inulcPIDs 個の要素を含む PID 値の配列を指定します。

戻り値

このメソッドは HRESULT を返します。とり得る値には次の表に示すものが含まれます。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

このメソッドは、トランスポートストリーム内の一連のテーブルが消失した場合に、TIF のデータストリームから PSI/SI MPEG2 パケット ID を削除するために呼び出されます。

vtbl 7 HRESULT GetPIDCount(DWORD* pulcPIDs)

GetPIDCount メソッドは、MPEG-2 Demultiplexer によって TIF の入力データにフィルタリングされている MPEG-2 パケット ID の数を取得します。

pulcPIDsDWORD*out現在 Demux にフィルタリングされている PID の数を受け取る変数へのポインター。

戻り値

このメソッドは HRESULT を返します。とり得る値には次の表に示すものが含まれます。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

カスタム TIF 拡張では、このメソッドが必要な場合と不要な場合があります。

vtbl 8 HRESULT GetPIDs(DWORD* pulcPIDs, DWORD* pulPIDs)

GetPIDs メソッドは、TIF の入力データにフィルタリングされている MPEG-2 パケット ID の一覧を取得します。

pulcPIDsDWORD*out取得された PID の数を受け取る変数へのポインター。
pulPIDsDWORD*outPID 値を表す ULONG 値の配列を受け取る変数へのポインター。配列の要素数は pulcPIDs の値と等しくなります。

戻り値

このメソッドは HRESULT を返します。とり得る値には次の表に示すものが含まれます。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

カスタム TIF 拡張では、このメソッドが必要な場合と不要な場合があります。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IMPEG2_TIF_CONTROL "{F9BAC2F9-4149-4916-B2EF-FAA202326862}"
#usecom global IMPEG2_TIF_CONTROL IID_IMPEG2_TIF_CONTROL "{}"
#comfunc global IMPEG2_TIF_CONTROL_RegisterTIF    3 sptr,var
#comfunc global IMPEG2_TIF_CONTROL_UnregisterTIF  4 int
#comfunc global IMPEG2_TIF_CONTROL_AddPIDs        5 int,var
#comfunc global IMPEG2_TIF_CONTROL_DeletePIDs     6 int,var
#comfunc global IMPEG2_TIF_CONTROL_GetPIDCount    7 var
#comfunc global IMPEG2_TIF_CONTROL_GetPIDs        8 var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。