IPersistFile::Save メソッド (objidl.h)

オブジェクトのコピーを指定したファイルに保存します。

構文

HRESULT Save(
  [in] LPCOLESTR pszFileName,
  [in] BOOL      fRemember
);

パラメーター

[in] pszFileName

オブジェクトを保存するファイルの絶対パス。 pszFileNameNULL の場合、オブジェクトはそのデータを現在のファイルに保存する必要があります (存在する場合)。

[in] fRemember

pszFileName パラメーターを現在の作業ファイルとして使用するかどうかを示します。 TRUE の場合、pszFileName は現在のファイルになり、オブジェクトは保存後にダーティ フラグをクリアする必要があります。 FALSE の場合、この保存操作はコピーを ... 操作として保存します。 この場合、現在のファイルは変更されず、オブジェクトはダーティ フラグをクリアしないでください。 pszFileNameNULL の場合、実装では fRemember フラグを無視する必要があります。

戻り値

オブジェクトが正常に保存された場合、戻り値はS_OK。 それ以外の場合はS_FALSE。 このメソッドは、さまざまなストレージ エラーを返すこともできます。

注釈

このメソッドは、次の 3 つの方法のいずれかで、指定したファイルにオブジェクトを保存するために呼び出すことができます。

実装者は、呼び出し元が要求している保存操作の種類を検出する必要があります。 pszFileName パラメーターが NULL の場合は、Save が要求されています。 pszFileName パラメーターが NULL でない場合は、fRemember パラメーターの値を使用して、[名前を付けて保存] と [名前を付けて保存] を区別します。

保存または名前を付けて保存操作では、IPersistFile::Save は保存後に内部ダーティ フラグをクリアし、任意のアドバイザリ接続に IAdviseSink::OnSave 通知を送信します (IOleAdviseHolder::SendOnSave も参照)。 また、これらの操作では、オブジェクトは IPersistFile::SaveCompleted 呼び出しを受け取るまで NoScribble モードになります。 NoScribble モードでは、オブジェクトはファイルに書き込む必要はありません。

名前を付けて保存のシナリオでは、実装は、任意のアドバイザリ接続に IAdviseSink::OnRename 通知も送信する必要があります (IOleAdviseHolder::SendOnRename も参照)。

[名前を付けてコピーを保存] シナリオでは、保存後に内部ダーティ フラグが実装によってクリアされません。

発信者へのメモ

OLE は IPersistFile::Save を呼び出しません。 通常、アプリケーションは、オブジェクトをファイルに直接保存しない限り呼び出しません。通常はエンド ユーザーに任されています。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー objidl.h

こちらもご覧ください

IPersistFile