[This is preliminary documentation and subject to change.]
Use the DIWbemCallResult interface for semisynchronous calls of the DIWbemServices interface. When you make such calls, the DIWbemServices method returns immediately, along with an DIWbemCallResult object. Periodically, you must poll the returned DIWbemCallResult object to determine the status of the call. When the call completes, this interface gives you the result of the original DIWbemServices call.
This call-return paradigm is useful where a thread cannot be blocked for more than a few seconds because it is servicing many other tasks, such as processing window messages.
Not all DIWbemServices methods support the DIWbemCallResult interface because this interface is not required for all of them. The intent is to allow nonblocking synchronous operation (semisynchronous operation) for all situations. Since many of the DIWbemServices 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.
GetCallStatus | Informs the user whether or not a semisynchronous call has completed. |
GetResultObject | Returns an DWbemClassObject. This is the result of a semisynchronous call to DIWbemServices.GetObject. |
GetResultServices | Returns the result of a semisynchronous call to DIWbemServices.OpenNamespace verb action. |
GetResultString | Returns an Object Path. This is the result of a semisynchronous call to DIWbemServices.PutInstance. |