Função OleRegEnumFormatEtc (ole2.h)

Cria um objeto de enumeração que pode ser usado para enumerar formatos de dados que um servidor de objetos OLE registrou no registro do sistema. Um aplicativo de objeto ou manipulador de objetos chama essa função quando deve enumerar esses formatos. Os desenvolvedores de aplicativos de objeto DLL personalizados usam essa função para emular o comportamento do manipulador de objetos padrão.

Sintaxe

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

Parâmetros

[in] clsid

CLSID da classe cujos formatos estão sendo solicitados.

[in] dwDirection

Indica se os formatos que podem ser passados para IDataObject::GetData ou formatos que podem ser passados para IDataObject::SetData. Os valores possíveis são obtidos do DATADIR de enumeração.

[out] ppenum

Endereço da variável de ponteiro IEnumFORMATETC que recebe o ponteiro de interface para o objeto de enumeração.

Retornar valor

Essa função retorna S_OK com êxito. Outros valores possíveis incluem o seguinte.

Código de retorno Descrição
E_OUTOFMEMORY
Memória insuficiente para a operação.
REGDB_E_CLASSNOTREG
Não há CLSID registrado para o objeto de classe.
REGDB_E_READREGDB
Erro ao ler o registro.
OLE_E_REGDB_KEY
A chave DataFormats/GetSet está ausente do registro.

Comentários

Os aplicativos de objeto podem pedir ao OLE para criar um objeto de enumeração para estruturas FORMATETC para enumerar formatos de dados com suporte de uma das duas maneiras. Uma maneira é chamar OleRegEnumFormatEtc. A outra é retornar OLE_S_USEREG em resposta a chamadas do manipulador de objetos padrão para IDataObject::EnumFormatEtc. OLE_S_USEREG instrui o manipulador padrão a chamar OleRegEnumFormatEtc. Como os aplicativos de objeto DLL não podem retornar OLE_S_USEREG, eles devem chamar OleRegEnumFormatEtc em vez de delegar o trabalho para o manipulador de objetos. Com o ponteiro IEnumFORMATETC fornecido para o objeto , você pode chamar os métodos de objeto de enumeração padrão para fazer a enumeração.

A função OleRegEnumFormatEtc e suas funções irmãos, OleRegGetUserType, OleRegGetMiscStatus e OleRegEnumVerbs, fornecem uma maneira para os desenvolvedores de aplicativos de objeto DLL personalizados emularem o comportamento do manipulador de objetos padrão do OLE na obtenção de informações sobre objetos do registro. Ao usar essas funções, você evita o trabalho considerável de escrever o seu próprio e as armadilhas inerentes ao trabalho diretamente no Registro. Além disso, você obtém aprimoramentos futuros e otimizações dessas funções sem precisar codifique-as por conta própria.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho ole2.h
Biblioteca Ole32.lib
DLL Ole32.dll

Confira também

IDataObject::EnumFormatEtc

Ienumformatetc