Поделиться через


Работа с локализованными системными профилями

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

Пакет SDK для формата Windows Media включает системные профили с именами и описаниями на нескольких языках. Локализованные PRX-файлы системного профиля устанавливаются в папку [SDKRoot]\WMSDK\WMFSDK9\LocalizedProfiles. Чтобы получить доступ к определенному файлу с помощью методов IWMProfileManagerLanguage , необходимо переместить его в корневой каталог системы вместе с другими файлами системного профиля. Список локализованных файлов системного профиля см. в разделе Локализованные системные профили.

Вы можете задать или получить язык системного профиля с помощью методов интерфейса IWMProfileManagerLanguage . Язык указывается как значение LANGID, которое состоит из идентификатора основного языка и идентификатора дополнительного языка. В следующем коде показано, как получить текущий язык. Язык по умолчанию — английский (0x409) США. Дополнительные сведения об использовании этого кода см. в разделе Использование примеров кода.

HRESULT GetCurrentSystemProfileLanguage(IMWProfilManager* pProfileMgr)
{
    HRESULT hr = S_OK;

    IWMProfileManagerLanguage* pProfileMgrLang = NULL;

    // Get the profile manager language interface.
    hr = pProfileMgr->QueryInterface(IID_IWMProfileManagerLanguage,
                                     (void **) &pProfileMgrLang);
    if(FAILED(hr))
    {
        printf("Couldn't get IWMProfileManagerLanguage.\n");
        SAFE_RELEASE(pProfileMgrLang);
        return hr;
    }

    // Retrieve the current language (as a LANGID value)
    WORD wLangID = 0;
    hr = pProfileMgrLang->GetUserLanguageID(&wLangID);
    if(FAILED(hr))
    {
        printf("Could not get the current language.\n");
        SAFE_RELEASE(pProfileMgrLang);
        return hr;
    }

    printf("The current language ID is 0x%X\n", wLangID);

    SAFE_RELEASE(pProfileMgrLang);
    return S_OK;
}

Использование системных профилей