そのオブジェクトクラスの自動変換がレジストリに設定されている場合、オブジェクトを新しいクラスに自動的に変換する。
OleDoAutoConvert pStg, pClsidNew
pStg : [var] 変換対象のストレージオブジェクト上の IStorage インターフェイスへのポインタ。 pClsidNew : [var] 変換中のオブジェクトの新しい CLSID へのポインタ。自動変換が行われなかった場合、元のクラスと同じになることがある。
(プラグイン / モジュール : ole32.dll)
そのオブジェクトクラスの自動変換がレジストリに設定されている場合、オブジェクトを新しいクラスに自動的に変換する。 [戻り値] この関数は標準の戻り値 E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED に加えて、以下の値を返すことがある。 (以下省略) [備考] OleDoAutoConvert は、OleSetAutoConvert 関数によりレジストリで自動変換が事前に指定されている場合、オブジェクトを自動的に変換する。オブジェクトの変換とは、オブジェクトが新しい CLSID と恒久的に関連付けられることを意味する。自動変換は通常、オブジェクトアプリケーションの新バージョンのセットアッププログラムによって指定され、古いバージョンで作成されたオブジェクトを自動的に更新できるようにする。OleDoAutoConvert を呼び出すとき、ストレージオブジェクトはアンロード状態になっている必要がある。オブジェクト変換をサポートするコンテナアプリケーションは、オブジェクトをロードするたびに OleDoAutoConvert を呼び出す必要がある。コンテナが OleLoad ヘルパー関数を使用する場合は、OleLoad が内部で呼び出すため明示的に OleDoAutoConvert を呼び出す必要はない。OleDoAutoConvert はまず OleGetAutoConvert 関数を呼び出して変換が必要かどうかを判定し、不要な場合は S_OK を返す。オブジェクトに変換が必要な場合、OleDoAutoConvert は新しいオブジェクトアプリケーションを起動してストレージオブジェクトを変更・変換する。新しいオブジェクトアプリケーションは既存のデータ形式を読み取り、新しいネイティブ形式でオブジェクトを保存する。自動変換対象のオブジェクトが OLE 1 オブジェクトの場合、ItemName 文字列は "\1Ole10ItemName" というストリームに格納される。このストリームが存在しない場合、オブジェクトの項目名は NULL となる。
| プラグイン / モジュール | 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 |