共用方式為


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。 其他可能的值包括下列專案。

傳回碼 Description
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 函式及其同層級函式 OleRegGetUserTypeOleRegGetMiscStatusOleRegEnumVerbs 提供一種方式,讓自定義 DLL 物件應用程式的開發人員模擬 OLE 預設物件處理程式從登錄取得對象的相關信息。 藉由使用這些函式,您可以避免撰寫自己的大量工作,以及直接在登錄中運作時固有的陷阱。 此外,您不需要自行撰寫程序代碼,即可取得這些函式的未來增強功能和優化。

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 ole2.h
程式庫 Ole32.lib
Dll Ole32.dll

另請參閱

IDataObject::EnumFormatEtc

IEnumFORMATETC