勇芳软件工作室.汉化:  Windows Management Instrumentation > COM API for WMI > Interfaces > IWbemClassObject >

PutMethod Method

Previous pageReturn to chapter overviewNext page

描述

 

IWbemClassObject.PutMethod用于创建一个方法。仅当当前对象是CIM类定义时才支持此调用。指向CIM实例的IWbemClassObject指针不提供方法操作。

 

用户无法创建名称以下划线开头或结尾的方法。这是为系统类和属性保留的。

 

C++ 语法

 

HRESULT PutMethod(

[in]  LPCWSTR wszName,

[in]  LONG lFlags,

[in]  IWbemClassObject *pInSignature,

[in]  IWbemClassObject *pOutSignature

);

 

PowerBASIC 语法

 

METHOD PutMethod ( _

BYREF wszName AS WSTRINGZ, _

BYVAL lFlags AS LONG, _

BYVAL pInSignature AS IWbemClassObject, _

BYVAL pOutSignature AS IWbemClassObject _

) AS LONG

 

参数

 

wszName

 

创建的方法名称。

 

lFlags

 

保留。该参数必须为0(零)。

 

pInSignature

 

指向__Parameters系统类的副本的指针,其中包含该方法的in参数。如果设置为NOTHING,则忽略此参数。

 

pOutSignature

 

指向包含对象的输出参数的__Parameters系统类的副本的指针。如果设置为NOTHING,则忽略此参数。

 

返回值

 

此方法返回一个HRESULT,表示方法调用的状态。下表列出了HRESULT中包含的值。

 

退货代码

描述

WBEM_S_NO_ERROR

通话成功。

WBEM_E_INVALID_

DUPLICATE_PARAMETER

pInSignaturepOutSignature参数对象中指定的[in, out]方法参数具有不同的限定符。

WBEM_E_INVALID_PARAMETER

一个或多个参数无效。

WBEM_E_MISSING_PARAMETER_ID

任何缺少ID限定词的规范的方法参数(in / out)。

WBEM_E_NONCONSECUTIVE_

PARAMETER_IDS

分配给方法参数而不是连续的或不在0(零)开始的ID系列。

WBEM_E_PARAMETER_

ID_ON_RETVAL

方法的返回值具有ID限定符。

WBEM_E_PROPAGATED_METHOD

尝试重用父类中现有的方法名称,并且签名不匹配。

 

备注

 

对于一种方法,in和out参数被描述为IWbemClassObject对象中的属性。

 

例如,考虑以下方法:

 

Class MyClass{

  [key] string KeyVal;

  sint32 PropVal;

  sint32 ExampleMethod([in] sint32 Param1, [in] uint32 Param2,

      [out] string Param3);

  HRESULT ReturnValue;

};

 

在前面的例子中,该类有一个方法。要以编程方式创建方法,用户使用pInSignature参数调用pInSignature参数,该参数指向系统类__Parameters的副本,其中包含两个属性:参数1参数2.pOutSignature指向系统类__Parameters的副本,其中包含两个属性:参数3ReturnValue.

 

pOutSignature指向的对象的ReturnValue属性确定方法返回类型。如果pOutSignature设置为NULL,则返回类型假定为VOID。

 

可以通过向pInSignaturepOutSignature参数指向的两个对象添加相同的属性来定义[in/out]参数。在这种情况下,属性共享相同的ID限定符值。

 

__Parameters类别对象中除ReturnValue之外的每个属性必须有一个ID限定符,一个基于零的数字,用于标识参数的显示顺序。在这个例子中,参数1将为0,参数21和参数32。没有两个参数可以具有相同的ID值,并且不能跳过ID值。如果发生任一情况,IWbemClassObject.PutMethod返回WBEM_E_NONCONSECUTIVE_PARAMETER_IDS。

 

注意当不再需要这些对象时,主叫方必须在pInSignaturepOutSignature指针上调用IWbemClassObject.Release.

 

要求

 

客户

需要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

需要Cimwin32.dll。

需要Esscli.dll。

需要Evntrprv.dll。

需要Fastprox.dll。

需要Framedyn.dll。

需要Krnlprov.dll。

需要Ncprov.dll。

需要Wbemcore.dll。

需要Wbemess.dll。

需要Wmipiprt.dll。