OleSave 函式 (ole2.h)
將以交易模式開啟的物件儲存至指定的儲存物件。
語法
HRESULT OleSave(
[in] LPPERSISTSTORAGE pPS,
[in] LPSTORAGE pStg,
[in] BOOL fSameAsLoad
);
參數
[in] pPS
要儲存之物件上的 IPersistStorage 介面指標。
[in] pStg
目的地儲存物件上 IStorage 介面的指標,要儲存 pPS 中所指出的物件。
[in] fSameAsLoad
TRUE 表示 pStg 與載入或建立物件的儲存物件相同; FALSE 表示已從不同的儲存物件載入或建立 pStg 。
傳回值
此函式會在成功時傳回S_OK。 其他可能的值包括下列專案。
傳回碼 | Description |
---|---|
|
因為磁碟空間不足,所以無法儲存物件。
此函式也可以傳回 IPersistStorage::Save 方法傳回的任何錯誤值。 |
備註
OleSave 協助程式函式會處理在交易模式中開啟物件的常見情況,然後儲存到使用 OLE 提供的複合檔案實作的指定儲存物件中。 交易模式表示對象的變更會經過緩衝處理,直到呼叫 IStorage::Commit 或 IStorage::Revert 為止。 呼叫端可以直接呼叫 IPersistStorage 和 IStorage 介面來處理其他情況。
OleSave 會執行下列動作:
- 呼叫 IPersist::GetClassID 方法以取得物件的 CLSID。
- 使用 WriteClassStg 函式將 CLSID 寫入記憶體物件。
- 呼叫 IPersistStorage::Save 方法來儲存物件。
- 如果儲存時沒有任何錯誤;會呼叫 IStorage::Commit 方法來認可變更。
注意 靜態物件會儲存到名為 CONTENTS 的數據流中。 靜態元檔物件會以「可置放元檔格式」儲存,而靜態 DIB 數據會以「DIB 檔格式」儲存。 這些格式會定義為元檔和 DIB 的 OLE 標準。 使用 IStream 介面或透過 IDataObject::GetDataHere () 傳輸的所有資料都必須採用下列格式。 此外,預設檔案格式為元檔或 DIB 的所有物件都必須使用這些標準格式將數據寫入 CONTENTS 數據流。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | ole2.h |
程式庫 | Ole32.lib |
Dll | Ole32.dll |
API 集合 | ext-ms-win-com-ole32-l1-1-3 (Windows 10 10.0.10240 版) |