Compartilhar via


Hospedando o controle Reprodutor Multimídia do Windows em um aplicativo do Windows

[O recurso associado a esta página, Reprodutor Multimídia do Windows SDK, é um recurso herdado. Foi substituído pelo MediaPlayer. O MediaPlayer foi otimizado para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use o MediaPlayer em vez de Reprodutor Multimídia do Windows SDK, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Para usar o Reprodutor Multimídia do Windows controle ActiveX (incluindo a interface do usuário) em um programa baseado no Windows, você deve fornecer um contêiner de controle ActiveX. A ATL fornece a classe CAxWindow para fornecer a funcionalidade da janela do host ActiveX.

Para hospedar o controle Reprodutor Multimídia do Windows usando a classe CAxWindow, siga estas etapas:

  1. Inclua os seguintes cabeçalhos:

    #include "wmp.h"
    #include <atlbase.h>
    #include <atlcom.h>
    #include <atlhost.h>
    #include <atlctl.h>
    
  2. Declare variáveis de membro, da seguinte maneira:

    CAxWindow  m_wndView;  // ActiveX host window class.
    CComPtr<IWMPPlayer>  m_spWMPPlayer;  // Smart pointer to IWMPPlayer interface.
    
    
  3. Quando a janela do aplicativo for criada, chame AtlAxWinInit, o que é necessário ao usar a janela do host ActiveX da ATL.

    AtlAxWinInit();
    
    
  4. Declare variáveis locais para códigos de retorno e para conter o ponteiro para a interface da janela do host:

    CComPtr<IAxWinHostWindow>  spHost;
    HRESULT  hr;
    
    
  5. Crie a janela do host:

    GetClientRect(&rcClient);
    m_wndView.Create(m_hWnd, rcClient, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN, WS_EX_CLIENTEDGE);
    
    
  6. Recupere o ponteiro da interface da janela do host:

    hr = m_wndView.QueryHost(&spHost);
    
    
  7. Crie o controle Reprodutor Multimídia do Windows na janela do host usando a ID da classe:

    hr = spHost->CreateControl(CComBSTR(_T("{6BF52A52-394A-11d3-B153-00C04F79FAA6}")), m_wndView, 0);
    
    
  8. Recupere o ponteiro da interface IWMPPlayer :

    hr = m_wndView.QueryControl(&m_spWMPPlayer);
    
    

Ao escrever seu próprio código, certifique-se de marcar cada código de retorno HRESULT para erros.

Para obter um exemplo completo que ilustra como hospedar o Reprodutor Multimídia do Windows controle ActiveX usando a classe CAxWindow, consulte o exemplo WMPHost.

Hospedando o controle Reprodutor Multimídia do Windows 10 Mobile em Windows CE

O Microsoft eMbedded Visual C++ 4.0 e o SDK do Pocket PC 2003 ou o SDK do Smartphone 2003 devem ser instalados ao desenvolver aplicativos baseados em Windows CE que hospedam um controle Reprodutor Multimídia do Windows 10 Mobile. Além disso, ao contrário da ATL para Windows, a ATL para Windows CE não dá suporte ao modelo de threading apartment. Portanto, você deve encontrar todas as instâncias de threading de apartment em seu projeto da ATL e alterá-las para usar threading gratuito.

Exemplos

Usando o controle Reprodutor Multimídia do Windows em um programa C++