OleDoAutoConvert

そのオブジェクトクラスの自動変換がレジストリに設定されている場合、オブジェクトを新しいクラスに自動的に変換する。

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
URLhttps://github.com/inovia/IronHSP
備考Win32 API の ole32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_ole32_gen2.hs