Trabajar con perfiles de sistema localizados

[La característica asociada a esta página, SDK de Windows Media Format 11, es una característica heredada. Se ha reemplazado por lector de origen y escritor receptor. El lector de origen y el sistema de escritura receptor se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use lector de origen y escritor receptor en lugar del SDK de Windows Media Format 11, 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.

El SDK de Windows Media Format incluye perfiles de sistema con nombres y descripciones en varios idiomas. Los archivos .prx del perfil del sistema localizado se instalan en la carpeta [SDKRoot]\WMSDK\WMFSDK9\LocalizedProfiles. Para acceder a un archivo determinado con los métodos IWMProfileManagerLanguage , debe moverlo al directorio raíz del sistema junto con los demás archivos de perfil del sistema. Para obtener una lista de los archivos de perfil del sistema localizados, consulte Perfiles de sistema localizados.

Puede establecer o recuperar el idioma del perfil del sistema mediante los métodos de la interfaz IWMProfileManagerLanguage . El idioma se especifica como un valor LANGID, que consta de un identificador de idioma principal y un identificador de idioma secundario. En el código siguiente se muestra cómo recuperar el idioma actual. El idioma predeterminado es inglés de EE. UU. (0x409). Para obtener más información sobre el uso de este código, vea Uso de los ejemplos de código.

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;
}

Uso de perfiles del sistema