Win32 API 日本語リファレンス
ホームDevices.FunctionDiscovery › IFunctionDiscoveryProvider

IFunctionDiscoveryProvider

COM
IIDdcde394f-1478-4813-a402-f6fb10657222継承元IUnknown自前メソッド開始 vtbl3

メソッド 8

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

vtbl 3 HRESULT Initialize(IFunctionDiscoveryProviderFactory* pIFunctionDiscoveryProviderFactory, IFunctionDiscoveryNotification* pIFunctionDiscoveryNotification, DWORD lcidUserDefault, DWORD* pdwStgAccessCapabilities)
pIFunctionDiscoveryProviderFactoryIFunctionDiscoveryProviderFactory*inインスタンス生成等に用いるプロバイダーファクトリインターフェイス。
pIFunctionDiscoveryNotificationIFunctionDiscoveryNotification*in更新通知を送るための通知インターフェイス。
lcidUserDefaultDWORDinユーザー既定のロケールID。
pdwStgAccessCapabilitiesDWORD*outプロバイダーが対応するストレージアクセス能力を受け取るポインター。
vtbl 4 HRESULT Query(IFunctionDiscoveryProviderQuery* pIFunctionDiscoveryProviderQuery, IFunctionInstanceCollection** ppIFunctionInstanceCollection)
pIFunctionDiscoveryProviderQueryIFunctionDiscoveryProviderQuery*in実行するクエリ条件を保持するプロバイダークエリインターフェイス。
ppIFunctionInstanceCollectionIFunctionInstanceCollection**outクエリ結果のインスタンスコレクションを受け取るポインター。
vtbl 5 HRESULT EndQuery()
vtbl 6 HRESULT InstancePropertyStoreValidateAccess(IFunctionInstance* pIFunctionInstance, INT_PTR iProviderInstanceContext, DWORD dwStgAccess)
pIFunctionInstanceIFunctionInstance*inアクセス検証対象の関数インスタンス。
iProviderInstanceContextINT_PTRinプロバイダーがインスタンスに関連付けたコンテキスト値。
dwStgAccessDWORDin検証するストレージアクセスモードを示す値。
vtbl 7 HRESULT InstancePropertyStoreOpen(IFunctionInstance* pIFunctionInstance, INT_PTR iProviderInstanceContext, DWORD dwStgAccess, IPropertyStore** ppIPropertyStore)
pIFunctionInstanceIFunctionInstance*inプロパティストアを開く対象の関数インスタンス。
iProviderInstanceContextINT_PTRinプロバイダーがインスタンスに関連付けたコンテキスト値。
dwStgAccessDWORDinプロパティストアを開くアクセスモードを示す値。
ppIPropertyStoreIPropertyStore**out開いたプロパティストアを受け取るポインター。
vtbl 8 HRESULT InstancePropertyStoreFlush(IFunctionInstance* pIFunctionInstance, INT_PTR iProviderInstanceContext)
pIFunctionInstanceIFunctionInstance*in変更を永続化する対象の関数インスタンス。
iProviderInstanceContextINT_PTRinプロバイダーがインスタンスに関連付けたコンテキスト値。
vtbl 9 HRESULT InstanceQueryService(IFunctionInstance* pIFunctionInstance, INT_PTR iProviderInstanceContext, GUID* guidService, GUID* riid, IUnknown** ppIUnknown)
pIFunctionInstanceIFunctionInstance*inサービスを問い合わせる対象の関数インスタンス。
iProviderInstanceContextINT_PTRinプロバイダーがインスタンスに関連付けたコンテキスト値。
guidServiceGUID*in要求するサービスを識別するGUID。
riidGUID*in要求するインターフェイスのIID。
ppIUnknownIUnknown**out取得したサービスインターフェイスを受け取るポインター。
vtbl 10 HRESULT InstanceReleased(IFunctionInstance* pIFunctionInstance, INT_PTR iProviderInstanceContext)
pIFunctionInstanceIFunctionInstance*in解放された関数インスタンス。
iProviderInstanceContextINT_PTRin解放されたインスタンスに関連付けられたコンテキスト値。

HSP用 COM定義

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

出力引数:
#define global IID_IFunctionDiscoveryProvider "{DCDE394F-1478-4813-A402-F6FB10657222}"
#usecom global IFunctionDiscoveryProvider IID_IFunctionDiscoveryProvider "{}"
#comfunc global IFunctionDiscoveryProvider_Initialize                           3 sptr,sptr,int,var
#comfunc global IFunctionDiscoveryProvider_Query                                4 sptr,sptr
#comfunc global IFunctionDiscoveryProvider_EndQuery                             5
#comfunc global IFunctionDiscoveryProvider_InstancePropertyStoreValidateAccess  6 sptr,sptr,int
#comfunc global IFunctionDiscoveryProvider_InstancePropertyStoreOpen            7 sptr,sptr,int,sptr
#comfunc global IFunctionDiscoveryProvider_InstancePropertyStoreFlush           8 sptr,sptr
#comfunc global IFunctionDiscoveryProvider_InstanceQueryService                 9 sptr,sptr,var,var,sptr
#comfunc global IFunctionDiscoveryProvider_InstanceReleased                     10 sptr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。