What does HRESULT 0x8899002A (D2DERR_NO_SUBPROPERTIES) mean?

 
Previous Next
D2DERR_INVALID_PROPERTY D2DERR_PRINT_JOB_CLOSED

D2DERR_NO_SUBPROPERTIES

The scope of D2DERR_NO_SUBPROPERTIES is Direct2D effect registration and property metadata. The caller requested a nested Direct2D property where no such subproperty exists. Keep 0x8899002A beside the returning method because a wrapper can replace this distinction with a generic subsystem message.

Start with the returning API

Effect registration is scoped to a factory and CLSID, while effect properties form a metadata hierarchy of names, indices, types, and optional subproperties. An unregistered CLSID, absent property, and absent child property occur at different lookup stages and should not share one generic fallback.

Property path traversal after a valid parent property.

Limits of this code

INVALID_PROPERTY rejects the main property; NO_SUBPROPERTIES is narrower and applies after reaching a parent that has no requested child. Do not respond with a universal render-target recreation loop unless the returned status specifically documents device-loss recovery; graph, property, numeric, lifetime, and print-state errors require correcting their contract.

Evidence to preserve

  • Full property path and parent index
  • Parent property type and metadata
  • Effect CLSID and registration XML
  • Lookup method and returned index

Reproduce without destructive cleanup

Track successful registration on the same factory, enumerate properties from the exact effect instance, resolve the parent before a child, and use the canonical CLSID and property path in diagnostics.

  1. Resolve the parent property first.
  2. Enumerate its subproperties before lookup.
  3. Use the direct property if it is scalar.
  4. Test custom registration metadata for nested fields.

Technical references


Looking for a different code? Search another status or error code.