| Previous | Next |
| STG_E_MEDIUMFULL | STG_E_ABNORMALAPIEXIT |
STG_E_PROPSETMISMATCHED
Non-simple value written to a simple property set
STG_E_PROPSETMISMATCHED is HRESULT 2147680496 (0x800300F0) from winerror.h. The documented description is “Illegal write of non-simple property to simple property set.” The result belongs to IPropertyStorage operations on OLE property sets. This HRESULT is most useful when tied to the method and lifecycle phase where the caller attempts to place a complex property representation into a property set created for simple values.
This result means that the caller attempts to place a complex property representation into a property set created for simple values. Preserve the original HRESULT and the state that made this condition true; the severity bit alone does not determine how the caller should handle it.
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 must distinguish caller, runtime, provider, and backing resource while testing whether the caller attempts to place a complex property representation into a property set created for simple values.
Typical causes and interpretation
The immediate contract boundary is specific: the caller attempts to place a complex property representation into a property set created for simple values. Common cause branches include the following:
- A vector, stream, storage, or unsupported VARIANT type is supplied.
- The property set format and caller schema disagree.
- Migration code copies values without checking the destination property-set mode.
Confirm the cause branch that explains why the caller attempts to place a complex property representation into a property set created for simple values by using call arguments, object state, metadata, device information, or provider traces.
Correct handling and recovery
The primary recovery is to convert the value to a supported simple representation or create a nonsimple property set with the intended schema. The failure report should capture the relevant state during IPropertyStorage operations on OLE property sets so it is clear why the caller attempts to place a complex property representation into a property set created for simple values.
The owner of it must define idempotency, cancellation, attempt limits, and reconciliation for the failed IPropertyStorage operations on OLE property sets.
Practical scenario
A document indexer copies a VT_STREAM custom property into a simple SummaryInformation property set and must instead store a string reference.
Difference from related HRESULTs
STG_E_INVALIDPARAMETER rejects malformed property arguments; it specifically identifies a simple-versus-nonsimple property-set mismatch.
Developer and administrator guidance
Broad permission or compatibility changes are inappropriate unless evidence for the caller attempts to place a complex property representation into a property set created for simple values points to that layer.
References
Looking for a different code? Search another status or error code.