Pour modifier les versions du profil système
[La fonctionnalité associée à cette page, le Kit de développement logiciel (SDK) Windows Media Format 11, est une fonctionnalité héritée. Il a été remplacé par le lecteur source et l’enregistreurrécepteur. Le lecteur source et l’enregistreur récepteur ont été optimisés pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise le lecteur source et l’enregistreur récepteur au lieu du Kit de développement logiciel (SDK) Windows Media Format 11, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]
Chaque fois que vous créez un objet gestionnaire de profils, il analyse les profils système. Vous pouvez itérer dans les profils système à l’aide des méthodes IWMProfileManager::GetSystemProfileCount et IWMProfileManager::LoadSystemProfile , mais le gestionnaire de profils compte et répertorie uniquement les profils d’une seule version à la fois. Si vous souhaitez utiliser cette méthode de recherche de profils système, vous devez vous assurer que le gestionnaire de profils traite la version souhaitée. Utilisez les méthodes de l’interface IWMProfileManager2 pour définir et récupérer la version du profil système utilisée par le gestionnaire de profils.
Les versions sont spécifiées à l’aide des membres du type d’énumération WMT_VERSION . Si vous définissez la version du profil système sur WMT_VER_9_0, l’appel réussit, mais le nombre de profils système est égal à zéro. En effet, aucun profil système prédéfini n’utilise les codecs Windows Media Audio et Video 9 Series. Pour plus d’informations sur la mise à jour des profils pour utiliser les codecs les plus récents, consultez Réutilisation des configurations de flux.
Si vous chargez un profil système à l’aide de son identificateur GUID, la version de profil système utilisée par le gestionnaire de profils n’a pas d’importance. Pour plus d’informations sur le chargement des profils système, consultez Pour charger un profil système.
L’exemple de code suivant montre comment définir et récupérer la version du profil système. Cet exemple utilise printf pour la sortie de la console et nécessite l’inclusion de stdio.h. Pour plus d’informations sur l’utilisation de ce code, consultez Utilisation des exemples de code.
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);
}
Rubriques connexes