Per modificare le versioni del profilo di sistema
[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita dal lettore di origine e dal writer sink. Lettore di origine e writer sink sono stati ottimizzati per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi lettore di origine e writer sink anziché Windows Media Format 11 SDK, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
Ogni volta che si crea un oggetto profile manager, analizza i profili di sistema. È possibile scorrere i profili di sistema usando i metodi IWMProfileManager::GetSystemProfileCount e IWMProfileManager::LoadSystemProfile , ma il gestore dei profili conta ed elenca solo i profili di una singola versione alla volta. Se si vuole usare questo metodo per trovare i profili di sistema, è necessario assicurarsi che il gestore profili gestisca la versione desiderata. Usare i metodi dell'interfaccia IWMProfileManager2 per impostare e recuperare la versione del profilo di sistema usata da Gestione profili.
Le versioni vengono specificate utilizzando i membri del tipo di enumerazione WMT_VERSION. Se si imposta la versione del profilo di sistema su WMT_VER_9_0, la chiamata avrà esito positivo, ma il conteggio dei profili di sistema sarà zero. Ciò è dovuto al fatto che nessun profilo di sistema predefinito utilizza i codec windows Media Audio e Video Serie 9. Per altre informazioni sull'aggiornamento dei profili per l'uso dei codec più recenti, vedere Riutilizzo delle configurazioni di flusso.
Se si carica un profilo di sistema in base al relativo identificatore GUID, non è importante quale versione del profilo di sistema viene usata da Gestione profili. Per altre informazioni sul caricamento dei profili di sistema, vedere Per caricare un profilo di sistema.
Il codice di esempio seguente illustra come impostare e recuperare la versione del profilo di sistema. Questo esempio usa printf per l'output della console e richiede l'inserimento di stdio.h. Per altre informazioni sull'uso di questo codice, vedere Uso degli esempi di codice.
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);
}
Argomenti correlati