描述
IWbemCallResult.GetCallStatus方法向用户返回当前未完成的半异步调用的状态。当此调用返回WBEM_S_NO_ERROR时,对IWbemServices方法的原始调用已完成。
C++ 语法
HRESULT GetCallStatus( [in] LONG lTimeout, [out] LONG *plStatus ); |
PowerBASIC 语法
METHOD GetCallStatus ( _ BYVAL lTimeout AS LONG, _ BYREF plStatus AS LONG _ ) AS LONG |
参数
lTimeout
指定此调用在返回之前阻止的最大时间(以毫秒为单位)。如果使用常量WBEM_INFINITE(0xFFFFFFFF),则调用阻塞,直到对IWbemServices方法的原始半异步调用完成。如果使用0(零),则呼叫立即返回呼叫状态。
plStatus
如果WBEM_S_NO_ERROR在HRESULT中返回此方法,则此参数将接收到IWbemServices方法之一的呼叫的最终结果状态:OpenNamespace,PutInstance,PutClass,GetObject,DeleteInstance, DeleteClass或ExecMethod.出错时,不会使用plStatuslt指向的值。
返回值
此方法返回一个HRESULT,指示方法调用的状态。下表列出了HRESULT中包含的值。
退货代码 |
描述 |
WBEM_S_NO_ERROR |
调用完成,并且已经分配了plStatus。 |
WBEM_S_TIMEDOUT |
该对象在lTimeout值过期之前尚未可用。 |
WBEM_E_TRANSPORT_FAILURE |
这表示当前进程和Windows Management之间的远程过程调用(RPC)链接失败。 |
WBEM_E_INVALID_PARAMETER |
指定了无效参数。 |
WBEM_E_FAILED |
发生意外的系统错误。 |
备注
出现错误时,可以调用COM函数GetErrorInfo获取更多错误信息。如果网络问题导致您失去与Windows Management的远程连接,也可能会返回COM特定的错误代码。
在以异步方式调用IWbemServices方法后,您可以随时调用GetCallStatus来确定呼叫是否完成。GetCallStatus已返回WBEM_S_NO_ERROR,表示原始IWbemServices操作的完成,可能需要根据以下规则调用其他IWbemCallResult方法来检索呼叫结果:
· | 对于IWbemServices.OpenNamespace,必须调用GetResultServices方法来检索新的IWbemServices指针。 |
· | 对于IWbemServices.PutInstance,必须调用GetResultString方法来获取分配给对象的对象路径。 |
· | 对于IWbemServices.GetObject,必须调用GetResultObject方法来检索对象。 |
· | 对于IWbemServices方法DeleteInstanceDeleteClass和ExecMethod,GetCallStatus方法是返回有关这些操作的信息的唯一调用。 |
要求
客户 |
需要Windows Vista,Windows XP,Windows 2000 Professional,Windows NT Workstation 4.0 SP4及更高版本,Windows Me,Windows 98或Windows 95。 |
服务器 |
需要Windows Server 2008,Windows Server 2003,Windows 2000 Server或Windows NT Server 4.0 SP4及更高版本。 |
头 |
在Wbemcli.inc中声明。 |