Compartilhar via


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

  1. Determine o caminho da classe para a classe que contém a definição do método.

  2. 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.

  3. Usando o ponteiro IWbemClassObject para a classe de saída, chame IWbemClassObject::SpawnInstance para criar uma instância da classe.

  4. 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.

  5. 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.

Como chamar um método

IWbemCallResult::GetResultObject

IWbemServices::ExecMethodAsync

IWbemServices::ExecMethod