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 方法,该方法分配缓冲区以保存字符串。
如果安装了 Windows Media Format 11 SDK 可再发行组件,则此接口在以下平台上可用:
- Windows XP with Service Pack 2 (SP2) 及更高版本。
- Windows XP Media Center Edition 2005 KB900325 (windows XP Media Center Edition 2005) 和KB925766 (2006 年 10 月 Windows XP Media Center Edition 更新汇总) 安装。
示例
下面的代码示例演示如何获取值为字符串的属性。
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 |
标头 | mfobjects.h (包括 Mfidl.h) |
Library | Mfuuid.lib |