Win32 API 日本語リファレンス
ホームSystem.Search › IEntity

IEntity

COM
IID24264891-e80b-4fd3-b7ce-4ff2fae8931f継承元IUnknown自前メソッド開始 vtbl3

メソッド 8

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT Name(LPWSTR* ppszName)
ppszNameLPWSTR*outoptionalエンティティの名前を受け取る出力ポインタである。呼び出し側が解放する。
vtbl 4 HRESULT Base(IEntity** pBaseEntity)
pBaseEntityIEntity**outこのエンティティの基底エンティティを表す IEntity を受け取る出力ポインタである。
vtbl 5 HRESULT Relationships(GUID* riid, void** pRelationships)
riidGUID*in返すリレーションシップコレクションのインターフェイスを識別する GUID(IID)へのポインタである。
pRelationshipsvoid**outこのエンティティが持つリレーションシップの集合を受け取る出力ポインタである。
vtbl 6 HRESULT GetRelationship(LPWSTR pszRelationName, IRelationship** pRelationship)
pszRelationNameLPWSTRin取得するリレーションシップの名前を指定する。
pRelationshipIRelationship**out指定した名前のリレーションシップを表す IRelationship を受け取る出力ポインタである。
vtbl 7 HRESULT MetaData(GUID* riid, void** pMetaData)
riidGUID*in返すメタデータコレクションのインターフェイスを識別する GUID(IID)へのポインタである。
pMetaDatavoid**outこのエンティティに関連付けられたメタデータの集合を受け取る出力ポインタである。
vtbl 8 HRESULT NamedEntities(GUID* riid, void** pNamedEntities)
riidGUID*in返す名前付きエンティティコレクションのインターフェイスを識別する GUID(IID)へのポインタである。
pNamedEntitiesvoid**outこのエンティティに属する名前付きエンティティの集合を受け取る出力ポインタである。
vtbl 9 HRESULT GetNamedEntity(LPWSTR pszValue, INamedEntity** ppNamedEntity)
pszValueLPWSTRin取得する名前付きエンティティの値を指定する。
ppNamedEntityINamedEntity**out指定した値に対応する INamedEntity を受け取る出力ポインタである。
vtbl 10 HRESULT DefaultPhrase(LPWSTR* ppszPhrase)
ppszPhraseLPWSTR*outoptionalこのエンティティの既定フレーズ文字列を受け取る出力ポインタである。呼び出し側が解放する。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IEntity "{24264891-E80B-4FD3-B7CE-4FF2FAE8931F}"
#usecom global IEntity IID_IEntity "{}"
#comfunc global IEntity_Name             3 var
#comfunc global IEntity_Base             4 sptr
#comfunc global IEntity_Relationships    5 var,sptr
#comfunc global IEntity_GetRelationship  6 wstr,sptr
#comfunc global IEntity_MetaData         7 var,sptr
#comfunc global IEntity_NamedEntities    8 var,sptr
#comfunc global IEntity_GetNamedEntity   9 wstr,sptr
#comfunc global IEntity_DefaultPhrase    10 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。