Método IMFAttributes::GetString (mfobjects.h)
Recupera uma cadeia de caracteres largos associada a uma chave.
Sintaxe
HRESULT GetString(
[in] REFGUID guidKey,
[out] LPWSTR pwszValue,
[in] UINT32 cchBufSize,
[out] UINT32 *pcchLength
);
Parâmetros
[in] guidKey
GUID que identifica qual valor recuperar. O tipo de atributo deve ser MF_ATTRIBUTE_STRING.
[out] pwszValue
Ponteiro para uma matriz de caracteres largos alocada pelo chamador. A matriz deve ser grande o suficiente para manter a cadeia de caracteres, incluindo o caractere NULL de terminação. Se a chave for encontrada e o valor for um tipo de cadeia de caracteres, o método copiará a cadeia de caracteres para esse buffer. Para localizar o comprimento da cadeia de caracteres, chame IMFAttributes::GetStringLength.
[in] cchBufSize
O tamanho da matriz pwszValue , em caracteres. Esse valor inclui o caractere NULL de terminação.
[out] pcchLength
Recebe o número de caracteres na cadeia de caracteres, excluindo o caractere NULL de terminação. Este parâmetro pode ser NULL.
Retornar valor
O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.
Código de retorno | Descrição |
---|---|
|
O método foi bem-sucedido. |
|
O comprimento da cadeia de caracteres é muito grande para caber em um valor UINT32 . |
|
O buffer não é grande o suficiente para manter a cadeia de caracteres. |
|
A chave especificada não foi encontrada. |
|
O valor do atributo não é uma cadeia de caracteres. |
Comentários
Você também pode usar o método IMFAttributes::GetAllocatedString , que aloca o buffer para manter a cadeia de caracteres.
Essa interface estará disponível nas seguintes plataformas se os componentes redistribuíveis do SDK do Windows Media Format 11 estiverem instalados:
- Windows XP com Service Pack 2 (SP2) e posterior.
- Windows XP Media Center Edition 2005 com KB900325 (Windows XP Media Center Edition 2005) e KB925766 (pacote cumulativo de atualizações de outubro de 2006 para Windows XP Media Center Edition) instalados.
Exemplos
O exemplo de código a seguir mostra como obter um atributo cujo valor é uma cadeia de caracteres.
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;
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | mfobjects.h (include Mfidl.h) |
Biblioteca | Mfuuid.lib |