Метод IMFAttributes::GetString (mfobjects.h)
Извлекает строку расширенных символов, связанную с ключом.
Синтаксис
HRESULT GetString(
[in] REFGUID guidKey,
[out] LPWSTR pwszValue,
[in] UINT32 cchBufSize,
[out] UINT32 *pcchLength
);
Параметры
[in] guidKey
GUID, определяющий, какое значение следует извлечь. Тип атрибута должен быть MF_ATTRIBUTE_STRING.
[out] pwszValue
Указатель на массив расширенных символов, выделенный вызывающим объектом. Массив должен быть достаточно большим, чтобы вместить строку, включая завершающий символ NULL . Если ключ найден и значение является строковым типом, метод копирует строку в этот буфер. Чтобы найти длину строки, вызовите IMFAttributes::GetStringLength.
[in] cchBufSize
Размер массива pwszValue в символах. Это значение включает завершающий символ NULL.
[out] pcchLength
Получает количество символов в строке, за исключением завершающего символа NULL . Этот параметр может принимать значение NULL.
Возвращаемое значение
Метод возвращает HRESULT. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.
Код возврата | Описание |
---|---|
|
Метод выполнен успешно. |
|
Длина строки слишком велика, чтобы поместиться в значение UINT32 . |
|
Буфер недостаточно велик для хранения строки. |
|
Указанный ключ не найден. |
|
Значение атрибута не является строкой. |
Комментарии
Можно также использовать метод IMFAttributes::GetAllocatedString , который выделяет буфер для хранения строки.
Этот интерфейс доступен на следующих платформах, если установлены распространяемые компоненты пакета SDK формата 11 для Windows Media:
- Windows XP с пакетом обновления 2 (SP2) и более поздних версий.
- Windows XP Media Center Edition 2005 с установленным KB900325 (Windows XP Media Center Edition 2005) и KB925766 (накопительный пакет обновления для Windows XP Media Center Edition за октябрь 2006 г.).
Примеры
В следующем примере кода показано, как получить атрибут, значение которого является строкой.
HRESULT AttributeGetString(IMFAttributes *pAttributes)
{
HRESULT hr = S_OK;
UINT32 cchLength = 0;
WCHAR *pString = NULL;
hr = pAttributes->GetStringLength(MY_ATTRIBUTE, &cchLength);
if (SUCCEEDED(hr))
{
pString = new WCHAR[cchLength + 1];
if (pString == NULL)
{
hr = E_OUTOFMEMORY;
}
}
if (SUCCEEDED(hr))
{
hr = pAttributes->GetString(
MY_ATTRIBUTE, pString, cchLength + 1, &cchLength);
}
if (pString)
{
delete [] pString;
}
return hr;
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | mfobjects.h (включая Mfidl.h) |
Библиотека | Mfuuid.lib |