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


Метод IROTData::GetComparisonData (objidl.h)

Извлекает данные из моникера, который можно использовать для проверки моникера на равенство по отношению к другому моникеру.

Синтаксис

HRESULT GetComparisonData(
  [out] byte  *pbData,
  [in]  ULONG cbMax,
  [out] ULONG *pcbData
);

Параметры

[out] pbData

Указатель на буфер, получающий данные сравнения.

[in] cbMax

Длина буфера, указанного в pbData.

[out] pcbData

Указатель на переменную, получающую длину данных сравнения.

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

Этот метод может возвращать стандартные возвращаемые значения E_OUTOFMEMORY и S_OK.

Комментарии

Метод GetComparisonData в основном вызывается таблицей выполняющихся объектов (ROT). Данные сравнения, возвращаемые методом , проверяются на равенство двоичных данных с данными сравнения, возвращенными другим моникером. Параметр pcbData позволяет rot найти конец полученных данных.

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

Возвращаемые данные сравнения должны однозначно идентифицировать моникер, но при этом быть максимально короткими. Данные сравнения должны включать сведения о внутреннем состоянии моникера, а также CLSID моникера. Например, данные сравнения для моникера файла будут включать имя пути, хранящееся в моникере, а также CLSID реализации моникера файла. Это позволяет различать два моникера, которые хранят похожие сведения о состоянии, но являются экземплярами разных классов моникеров.

Данные сравнения для моникера не могут превышать 2048 байт в длину. Для составных моникеров общая длина данных сравнения для всех компонентов не может превышать 2048 байт; следовательно, если ваш моникер может быть компонентом составного моникера, возвращаемые данные сравнения должны быть значительно меньше 2048 байт.

Если данные сравнения длиннее значения, указанного параметром cbMax , необходимо вернуть ошибку. Обратите внимание, что при вызове GetComparisonData для компонентов составного моникера значение cbMax становится меньше для каждого моникера последовательно.

Требования

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

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

IROTData