Функция OleRegEnumFormatEtc (ole2.h)

Создает объект перечисления, который можно использовать для перечисления форматов данных, зарегистрированных сервером объектов OLE в системном реестре. Приложение объекта или обработчик объектов вызывает эту функцию, когда необходимо перечислить эти форматы. Разработчики пользовательских приложений объектов DLL используют эту функцию для эмуляции поведения обработчика объектов по умолчанию.

Синтаксис

HRESULT OleRegEnumFormatEtc(
  [in]  REFCLSID        clsid,
  [in]  DWORD           dwDirection,
  [out] LPENUMFORMATETC *ppenum
);

Параметры

[in] clsid

CLSID класса, форматы которого запрашиваются.

[in] dwDirection

Указывает, следует ли перечислять форматы, которые можно передать в IDataObject::GetData , или форматы, которые можно передать в IDataObject::SetData. Возможные значения взяты из перечисления DATADIR.

[out] ppenum

Адрес переменной указателя IEnumFORMATETC , которая получает указатель интерфейса на объект перечисления.

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

Эта функция возвращает S_OK при успешном выполнении. Ниже перечислены другие возможные значения.

Код возврата Описание
E_OUTOFMEMORY
Недостаточно памяти для операции.
REGDB_E_CLASSNOTREG
ClSID не зарегистрирован для объекта класса.
REGDB_E_READREGDB
Произошла ошибка при чтении реестра.
OLE_E_REGDB_KEY
В реестре отсутствует раздел DataFormats/GetSet.

Комментарии

Объектные приложения могут попросить OLE создать объект перечисления для структур FORMATETC , чтобы перечислить поддерживаемые форматы данных одним из двух способов. Один из способов — вызвать OleRegEnumFormatEtc. Другой — возврат OLE_S_USEREG в ответ на вызовы обработчиком объектов по умолчанию в IDataObject::EnumFormatEtc. OLE_S_USEREG указывает обработчику по умолчанию вызвать OleRegEnumFormatEtc. Поскольку приложения объектов DLL не могут возвращать OLE_S_USEREG, они должны вызывать OleRegEnumFormatEtc , а не делегировать задание обработчику объектов. С помощью предоставленного указателя IEnumFORMATETC на объект можно вызвать стандартные методы объекта перечисления для выполнения перечисления.

Функция OleRegEnumFormatEtc и ее одноуровневые функции OleRegGetUserType, OleRegGetMiscStatus и OleRegEnumVerbs предоставляют разработчикам пользовательских приложений объектов DLL способ эмуляции поведения обработчика объектов OLE по умолчанию при получении сведений об объектах из реестра. Используя эти функции, вы избегаете значительных трудов, выполняемых при написании собственного, и ошибок, присущих работе непосредственно в реестре. Кроме того, вы получите будущие усовершенствования и оптимизации этих функций без необходимости кодировать их самостоятельно.

Требования

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

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

IDataObject::EnumFormatEtc

IEnumFORMATETC