Método IMFAttributes::GetBlob (mfobjects.h)
Recupera una matriz de bytes asociada a una clave. Este método copia la matriz en un búfer asignado por el autor de la llamada.
Sintaxis
HRESULT GetBlob(
[in] REFGUID guidKey,
[out] UINT8 *pBuf,
[in] UINT32 cbBufSize,
[out] UINT32 *pcbBlobSize
);
Parámetros
[in] guidKey
GUID que identifica qué valor se va a recuperar. El tipo de atributo debe ser MF_ATTRIBUTE_BLOB.
[out] pBuf
Puntero a un búfer asignado por el autor de la llamada. Si se encuentra la clave y el valor es una matriz de bytes, el método copia la matriz en este búfer. Para buscar el tamaño necesario del búfer, llame a IMFAttributes::GetBlobSize.
[in] cbBufSize
Tamaño del búfer de pBuf , en bytes.
[out] pcbBlobSize
Recibe el tamaño de la matriz de bytes. 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 |
---|---|
|
El método se ha llevado a cabo de forma correcta. |
|
El búfer no es lo suficientemente grande como para la matriz. |
|
No se encontró la clave especificada. |
|
El valor del atributo no es una matriz de bytes. |
Comentarios
También puede usar el método IMFAttributes::GetAllocatedBlob , que asigna el búfer para contener la matriz de bytes.
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 matriz de bytes.
HRESULT AttributeGetBlob(IMFAttributes *pAttributes)
{
HRESULT hr = S_OK;
UINT32 cbBlob = 0;
BYTE *pBlob = NULL;
hr = pAttributes->GetBlobSize(MY_ATTRIBUTE, &cbBlob);
if (SUCCEEDED(hr))
{
pBlob = new BYTE[cbBlob];
if (pBlob == NULL)
{
hr = E_OUTOFMEMORY;
}
}
if (SUCCEEDED(hr))
{
hr = pAttributes->GetBlob(MY_ATTRIBUTE, pBlob, cbBlob, &cbBlob);
}
if (pBlob)
{
delete [] pBlob;
}
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 |