 <p>I managed to fix this. There was two problems I found.</p> <ul> <li>Media Foundation was not initialized</li> </ul> <p><code>MFStartup(MF_VERSION);</code> needs to be called before Media Foundation can be used. I added this code just before creating the media engine.</p> <ul> <li>Referencing a pointer. </li> </ul> <p>Line <code>m_pickFileTask.then([&amp;player](StorageFile^ fileHandle)</code> should be <code>m_pickFileTask.then([player](StorageFile^ fileHandle)</code>. <code>This</code> is already a pointer to the current class, and <code>&amp;</code> provides the address of variable, so I was actually passing the pointer's pointer.</p>