Metodo IMFAttributes::GetBlob (mfobjects.h)
Recupera una matrice di byte associata a una chiave. Questo metodo copia la matrice in un buffer allocato dal chiamante.
Sintassi
HRESULT GetBlob(
[in] REFGUID guidKey,
[out] UINT8 *pBuf,
[in] UINT32 cbBufSize,
[out] UINT32 *pcbBlobSize
);
Parametri
[in] guidKey
GUID che identifica il valore da recuperare. Il tipo di attributo deve essere MF_ATTRIBUTE_BLOB.
[out] pBuf
Puntatore a un buffer allocato dal chiamante. Se la chiave viene trovata e il valore è una matrice di byte, il metodo copia la matrice in questo buffer. Per trovare le dimensioni necessarie del buffer, chiamare IMFAttributes::GetBlobSize.
[in] cbBufSize
Dimensioni del buffer pBuf , in byte.
[out] pcbBlobSize
Riceve le dimensioni della matrice di byte. Questo parametro può essere NULL.
Valore restituito
Il metodo restituisce un valore HRESULT. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente.
Codice restituito | Descrizione |
---|---|
|
Il metodo è riuscito. |
|
Il buffer non è sufficientemente grande per la matrice. |
|
La chiave specificata non è stata trovata. |
|
Il valore dell'attributo non è una matrice di byte. |
Commenti
È anche possibile usare il metodo IMFAttributes::GetAllocatedBlob , che alloca il buffer per contenere la matrice di byte.
Questa interfaccia è disponibile nelle piattaforme seguenti se vengono installati i componenti ridistribuibili di Windows Media Format 11 SDK:
- Windows XP con Service Pack 2 (SP2) e versioni successive.
- Windows XP Media Center Edition 2005 con KB900325 (Windows XP Media Center Edition 2005) e KB925766 (aggiornamento cumulativo di ottobre 2006 per Windows XP Media Center Edition) installato.
Esempio
Nell'esempio di codice seguente viene illustrato come ottenere un attributo il cui valore è una matrice di byte.
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;
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | mfobjects.h (include Mfidl.h) |
Libreria | Mfuuid.lib |