ValidateParms
Aplica-se a: Outlook 2013 | Outlook 2016
Chama uma função interna para marcar os parâmetros que os aplicativos cliente passaram para provedores de serviços.
Propriedade | Valor |
---|---|
Arquivo de cabeçalho: |
Mapival.h |
Implementado por: |
MAPI |
Chamado por: |
Provedores de serviços |
HRESULT ValidateParms(
METHODS eMethod,
LPVOID First
);
Parâmetros
eMethod
[in] Especifica, por enumeração, o método a ser validado.
Primeira
[in] Ponteiro para o primeiro argumento na pilha.
Valor de retorno
S_OK
Todos os parâmetros são válidos.
MAPI_E_CALL_FAILED
Um ou mais dos parâmetros não são válidos.
Comentários
Os parâmetros passados entre MAPI e provedores de serviços são considerados corretos e passam apenas pela validação de depuração com a macro CheckParms . Os provedores devem marcar todos os parâmetros passados por aplicativos cliente, mas os clientes devem assumir que os parâmetros MAPI e provedor estão corretos. Use a macro HR_FAILED para testar valores retornados.
ValidateParms é chamado de forma diferente, dependendo se o código de chamada é C ou C++. O C++ passa um parâmetro implícito conhecido como isso para cada chamada de método, que se torna explícita em C e é o endereço do objeto. O primeiro parâmetro, eMethod, é um enumerador feito da interface e do método que está sendo validado e informa quais parâmetros esperar encontrar na pilha. O segundo parâmetro é diferente para C e C++. No C++ ele é chamado primeiro e é o primeiro parâmetro para o método que está sendo validado. O segundo parâmetro para a linguagem C, ppThis, é o endereço do primeiro parâmetro para o método que é sempre um ponteiro de objeto. Em ambos os casos, o segundo parâmetro fornece o endereço do início da lista de parâmetros do método e, com base em eMethod, desce a pilha e valida os parâmetros.
Provedores que implementam interfaces comuns como IMAPITable e IMAPIProp devem sempre marcar parâmetros usando a função ValidateParms para garantir a consistência em todos os provedores. Funções adicionais de validação de parâmetro foram definidas para alguns tipos de parâmetro complexos a serem usados conforme apropriado. Confira os tópicos de referência para as seguintes funções:
- FBadColumnSet
- FBadEntryList
- FBadProp
- FBadProp
- FBadRestriction
- FBadRestriction
- FBadRglpszW
- FBadRow
- FBadRowSet
- FBadSortOrderSet
Os métodos herdados usam a mesma validação de parâmetro que a interface da qual herdam. Por exemplo, a verificação de parâmetros para IMessage e IMAPIProp deve ser a mesma.