Compartilhar via


Método IMoniker::Hash (objidl.h)

Cria um valor de hash usando o estado interno do moniker.

Sintaxe

HRESULT Hash(
  [out] DWORD *pdwHash
);

Parâmetros

[out] pdwHash

Um ponteiro para uma variável que recebe o valor de hash.

Retornar valor

Esse método retorna S_OK para indicar que o valor de hash foi recuperado com êxito.

Comentários

Anotações aos Chamadores

Você pode usar o valor retornado por esse método para manter uma tabela de hash de monikers. O valor de hash determina um bucket de hash na tabela. Para pesquisar um moniker especificado em uma tabela, calcule seu valor de hash e compare-o com os monikers nesse bucket de hash usando IMoniker::IsEqual.

Observações aos implementadores

O valor de hash deve ser constante durante o tempo de vida do moniker. Dois monikers que se comparam como iguais usando IMoniker::IsEqual devem ter o mesmo valor.

Realizar marshaling e, em seguida, cancelar a gravação de um moniker não deve ter nenhum efeito em seu valor de hash. Consequentemente, sua implementação de IMoniker::Hash deve depender apenas do estado interno do moniker, não do endereço de memória.

Notas específicas da implementação

Implementação Observações
Anti-moniker Esse método calcula um valor de hash para o moniker.
Moniker de classe Esse método calcula um valor de hash para o moniker e retorna S_OK. Pode retornar E_INVALIDARG se pdwHash for um ponteiro inválido.
Moniker de arquivo Esse método calcula um valor de hash para o moniker.
Moniker composto genérico Esse método calcula um valor de hash para o moniker.
Moniker de item Esse método calcula um valor de hash para o moniker.
Moniker OBJREF Esse método calcula um valor de hash para o moniker.
Moniker de ponteiro Esse método calcula um valor de hash para o moniker.
Moniker de URL Cria um valor de hash com base na cadeia de caracteres de URL do moniker. Esse valor de hash é idêntico quando as cadeias de caracteres de URL são idênticas, embora também possam ser idênticas para cadeias de caracteres de URL diferentes. Esse método é usado para acelerar as comparações reduzindo a quantidade de tempo necessária para chamar IMoniker::IsEqual.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho objidl.h

Confira também

Imoniker