Поделиться через


Метод IMoniker::Hash (objidl.h)

Создает хэш-значение, используя внутреннее состояние моникера.

Синтаксис

HRESULT Hash(
  [out] DWORD *pdwHash
);

Параметры

[out] pdwHash

Указатель на переменную, получающую хэш-значение.

Возвращаемое значение

Этот метод возвращает S_OK, чтобы указать, что хэш-значение было успешно извлечено.

Комментарии

Примечания к вызывающим абонентам

Значение, возвращаемое этим методом, можно использовать для поддержки хэш-таблицы моникеров. Хэш-значение определяет хэш-контейнер в таблице. Чтобы найти в такой таблице указанный моникер, вычислите его хэш-значение, а затем сравните его с моникерами в этом хэш-контейнере с помощью IMoniker::IsEqual.

Примечания для разработчиков

Значение хэша должно быть постоянным в течение всего времени существования моникера. Два моникера, которые сравниваются как равные с помощью IMoniker::IsEqual , должны хэшировать до одного и того же значения.

Маршалинг и последующее размежевание моникера не должны влиять на его хэш-значение. Следовательно, реализация IMoniker::Hash должна полагаться только на внутреннее состояние моникера, а не на его адрес памяти.

Примечания, относящиеся к реализации

Реализация Примечания
Антимникер Этот метод вычисляет хэш-значение для моникера.
Моникер класса Этот метод вычисляет хэш-значение для моникера и возвращает S_OK. Может возвращать E_INVALIDARG, если pdwHash является недопустимым указателем.
Моникер файла Этот метод вычисляет хэш-значение для моникера.
Универсальный составной моникер Этот метод вычисляет хэш-значение для моникера.
Моникер элемента Этот метод вычисляет хэш-значение для моникера.
Моникер OBJREF Этот метод вычисляет хэш-значение для моникера.
Моникер указателя Этот метод вычисляет хэш-значение для моникера.
Моникер URL-адреса Создает хэш-значение на основе строки URL-адреса моникера. Это хэш-значение идентично, если строки URL-адреса идентичны, хотя оно также может быть одинаковым для разных строк URL-адресов. Этот метод используется для ускорения сравнения за счет сокращения времени, необходимого для вызова IMoniker::IsEqual.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header objidl.h

См. также раздел

IMoniker