Como criar objetos de parâmetros em C++
Os métodos IWbemServices::ExecMethod ou ExecMethodAsync exigem a classe de sistema __PARAMETERS como um contêiner em pInParams, se o método que eles estão executando tiver argumentos de entrada.
O procedimento a seguir descreve como criar uma instância da classe de sistema __PARAMETERS para armazenar informações de parâmetro.
Para criar uma instância do __PARAMETERS
Determine o caminho da classe para a classe que contém a definição do método.
Usando o caminho da classe e o ponteiro IWbemServices aprovado no IWbemProviderInit::Initialize, chame IWbemClassObject::GetMethod para recuperar as classes de parâmetro de entrada e saída.
O método GetMethod retorna um ponteiro IWbemClassObject para acessar cada uma dessas classes.
Usando o ponteiro IWbemClassObject para a classe de saída, chame IWbemClassObject::SpawnInstance para criar uma instância da classe.
Preencha a instância de classe definindo as propriedades que correspondem aos valores de saída e, se houver um valor retornado para o método, a propriedade ReturnValue.
Passe a instância __PARAMETERS para o chamador por meio do método IWbemObjectSink::Indicate.
Depois que um provedor de método determina que os parâmetros de entrada estão corretos, o método apontado por strMethodName ainda pode ser aprovado ou falhar. Alguns provedores de método geram um segundo thread para implementar o método para que o êxito ou falha real do método acabe sendo relatado ao chamador por meio do IWbemObjectSink::SetStatus. Observe que IWbemObjectSink::SetStatus não recebe o código de retorno do método do provedor. No entanto, ele recebe o código de retorno do mecanismo de retorno de chamada real e só é útil para verificar se a chamada ocorreu ou se ela falhou por motivos mecânicos.
Tópicos relacionados