IWbemCallResult

[This is preliminary documentation and subject to change.]

You can use the IWbemCallResult interface for semisynchronous calls of the IWbemServices interface. When you make such calls, the IWbemServices method returns immediately, along with an IWbemCallResult object. Periodically, you must poll the returned IWbemCallResult object to determine the status of the call. When the call completes, you can also obtain from this interface the result of the original IWbemServices call.

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 cases. Since many of the IWbemServices methods are already nonblocking due to the use of enumerators or other constructs. Only OpenNamespace, GetObject, PutInstance, DeleteClass, DeleteInstance, and ExecMethod need this helper interface to support semisynchronous operation.

Methods in Vtable Order

IUnknown Methods Description
QueryInterface Determines if the current object supports a given interface.
AddRef Increases the object's reference count by 1.
Release Decrements the object's reference count by 1, and frees the object when the reference count is zero.

IWbemCallResult Methods Description
GetResultObject Returns an IWbemClassObject; which is the result of a semisynchronous call to IWbemServices::GetObject.
GetResultString Returns an Object Path; which is the result of a semisynchronous call to IWbemServices::PutInstance.
GetResultServices Returns the result of a semisynchronous call to IWbemServices::OpenNamespace verb action.
GetCallStatus Tells you whether a semisynchronous call was successful.