IBDA_GuideDataDeliveryService
COM公式ドキュメント
メディアトランスフォームデバイス (MTD) から帯域外 (out-of-band) のガイドデータを取得します。このインターフェイスは、デバイスの Guide Data Delivery Service へのアクセスを提供します。
解説(Remarks)
このインターフェイスのインターフェイス識別子 (IID) を宣言するには、__uuidof 演算子を使用します: __uuidof(IBDA_GuideDataDeliveryService)。
メソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
このサービスで取得されるデータのフォーマット UUID を取得します。
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
利用可能な次のガイドデータのセットを取得します。
| pulcbBufferLen | DWORD* | inout | pbBuffer 配列のサイズ (バイト単位)。 |
| pbBuffer | BYTE* | out | ガイドデータを受け取るバイト配列へのポインター。 |
| pulGuideDataPercentageProgress | DWORD* | out | 0 から 100 までの値を受け取ります。この値は、前回の IBDA_GuideDataDeliveryService::RequestGuideDataUpdate 呼び出し以降に、メディアトランスフォームデバイス (MTD) からメディアシンクデバイス (MSD) へ転送されたガイドデータの割合 (パーセント) を示します。 |
戻り値
HRESULT 値を返します。指定できる値には次のものがあります。
| 戻り値 | 説明 |
|---|---|
| 成功しました。 | |
| MTD には返すべきデータがこれ以上ありません。 |
メディアトランスフォームデバイス (MTD) に対して、更新されたガイドデータを要求します。
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
サービス識別子を XML チューン要求 (tune request) に変換します。
| ul64ServiceIdx | ULONGLONG | in | サービスの識別子。 |
| pbstrTuneXml | LPWSTR* | out | XML チューン要求を受け取ります。呼び出し元は SysFreeString を呼び出して文字列を解放する必要があります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
メディアトランスフォームデバイス (MTD) で利用可能なサービスの一覧を取得します。
| pulcbBufferLen | DWORD* | inout | 入力時には pbBuffer 配列のサイズ (バイト単位) を指定します。出力時には pbBuffer 配列に書き込まれたデータのサイズを受け取ります。 |
| pbBuffer | BYTE* | out | サービス識別子の一覧を受け取るバイト配列へのポインター。サービス識別子は 64 ビット値です。サービス識別子をチューン要求に変換するには、IBDA_GuideDataDeliveryService::GetTuneXmlFromServiceIdx を呼び出します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
XML チューン要求からサービス情報を取得します。
| bstrTuneXml | LPWSTR | in | XML チューン要求。詳細については、IBDA_GuideDataDeliveryService::GetTuneXmlFromServiceIdx を参照してください。 |
| pbstrServiceDescription | LPWSTR* | out | サービスに関する情報を含む XML 文字列を受け取ります。呼び出し元は SysFreeString を呼び出して文字列を解放する必要があります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
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 方式にも切替可。#define global IID_IBDA_GuideDataDeliveryService "{C0AFCB73-23E7-4BC6-BAFA-FDC167B4719F}" #usecom global IBDA_GuideDataDeliveryService IID_IBDA_GuideDataDeliveryService "{}" #comfunc global IBDA_GuideDataDeliveryService_GetGuideDataType 3 sptr #comfunc global IBDA_GuideDataDeliveryService_GetGuideData 4 sptr,sptr,sptr #comfunc global IBDA_GuideDataDeliveryService_RequestGuideDataUpdate 5 #comfunc global IBDA_GuideDataDeliveryService_GetTuneXmlFromServiceIdx 6 int64,sptr #comfunc global IBDA_GuideDataDeliveryService_GetServices 7 sptr,sptr #comfunc global IBDA_GuideDataDeliveryService_GetServiceInfoFromTuneXml 8 wstr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。