Использование элемента управления Медиаплеер Windows в консольном приложении

[Функция, связанная с этой страницей, Медиаплеер Windows sdk, является устаревшей функцией. Он был заменен MediaPlayer. MediaPlayer оптимизирован для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует по возможности использовать MediaPlayer вместо пакета SDK для Медиаплеер Windows. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

Экземпляр COM-объекта Медиаплеер Windows можно создать напрямую с помощью CoCreateInstance. При этом объект Player не отображает пользовательский интерфейс. Однако объект по-прежнему полезен для задач, не требующих пользовательского интерфейса, таких как работа с библиотекой, воспроизведение цифровых звуковых файлов или доступ к свойствам проигрывателя.

В следующем примере кода показана простая консольная программа, которая отображает версию Медиаплеер Windows в окне сообщения. В примере кода используется ATL для использования интеллектуальных указателей и строкового класса CComBSTR .

#include "atlbase.h"
#include "atlwin.h"
#include "wmp.h"

int _tmain(int argc, _TCHAR* argv[])
{
    CoInitialize(NULL);

    HRESULT hr = S_OK;
    CComBSTR bstrVersionInfo; // Contains the version string.
    CComPtr<IWMPPlayer> spPlayer;  // Smart pointer to IWMPPlayer interface.

    hr = spPlayer.CoCreateInstance( __uuidof(WindowsMediaPlayer), 0, CLSCTX_INPROC_SERVER );

    if(SUCCEEDED(hr))
    {
        hr = spPlayer->get_versionInfo(&bstrVersionInfo);
    }

    if(SUCCEEDED(hr))
    {
        // Show the version in a message box.
        COLE2T pStr(bstrVersionInfo);
        MessageBox( NULL, (LPCSTR)pStr, _T("Windows Media Player Version"), MB_OK );
    }

    // Clean up.
    spPlayer.Release();
    CoUninitialize();

    return 0;
}

Использование элемента управления Медиаплеер Windows в программе C++