Funzione OleRegEnumFormatEtc (ole2.h)

Crea un oggetto di enumerazione che può essere utilizzato per enumerare i formati di dati registrati da un server oggetti OLE nel Registro di sistema. Un'applicazione oggetto o un gestore oggetti chiama questa funzione quando deve enumerare tali formati. Gli sviluppatori di applicazioni oggetti DLL personalizzate usano questa funzione per emulare il comportamento del gestore oggetti predefinito.

Sintassi

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

Parametri

[in] clsid

CLSID della classe i cui formati vengono richiesti.

[in] dwDirection

Indica se enumerare i formati che possono essere passati a IDataObject::GetData o formati che possono essere passati a IDataObject::SetData. I valori possibili vengono ricavati dall'enumerazione DATADIR.

[out] ppenum

Indirizzo della variabile puntatore IEnumFORMATETC che riceve il puntatore dell'interfaccia all'oggetto di enumerazione.

Valore restituito

Questa funzione restituisce S_OK in caso di esito positivo. Altri valori possibili includono quanto segue.

Codice restituito Descrizione
E_OUTOFMEMORY
Memoria insufficiente per l'operazione.
REGDB_E_CLASSNOTREG
Nessun CLSID registrato per l'oggetto classe.
REGDB_E_READREGDB
Errore durante la lettura del Registro di sistema.
OLE_E_REGDB_KEY
La chiave DataFormats/GetSet non è presente nel Registro di sistema.

Commenti

Le applicazioni oggetto possono chiedere a OLE di creare un oggetto di enumerazione per le strutture FORMATETC per enumerare i formati di dati supportati in uno dei due modi. Un modo consiste nel chiamare OleRegEnumFormatEtc. L'altro consiste nel restituire OLE_S_USEREG in risposta alle chiamate dal gestore dell'oggetto predefinito a IDataObject::EnumFormatEtc. OLE_S_USEREG indica al gestore predefinito di chiamare OleRegEnumFormatEtc. Poiché le applicazioni oggetto DLL non possono restituire OLE_S_USEREG, devono chiamare OleRegEnumFormatEtc anziché delegare il processo al gestore oggetti. Con il puntatore IEnumFORMATETC fornito all'oggetto, è possibile chiamare i metodi dell'oggetto di enumerazione standard per eseguire l'enumerazione .

La funzione OleRegEnumFormatEtc e le relative funzioni di pari livello, OleRegGetUserType, OleRegGetMiscStatus e OleRegEnumVerbs consentono agli sviluppatori di applicazioni di oggetti DLL personalizzate di emulare il comportamento del gestore oggetti predefinito di OLE per ottenere informazioni sugli oggetti dal Registro di sistema. Usando queste funzioni, si evitano le notevoli operazioni di scrittura personalizzate e le insidie intrinseche nel lavorare direttamente nel Registro di sistema. Inoltre, si ottengono miglioramenti e ottimizzazioni futuri di queste funzioni senza dover codificarli manualmente.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione ole2.h
Libreria Ole32.lib
DLL Ole32.dll

Vedi anche

IDataObject::EnumFormatEtc

IEnumFORMATETC