OleSetAutoConvert 関数 (ole2.h)
そのクラスのオブジェクトが読み込まれるときに、別のクラスへの自動変換用の CLSID を指定します。
構文
HRESULT OleSetAutoConvert(
[in] REFCLSID clsidOld,
[in] REFCLSID clsidNew
);
パラメーター
[in] clsidOld
変換するオブジェクト クラスの CLSID。
[in] clsidNew
clsidOld を置き換えるオブジェクト クラス の CLSID。 この新しい CLSID は、 clsidOld のレジストリ内の既存の自動変換情報を置き換えます。 この値がCLSID_NULL場合、 clsidOld の既存の自動変換情報はレジストリから削除されます。
戻り値
この関数は、標準の戻り値E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED、および次の値を返すことができます。
リターン コード | 説明 |
---|---|
|
オブジェクトが正常にタグ付けされました。 |
|
CLSID がレジストリに正しく登録されていません。 |
|
レジストリからの読み取り中にエラーが発生しました。 |
|
レジストリへの書き込み中にエラーが発生しました。 |
|
レジストリからキーを読み取ることができません。 |
注釈
OleSetAutoConvert はシステム レジストリに移動し、clsidOld で指定された CLSID の下にある AutoConvertTo サブキーを検索し、clsidNew に設定します。 この関数は、 clsidNew の適切なレジストリ エントリが現在存在するかどうかを検証しません。 これらのエントリは、CLSID キーのサブキーとしてレジストリに表示されます。
オブジェクト変換は、オブジェクトのデータが新しい CLSID に永続的に関連付けられていることを意味します。 自動変換は、通常、新しいバージョンのオブジェクト アプリケーションのセットアップ プログラムで指定されるため、古いバージョンで作成されたオブジェクトを新しいバージョンに自動的に更新できます。
たとえば、以前のバージョンのスプレッドシート アプリケーションで作成されたスプレッドシートを新しいバージョンに変換することが必要な場合があります。 以前のバージョンのスプレッドシート オブジェクトの CLSID は、新しいバージョンとは異なります。 自動的に更新する以前のバージョンごとに、セットアップ プログラムで OleSetAutoConvert を呼び出し、古いバージョンの CLSID と新しいバージョンの CLSID を指定します。 その後、ユーザーが以前のバージョンからオブジェクトを読み込むたびに、自動的に更新されます。 オブジェクトの自動変換をサポートするには、変換をサポートするサーバーを準備して、以前のバージョンのサーバーの形式のオブジェクトを手動で変換する必要があります。 自動変換は、この手動変換のサポートに内部的に依存します。
目的の AutoConvertTo 値を 設定する前に、セットアップ プログラムで OleSetAutoConvert を呼び出して、新しいクラスの既存の変換を削除する必要があります。そのためには、新しいクラスを clsidOld パラメーターとして指定し、 clsidNew パラメーターを CLSID_NULL に設定します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | ole2.h |
Library | Ole32.lib |
[DLL] | Ole32.dll |