Функция 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 при успешном выполнении. Ниже перечислены другие возможные значения.
Код возврата | Описание |
---|---|
|
Недостаточно памяти для операции. |
|
ClSID не зарегистрирован для объекта класса. |
|
Произошла ошибка при чтении реестра. |
|
В реестре отсутствует раздел 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 |