What does HRESULT 0x80020003 (DISP_E_MEMBERNOTFOUND) mean?

 
Previous Next
DISP_E_UNKNOWNINTERFACE DISP_E_PARAMNOTFOUND

DISP_E_MEMBERNOTFOUND

The requested Automation member is not available for this dispatch call

DISP_E_MEMBERNOTFOUND is returned by the COM Automation IDispatch path when the object has no member matching the supplied DISPID for the requested invocation form. The failure occurs at member dispatch; it is not a general explanation of how COM or late binding works.

What to verify

  • Record the object class/interface, DISPID, wFlags passed to IDispatch::Invoke, type-library version, and whether the client is performing a method call, property get, or property put.
  • If the client cached a DISPID, resolve the member again with GetIDsOfNames after changing object implementation or version. A numeric ID is meaningful only in the dispatch contract that assigned it.
  • Check that the member supports the requested invocation form. A property can exist while a particular get/put form is unavailable.

Distinguish nearby Automation errors

DISP_E_UNKNOWNNAME belongs to name-to-DISPID resolution. DISP_E_BADPARAMCOUNT and type-mismatch results mean the member was found but the supplied arguments do not satisfy its call contract. Keeping these boundaries separate prevents changing arguments when the real problem is a stale or wrong member identifier.

Recovery

Use a member and invocation form supported by the actual object version. Do not hard-code a DISPID obtained from another class or incompatible type library.

References


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