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

IFunctionDiscoveryNotification

COM
IID5f6c1ba8-5330-422e-a368-572b244d3f87継承元IUnknown自前メソッド開始 vtbl3

メソッド 3

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

vtbl 3 HRESULT OnUpdate(QueryUpdateAction enumQueryUpdateAction, ULONGLONG fdqcQueryContext, IFunctionInstance* pIFunctionInstance)
enumQueryUpdateActionQueryUpdateActioninインスタンスの追加・変更・削除など更新内容を示すQueryUpdateAction列挙値。
fdqcQueryContextULONGLONGinクエリ作成時に割り当てられたコンテキスト識別子。
pIFunctionInstanceIFunctionInstance*in更新対象の関数インスタンスを表すIFunctionInstanceインターフェイス。
vtbl 4 HRESULT OnError(HRESULT hr, ULONGLONG fdqcQueryContext, LPWSTR pszProvider)
hrHRESULTin発生したエラーを示すHRESULT値。
fdqcQueryContextULONGLONGinエラーが発生したクエリのコンテキスト識別子。
pszProviderLPWSTRinエラーを報告したプロバイダーの名前。
vtbl 5 HRESULT OnEvent(DWORD dwEventID, ULONGLONG fdqcQueryContext, LPWSTR pszProvider)
dwEventIDDWORDinプロバイダーが発生させたイベントを識別するID。
fdqcQueryContextULONGLONGinイベントに関連するクエリのコンテキスト識別子。
pszProviderLPWSTRinイベントを報告したプロバイダーの名前。

HSP用 COM定義

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

#define global IID_IFunctionDiscoveryNotification "{5F6C1BA8-5330-422E-A368-572B244D3F87}"
#usecom global IFunctionDiscoveryNotification IID_IFunctionDiscoveryNotification "{}"
#comfunc global IFunctionDiscoveryNotification_OnUpdate  3 int,int64,sptr
#comfunc global IFunctionDiscoveryNotification_OnError   4 int,int64,wstr
#comfunc global IFunctionDiscoveryNotification_OnEvent   5 int,int64,wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。