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を返します。 その他の使用可能な値は次のとおりです。

リターン コード 説明
E_OUTOFMEMORY
操作のメモリが不足しています。
REGDB_E_CLASSNOTREG
クラス オブジェクトに CLSID が登録されていません。
REGDB_E_READREGDB
レジストリの読み取りにエラーが発生しました。
OLE_E_REGDB_KEY
DataFormats/GetSet キーがレジストリに存在しません。

注釈

オブジェクト アプリケーションは、サポートされているデータ形式を 2 つの方法のいずれかで列挙するために 、FORMATETC 構造体の列挙オブジェクトを作成するように OLE に依頼できます。 1 つの方法は、 OleRegEnumFormatEtc を呼び出す方法です。 もう 1 つは、 IDataObject::EnumFormatEtc への既定のオブジェクト ハンドラーによる呼び出しに応答してOLE_S_USEREGを返す方法です。 OLE_S_USEREGは、 OleRegEnumFormatEtc を呼び出すように既定のハンドラーに指示します。 DLL オブジェクト アプリケーションはOLE_S_USEREGを返すことができないため、ジョブをオブジェクト ハンドラーに委任するのではなく 、OleRegEnumFormatEtc を呼び出す必要があります。 オブジェクトへの指定された IEnumFORMATETC ポインターを使用すると、標準の列挙オブジェクト メソッドを呼び出して列挙を実行できます。

OleRegEnumFormatEtc 関数とその兄弟関数 OleRegGetUserTypeOleRegGetMiscStatusおよび OleRegEnumVerbs は、カスタム DLL オブジェクト アプリケーションの開発者が、レジストリからオブジェクトに関する情報を取得する際の OLE の既定のオブジェクト ハンドラーの動作をエミュレートする方法を提供します。 これらの関数を使用すると、独自の関数を記述するかなりの作業と、レジストリでの直接の作業に固有の落とし穴を回避できます。 さらに、これらの関数を自分でコーディングしなくても、これらの関数の将来の機能強化と最適化が行われます。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ole2.h
Library Ole32.lib
[DLL] Ole32.dll

こちらもご覧ください

IDataObject::EnumFormatEtc

IEnumFORMATETC