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

ICaptionServiceDescriptor

COM
IID40834007-6834-46f0-bd45-d5f6a6be258c継承元IUnknown自前メソッド開始 vtbl3

メソッド 6

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

vtbl 3 HRESULT GetNumberOfServices(BYTE* pbVal)
pbValBYTE*out字幕サービスの個数を受け取るBYTEポインタ。
vtbl 4 HRESULT GetLanguageCode(BYTE bIndex, BYTE* LangCode)
bIndexBYTEin対象サービスの0起点インデックスを指定する。
LangCodeBYTE*out指定サービスのISO 639言語コードを受け取るBYTEバッファ。
vtbl 5 HRESULT GetCaptionServiceNumber(BYTE bIndex, BYTE* pbVal)
bIndexBYTEin対象サービスの0起点インデックスを指定する。
pbValBYTE*out指定サービスの字幕サービス番号を受け取るBYTEポインタ。
vtbl 6 HRESULT GetCCType(BYTE bIndex, BYTE* pbVal)
bIndexBYTEin対象サービスの0起点インデックスを指定する。
pbValBYTE*out字幕の種別(行531かDTVCCか)を受け取るBYTEポインタ。
vtbl 7 HRESULT GetEasyReader(BYTE bIndex, BYTE* pbVal)
bIndexBYTEin対象サービスの0起点インデックスを指定する。
pbValBYTE*outイージーリーダー(簡易字幕)対応フラグを受け取るBYTEポインタ。
vtbl 8 HRESULT GetWideAspectRatio(BYTE bIndex, BYTE* pbVal)
bIndexBYTEin対象サービスの0起点インデックスを指定する。
pbValBYTE*outワイドアスペクト比向け字幕かどうかのフラグを受け取るBYTEポインタ。

HSP用 COM定義

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

出力引数:
#define global IID_ICaptionServiceDescriptor "{40834007-6834-46F0-BD45-D5F6A6BE258C}"
#usecom global ICaptionServiceDescriptor IID_ICaptionServiceDescriptor "{}"
#comfunc global ICaptionServiceDescriptor_GetNumberOfServices      3 var
#comfunc global ICaptionServiceDescriptor_GetLanguageCode          4 int,var
#comfunc global ICaptionServiceDescriptor_GetCaptionServiceNumber  5 int,var
#comfunc global ICaptionServiceDescriptor_GetCCType                6 int,var
#comfunc global ICaptionServiceDescriptor_GetEasyReader            7 int,var
#comfunc global ICaptionServiceDescriptor_GetWideAspectRatio       8 int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。