Share via


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、および次の値を返すことができます。

リターン コード 説明
S_OK
オブジェクトが正常にタグ付けされました。
REGDB_E_CLASSNOTREG
CLSID がレジストリに正しく登録されていません。
REGDB_E_READREGDB
レジストリからの読み取り中にエラーが発生しました。
REGDB_E_WRITEREGDB
レジストリへの書き込み中にエラーが発生しました。
REGDB_E_KEYMISSING
レジストリからキーを読み取ることができません。

注釈

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

こちらもご覧ください

AutoConvertTo

OleDoAutoConvert

OleGetAutoConvert