public CPlayer(IntPtr hVideo, IntPtr hEvent) { TRACE(("CPlayer::CPlayer")); Debug.Assert(hVideo != IntPtr.Zero); Debug.Assert(hEvent != IntPtr.Zero); m_pSession = null; m_pSource = null; m_pVideoDisplay = null; m_hwndVideo = hVideo; m_hwndEvent = hEvent; m_state = PlayerState.Ready; m_hCloseEvent = new AutoResetEvent(false); HResult hr = MFExtern.MFStartup(0x10070, MFStartup.Full); MFError.ThrowExceptionForHR(hr); // If Windows 8 or greater if (System.Environment.OSVersion.Version.Major > 6 || (System.Environment.OSVersion.Version.Major == 6 && System.Environment.OSVersion.Version.Minor > 1)) { // Use the IcyScheme provider for http: Guid g = new Guid("64D5ED5F-DB86-418E-84B9-BA922FDD9338"); Type t = Type.GetTypeFromCLSID(g); object o = Activator.CreateInstance(t); hr = MFExternAlt.MFRegisterLocalSchemeHandler("http:", o as IMFActivateImpl); MFError.ThrowExceptionForHR(hr); } }
private void GenEventQueue() { if (EventQueue == null) { MFExternAlt.MFCreateEventQueue(out EventQueue); } }