IPersistFile::Save 方法 (objidl.h)
將對象的複本儲存至指定的檔案。
語法
HRESULT Save(
[in] LPCOLESTR pszFileName,
[in] BOOL fRemember
);
參數
[in] pszFileName
應該儲存物件之檔案的絕對路徑。 如果 pszFileName 為 NULL,則對象應該會在有數據時,將其數據儲存至目前的檔案。
[in] fRemember
指出 pszFileName 參數是否要當做目前的工作檔案使用。 如果 為TRUE,pszFileName 會變成目前的檔案,而且對象應該在儲存之後清除其中途旗標。 如果 為 FALSE,則此儲存作業為 [另存 新檔... ] 作業。 在此情況下,目前的檔案不會變更,而且對象不應該清除其中途旗標。 如果 pszFileName 為 NULL,實作應該忽略 fRemember 旗標。
傳回值
如果成功儲存物件,則會S_OK傳回值。 否則,它會S_FALSE。 這個方法也可以傳回各種記憶體錯誤。
備註
您可以呼叫這個方法,以下列三種方式之一將物件儲存至指定的檔案:
實作者必須偵測呼叫端所要求的儲存作業類型。 如果 pszFileName 參數為 NULL,則會要求 Save 。 如果 pszFileName 參數不是 NULL,請使用 fRemember 參數的值來區別另存新 檔 和 另存新檔。
在 [另存 新 檔] 或 [另存新檔] 作業中, IPersistFile::Save 會在儲存後清除內部中途旗標,並將 IAdviseSink::OnSave 通知傳送至任何諮詢連線 (另請參閱 IOleAdviseHolder::SendOnSave) 。 此外,在這些作業中,物件會處於 NoScribble 模式,直到它收到 IPersistFile::SaveCompleted 呼叫為止。 在 NoScribble 模式中,物件不得寫入檔案。
在另存 新 檔案例中,實作也應該將 IAdviseSink::OnRename 通知傳送至任何諮詢連線, (另請參閱 IOleAdviseHolder::SendOnRename) 。
在 [ 另存新檔] 案例中,實作不會在儲存之後清除內部中途旗標。
來電者附註
OLE 不會呼叫 IPersistFile::Save。 一般而言,除非應用程式將物件直接儲存至檔案,否則不會呼叫它,這通常會保留給使用者。規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | objidl.h |