OleRegEnumFormatEtc

OLE オブジェクトサーバがシステムレジストリに登録したデータ形式を列挙するために使用できる列挙オブジェクトを作成する。

OleRegEnumFormatEtc clsid, dwDirection, ppenum

clsid : [var] 形式が要求されるクラスの CLSID。
dwDirection : [int] IDataObject::GetData に渡せる形式を列挙するか、IDataObject::SetData に渡せる形式を列挙するかを示す。指定可能な値は DATADIR 列挙から取得する。
ppenum : [var] 列挙オブジェクトへのインターフェイスポインタを受け取る IEnumFORMATETC ポインタ変数のアドレス。

(プラグイン / モジュール : ole32.dll)

解説

OLE オブジェクトサーバがシステムレジストリに登録したデータ形式を列挙するために使用できる列挙オブジェクトを作成する。

[戻り値]
関数が成功した場合は S_OK を返す。その他に返される値は以下のとおり。
(以下省略)

[備考]
オブジェクトアプリケーションは、サポートされるデータ形式を列挙する FORMATETC 構造体の列挙オブジェクトを OLE
に作成させるために、2 つの方法のいずれかを使用できる。1 つは OleRegEnumFormatEtc を呼び出す方法である。もう 1
つは、既定のオブジェクトハンドラから IDataObject::EnumFormatEtc が呼び出されたときに OLE_S_USEREG
を返す方法である。OLE_S_USEREG は既定のハンドラに OleRegEnumFormatEtc を呼び出すよう指示する。DLL
オブジェクトアプリケーションは OLE_S_USEREG を返せないため、オブジェクトハンドラに作業を委譲するのではなく
OleRegEnumFormatEtc を呼び出さなければならない。提供されたオブジェクトへの IEnumFORMATETC
ポインタを使用して、標準の列挙オブジェクトメソッドを呼び出して列挙を行うことができる。
OleRegEnumFormatEtc 関数とその兄弟関数である
OleRegGetUserTypeOleRegGetMiscStatusOleRegEnumVerbs は、カスタム DLL
オブジェクトアプリケーションの開発者が、レジストリからオブジェクトに関する情報を取得する際の OLE
の既定のオブジェクトハンドラの動作をエミュレートする方法を提供する。これらの関数を使用することで、独自に書く相当な労力と、レジストリで直接作業することの落とし穴を避けることができる。さらに、これらの関数の今後の拡張や最適化を、自分でコーディングすることなく得られる。

情報

プラグイン / モジュールole32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の ole32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_ole32_gen2.hs