ホーム › Devices.FunctionDiscovery › IFunctionDiscovery
IFunctionDiscovery
COMメソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT GetInstanceCollection(LPWSTR pszCategory, LPWSTR pszSubCategory, BOOL fIncludeAllSubCategories, IFunctionInstanceCollection** ppIFunctionInstanceCollection)
| pszCategory | LPWSTR | in | 列挙対象のカテゴリ名(FDCATEGORY_*)。 |
| pszSubCategory | LPWSTR | in | 列挙対象のサブカテゴリ名。NULL可。 |
| fIncludeAllSubCategories | BOOL | in | 全サブカテゴリを含めるかを示すBOOL。TRUEで全包含。 |
| ppIFunctionInstanceCollection | IFunctionInstanceCollection** | out | 取得した関数インスタンスのコレクションを受け取るポインター。 |
vtbl 4 HRESULT GetInstance(LPWSTR pszFunctionInstanceIdentity, IFunctionInstance** ppIFunctionInstance)
| pszFunctionInstanceIdentity | LPWSTR | in | 取得対象の関数インスタンスの一意な識別子文字列。 |
| ppIFunctionInstance | IFunctionInstance** | out | 取得した関数インスタンスを受け取るポインター。 |
vtbl 5 HRESULT CreateInstanceCollectionQuery(LPWSTR pszCategory, LPWSTR pszSubCategory, BOOL fIncludeAllSubCategories, IFunctionDiscoveryNotification* pIFunctionDiscoveryNotification, ULONGLONG* pfdqcQueryContext, IFunctionInstanceCollectionQuery** ppIFunctionInstanceCollectionQuery)
| pszCategory | LPWSTR | in | クエリ対象のカテゴリ名。 |
| pszSubCategory | LPWSTR | in | クエリ対象のサブカテゴリ名。NULL可。 |
| fIncludeAllSubCategories | BOOL | in | 全サブカテゴリを含めるかを示すBOOL。TRUEで全包含。 |
| pIFunctionDiscoveryNotification | IFunctionDiscoveryNotification* | in | 変更を受け取る通知コールバックインターフェイス。不要ならNULL可。 |
| pfdqcQueryContext | ULONGLONG* | inout | このクエリに割り当てられるコンテキスト識別子を受け取るポインター。 |
| ppIFunctionInstanceCollectionQuery | IFunctionInstanceCollectionQuery** | out | 作成されたコレクションクエリを受け取るポインター。 |
vtbl 6 HRESULT CreateInstanceQuery(LPWSTR pszFunctionInstanceIdentity, IFunctionDiscoveryNotification* pIFunctionDiscoveryNotification, ULONGLONG* pfdqcQueryContext, IFunctionInstanceQuery** ppIFunctionInstanceQuery)
| pszFunctionInstanceIdentity | LPWSTR | in | 監視対象の単一インスタンスの一意な識別子文字列。 |
| pIFunctionDiscoveryNotification | IFunctionDiscoveryNotification* | in | 変更を受け取る通知コールバックインターフェイス。不要ならNULL可。 |
| pfdqcQueryContext | ULONGLONG* | inout | このクエリに割り当てられるコンテキスト識別子を受け取るポインター。 |
| ppIFunctionInstanceQuery | IFunctionInstanceQuery** | out | 作成された単一インスタンスクエリを受け取るポインター。 |
vtbl 7 HRESULT AddInstance(SystemVisibilityFlags enumSystemVisibility, LPWSTR pszCategory, LPWSTR pszSubCategory, LPWSTR pszCategoryIdentity, IFunctionInstance** ppIFunctionInstance)
| enumSystemVisibility | SystemVisibilityFlags | in | インスタンスの可視範囲を指定するSystemVisibilityFlags列挙値。 |
| pszCategory | LPWSTR | in | 追加先のカテゴリ名。 |
| pszSubCategory | LPWSTR | in | 追加先のサブカテゴリ名。 |
| pszCategoryIdentity | LPWSTR | in | カテゴリ内でインスタンスを識別する文字列。 |
| ppIFunctionInstance | IFunctionInstance** | out | 追加された関数インスタンスを受け取るポインター。 |
vtbl 8 HRESULT RemoveInstance(SystemVisibilityFlags enumSystemVisibility, LPWSTR pszCategory, LPWSTR pszSubCategory, LPWSTR pszCategoryIdentity)
| enumSystemVisibility | SystemVisibilityFlags | in | 対象インスタンスの可視範囲を指定するSystemVisibilityFlags列挙値。 |
| pszCategory | LPWSTR | in | 削除対象が属するカテゴリ名。 |
| pszSubCategory | LPWSTR | in | 削除対象が属するサブカテゴリ名。 |
| pszCategoryIdentity | LPWSTR | in | 削除対象を識別する文字列。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IFunctionDiscovery "{4DF99B70-E148-4432-B004-4C9EEB535A5E}" #usecom global IFunctionDiscovery IID_IFunctionDiscovery "{C72BE2EC-8E90-452C-B29A-AB8FF1C071FC}" #comfunc global IFunctionDiscovery_GetInstanceCollection 3 wstr,wstr,int,sptr #comfunc global IFunctionDiscovery_GetInstance 4 wstr,sptr #comfunc global IFunctionDiscovery_CreateInstanceCollectionQuery 5 wstr,wstr,int,sptr,var,sptr #comfunc global IFunctionDiscovery_CreateInstanceQuery 6 wstr,sptr,var,sptr #comfunc global IFunctionDiscovery_AddInstance 7 int,wstr,wstr,wstr,sptr #comfunc global IFunctionDiscovery_RemoveInstance 8 int,wstr,wstr,wstr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IFunctionDiscovery "{4DF99B70-E148-4432-B004-4C9EEB535A5E}" #usecom global IFunctionDiscovery IID_IFunctionDiscovery "{C72BE2EC-8E90-452C-B29A-AB8FF1C071FC}" #comfunc global IFunctionDiscovery_GetInstanceCollection 3 wstr,wstr,int,sptr #comfunc global IFunctionDiscovery_GetInstance 4 wstr,sptr #comfunc global IFunctionDiscovery_CreateInstanceCollectionQuery 5 wstr,wstr,int,sptr,sptr,sptr #comfunc global IFunctionDiscovery_CreateInstanceQuery 6 wstr,sptr,sptr,sptr #comfunc global IFunctionDiscovery_AddInstance 7 int,wstr,wstr,wstr,sptr #comfunc global IFunctionDiscovery_RemoveInstance 8 int,wstr,wstr,wstr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。