| Previous | Next |
| STG_E_DOCFILETOOLARGE | STG_E_INCOMPLETE |
STG_E_NOTSIMPLEFORMAT
Compound file was not created in simple storage format
STG_E_NOTSIMPLEFORMAT is HRESULT 2147680530 (0x80030112) from winerror.h. AllStat describes it as “The compound file was not created with the STGM_SIMPLE flag” The result belongs to an operation restricted to storage created with STGM_SIMPLE. A reliable this result diagnosis preserves the raw value and reconstructs the state that made this true: the target compound file lacks the STGM_SIMPLE creation property required by the method.
The decisive meaning of this result is that the target compound file lacks the STGM_SIMPLE creation property required by the method. The severity bit does not decide handling; the controlling fact is that the target compound file lacks the STGM_SIMPLE creation property required by the method. The important boundary is not merely failure but which object and state transition established: the target compound file lacks the STGM_SIMPLE creation property required by the method.
Where the result appears
- This result can surface in a IStorage, IStream, ILockBytes, property storage, compound-file parsing, or persistence code.
- map the failure to one concrete operation among StgOpenStorage, StgCreateStorageEx, IStorage, IStream, IPropertyStorage, STATSTG, and the selected STGM mode.
- Preserve storage path or identity, STGM mode, stream or storage name, transaction generation, file hash, and backing provider before releasing or replacing the object that returned this result.
An incident record for this HRESULT must distinguish caller, runtime, provider, and backing resource while testing whether the target compound file lacks the STGM_SIMPLE creation property required by the method.
Typical causes and interpretation boundary
The immediate contract boundary is specific: the target compound file lacks the STGM_SIMPLE creation property required by the method. Common cause branches include the following:
- The file was created as ordinary transacted storage.
- A caller assumes format mode from the file extension.
- Migration removed the original creation metadata.
Confirm the cause branch that explains why the target compound file lacks the STGM_SIMPLE creation property required by the method by using call arguments, object state, metadata, device information, or provider traces.
Correct handling and recovery
The primary recovery is to use APIs valid for ordinary compound storage or recreate a verified copy in simple format when its limitations are acceptable. The result failure report should expose enough an operation restricted to storage created with STGM_SIMPLE state to understand why the target compound file lacks the STGM_SIMPLE creation property required by the method without a production debugger.
When it follows cancellation or replacement, create a new generation before applying the recovery: use APIs valid for ordinary compound storage or recreate a verified copy in simple format when its limitations are acceptable. Reconcile persistent, remote, device, or ownership state before repeating it.
Practical scenario
A component calls a simple-storage-only optimization on a normal compound document and falls back to standard stream enumeration. Record the decisive state for this HRESULT and verify recovery on a fresh object or request generation.
Difference from related HRESULTs
STG_E_PROPSETMISMATCHED concerns property-set value complexity; it concerns the creation mode of the compound file Tests and telemetry should preserve that boundary for this HRESULT.
Developer and administrator guidance
Developers handling it should make object lifetime and state transitions explicit, preserve the native HRESULT, and keep cleanup paths safe when initialization or output is partial. Exercise direct and transacted modes, read-only and writable paths, cancellation, malformed input, and cleanup after partial output.
A runbook should preserve the original artifact and logs before the proposed recovery—use APIs valid for ordinary compound storage or recreate a verified copy in simple format when its limitations are acceptable—changes evidence. Repair for this HRESULT should target only the evidence-backed component, provider, document, device, or configuration.
References
- Microsoft: COM error codes for STG and RPC
- Microsoft: Structured Storage
- Microsoft: IStorage
- Microsoft: IStream
Looking for a different code? Search another status or error code.
