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

IBDA_GuideDataDeliveryService

COM
IIDc0afcb73-23e7-4bc6-bafa-fdc167b4719f継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

メディアトランスフォームデバイス (MTD) から帯域外 (out-of-band) のガイドデータを取得します。このインターフェイスは、デバイスの Guide Data Delivery Service へのアクセスを提供します。

解説(Remarks)

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

メソッド 6

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

vtbl 3 HRESULT GetGuideDataType(GUID* pguidDataType)

このサービスで取得されるデータのフォーマット UUID を取得します。

pguidDataTypeGUID*out

ガイドデータのフォーマットを識別する UUID、またはチューナーが帯域内 (in-band) ガイド用にサポートするネットワーク GUID のいずれかを受け取ります。指定できる値には次のものがあります。

意味
CLSID_PBDA_GDDS_DATA_TYPE
Protected Broadcast Driver Architecture Service Information (PBDA-SI) フォーマット。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 4 HRESULT GetGuideData(DWORD* pulcbBufferLen, BYTE* pbBuffer, DWORD* pulGuideDataPercentageProgress)

利用可能な次のガイドデータのセットを取得します。

pulcbBufferLenDWORD*inoutpbBuffer 配列のサイズ (バイト単位)。
pbBufferBYTE*outガイドデータを受け取るバイト配列へのポインター。
pulGuideDataPercentageProgressDWORD*out0 から 100 までの値を受け取ります。この値は、前回の IBDA_GuideDataDeliveryService::RequestGuideDataUpdate 呼び出し以降に、メディアトランスフォームデバイス (MTD) からメディアシンクデバイス (MSD) へ転送されたガイドデータの割合 (パーセント) を示します。

戻り値

HRESULT 値を返します。指定できる値には次のものがあります。

戻り値 説明
S_OK
成功しました。
BDA_E_NO_MORE_DATA
MTD には返すべきデータがこれ以上ありません。
vtbl 5 HRESULT RequestGuideDataUpdate()

メディアトランスフォームデバイス (MTD) に対して、更新されたガイドデータを要求します。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 6 HRESULT GetTuneXmlFromServiceIdx(ULONGLONG ul64ServiceIdx, LPWSTR* pbstrTuneXml)

サービス識別子を XML チューン要求 (tune request) に変換します。

ul64ServiceIdxULONGLONGinサービスの識別子。
pbstrTuneXmlLPWSTR*outXML チューン要求を受け取ります。呼び出し元は SysFreeString を呼び出して文字列を解放する必要があります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 7 HRESULT GetServices(DWORD* pulcbBufferLen, BYTE* pbBuffer)

メディアトランスフォームデバイス (MTD) で利用可能なサービスの一覧を取得します。

pulcbBufferLenDWORD*inout入力時には pbBuffer 配列のサイズ (バイト単位) を指定します。出力時には pbBuffer 配列に書き込まれたデータのサイズを受け取ります。
pbBufferBYTE*outサービス識別子の一覧を受け取るバイト配列へのポインター。サービス識別子は 64 ビット値です。サービス識別子をチューン要求に変換するには、IBDA_GuideDataDeliveryService::GetTuneXmlFromServiceIdx を呼び出します。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 8 HRESULT GetServiceInfoFromTuneXml(LPWSTR bstrTuneXml, LPWSTR* pbstrServiceDescription)

XML チューン要求からサービス情報を取得します。

bstrTuneXmlLPWSTRinXML チューン要求。詳細については、IBDA_GuideDataDeliveryService::GetTuneXmlFromServiceIdx を参照してください。
pbstrServiceDescriptionLPWSTR*outサービスに関する情報を含む XML 文字列を受け取ります。呼び出し元は SysFreeString を呼び出して文字列を解放する必要があります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IBDA_GuideDataDeliveryService "{C0AFCB73-23E7-4BC6-BAFA-FDC167B4719F}"
#usecom global IBDA_GuideDataDeliveryService IID_IBDA_GuideDataDeliveryService "{}"
#comfunc global IBDA_GuideDataDeliveryService_GetGuideDataType           3 var
#comfunc global IBDA_GuideDataDeliveryService_GetGuideData               4 var,var,var
#comfunc global IBDA_GuideDataDeliveryService_RequestGuideDataUpdate     5
#comfunc global IBDA_GuideDataDeliveryService_GetTuneXmlFromServiceIdx   6 int64,var
#comfunc global IBDA_GuideDataDeliveryService_GetServices                7 var,var
#comfunc global IBDA_GuideDataDeliveryService_GetServiceInfoFromTuneXml  8 wstr,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。