IWbemConfigureRefresher::AddObjectByTemplate method

With the IWbemConfigureRefresher::AddObjectByTemplate method, you can add an object you want refreshed to a refresher by specifying an IWbemClassObject instance template. Use this method when it is difficult to construct an object path for an object to add to a refresher.

Note  The key properties of the instance object must be filled out before you can call the AddObjectByTemplate method.


HRESULT AddObjectByTemplate(
        IWbemServices    *pNamespace,
  [in]  IWbemClassObject *pTemplate,
  [in]  long             lFlags,
  [in]  IWbemContext     *pCtx,
  [out] IWbemClassObject **ppRefreshable,
  [out] long             *plid



An IWbemServices pointer back into Windows Management, which can service any request made by the provider. The provider should call AddRef on this pointer if it is going to call back into Windows Management during its execution.

pTemplate [in]

Pointer to a IWbemClassObject object that contains the instance template.

lFlags [in]

Bitmask of flags that modify the behavior of this method. If this parameter is set to WBEM_FLAG_USE_AMENDED_QUALIFIERS, the returned instance will contain localized qualifiers if available.

pCtx [in]

Typically NULL; otherwise, a pointer to an IWbemContext object that is required by one or more dynamic class providers. The values in the context object must be specified in the specific provider documentation. For more information about this parameter, see Making Calls to WMI.

ppRefreshable [out]

Pointer to hold the reference to a IWbemClassObject object, which will contain the refreshable instance object. The client must call Release on the returned object when it is no longer required.

plid [out]

Pointer to an integer returned by the provider that uniquely identifies this refreshable object.

Return value

This method returns an HRESULT indicating the status of the method call. The following list lists the value contained within an HRESULT.


A parameter is not valid.


The requested instance could not be found.


The current user does not have permission to retrieve the specified instance.


The requested instance is not supplied by the High-Performance Provider.


The method was successful.


The refresher is busy with another operation.


The supplied instance must specify a valid object, which is provided by the High-Performance Provider. The returned object must not be modified by the client while a refresh operation is in process. The returned identifier can be used by the Remove function to remove the object.

It is not necessary for the user to explicitly remove added objects. The client must call Release on the returned object when it is no longer required.


Minimum supported client

Windows Vista

Minimum supported server

Windows Server 2008


Wbemcli.h (include Wbemidl.h)



See also

Accessing Performance Data in C++
Making an Instance Provider into a High-Performance Provider
Performance Counter Provider