IMFAttributes::GetBlob 方法 (mfobjects.h)
擷取與索引鍵相關聯的位元組陣列。 這個方法會將數位複製到呼叫端配置的緩衝區。
語法
HRESULT GetBlob(
[in] REFGUID guidKey,
[out] UINT8 *pBuf,
[in] UINT32 cbBufSize,
[out] UINT32 *pcbBlobSize
);
參數
[in] guidKey
識別要擷取之值的 GUID。 屬性類型必須 MF_ATTRIBUTE_BLOB。
[out] pBuf
呼叫端所配置之緩衝區的指標。 如果找到索引鍵且值為位元組陣列,方法會將陣列複製到這個緩衝區。 若要尋找緩衝區的必要大小,請呼叫 IMFAttributes::GetBlobSize。
[in] cbBufSize
pBuf 緩衝區的大小,以位元組為單位。
[out] pcbBlobSize
接收位元組陣列的大小。 此參數可以是 Null。
傳回值
方法會傳回 HRESULT。 可能的值包括 (但不限於) 下表中的這些值。
傳回碼 | Description |
---|---|
|
此方法已成功。 |
|
緩衝區不夠大,無法用於數位。 |
|
找不到指定的索引鍵。 |
|
屬性值不是位元組陣列。 |
備註
您也可以使用 IMFAttributes::GetAllocatedBlob 方法,此方法會配置緩衝區來保存位元組陣列。
如果已安裝 Windows Media Format 11 SDK 可轉散發元件,此介面可在下列平臺上使用:
- Windows XP with Service Pack 2 (SP2) 和更新版本。
- 已安裝 Windows XP Media Center Edition 2005 KB900325 (Windows XP Media Center Edition 2005) 和 KB925766 (2006 年 10 月更新匯總) 的 Windows XP Media Center Edition 2005。
範例
下列程式代碼範例示範如何取得其值為位元組數位列數位的屬性。
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;
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | mfobjects.h (包含 Mfidl.h) |
程式庫 | Mfuuid.lib |