Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Recupera uma matriz de bytes associada a uma chave. Esse método copia a matriz em um buffer alocado pelo chamador.
Sintaxe
HRESULT GetBlob(
[in] REFGUID guidKey,
[out] UINT8 *pBuf,
[in] UINT32 cbBufSize,
[out] UINT32 *pcbBlobSize
);
Parâmetros
[in] guidKey
GUID que identifica qual valor recuperar. O tipo de atributo deve ser MF_ATTRIBUTE_BLOB.
[out] pBuf
Ponteiro para um buffer alocado pelo chamador. Se a chave for encontrada e o valor for uma matriz de bytes, o método copiará a matriz para esse buffer. Para localizar o tamanho necessário do buffer, chame IMFAttributes::GetBlobSize.
[in] cbBufSize
O tamanho do buffer pBuf , em bytes.
[out] pcbBlobSize
Recebe o tamanho da matriz de bytes. Esse parâmetro pode ser NULL.
Valor de retorno
O método retorna um HRESULT. Os valores possíveis incluem, mas não se limitam a, aqueles na tabela a seguir.
| Código de retorno | Description |
|---|---|
|
O método foi bem-sucedido. |
|
O buffer não é grande o suficiente para a matriz. |
|
A chave especificada não foi encontrada. |
|
O valor do atributo não é uma matriz de bytes. |
Observações
Você também pode usar o método IMFAttributes::GetAllocatedBlob , que aloca o buffer para manter a matriz de bytes.
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 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;
}
Requirements
| Requirement | Value |
|---|---|
| Cliente mínimo suportado | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
| Servidor mínimo compatível | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
| da Plataforma de Destino | Windows |
| Header | mfobjects.h (inclua Mfidl.h) |
| Library | Mfuuid.lib |