IWbemCallResult interface

The IWbemCallResult interface is used for semisynchronous calls of the IWbemServices interface. When making such calls, the called IWbemServices method returns immediately, along with an IWbemCallResult object. Periodically, you can poll the returned IWbemCallResult object to determine the status of the call. You can obtain the result of the original IWbemServices call after it is complete by calling IWbemCallResult::GetCallStatus.

This call-return paradigm is useful in cases where a thread cannot afford to be blocked for more than a few seconds because it is servicing other tasks, such as processing window messages.

Not all IWbemServices methods support this interface because it is not required for all of them. The intent is to allow nonblocking, synchronous operation (semisynchronous operation) for all relevant operations. Because many of the IWbemServices methods are already nonblocking due to the use of enumerators or other constructs, only the following methods need this helper interface to support semisynchronous operation:


The IWbemCallResult interface inherits from the IUnknown interface. IWbemCallResult also has these types of members:


The IWbemCallResult interface has these methods.


Reports whether a semisynchronous call was successful.


Returns an IWbemClassObject object, which is the result of a semisynchronous call to IWbemServices::GetObject.


Returns the result of a semisynchronous call to IWbemServices::OpenNamespace verb action.


Returns an object path, which is the result of a semisynchronous call to IWbemServices::PutInstance.



Minimum supported client

Windows Vista

Minimum supported server

Windows Server 2003


Wbemcli.h (include Wbemidl.h)



© 2015 Microsoft