Compartir a través de


Método IMFAttributes::GetString (mfobjects.h)

Recupera una cadena de caracteres anchos asociada a una clave.

Sintaxis

HRESULT GetString(
  [in]  REFGUID guidKey,
  [out] LPWSTR  pwszValue,
  [in]  UINT32  cchBufSize,
  [out] UINT32  *pcchLength
);

Parámetros

[in] guidKey

GUID que identifica qué valor se va a recuperar. El tipo de atributo debe ser MF_ATTRIBUTE_STRING.

[out] pwszValue

Puntero a una matriz de caracteres anchos asignada por el autor de la llamada. La matriz debe ser lo suficientemente grande como para contener la cadena, incluido el carácter NULL de terminación. Si se encuentra la clave y el valor es un tipo de cadena, el método copia la cadena en este búfer. Para buscar la longitud de la cadena, llame a IMFAttributes::GetStringLength.

[in] cchBufSize

Tamaño de la matriz pwszValue , en caracteres. Este valor incluye el carácter NULL de terminación.

[out] pcchLength

Recibe el número de caracteres de la cadena, excepto el carácter NULL de terminación. Este parámetro puede ser NULL.

Valor devuelto

El método devuelve un valor HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.

Código devuelto Descripción
S_OK
El método se ha llevado a cabo de forma correcta.
E_OUTOFMEMORY
La longitud de la cadena es demasiado grande para caber en un valor UINT32 .
E_NOT_SUFFICIENT_BUFFER
El búfer no es lo suficientemente grande como para contener la cadena.
MF_E_ATTRIBUTENOTFOUND
No se encontró la clave especificada.
MF_E_INVALIDTYPE
El valor del atributo no es una cadena.

Comentarios

También puede usar el método IMFAttributes::GetAllocatedString , que asigna el búfer para contener la cadena.

Esta interfaz está disponible en las siguientes plataformas si se instalan los componentes redistribuibles del SDK de Windows Media Format 11:

  • Windows XP con Service Pack 2 (SP2) y versiones posteriores.
  • Windows XP Media Center Edition 2005 con KB900325 (Windows XP Media Center Edition 2005) y KB925766 (paquete acumulativo de actualizaciones de octubre de 2006 para Windows XP Media Center Edition) instalados.

Ejemplos

En el ejemplo de código siguiente se muestra cómo obtener un atributo cuyo valor es una cadena.

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 Value
Cliente mínimo compatible Windows Vista [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado mfobjects.h (include Mfidl.h)
Library Mfuuid.lib

Consulte también

Atributos y propiedades

IMFAttributes

MF_ATTRIBUTE_TYPE