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