Salvataggio dei profili
[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stato sostituito dal lettore di origine e dallo scrittore sink . Source Reader e Sink Writer sono stati ottimizzati per Windows 10 e Windows 11. Microsoft raccomanda vivamente l'uso di Source Reader e Sink Writer al posto di 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.
È possibile utilizzare il metodo IWMProfileManager::SaveProfile per salvare il contenuto di un oggetto profilo in una stringa formattata con XML. Nessun metodo viene fornito per archiviare la stringa del profilo in un file; è possibile usare le routine di I/O del file desiderate.
Nota
Non modificare mai la stringa del profilo scritta in un file. Tutte le modifiche da apportare a un profilo devono essere apportate a livello di codice. La modifica dei valori in un file con estensione prx può causare risultati imprevedibili.
L'esempio seguente è una funzione per salvare un profilo in un file usando l'I/O di file di tipo C standard. Per compilare un'applicazione che usa questo esempio, è necessario includere stdio.h nel progetto.
HRESULT ProfileToFile(IWMProfileManager* pProfileMgr,
IWMProfile* pProfile)
{
HRESULT hr = S_OK;
FILE* pFile;
WCHAR* pwszProfileString = NULL;
DWORD cchProfileString = 0;
// Save the profile to a string.
// First, retrieve the size of the string required.
hr = pProfileMgr->SaveProfile(pProfile,
NULL,
&cchProfileString);
if(FAILED(hr))
{
printf("Could not get the profile string size.");
return hr;
}
// Allocate memory to hold the string.
pwszProfileString = new WCHAR[cchProfileString];
if(pwszProfileString == NULL)
{
printf("Could not allocate memory for the profile string.");
return E_OUTOFMEMORY;
}
// Retrieve the string.
hr = pProfileMgr->SaveProfile(pProfile,
pwszProfileString,
&cchProfileString);
if(FAILED(hr))
{
printf("Could not save the profile string.");
return hr;
}
// Create the output file.
pFile = fopen("MyProfile.prx", "w");
// Write the profile string to the file.
fprintf(pFile, "%S\n", pwszProfileString);
// Close the file.
fclose(pFile);
delete[] pwszProfileString;
return S_OK;
}
Argomenti correlati