SetConvertStg 関数 (ole2.h)

SetConvertStg 関数は、ストレージ オブジェクト内の変換ビットを設定して、オブジェクトが開かれたときに新しいクラスに変換されることを示します。 この設定は、 GetConvertStg 関数の呼び出しで取得できます。

構文

HRESULT SetConvertStg(
  LPSTORAGE pStg,
  BOOL      fConvert
);

パラメーター

pStg

変換ビットを設定するストレージ オブジェクトへの IStorage ポインター。

fConvert

TRUE の場合は、オブジェクトを開いたときに変換されることを示すオブジェクトの変換ビットを設定します。 FALSE の場合、変換ビットがクリアされます。

戻り値

ストレージおよびストリーム アクセス エラーの可能性については、 IStorage::CreateStream、 IStorage::OpenStream、 ISequentialStream::Read、 および ISequentialStream::Write メソッドを参照してください。

注釈

SetConvertStg 関数は、包含オブジェクト内の変換ビットの状態を決定します。 これは、オブジェクトをあるクラスから別のクラスに変換するプロセスで、コンテナー アプリケーションとサーバーの両方によって呼び出されます。 オブジェクトを変換することをユーザーが [ 変換先 ] ダイアログ ( コンテナーが OleUIConvert 関数の呼び出しで生成) で指定した場合、コンテナーは次の手順を実行する必要があります。

  1. オブジェクトが現在読み込まれている場合はアンロードします。
  2. WriteClassStg を呼び出して、新しい CLSID をオブジェクト ストレージに書き込みます。
  3. WriteFmtUserTypeStg を呼び出して、新しいユーザータイプ名と既存のメイン形式をストレージに書き込みます。
  4. fConvert パラメーターを TRUE に設定して SetConvertStg を呼び出して、次回読み込まれた時点でオブジェクトが新しいクラスへの変換用にタグ付けされたことを示します。
  5. オブジェクトが読み込まれる直前に、 OleDoAutoConvert を呼び出して、内部的に呼び出す OleLoad を呼び出さない限り、必要なオブジェクト変換を処理します。
オブジェクトがストレージ オブジェクトから初期化され、サーバーが変換操作の対象である場合、オブジェクト サーバーは次の操作を行う必要があります。
  1. GetConvertStg 関数を呼び出して、変換ビットの値を取得します。
  2. ビットが設定されている場合、サーバーは新しい CLSID に関連付けられている形式に従ってオブジェクトからデータを読み取ります。
  3. オブジェクト自体の保存を求められたら、オブジェクトの通常のネイティブ形式とユーザー型を使用して WriteFmtUserTypeStg 関数を呼び出す必要があります。
  4. 次に、オブジェクトの変換ビットをリセットするには、fConvert パラメーターを FALSE に設定して SetConvertStg を呼び出す必要があります。

要件

要件 値
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ole2.h
Library Ole32.lib
[DLL] Ole32.dll

こちらもご覧ください

GetConvertStg