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
S_OK
O método foi bem-sucedido.
E_OUTOFMEMORY
O comprimento da cadeia de caracteres é muito grande para caber em um valor UINT32 .
E_NOT_SUFFICIENT_BUFFER
O buffer não é grande o suficiente para manter a cadeia de caracteres.
MF_E_ATTRIBUTENOTFOUND
A chave especificada não foi encontrada.
MF_E_INVALIDTYPE
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

Confira também

Atributos e propriedades

IMFAttributes

MF_ATTRIBUTE_TYPE