ISpatialAudioMetadataClient
COM公式ドキュメント
ISpatialAudioMetadataItems、ISpatialAudioMetadataWriter、ISpatialAudioMetadataReader、および ISpatialAudioMetadataCopier の各オブジェクトを作成するためのクラスファクトリを提供します。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
空間オーディオメタデータ項目を格納するための ISpatialAudioMetadataItems オブジェクトを作成します。
| maxItemCount | WORD | in | 返される ISpatialAudioMetadataItems に格納できるメタデータ項目の最大数。 |
| frameCount | WORD | in | 返される ISpatialAudioMetadataItems に格納されるメタデータ項目に対して有効なフレームオフセット位置の範囲。 |
| metadataItemsBuffer | ISpatialAudioMetadataItemsBuffer** | outoptional | ポインターが指定された場合、メタデータ項目を格納するために呼び出し元が提供したメモリをアタッチするためのメソッドを提供する ISpatialAudioMetadataItemsBuffer インターフェイスを返します。このパラメーターが NULL の場合、オブジェクトは項目用の内部ストレージを割り当てます。このインターフェイスは QueryInterface 経由では取得できません。 |
| metadataItems | ISpatialAudioMetadataItems** | out | ISpatialAudioMetadataItems オブジェクトのインスタンスを受け取ります。このオブジェクトには、ISpatialAudioMetadataWriter または ISpatialAudioMetadataCopier を使用してメタデータ項目を設定でき、ISpatialAudioMetadataReader を使用して読み取ることができます。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合、返される可能性のあるコードには、以下の表に示す値が含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
|
metadataItems パラメーターで指定されたポインターが無効です。
maxItemCount または frameCount の値が 0 です。 |
指定された数の空間オーディオメタデータ項目を格納するために必要なバッファーの長さを取得します。
| maxItemCount | WORD | in | ISpatialAudioMetadataItems オブジェクトに格納するメタデータ項目の最大数。 |
| bufferLength | DWORD* | out | maxItemCount パラメーターで指定された数の空間オーディオメタデータ項目を格納するために必要なバッファーの長さ。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合、返される可能性のあるコードには、以下の表に示す値が含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
|
指定されたポインターが無効です。
maxItemCount または frameCount の値が 0 です。 |
空間オーディオメタデータ項目を ISpatialAudioMetadataItems オブジェクトに書き込むための ISpatialAudioMetadataWriter オブジェクトを作成します。
| overflowMode | SpatialAudioMetadataWriterOverflowMode | in | ActivateSpatialAudioMetadataItems の呼び出し時に指定された項目の最大数を超えるメタデータ項目を ISpatialAudioMetadataItems に書き込もうとした場合の動作を指定する値。 |
| metadataWriter | ISpatialAudioMetadataWriter** | out | ISpatialAudioMetadataWriter のインスタンスへのポインターを受け取ります。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合、返される可能性のあるコードには、以下の表に示す値が含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| 指定されたポインターが無効です。 |
ある ISpatialAudioMetadataItems オブジェクトから別のオブジェクトへ空間オーディオメタデータ項目をコピーするための ISpatialAudioMetadataWriter オブジェクトを作成します。
| metadataCopier | ISpatialAudioMetadataCopier** | out | ISpatialAudioMetadataWriter のインスタンスへのポインターを受け取ります。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合、返される可能性のあるコードには、以下の表に示す値が含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| 指定されたポインターが無効です。 |
ISpatialAudioMetadataItems オブジェクトから空間オーディオメタデータ項目を読み取るための ISpatialAudioMetadataWriter オブジェクトを作成します。
| metadataReader | ISpatialAudioMetadataReader** | out | ISpatialAudioMetadataReader のインスタンスへのポインターを受け取ります。 |
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合、返される可能性のあるコードには、以下の表に示す値が含まれますが、これらに限定されません。
| Return code | Description |
|---|---|
| 指定されたポインターが無効です。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ISpatialAudioMetadataClient "{777D4A3B-F6FF-4A26-85DC-68D7CDEDA1D4}" #usecom global ISpatialAudioMetadataClient IID_ISpatialAudioMetadataClient "{}" #comfunc global ISpatialAudioMetadataClient_ActivateSpatialAudioMetadataItems 3 int,int,sptr,sptr #comfunc global ISpatialAudioMetadataClient_GetSpatialAudioMetadataItemsBufferLength 4 int,var #comfunc global ISpatialAudioMetadataClient_ActivateSpatialAudioMetadataWriter 5 int,sptr #comfunc global ISpatialAudioMetadataClient_ActivateSpatialAudioMetadataCopier 6 sptr #comfunc global ISpatialAudioMetadataClient_ActivateSpatialAudioMetadataReader 7 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ISpatialAudioMetadataClient "{777D4A3B-F6FF-4A26-85DC-68D7CDEDA1D4}" #usecom global ISpatialAudioMetadataClient IID_ISpatialAudioMetadataClient "{}" #comfunc global ISpatialAudioMetadataClient_ActivateSpatialAudioMetadataItems 3 int,int,sptr,sptr #comfunc global ISpatialAudioMetadataClient_GetSpatialAudioMetadataItemsBufferLength 4 int,sptr #comfunc global ISpatialAudioMetadataClient_ActivateSpatialAudioMetadataWriter 5 int,sptr #comfunc global ISpatialAudioMetadataClient_ActivateSpatialAudioMetadataCopier 6 sptr #comfunc global ISpatialAudioMetadataClient_ActivateSpatialAudioMetadataReader 7 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。