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 |