Función OleRegEnumFormatEtc (ole2.h)

Crea un objeto de enumeración que se puede usar para enumerar los formatos de datos que un servidor de objetos OLE ha registrado en el registro del sistema. Una aplicación de objeto o un controlador de objetos llama a esta función cuando debe enumerar esos formatos. Los desarrolladores de aplicaciones de objetos DLL personalizadas usan esta función para emular el comportamiento del controlador de objetos predeterminado.

Sintaxis

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

Parámetros

[in] clsid

CLSID de la clase cuyos formatos se solicitan.

[in] dwDirection

Indica si se van a enumerar los formatos que se pueden pasar a IDataObject::GetData o los formatos que se pueden pasar a IDataObject::SetData. Los valores posibles se toman de la enumeración DATADIR.

[out] ppenum

Dirección de la variable de puntero IEnumFORMATETC que recibe el puntero de interfaz al objeto de enumeración.

Valor devuelto

Esta función devuelve S_OK si se ejecuta correctamente. Otros valores posibles incluyen lo siguiente.

Código devuelto Descripción
E_OUTOFMEMORY
Memoria insuficiente para la operación.
REGDB_E_CLASSNOTREG
No hay ningún CLSID registrado para el objeto de clase.
REGDB_E_READREGDB
Error al leer el registro.
OLE_E_REGDB_KEY
Falta la clave DataFormats/GetSet en el Registro.

Comentarios

Las aplicaciones de objeto pueden pedir a OLE que cree un objeto de enumeración para estructuras FORMATETC para enumerar los formatos de datos admitidos de una de dos maneras. Una manera es llamar a OleRegEnumFormatEtc. El otro es devolver OLE_S_USEREG en respuesta a las llamadas del controlador de objetos predeterminado a IDataObject::EnumFormatEtc. OLE_S_USEREG indica al controlador predeterminado que llame a OleRegEnumFormatEtc. Dado que las aplicaciones de objetos DLL no pueden devolver OLE_S_USEREG, deben llamar a OleRegEnumFormatEtc en lugar de delegar el trabajo en el controlador de objetos. Con el puntero IEnumFORMATETC proporcionado al objeto, puede llamar a los métodos de objeto de enumeración estándar para realizar la enumeración.

La función OleRegEnumFormatEtc y sus funciones del mismo nivel, OleRegGetUserType, OleRegGetMiscStatus y OleRegEnumVerbs, proporcionan una manera para que los desarrolladores de aplicaciones de objetos DLL personalizadas emulen el comportamiento del controlador de objetos predeterminado de OLE para obtener información sobre los objetos del Registro. Al usar estas funciones, se evita el trabajo considerable de escritura propio y las dificultades inherentes a trabajar directamente en el registro. Además, obtendrá futuras mejoras y optimizaciones de estas funciones sin tener que codificarlas usted mismo.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado ole2.h
Library Ole32.lib
Archivo DLL Ole32.dll

Consulte también

IDataObject::EnumFormatEtc

IEnumFORMATETC