C++에서 매개 변수 개체 만들기
실행하는 메서드에 입력 인수가 있는 경우 IWbemServices::ExecMethod 또는 ExecMethodAsync 메서드에는 __PARAMETERS 시스템 클래스가 pInParams의 컨테이너여야 합니다.
다음 절차에서는 매개 변수 정보를 저장할 __PARAMETERS 시스템 클래스의 인스턴스를 만드는 방법을 설명합니다.
__PARAMETERS 인스턴스를 만드는 방법
메서드 정의가 포함된 클래스의 클래스 경로를 결정합니다.
IWbemProviderInit::Initialize에서 전달된 클래스 경로와 IWbemServices 포인터를 사용하여 IWbemClassObject::GetMethod를 호출하여 입력 및 출력 매개 변수 클래스를 검색합니다.
GetMethod 메서드는 이러한 각 클래스에 액세스하기 위해 IWbemClassObject 포인터를 반환합니다.
출력 클래스에 대한 IWbemClassObject 포인터를 사용하여 IWbemClassObject::SpawnInstance를 호출하여 클래스의 인스턴스를 만듭니다.
출력 값에 해당하는 속성을 설정하고, 메서드에 대한 반환 값이 있는 경우에는 ReturnValue 속성을 설정하여 클래스 인스턴스를 채웁니다.
IWbemObjectSink::Indicate 메서드를 통해 __PARAMETERS 인스턴스를 호출자에 다시 전달합니다.
메서드 공급자가 입력 매개 변수가 올바른지 확인한 후에도, strMethodName에서 가리키는 메서드는 여전히 성공하거나 실패할 수 있습니다. 일부 메서드 공급자는 메서드를 구현하기 위해 두 번째 스레드를 생성하므로, 메서드의 실제 성공 또는 실패는 IWbemObjectSink::SetStatus를 통해 호출자에게 보고됩니다. IWbemObjectSink::SetStatus는 공급자 메서드의 반환 코드를 받지 않습니다. 그러나 이것은 실제 호출 반환 메커니즘의 반환 코드를 수신하며, 호출이 발생했는지 기계적 이유로 실패했는지를 확인할 때만 유용합니다.
관련 항목