描述
IWbemServices.DeleteClassAsync方法从当前命名空间中删除指定的类。此方法与IWbemServices.DeleteClass相同,只是该调用立即返回。操作完成后,使用IWbemObjectSink.SetStatus方法将确认或失败异步报告给指定的对象接收器。
C++ 语法
HRESULT DeleteClassAsync( [in] const BSTR strClass, [in] LONG lFlags, [in] IWbemContext *pCtx, [in] IWbemObjectSink *pResponseHandler ); |
PowerBASIC 语法
METHOD DeleteClassAsync ( _ BYVAL strClass AS DWORD, _ BYVAL lFlags AS LONG, _ BYVAL pCtx AS IWbemContext, _ BYREF pResponseHandler AS IWbemObjectSink _ ) AS LONG |
参数
strClass
目标删除类别的名称。
lFlags
可以设置以下值之一。
旗 |
含义 |
WBEM_FLAG_SEND_STATUS |
该标志通过客户端实施IWbemObjectSink.SetStatus向Windows Management注册接收中间状态报告的请求。提供商实施必须支持中间状态报告,为此标志改变行为。 |
WBEM_FLAG_OWNER_UPDATE |
调用DeleteClassAsync表示此类已更改时,推送提供者必须指定此标志。 |
pCtx
通常为NULL。否则,这是指向可以由提供者提供请求的实例的IWbemContext对象的指针。必须在相关提供者的文档中指定上下文对象中的值。
pResponseHandler
指向由呼叫者实现的IWbemObjectSink的实现。该处理程序在通过IWbemObjectSink.SetStatus方法可用时收到删除请求的状态。如果返回任何错误代码,则不使用提供的IWbemObjectSink指针。如果返回WBEM_S_NO_ERROR,则调用用户的IWbemObjectSink实现来指示操作的结果。如果WBEM_S_NO_ERROR返回,Windows Management只会调用该指针的AddRef.在错误代码返回的情况下,引用计数与输入相同。有关此参数的详细说明,请参阅调用方法.
返回值
此方法返回一个HRESULT,指示方法调用的状态。下表列出了HRESULT中包含的值。
所有其他返回码通过SetStatus方法提供给由pReponseHandler参数指定的对象宿。错误条件,例如类不存在或用户没有删除类的权限时,会向处理程序报告。它们不会在此方法的返回码中报告。
如果网络问题导致您失去与Windows Management的远程连接,也可能会返回COM特定的错误代码。
退货代码 |
描述 |
WBEM_E_FAILED |
这表示其他未指定的错误。 |
WBEM_E_INVALID_PARAMETER |
指定了无效参数。 |
WBEM_E_CLASS_HAS_CHILDREN |
删除此类将使一个子类失效。 |
WBEM_E_OUT_OF_MEMORY |
没有足够的内存来完成操作。 |
WBEM_E_SHUTTING_DOWN |
Windows管理服务可能已停止并重新启动。需要新的电话ConnectServer. |
WBEM_E_TRANSPORT_FAILURE |
这表示当前进程和Windows Management之间的远程过程调用(RPC)链接失败。 |
WBEM_S_NO_ERROR |
通话成功。 |
备注
如果动态实例提供程序与该类相关联,则提供程序将被注销,并且不再为该类别调用。从删除的类派生的任何类也被删除,并且它们的关联提供者变得未注册。当类被删除时,指定类及其子类的所有未完成的静态实例也将被删除。
如果类由动态类提供者提供,则删除的成功取决于该提供者是否支持类删除。
注意无法删除标准系统类。
因为回调可能不会以与客户端所需的相同的身份验证级别返回,所以建议您使用半异步而不是异步通信。如果需要异步通信,请参阅调用方法.
有关半同步使用方法的更多信息,请参阅IWbemServices.DeleteClass和调用方法.
要求
客户 |
需要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中声明。 |
DLL |
需要Fastprox.dll。 需要Esscli.dll。 需要Framedyn.dll。 需要Ntevt.dll。 需要Stdprov.dll。 需要Viewprov.dll。 需要Wbemcomn.dll。 需要Wbemcore.dll。 需要Wbemess.dll。 需要Wbemsvc.dll。 需要Wmipicmp.dll。 需要Wmidcprv.dll。 需要Wmipjobj.dll。 需要Wmiprvsd.dll。 |