OleSetAutoConvert

あるクラスのオブジェクトがロードされたときに別のクラスへ自動変換するための CLSID を指定する。

OleSetAutoConvert clsidOld, clsidNew

clsidOld : [var] 変換されるオブジェクトクラスの CLSID。
clsidNew : [var] clsidOld を置き換えるオブジェクトクラスの CLSID。この新しい CLSID は、clsidOld に対する既存の自動変換情報をレジストリ内で置き換える。この値が CLSID_NULL の場合、clsidOld に対する既存の自動変換情報はレジストリから削除される。

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

解説

あるクラスのオブジェクトがロードされたときに別のクラスへ自動変換するための CLSID を指定する。

[戻り値]
この関数は標準の戻り値 E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED
に加えて、以下の値を返すことがある。
(以下省略)

[備考]
OleSetAutoConvert はシステムレジストリに行き、clsidOld で指定された CLSID の下にある
AutoConvertTo サブキーを見つけ、それを clsidNew に設定する。この関数は clsidNew
に適切なレジストリエントリが現在存在するかどうかを検証しない。これらのエントリはレジストリ内では CLSID
キーのサブキーとして表示される。オブジェクト変換とは、オブジェクトのデータが新しい CLSID
と恒久的に関連付けられることを意味する。自動変換は通常、オブジェクトアプリケーションの新バージョンのセットアッププログラムで指定され、古いバージョンで作成されたオブジェクトを新バージョンに自動的に更新できるようにする。

たとえば、以前のバージョンのスプレッドシートアプリケーションで作成されたスプレッドシートを新バージョンに変換する必要があるかもしれない。以前のバージョンのスプレッドシートオブジェクトは新バージョンとは異なる
CLSID を持つ。自動的に更新したい以前のバージョンごとに、セットアッププログラムで OleSetAutoConvert
を呼び出し、古いバージョンと新バージョンの CLSID
を指定する。すると、ユーザが以前のバージョンからオブジェクトをロードするたびに自動的に更新される。オブジェクトの自動変換をサポートするには、変換をサポートするサーバが、サーバの以前のバージョンの形式を持つオブジェクトを手動で変換する準備ができていなければならない。自動変換は内部的にこの手動変換サポートに依存している。目的の
AutoConvertTo 値を設定する前に、セットアッププログラムは新クラスを clsidOld
パラメータとして指定し、clsidNew パラメータを CLSID_NULL に設定して OleSetAutoConvert
を呼び出し、新クラスに対する既存の変換を削除すべきである。

情報

プラグイン / モジュール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