Partilhar via


Método IWbemServices::CreateClassEnum (wbemcli.h)

O método IWbemServices::CreateClassEnum retorna um enumerador para todas as classes que atendem aos critérios de seleção. O chamador deve usar o enumerador retornado para recuperar as definições de classe, chamando IEnumWbemClassObject::Next para obter cada classe ou blocos de classes. Ele termina chamando IEnumWbemClassObject::Release.

Nota Não é um erro para o enumerador retornado ter 0 (zero) elementos.
 

Sintaxe

HRESULT CreateClassEnum(
  [in]  const BSTR           strSuperclass,
  [in]  long                 lFlags,
  [in]  IWbemContext         *pCtx,
  [out] IEnumWbemClassObject **ppEnum
);

Parâmetros

[in] strSuperclass

Se não for NULL ou em branco, especificará um nome de classe pai. Somente as classes que são subclasses dessa classe são retornadas no enumerador. Se for NULL ou em branco e lFlags for WBEM_FLAG_SHALLOW, somente as classes de nível superior serão retornadas (ou seja, classes que não têm classe pai). Se for NULL ou em branco e lFlags for WBEM_FLAG_DEEP, todas as classes dentro do namespace serão retornadas.

[in] lFlags

Os sinalizadores a seguir afetam o comportamento desse método. O valor sugerido para esse parâmetro é WBEM_FLAG_RETURN_IMMEDIATELY e WBEM_FLAG_FORWARD_ONLY para melhor desempenho.

WBEM_FLAG_USE_AMENDED_QUALIFIERS

Se esse sinalizador estiver definido, o WMI recuperará os qualificadores alterados armazenados no namespace localizado da localidade da conexão atual. Se não estiver definido, somente os qualificadores armazenados no namespace imediato serão recuperados.

WBEM_FLAG_DEEP

Esse sinalizador força a enumeração a incluir todas as subclasses na hierarquia, mas não essa classe.

WBEM_FLAG_SHALLOW

Esse sinalizador força a enumeração a incluir apenas instâncias puras dessa classe, excluindo todas as instâncias de subclasses que fornecem propriedades não encontradas nessa classe.

WBEM_FLAG_RETURN_IMMEDIATELY

Esse sinalizador causa uma chamada semissíncrona. Para obter mais informações, confira Como chamar um método.

WBEM_FLAG_FORWARD_ONLY

Esse sinalizador faz com que um enumerador somente de encaminhamento seja retornado. Normalmente, os enumeradores somente de encaminhamento são mais rápidos e usam menos memória do que os enumeradores convencionais, mas não permitem chamadas para Clonar ou Redefinir.

WBEM_FLAG_BIDIRECTIONAL

Esse sinalizador faz com que o WMI mantenha ponteiros para objetos da enumeração até que o cliente libere o enumerador. Como os ponteiros de objeto não são liberados imediatamente, esse método pode falhar com um HRESULT de WBEM_E_OUT_OF_MEMORY se o cliente tentar enumerar um grande número de objetos. Esse sinalizador será implícito por padrão se você definir o parâmetro lFlags como 0 (zero).

[in] pCtx

Normalmente NULL. Caso contrário, esse é um ponteiro para um objeto IWbemContext que pode ser usado pelo provedor que está fornecendo as classes solicitadas. Os valores no objeto de contexto devem ser especificados na documentação do provedor. Para obter mais informações sobre esse parâmetro, consulte Fazendo chamadas para WMI.

[out] ppEnum

Recebe o ponteiro para o enumerador. O objeto retornado tem uma contagem de referência positiva. O chamador deve chamar Release no ponteiro quando ele não for mais necessário.

Valor retornado

Esse método retorna um HRESULT que indica o status de uma chamada de método. A lista a seguir lista o valor contido em um HRESULT.

Em caso de falha, você pode obter informações disponíveis da função COM GetErrorInfo.

Códigos de erro específicos do 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

   
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

Confira também

IEnumWbemClassObject

IWbemServices

IWbemServices::CreateClassEnumAsync

Como recuperar um código de erro