あるクラスのオブジェクトがロードされたときに別のクラスへ自動変換するための 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 |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の ole32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_ole32_gen2.hs |