IStorage::D estroyElement 方法 (objidl.h)
DestroyElement 方法會從這個儲存物件中移除指定的儲存或數據流。
語法
HRESULT DestroyElement(
[in] const OLECHAR *pwcsName
);
參數
[in] pwcsName
寬字元 Null 終止 Unicode 字串的指標,其中包含要移除之記憶體或數據流的名稱。
傳回值
這個方法可以傳回下列其中一個值。
傳回碼 | 描述 |
---|---|
S_OK | 已成功移除專案。 |
E_PENDING | 僅限異步記憶體:目前無法使用部分或所有元素數據。 |
STG_E_ACCESSDENIED | 呼叫端沒有移除項目的許可權。 |
STG_E_FILENOTFOUND | 具有指定名稱的專案不存在。 |
STG_E_INSUFFICIENTMEMORY | 因為記憶體不足,所以未移除元素。 |
STG_E_INVALIDNAME | pwcsName 的值無效。 |
STG_E_INVALIDPOINTER | 為專案指定的指標無效。 |
STG_E_INVALIDPARAMETER | 其中一個參數無效。 |
STG_E_REVERTED | 記憶體物件已因交易樹狀結構中上方的還原作業而失效。 |
STG_E_TOOMANYOPENFILES | 專案未移除,因為有太多開啟的檔案。 |
備註
DestroyElement 方法會從目前的儲存物件中刪除子記憶體或數據流。 成功呼叫 DestroyElement 之後,來自父記憶體之已終結專案的任何開啟實例都會變成無效。
如果記憶體物件是以交易模式開啟,則專案的解構需要呼叫 DestroyElement 之後再呼叫 IStorage::Commit。
注意DestroyElement 方法不會壓縮目錄數據流。 它只會將已刪除的目錄項目標示為無效。 建立新的記憶體或數據流時,會重複使用無效的專案。
針對內容數據流,已刪除的數據流扇區會標示為免費。 如果可用扇區位於檔尾,檔案檔案應該會壓縮。 若要壓縮檔檔案,請在根記憶體物件上呼叫 IStorage::CopyTo ,並複製到新的記憶體物件。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | objidl.h |
程式庫 | Uuid.lib |
Dll | Ole32.dll |