IWbemClassObject::P utMethod 메서드(wbemcli.h)
IWbemClassObject::P utMethod는 메서드를 만드는 데 사용됩니다. 이 호출은 현재 개체가 CIM 클래스 정의인 경우에만 지원됩니다. CIM 인스턴스를 가리키는 IWbemClassObject 포인터에서는 메서드 조작을 사용할 수 없습니다.
사용자는 밑줄로 시작하거나 끝나는 이름으로 메서드를 만들 수 없습니다. 이는 시스템 클래스 및 속성용으로 예약되어 있습니다.
구문
HRESULT PutMethod(
[in] LPCWSTR wszName,
[in] long lFlags,
[in] IWbemClassObject *pInSignature,
[in] IWbemClassObject *pOutSignature
);
매개 변수
[in] wszName
만들어진 메서드 이름입니다.
[in] lFlags
예약되어 있습니다. 이 매개 변수는 0이어야 합니다.
[in] pInSignature
메서드에 대한 in 매개 변수를 포함하는 __Parameters 시스템 클래스의 복사본에 대한 포인터입니다. 이 매개 변수는 NULL로 설정된 경우 무시됩니다.
[in] pOutSignature
개체에 대한 out 매개 변수를 포함하는 __Parameters 시스템 클래스의 복사본에 대한 포인터입니다. 이 매개 변수는 NULL로 설정된 경우 무시됩니다.
반환 값
이 메서드는 메서드 호출의 상태를 나타내는 HRESULT를 반환합니다. 다음 목록에는 HRESULT 내에 포함된 값이 나열되어 있습니다. 일반적인 HRESULT 값은시스템 오류 코드를 참조하세요.
설명
메서드의 경우 in 및 out 매개 변수는 IWbemClassObject 개체의 속성으로 설명됩니다.
예를 들어 다음 방법을 고려합니다.
Class MyClass{
[key] string KeyVal;
sint32 PropVal;
sint32 ExampleMethod([in] sint32 Param1, [in] uint32 Param2,
[out] string Param3);
HRESULT ReturnValue;
};
이전 예제에서 클래스에는 하나의 메서드가 있습니다. 프로그래밍 방식으로 메서드를 만들기 위해 사용자는 PInSignature 매개 변수를 사용하여 IWbemClassObject::P utMethod를 호출합니다. 이 매개 변수는 Param1 및 Param2라는 두 가지 속성이 포함된 시스템 클래스 __Parameters 복사본을 가리킵니다. pOutSignature는 Param3 및 ReturnValue라는 두 가지 속성을 포함하는 시스템 클래스 __Parameters 복사본을 가리킵니다.
pOutSignature가 가리키는 개체의 ReturnValue 속성에 따라 메서드 반환 형식이 결정됩니다. pOutSignature가 NULL로 설정된 경우 반환 형식은 VOID로 간주됩니다.
pInSignature 및 pOutSignature 매개 변수가 가리키는 두 개체에 동일한 속성을 추가하여 [in/out] 매개 변수를 정의할 수 있습니다. 이 경우 속성은 동일한 ID 한정자 값을 공유합니다.
ReturnValue 이외의 __Parameters 클래스 개체의 각 속성에는 매개 변수가 표시되는 순서를 식별하는 0부터 시작하는 숫자인 ID 한정자(영부터 시작)가 있어야 합니다. 이 예제에서 Param1 은 0, Param2 1 및 Param3 2입니다. 두 매개 변수는 동일한 ID 값을 가질 수 없으며 어떤 ID 값도 건너뛸 수 없습니다. 두 조건 중 하나가 발생하면 IWbemClassObject::P utMethod는WBEM_E_NONCONSECUTIVE_PARAMETER_IDS 반환합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista |
지원되는 최소 서버 | Windows Server 2008 |
대상 플랫폼 | Windows |
헤더 | wbemcli.h(Wbemidl.h 포함) |
라이브러리 | WbemUuid.lib |
DLL | CIMWin32.dll; Esscli.dll; Fastprox.dll; FrameDyn.dll; FrameDynOS.dll; Krnlprov.dll; Ncprov.dll; Wbemcore.dll; Wbemess.dll; Wmipiprt.dll |