Сохранение профилей
[Функция, связанная с этой страницей, Windows Media Format 11 SDK, является устаревшей функцией. Его заменили Чтец источников и Записывающий в приемник. Source Reader и Sink Writer оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде средство чтения и записывающее средство, вместо пакета Windows Media Format 11 SDK, когда это возможно. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]
Вы можете использовать метод IWMProfileManager::SaveProfile, чтобы сохранить содержимое объекта профиля в строке в формате XML. Методы не предоставляются для хранения строки профиля в файл; Вы можете использовать выбранные процедуры ввода-вывода файлов.
Заметка
Никогда не следует изменять строку профиля, записанную в файл. Любые изменения, внесенные в профиль, должны быть сделаны программным способом. Изменение значений в PRX-файле может привести к непредсказуемым результатам.
В следующем примере показана функция сохранения профиля в файл с использованием стандартного ввода-вывода в стиле C. Чтобы скомпилировать приложение, использующее этот пример, необходимо включить stdio.h в проект.
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;
}
Связанные разделы