ホーム › Media.Audio.DirectMusic › IDirectMusicCollection
IDirectMusicCollection
COMメソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT GetInstrument(DWORD dwPatch, IDirectMusicInstrument** ppInstrument)
| dwPatch | DWORD | in | コレクションから取得する楽器のパッチ番号。 |
| ppInstrument | IDirectMusicInstrument** | out | 該当楽器のIDirectMusicInstrumentインターフェイスの受け取り先。要Release。 |
| dwIndex | DWORD | in | 列挙する楽器の0起点インデックス。 |
| pdwPatch | DWORD* | inout | 列挙された楽器のパッチ番号を受け取るポインタ。 |
| pwszName | LPWSTR | in | 列挙された楽器名(ワイド文字)を書き込む呼び出し側バッファ。 |
| dwNameLen | DWORD | in | pwszNameバッファの容量(文字数)。切り詰め防止に使う。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDirectMusicCollection "{D2AC287C-B39B-11D1-8704-00600893B1BD}" #usecom global IDirectMusicCollection IID_IDirectMusicCollection "{480FF4B0-28B2-11D1-BEF7-00C04FBF8FEF}" #comfunc global IDirectMusicCollection_GetInstrument 3 int,sptr #comfunc global IDirectMusicCollection_EnumInstrument 4 int,var,wstr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDirectMusicCollection "{D2AC287C-B39B-11D1-8704-00600893B1BD}" #usecom global IDirectMusicCollection IID_IDirectMusicCollection "{480FF4B0-28B2-11D1-BEF7-00C04FBF8FEF}" #comfunc global IDirectMusicCollection_GetInstrument 3 int,sptr #comfunc global IDirectMusicCollection_EnumInstrument 4 int,sptr,wstr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。