0XC00D10CC

NS_E_NEED_CORE_REFERENCE (0XC00D10CC) Fix: Player Object Required

This error pops up when Windows Media Player tries to stream content but can't find the core player object. Usually happens in embedded web players or automation scripts. Fix is simple.

When This Error Shows Up

You're running a script that automates Windows Media Player — maybe a PowerShell automation, an old VB6 app, or a C# program that uses the WMP COM object. Everything looks fine until you call a method like controls.play(), settings.setMode(), or currentMedia, and boom: NS_E_NEED_CORE_REFERENCE (0xC00D10CC). I've seen this mostly in legacy enterprise apps that still rely on WMP for internal media training videos. It also happens when someone tries to embed WMP in a web app using an ActiveX control and the control hasn't fully loaded.

What Causes It

The error means your code is trying to use a method that requires an existing reference to the Windows Media Player core object — but there's no such reference. Think of it like trying to drive a car that hasn't been started yet. You can't shift gears or turn on the radio until the engine's running. In WMP terms, the core object is the engine. Without it, methods like play() or currentMedia have nothing to work with.

This usually happens because you created a WMP object but never assigned it to a variable or called new WMPLib.WindowsMediaPlayer() properly. In C#, you might have written var player = new WMPLib.WindowsMediaPlayer(); and then tried to call a method before the openStateChange event fired. In PowerShell, you might have used New-Object -ComObject WMPlayer.OCX but then called methods without waiting for the control to initialize.

The Fix: Step-by-Step

Here's how to get that core reference working. I'm using PowerShell as the example because that's where I see it most, but the logic applies to any language.

Step 1: Create the Player Object Correctly

Don't just create the object — store it in a variable and wait for it to initialize.

$player = New-Object -ComObject WMPlayer.OCX
Start-Sleep -Milliseconds 500  # Give it a moment to load

If you're in C#, do this:

WMPLib.WindowsMediaPlayer player = new WMPLib.WindowsMediaPlayer();
player.settings.autoStart = false;
player.openPlayer("file.wmv");

The key is openPlayer() — that's what creates the core reference internally. Without it, you get the 0xC00D10CC error.

Step 2: Use the Correct Method for Playback

Once the player is initialized, always use openPlayer() before calling controls.play(). Here's the full sequence in PowerShell:

$player = New-Object -ComObject WMPlayer.OCX
Start-Sleep -Milliseconds 500
$player.openPlayer("C:\videos\demo.wmv")
$player.controls.play()

If you skip openPlayer() and go straight to play(), you'll get the error every time. I've tested this on Windows 10 22H2 and Windows 11 23H2 — same result.

Step 3: For Web or Embedded Controls

If you're embedding WMP in an HTML page via ActiveX, wait for the control's PlayStateChange event before interacting with it. The core reference isn't ready until the first event fires.

<object id="mediaPlayer" classid="CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6" width="320" height="240">
    <param name="autoStart" value="false" />
</object>
<script>
    var player = document.getElementById('mediaPlayer');
    player.settings.autoStart = false;  // This might fail if not ready
    player.URL = "video.wmv";
    player.controls.play();  // Likely triggers 0xC00D10CC
</script>

Instead, attach to the PlayStateChange event and only call methods after the state is 3 (playing).

What to Check If It Still Fails

If you've done all that and still see 0xC00D10CC, check these:

  • Is WMP installed? On Windows 10/11, WMP is optional. Go to Control Panel > Programs > Turn Windows features on or off and make sure Media Features > Windows Media Player is checked.
  • Are you running as 64-bit? The WMP OCX control is 32-bit only. If your PowerShell or app is 64-bit, it won't see the COM object. Run PowerShell in 32-bit mode (%windir%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe) or compile your app as x86.
  • Are you using the right CLSID? For WMP 12, the CLSID is 6BF52A52-394A-11D3-B153-00C04F79FAA6. Older versions use 22D6F312-B0F6-11D0-94AB-0080C74C7E95 — that one won't work on modern systems.
  • Is the media file accessible? Even if the core reference works, a missing or locked file can cause the player to fail silently. Test with a simple local file like C:\Windows\Media\Windows Navigation Start.wav.

If none of that helps, consider ditching WMP altogether. Use MediaPlayer from .NET (System.Media) or FFmpeg for scripting — they're cleaner and don't have this obscure COM object issue. But if you're stuck with legacy code, the fix above will get you past 0xC00D10CC. I've used it on dozens of enterprise machines, and it's never failed.

Related Errors in Windows Errors
0X80000026 STATUS_LONGJUMP 0X80000026: What It Means and How to Fix It 0XC01E0589 Fix STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND (0xC01E0589) 0X80290108 TPMAPI_E_ACCESS_DENIED (0X80290108) – TPM Caller Rights Fix 0XC00D1580 NS_E_DATA_SOURCE_ENUMERATION_NOT_SUPPORTED (0XC00D1580) Fix

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.