Método Provider::ExecMethod(ParsedObjectPath*,BSTR,long,CInstance*,CInstance*,MethodContext*) (provider.h)
[A classe Provider faz parte do WMI Provider Framework que agora é considerado em estado final e nenhum desenvolvimento, melhoria ou atualização adicional estará disponível para problemas não relacionados à segurança que afetarem essas bibliotecas. As APIs de MI devem ser usadas para todos os novos desenvolvimentos.]
O método ExecMethod é chamado pelo WMI para invocar um método em uma classe ou instância.
Sintaxe
HRESULT ExecMethod(
ParsedObjectPath *pParsedObjectPath,
BSTR bstrMethodName,
long lFlags,
CInstance *pInParams,
CInstance *pOutParams,
MethodContext *pContext
);
Parâmetros
pParsedObjectPath
TBD
bstrMethodName
Nome do método que é invocado.
lFlags
Máscara de bits de sinalizadores com informações sobre a operação do método execute. Esse é o valor especificado pelo cliente no método IWbemServices::ExecMethod . Poucos clientes usam os parâmetros lFlags . Você pode ignorar lFlags com segurança na maioria das implementações do provedor.
O sinalizador a seguir é manipulado por (e filtrado) pelo WMI:
- WBEM_FLAG_RETURN_IMMEDIATELY
pInParams
Ponteiro para os parâmetros de entrada do método.
pOutParams
Ponteiro para os parâmetros de saída do método.
pContext
TBD
Retornar valor
A implementação do provedor de estrutura padrão desse método retorna WBEM_E_PROVIDER_NOT_CAPABLE ao método de chamada. O método IWbemServices::ExecMethod lista os valores retornados mais comuns, embora você possa optar por retornar qualquer código de retorno COM.
Os valores retornados para métodos podem ser um dos dois tipos:
- HRESULT é usado para indicar erros de tipo WMI: WBEM_E_OUT_OF_MEMORY, WBEM_E_NOT_FOUND e assim por diante.
- O valor retornado do método (como uint32) retorna o resultado do método .
Comentários
O WMI chama ExecMethod quando um cliente chama IWbemServices::ExecMethod em relação à sua classe. Portanto, você deverá implementar o ExecMethod se o provedor der suporte a um ou mais métodos. A lista a seguir descreve uma implementação comum do ExecMethod:
- Determine qual método o cliente chamou examinando o parâmetro bstrMethodName .
-
Recupere os parâmetros de entrada do parâmetro pInParams , usando os métodos Get da classe CInstance , como CInstance::GetCHString.
Um método pode ter parâmetros de entrada, parâmetros de saída, parâmetros de entrada e saída ou nenhum parâmetro de entrada ou saída.
-
Defina os parâmetros de saída no parâmetro pOutParams , usando os métodos Set da classe CInstance , como CInstance::SetByte ou CInstance::SetStringArray.
Além de declarar as propriedades [out], conforme especificado na declaração de retorno, você também deve declarar o valor retornado para o método, conforme definido na propriedade ReturnValue . Você não precisará declarar um valor retornado se o valor retornado for nulo.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Servidor mínimo com suporte | Windows Server 2008 |
Plataforma de Destino | Windows |
Cabeçalho | provider.h (inclua FwCommon.h) |
Biblioteca | FrameDyn.lib |
DLL | FrameDynOS.dll; FrameDyn.dll |