Hospedar el control de Reproductor multimedia de Windows en una aplicación Windows

[La característica asociada a esta página, Reproductor multimedia de Windows SDK, es una característica heredada. Se ha reemplazado por MediaPlayer. MediaPlayer se ha optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer en lugar de Reproductor multimedia de Windows SDK, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Para usar el control ActiveX de Reproductor multimedia de Windows (incluida la interfaz de usuario) en un programa basado en Windows, debe proporcionar un contenedor de controles ActiveX. ATL proporciona la clase CAxWindow para proporcionar funcionalidad de ventana de host ActiveX.

Para hospedar el control Reproductor multimedia de Windows mediante la clase CAxWindow, siga estos pasos:

  1. Incluya los encabezados siguientes:

    #include "wmp.h"
    #include <atlbase.h>
    #include <atlcom.h>
    #include <atlhost.h>
    #include <atlctl.h>
    
  2. Declare las variables miembro, como se indica a continuación:

    CAxWindow  m_wndView;  // ActiveX host window class.
    CComPtr<IWMPPlayer>  m_spWMPPlayer;  // Smart pointer to IWMPPlayer interface.
    
    
  3. Cuando se crea la ventana de la aplicación, llame a AtlAxWinInit, que es necesario cuando se usa la ventana host activeX de ATL.

    AtlAxWinInit();
    
    
  4. Declare variables locales para los códigos de retorno y para que contengan el puntero a la interfaz de la ventana del host:

    CComPtr<IAxWinHostWindow>  spHost;
    HRESULT  hr;
    
    
  5. Cree la ventana host:

    GetClientRect(&rcClient);
    m_wndView.Create(m_hWnd, rcClient, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN, WS_EX_CLIENTEDGE);
    
    
  6. Recupere el puntero de la interfaz de la ventana de host:

    hr = m_wndView.QueryHost(&spHost);
    
    
  7. Cree el control Reproductor multimedia de Windows en la ventana host mediante el identificador de clase:

    hr = spHost->CreateControl(CComBSTR(_T("{6BF52A52-394A-11d3-B153-00C04F79FAA6}")), m_wndView, 0);
    
    
  8. Recupera el puntero de interfaz IWMPPlayer :

    hr = m_wndView.QueryControl(&m_spWMPPlayer);
    
    

Al escribir su propio código, asegúrese de comprobar si hay errores en cada código de retorno HRESULT .

Para obtener un ejemplo completo que muestra cómo hospedar el control ActiveX de Reproductor multimedia de Windows mediante la clase CAxWindow, vea el ejemplo WMPHost.

Hospedaje del control Reproductor multimedia de Windows 10 Mobile en Windows CE

Microsoft eMbedded Visual C++ 4.0 y el SDK de Pocket PC 2003 o el SDK de Smartphone 2003 deben instalarse al desarrollar aplicaciones basadas en Windows CE que hospedan un control móvil de Reproductor multimedia de Windows 10. Además, a diferencia de ATL para Windows, ATL para Windows CE no admite el modelo de subprocesos de apartamento. Por lo tanto, debe encontrar todas las instancias de subprocesos de apartamento en el proyecto ATL y cambiarlas para usar subprocesos libres.

Muestras

Usar el control Reproductor multimedia de Windows en un programa de C++