Exemple #1
0
    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);
        }
    }
Exemple #2
0
 private void GenEventQueue()
 {
     if (EventQueue == null)
     {
         MFExternAlt.MFCreateEventQueue(out EventQueue);
     }
 }