Para cambiar las versiones del perfil del sistema
[La característica asociada a esta página, WINDOWS Media Format 11 SDK, es una característica heredada. Se ha reemplazado por lector de origen y escritor receptor. Lector de origen y escritor receptor se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use lector fuente 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.
Cada vez que se crea un objeto de administrador de perfiles, analiza los perfiles del sistema. Puede recorrer en iteración los perfiles del sistema mediante los métodos IWMProfileManager::GetSystemProfileCount e IWMProfileManager::LoadSystemProfile , pero el administrador de perfiles contará y enumerará solo los perfiles de una sola versión a la vez. Si desea usar este método de búsqueda de perfiles del sistema, debe asegurarse de que el administrador de perfiles se ocupa de la versión que desee. Use los métodos de la interfaz IWMProfileManager2 para establecer y recuperar la versión del perfil del sistema utilizada por el administrador de perfiles.
Las versiones se especifican mediante los miembros del tipo de enumeración WMT_VERSION . Si establece la versión del perfil del sistema en WMT_VER_9_0, la llamada se realizará correctamente, pero el número de perfiles del sistema será cero. Esto se debe a que ningún perfil de sistema predefinido usa los códecs audio y vídeo de la serie 9 de Windows Media. Para obtener más información sobre cómo actualizar perfiles para usar los códecs más recientes, consulte Reutilización de configuraciones de flujo.
Si carga un perfil del sistema por su identificador GUID, no importa la versión del perfil del sistema que use el administrador de perfiles. Para obtener más información sobre cómo cargar perfiles del sistema, vea Para cargar un perfil de sistema.
En el código de ejemplo siguiente se muestra cómo establecer y recuperar la versión del perfil del sistema. En este ejemplo se usa printf para la salida de la consola y se requiere que se incluya stdio.h. Para obtener más información sobre el uso de este código, vea Usar los ejemplos de código.
int main(void)
{
HRESULT hr = S_OK;
IWMProfileManager* pProfileMgr = NULL;
IWMProfileManager2* pProfileMgr2 = NULL;
WMT_VERSION profileVersion;
// Initialize COM.
hr = CoInitialize(NULL);
if(FAILED(hr))
{
printf("Could not initialize COM.");
return 0;
}
// Create a profile manager object.
hr = WMCreateProfileManager(&pProfileMgr);
if(FAILED(hr))
{
printf("Could not create a profile manager object.");
return 0;
}
// Get the IWMProfileManager2 interface.
hr = pProfileMgr->QueryInterface(IID_IWMProfileManager2,
(void**) &pProfileMgr2);
if(FAILED(hr))
{
printf("Could not get the IWMProfileManager2 interface.");
SAFE_RELEASE(pProfileMgr);
return 0;
}
// Release the old interface.
SAFE_RELEASE(pProfileMgr);
// Get the current system profile version.
hr = pProfileMgr2->GetSystemProfileVersion(&profileVersion);
if(FAILED(hr))
{
printf("Could not retrieve profile version.");
printf("\nError code: 0x%X\n", hr);
SAFE_RELEASE(pProfileMgr2);
return 0;
}
// Display the current version.
printf("Current version: ");
switch(profileVersion)
{
case WMT_VER_4_0:
printf("WMT_VER_4_0\n");
break;
case WMT_VER_7_0:
printf("WMT_VER_7_0\n");
break;
case WMT_VER_8_0:
printf("WMT_VER_8_0\n");
break;
case WMT_VER_9_0:
printf("WMT_VER_9_0\n");
break;
}
// Set the system profile version to 8.
profileVersion = WMT_VER_8_0;
hr = pProfileMgr2->SetSystemProfileVersion(profileVersion);
if(FAILED(hr))
{
printf("Could not change profile version.");
printf("\nError code: 0x%X\n", hr);
SAFE_RELEASE(pProfileMgr2);
return 0;
}
// Print verification.
printf("Successfully set version to ");
switch(profileVersion)
{
case WMT_VER_4_0:
printf("WMT_VER_4_0\n");
break;
case WMT_VER_7_0:
printf("WMT_VER_7_0\n");
break;
case WMT_VER_8_0:
printf("WMT_VER_8_0\n");
break;
case WMT_VER_9_0:
printf("WMT_VER_9_0\n");
break;
}
// Clean up.
SAFE_RELEASE(pProfileMgr2);
}
Temas relacionados