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

ITuneRequest

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID07ddc146-fc3d-11d2-9d8c-00c04f72d980継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

ITuneRequest インターフェイスは、すべてのチューン要求の基底インターフェイスです。

解説(Remarks)

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

メソッド 5

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_TuningSpace(ITuningSpace** TuningSpace)

get_TuningSpace メソッドは、このチューン要求の作成に使用されたチューニングスペースを取得します。

TuningSpaceITuningSpace**outITuningSpace インターフェイスへのポインターを受け取ります。呼び出し側はこのインターフェイスを解放する必要があります。

戻り値

成功した場合は S_OK を返します。メソッドが失敗した場合、エラー情報は標準の COM IErrorInfo インターフェイスを使用して取得できます。

解説(Remarks)

既定のロケーターおよび既定の推奨コンポーネントタイプを取得するには、まずチューニングスペースにアクセスする必要があります。

vtbl 8 HRESULT get_Components(IComponents** Components)

get_Components メソッドは、このチューン要求に含まれるコンポーネントを取得します。

ComponentsIComponents**outIComponents インターフェイスポインターを受け取ります。呼び出し側はこのインターフェイスを解放する必要があります。

戻り値

成功した場合は S_OK を返します。メソッドが失敗した場合、エラー情報は標準の COM IErrorInfo インターフェイスを使用して取得できます。

解説(Remarks)

チューン要求は常にコンポーネントのコレクションを保持しますが、このコレクションは空の場合もあります。コンポーネント情報がトランスポートストリームのテーブル内に存在する場合、Guide Store ローダーは TIF からその情報を取得し、チューン要求の作成時にそれを組み込むことができます。

メソッドが成功した場合、IComponents インターフェイスには未解放の参照カウントが残ります。呼び出し側はこのインターフェイスを解放する必要があります。

チューン要求が Network Provider フィルターに送信されると、Network Provider はチューン要求内のコンポーネントリストを更新します。更新されたコンポーネントリストを取得するには、Network Provider に対して ITuner::get_TuneRequest を呼び出し、返されたチューン要求に対して get_Components を呼び出します。(Network Provider に送信された元のチューン要求は更新されません。これは、Network Provider がチューン要求の内部コピーを作成するためです。したがって、更新されたコンポーネントリストを取得するには get_TuneRequest を呼び出す必要があります。)

vtbl 9 HRESULT Clone(ITuneRequest** NewTuneRequest)

Clone メソッドは、このチューン要求の新しいコピーを返します。

NewTuneRequestITuneRequest**out新しいオブジェクトが設定される ITuneRequest インターフェイスポインターのアドレスです。

戻り値

成功した場合は S_OK を返します。メソッドが失敗した場合、エラー情報は標準の COM IErrorInfo インターフェイスを使用して取得できます。

解説(Remarks)

このメソッドはオブジェクトの「ディープコピー」を実行します。つまり、ComponentsLanguageComponentType オブジェクトなどを含む、すべてのサブオブジェクトもコピーします。

vtbl 10 HRESULT get_Locator(ILocator** Locator)

get_Locator メソッドは、要求された放送に関連付けられた ILocator オブジェクトを取得するために Network Provider から呼び出されます。

LocatorILocator**out新しいオブジェクトが設定される ILocator インターフェイスポインターのアドレスです。

戻り値

成功した場合は S_OK を返します。メソッドが失敗した場合、エラー情報は標準の COM IErrorInfo インターフェイスを使用して取得できます。

vtbl 11 HRESULT put_Locator(ILocator* Locator)

put_Locator メソッドは、要求された放送に関連付けられた ILocator オブジェクトを設定するために Network Provider から呼び出されます。

LocatorILocator*in新しいロケーターを指定する ILocator インターフェイスへのポインターです。

戻り値

成功した場合は S_OK を返します。メソッドが失敗した場合、エラー情報は標準の COM IErrorInfo インターフェイスを使用して取得できます。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ITuneRequest "{07DDC146-FC3D-11D2-9D8C-00C04F72D980}"
#usecom global ITuneRequest IID_ITuneRequest "{B46E0D38-AB35-4A06-A137-70576B01B39F}"
#comfunc global ITuneRequest_get_TuningSpace  7 sptr
#comfunc global ITuneRequest_get_Components   8 sptr
#comfunc global ITuneRequest_Clone            9 sptr
#comfunc global ITuneRequest_get_Locator      10 sptr
#comfunc global ITuneRequest_put_Locator      11 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。