ホーム › Media.Speech › ISpResourceManager
ISpResourceManager
COMメソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| guidServiceId | GUID* | in | 登録するサービスを識別するGUID。 |
| pUnkObject | IUnknown* | inoptional | 登録するオブジェクトのIUnknown。NULLで登録解除する。 |
vtbl 5 HRESULT GetObject(GUID* guidServiceId, GUID* ObjectCLSID, GUID* ObjectIID, BOOL fReleaseWhenLastExternalRefReleased, void** ppObject)
| guidServiceId | GUID* | in | 取得するサービスを識別するGUID。 |
| ObjectCLSID | GUID* | in | 未登録時に生成するオブジェクトのCLSID。 |
| ObjectIID | GUID* | in | 要求するインターフェイスのIID。 |
| fReleaseWhenLastExternalRefReleased | BOOL | in | 最後の外部参照解放時にオブジェクトを解放するか。 |
| ppObject | void** | out | 取得したオブジェクトのインターフェイスポインタを受け取る。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ISpResourceManager "{93384E18-5014-43D5-ADBB-A78E055926BD}" #usecom global ISpResourceManager IID_ISpResourceManager "{96749373-3391-11D2-9EE3-00C04F797396}" #comfunc global ISpResourceManager_SetObject 4 var,sptr #comfunc global ISpResourceManager_GetObject 5 var,var,var,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ISpResourceManager "{93384E18-5014-43D5-ADBB-A78E055926BD}" #usecom global ISpResourceManager IID_ISpResourceManager "{96749373-3391-11D2-9EE3-00C04F797396}" #comfunc global ISpResourceManager_SetObject 4 sptr,sptr #comfunc global ISpResourceManager_GetObject 5 sptr,sptr,sptr,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。