What does HRESULT 0xC00D108C (NS_E_WMPCORE_ERRORSINKNOTREGISTERED) mean?

 
Previous Next
NS_E_WMPCORE_PLAYLIST_EMPTY_OR_SINGLE_MEDIA NS_E_WMPCORE_ERRORMANAGERNOTAVAILABLE

NS_E_WMPCORE_ERRORSINKNOTREGISTERED

The exact condition behind the dialog

0xC00D108C maps to NS_E_WMPCORE_ERRORSINKNOTREGISTERED. Its actionable interpretation is the calling object has no registered sink for asynchronous WMP errors within the Windows Media Player ActiveX control and COM object lifetime; the producing mechanism is the embedded-control layer that activates the Player, optionally remotes it to full mode, marshals event interfaces between COM apartments and exposes error state to the host.

An additional test is to record sink registration, object generation and subscription lifetime; that evidence is more useful than reinstalling the Player or changing several unrelated settings at once.

How this layer works

The playback core error sink not registered workflow must be separated from a generic WMP failure: a local ActiveX control, a remoted control and the full-mode Player can share playback services while still having different window, docking and lifetime states. It also matters that cross-apartment callbacks require valid marshaled interfaces; a working playback engine does not prove that the host still owns a usable event or error interface.

Representative case for playback core error sink not registered: Playback begins on a new core object while the sink remains attached to the previous one. The example isolates only the producing component.

Evidence to capture before retry

Preserve the first occurrence before retry or fallback changes the evidence. Capture one consistent object generation:

FieldWhat to record
Decisive checkRecord sink registration, object generation and subscription lifetime
Artifact identityShutdown order for host window, control, playback engine and plug-ins for this reproduction
Runtime stateHost process and control version, uiMode and remote/local service type for this reproduction
Owning objectCOM apartment type and thread that created the control for this reproduction
Lower-level resultIWMPRemoteMediaServices result and isRemote/docked state for this reproduction
CorrelationGIT cookie or marshaled event-interface generation for this reproduction

Log paths, hashes, IDs, offsets, and HRESULTs. Exclude secrets and unrelated content from logs.

Why the symbolic name matters

ResultDifferent boundary
NS_E_WMPCORE_ERRORMANAGERNOTAVAILABLEThe playback core has no internal error-manager service available for the requesting object
NS_E_WMPCORE_FAILEDTOGETMARSHALLEDEVENTHANDLERINTERFACEThe core could not retrieve a usable event-handler interface for the calling COM apartment
NS_E_WMPCORE_COCREATEFAILEDFORGITOBJECTCOM could not create the process-wide Global Interface Table object used for cross-apartment access

If this result is followed by a broader “cannot play,” “cannot load,” or “operation failed” result, preserve the earlier event. A later wrapper error may be secondary.

A focused diagnostic sequence

  1. Start with the symbolic value this result; do not diagnose the failure from the final dialog alone.
  2. Record the bytes or object state that produced this condition before automatic recovery mutates it.
  3. Exclude a stale callback or superseded object generation as the source of this event.
  4. Use this deciding observation for this condition: record sink registration, object generation and subscription lifetime.
  5. Apply the smallest supported remedy for this condition: register the sink before starting asynchronous playback or playlist work.

Correct the producing condition

The targeted correction for this condition is to register the sink before starting asynchronous playback or playlist work. Keep the original failing input until the same operation succeeds after one controlled change.

  • Avoid reusing an interface pointer directly on another COM apartment; it can destroy the artifact or state needed to explain this result.
  • Avoid destroying the host window before recording control state and the first callback failure; that can replace the original HRESULT with a secondary failure from another layer.

Regression check

After correction, create a fresh Player, control, parser or playlist object and rerun the smallest reproducer for this HRESULT. Verify the resulting resource, list membership, saved file, library object or play state.

What to search for in traces

Use this result, 0xC00D108C and the symbolic phrase in traces. Correlate search keys with API and object.

Technical references


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