IWbemConfigureRefresher
COM公式ドキュメント
IWbemConfigureRefresher インターフェイスは、列挙子、オブジェクト、および入れ子のリフレッシャーをリフレッシャーに追加するために、クライアントコードから使用されます。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
IWbemConfigureRefresher::AddObjectByPath メソッドは、オブジェクトパスを指定してオブジェクトをリフレッシャーに追加します。
| pNamespace | IWbemServices* | in | Windows Management に戻る IWbemServices ポインターです。プロバイダーが行うあらゆる要求を処理できます。プロバイダーは、実行中に Windows Management を呼び出す場合、このポインターに対して AddRef を呼び出す必要があります。 |
| wszPath | LPWSTR | in | リフレッシャーに追加するオブジェクトのオブジェクトパスを格納した、16 ビット Unicode 文字から成る定数の null 終端文字列です。 |
| lFlags | INT | in | このメソッドの動作を変更するフラグのビットマスクです。このパラメーターに WBEM_FLAG_USE_AMENDED_QUALIFIERS を設定すると、返されるインスタンスには、利用可能であればローカライズされた修飾子が含まれます。 |
| pContext | IWbemContext* | in | 通常は NULL です。それ以外の場合は、1 つ以上の動的クラスプロバイダーが必要とする IWbemContext オブジェクトへのポインターです。コンテキストオブジェクトに設定する値は、各プロバイダーのドキュメントで指定されている必要があります。このパラメーターの詳細については、 Making Calls to WMI を参照してください。 |
| ppRefreshable | IWbemClassObject** | out | 更新可能なインスタンスオブジェクトを格納する IWbemClassObject オブジェクトへの参照を受け取るポインターです。クライアントは、返されたオブジェクトが不要になった時点で Release を呼び出す必要があります。 |
| plId | INT* | inout | 更新可能なオブジェクトを一意に識別する、プロバイダーから返される整数へのポインターです。 |
戻り値
このメソッドは、メソッド呼び出しの状態を示す HRESULT を返します。次の一覧は、HRESULT に格納される値を示します。
解説(Remarks)
指定するパスは、High-Performance Provider が提供する有効なオブジェクトを指している必要があります。返されたオブジェクトは、更新処理の実行中にクライアントが操作してはなりません。返された識別子は、 Remove 関数でオブジェクトを削除する際に使用できます。
IWbemConfigureRefresher::AddObjectByTemplate メソッドを使用すると、IWbemClassObject のインスタンステンプレートを指定して、更新対象のオブジェクトをリフレッシャーに追加できます。
| pNamespace | IWbemServices* | in | Windows Management に戻る IWbemServices ポインターです。プロバイダーが行うあらゆる要求を処理できます。プロバイダーは、実行中に Windows Management を呼び出す場合、このポインターに対して AddRef を呼び出す必要があります。 |
| pTemplate | IWbemClassObject* | in | インスタンステンプレートを格納した IWbemClassObject オブジェクトへのポインターです。 |
| lFlags | INT | in | このメソッドの動作を変更するフラグのビットマスクです。このパラメーターに WBEM_FLAG_USE_AMENDED_QUALIFIERS を設定すると、返されるインスタンスには、利用可能であればローカライズされた修飾子が含まれます。 |
| pContext | IWbemContext* | in | 通常は NULL です。それ以外の場合は、1 つ以上の動的クラスプロバイダーが必要とする IWbemContext オブジェクトへのポインターです。コンテキストオブジェクトに設定する値は、各プロバイダーのドキュメントで指定されている必要があります。このパラメーターの詳細については、 Making Calls to WMI を参照してください。 |
| ppRefreshable | IWbemClassObject** | out | 更新可能なインスタンスオブジェクトを格納する IWbemClassObject オブジェクトへの参照を受け取るポインターです。クライアントは、返されたオブジェクトが不要になった時点で Release を呼び出す必要があります。 |
| plId | INT* | inout | この更新可能なオブジェクトを一意に識別する、プロバイダーから返される整数へのポインターです。 |
戻り値
このメソッドは、メソッド呼び出しの状態を示す HRESULT を返します。次の一覧は、HRESULT に格納される値を示します。
解説(Remarks)
指定するインスタンスは、High-Performance Provider が提供する有効なオブジェクトを指している必要があります。返されたオブジェクトは、更新処理の実行中にクライアントが変更してはなりません。返された識別子は、 Remove 関数でオブジェクトを削除する際に使用できます。
追加したオブジェクトをユーザーが明示的に削除する必要はありません。クライアントは、返されたオブジェクトが不要になった時点で Release を呼び出す必要があります。
IWbemConfigureRefresher::AddRefresher メソッドは、リフレッシャーにリフレッシャーを追加します。
| pRefresher | IWbemRefresher* | in | このリフレッシャーに入れ子にする IWbemRefresher オブジェクトへのポインターです。 |
| lFlags | INT | in | 予約されています。このパラメーターは 0 (ゼロ) でなければなりません。 |
| plId | INT* | inout | 更新可能なオブジェクトを一意に識別する、プロバイダーから返される整数へのポインターです。 |
戻り値
このメソッドは、メソッド呼び出しの状態を示す HRESULT を返します。次の一覧は、HRESULT に格納される値を示します。
解説(Remarks)
再帰的に入れ子になったリフレッシャーを追加してはいけません。返された識別子は、 Remove 関数でリフレッシャーを削除する際に使用できます。追加したリフレッシャーをクライアントが明示的に削除する必要はありませんが、クライアントは、リフレッシャーが不要になった時点で Release を呼び出す必要があります。
IWbemConfigureRefresher::Remove メソッドは、リフレッシャーからオブジェクト、列挙子、または入れ子のリフレッシャーを削除するために使用します。
| lId | INT | in | 削除するオブジェクトを一意に識別する整数です。この識別子は、 IWbemConfigureRefresher::AddObjectByPath、 IWbemConfigureRefresher::AddObjectByTemplate、 IWbemConfigureRefresher::AddEnum、または IWbemConfigureRefresher::AddRefresher を呼び出してリフレッシャーにオブジェクトを最初に追加したときに取得します。 |
| lFlags | INT | in | Remove メソッドの動作を変更するフラグのビットマスクです。このパラメーターに WBEM_FLAG_REFRESH_AUTO_RECONNECT を設定すると、接続が切断された場合にリフレッシャーはリモートプロバイダーへの自動再接続を試みます。これはこのメソッドの既定の動作です。リフレッシャーにリモートプロバイダーへの再接続を試みさせたくない場合は、WBEM_FLAG_REFRESH_NO_AUTO_RECONNECT を指定します。 |
戻り値
このメソッドは、メソッド呼び出しの状態を示す HRESULT を返します。次の一覧は、HRESULT に格納される値を示します。
IWbemConfigureRefresher::AddEnum メソッドは、要求されたリフレッシャーに列挙子を追加します。
| pNamespace | IWbemServices* | in | Windows Management に戻る IWbemServices ポインターです。プロバイダーが行うあらゆる要求を処理できます。メソッドが実行中に Windows Management を呼び出す必要がある場合、プロバイダーは pNamespace ポインターに対して AddRef を呼び出す必要があります。 |
| wszClassName | LPWSTR | in | 列挙するクラスの名前を格納した、16 ビット Unicode 文字から成る定数の null 終端文字列です。 |
| lFlags | INT | in | このメソッドの動作を変更するフラグのビットマスクです。このパラメーターに WBEM_FLAG_USE_AMENDED_QUALIFIERS を設定すると、返されるインスタンスには、利用可能であればローカライズされた修飾子が含まれます。 |
| pContext | IWbemContext* | in | 通常は NULL です。それ以外の場合は、1 つ以上の動的クラスプロバイダーが必要とする IWbemContext オブジェクトへのポインターです。コンテキストオブジェクトに設定する値は、各プロバイダーのドキュメントで指定されている必要があります。このパラメーターの詳細については、 Making Calls to WMI を参照してください。 |
| ppEnum | IWbemHiPerfEnum** | out | 列挙結果を格納する IWbemHiPerfEnum オブジェクトへの参照を保持するポインターです。クライアントは、このポインターが不要になった時点で Release を呼び出す必要があります。 |
| plId | INT* | inout | 更新可能な列挙を一意に識別する、プロバイダーから返される整数へのポインターです。 |
戻り値
このメソッドは、メソッド呼び出しの状態を示す HRESULT を返します。次の一覧は、次に格納される値を示します。
解説(Remarks)
指定するクラスは、High-Performance Provider が提供する有効なクラスでなければなりません。返された列挙子のすべてのインスタンスは、呼び出しの後に問い合わせることができます。更新の呼び出しごとに、列挙子内のインスタンス数は変化する可能性があります。返されるのは指定したクラス名のインスタンスのみです。詳細な列挙はサポートされていないため、指定したクラスのサブクラスは列挙されません。返された列挙子は、 Refresh 処理の実行中にクライアントが操作してはなりません。返された識別子は、 Remove 関数でオブジェクトを削除する際に使用できます。なお、追加した列挙子をユーザーが明示的に削除する必要はありません。ただし、クライアントは、返された列挙子が不要になった時点で Release を呼び出す必要があります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWbemConfigureRefresher "{49353C92-516B-11D1-AEA6-00C04FB68820}" #usecom global IWbemConfigureRefresher IID_IWbemConfigureRefresher "{}" #comfunc global IWbemConfigureRefresher_AddObjectByPath 3 sptr,wstr,int,sptr,sptr,var #comfunc global IWbemConfigureRefresher_AddObjectByTemplate 4 sptr,sptr,int,sptr,sptr,var #comfunc global IWbemConfigureRefresher_AddRefresher 5 sptr,int,var #comfunc global IWbemConfigureRefresher_Remove 6 int,int #comfunc global IWbemConfigureRefresher_AddEnum 7 sptr,wstr,int,sptr,sptr,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IWbemConfigureRefresher "{49353C92-516B-11D1-AEA6-00C04FB68820}" #usecom global IWbemConfigureRefresher IID_IWbemConfigureRefresher "{}" #comfunc global IWbemConfigureRefresher_AddObjectByPath 3 sptr,wstr,int,sptr,sptr,sptr #comfunc global IWbemConfigureRefresher_AddObjectByTemplate 4 sptr,sptr,int,sptr,sptr,sptr #comfunc global IWbemConfigureRefresher_AddRefresher 5 sptr,int,sptr #comfunc global IWbemConfigureRefresher_Remove 6 int,int #comfunc global IWbemConfigureRefresher_AddEnum 7 sptr,wstr,int,sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。