Método IWbemServices::P utClass (wbemcli.h)
O método IWbemServices::P utClass cria uma nova classe ou atualiza uma existente. A classe especificada pelo parâmetro pObject deve ter sido inicializada corretamente com todos os valores de propriedade necessários.
O usuário pode não criar classes com nomes que começam ou terminam com um sublinhado (_). Isso é reservado para classes do sistema.
Sintaxe
HRESULT PutClass(
[in] IWbemClassObject *pObject,
[in] long lFlags,
[in] IWbemContext *pCtx,
[out] IWbemCallResult **ppCallResult
);
Parâmetros
[in] pObject
Deve apontar para uma definição de classe válida. A contagem de referência não é alterada.
[in] lFlags
Os sinalizadores a seguir afetam o comportamento desse método.
WBEM_FLAG_USE_AMENDED_QUALIFIERS
Se esse sinalizador estiver definido, a WMI não armazenará nenhum qualificador com o sabor alterado. Se esse sinalizador não estiver definido, supõe-se que esse objeto não esteja localizado e todos os qualificadores sejam armazenados com essa instância.
WBEM_FLAG_CREATE_OR_UPDATE
Esse sinalizador fará com que a classe seja criada se ela não existir ou substituída se ela já existir.
WBEM_FLAG_UPDATE_ONLY
Esse sinalizador faz com que essa chamada seja atualizada. A classe precisa existir para que a chamada seja bem-sucedida.
WBEM_FLAG_CREATE_ONLY
Esse sinalizador é usado apenas para criação. A chamada falhará se a classe já existir.
WBEM_FLAG_RETURN_IMMEDIATELY
Esse sinalizador faz com que essa seja uma chamada semissíncrona. Para obter mais informações, confira Como chamar um método.
WBEM_FLAG_OWNER_UPDATE
Os provedores de push devem especificar esse sinalizador ao chamar PutClass para indicar que essa classe foi alterada.
WBEM_FLAG_UPDATE_COMPATIBLE
Esse sinalizador permite que uma classe seja atualizada se não houver classes derivadas e não houver instâncias para essa classe. Ele também permite atualizações em todos os casos se a alteração for apenas para qualificadores não importantes (por exemplo, o qualificador Descrição ). Esse é o comportamento padrão dessa chamada e é usado para compatibilidade com versões anteriores do Gerenciamento do Windows. Se a classe tiver instâncias ou alterações para qualificadores importantes, a atualização falhará.
WBEM_FLAG_UPDATE_SAFE_MODE
Esse sinalizador permite atualizações de classes mesmo que haja classes filho, desde que a alteração não cause conflitos com classes filho. Um exemplo de uma atualização que esse sinalizador permitiria seria adicionar uma nova propriedade à classe base que não foi mencionada anteriormente em nenhuma das classes filho. Se a classe tiver instâncias, a atualização falhará.
WBEM_FLAG_UPDATE_FORCE_MODE
Esse sinalizador força as atualizações de classes quando há classes filho conflitantes. Um exemplo de uma atualização que esse sinalizador forçaria seria se um qualificador de classe fosse definido em uma classe filho e a classe base tentasse adicionar o mesmo qualificador que estava em conflito com o existente. No modo de força, esse conflito seria resolvido excluindo o qualificador conflitante na classe filho.
[in] pCtx
Normalmente NULL. Caso contrário, esse é um ponteiro para um objeto IWbemContext exigido pelo provedor de classe dinâmica que está produzindo as instâncias de classe. Os valores no objeto de contexto devem ser especificados na documentação do provedor em questão. Para obter mais informações sobre esse parâmetro, consulte Fazendo chamadas para WMI.
[out] ppCallResult
Se NULL, esse parâmetro não será usado. Se o parâmetro lFlagscontiver WBEM_FLAG_RETURN_IMMEDIATELY, essa chamada retornará imediatamente com WBEM_S_NO_ERROR. O parâmetro ppCallResult recebe um ponteiro para um novo objeto IWbemCallResult , que pode ser sondado para obter o resultado usando o método IWbemCallResult::GetCallStatus .
Retornar valor
Esse método retorna um HRESULT que indica o status da chamada de método. A lista a seguir lista o valor contido em um HRESULT.
Em caso de falha, você pode obter todas as informações disponíveis da função COM GetErrorInfo.
Códigos de erro específicos de COM também podem ser retornados se problemas de rede fizerem com que você perca a conexão remota com o Gerenciamento do Windows.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Servidor mínimo com suporte | Windows Server 2008 |
Plataforma de Destino | Windows |
Cabeçalho | wbemcli.h (inclua Wbemidl.h) |
Biblioteca | Wbemuuid.lib |
DLL | Fastprox.dll; Esscli.dll; FrameDyn.dll; FrameDynOS.dll; Ntevt.dll; Stdprov.dll; Viewprov.dll; Wbemcomn.dll; Wbemcore.dll; Wbemess.dll; Wbemsvc.dll; Wmipicmp.dll; Wmidcprv.dll; Wmipjobj.dll; Wmiprvsd.dll |