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 パラメーターの 1 つが無効でした。
STG_E_REVERTED ストレージ オブジェクトは、トランザクション ツリーの上にある元に戻す操作によって無効になっています。
STG_E_TOOMANYOPENFILES 開いているファイルが多すぎるため、要素は削除されませんでした。

注釈

DestroyElement メソッドは、現在のストレージ オブジェクトからサブストレージまたはストリームを削除します。 DestroyElement の呼び出しが成功すると、親ストレージから破棄された要素の開いているインスタンスはすべて無効になります。

ストレージ オブジェクトがトランザクション モードで開かれた場合、要素を破棄するには、 DestroyElement の呼び出しの後に IStorage::Commit の呼び出しが続く必要があります。

メモDestroyElement メソッドは、ディレクトリ ストリームを圧縮しません。 削除されたディレクトリ エントリのみが無効としてマークされます。 新しいストレージまたはストリームを作成するときに、無効なエントリが再利用されます。

コンテンツ ストリームの場合、削除されたストリーム セクターは無料としてマークされます。 ファイルの末尾に空きセクターがある場合は、ドキュメント ファイルを圧縮する必要があります。 ドキュメント ファイルを圧縮するには、ルート ストレージ オブジェクトで IStorage::CopyTo を呼び出し、新しいストレージ オブジェクトにコピーします。

 

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー objidl.h
Library Uuid.lib
[DLL] Ole32.dll

こちらもご覧ください

IStorage - 複合ファイルの実装