IMFAttributes::Metode GetBlob (mfobjects.h)

Mengambil array byte yang terkait dengan kunci. Metode ini menyalin array ke dalam buffer yang dialokasikan pemanggil.

Sintaks

HRESULT GetBlob(
  [in]  REFGUID guidKey,
  [out] UINT8   *pBuf,
  [in]  UINT32  cbBufSize,
  [out] UINT32  *pcbBlobSize
);

Parameter

[in] guidKey

GUID yang mengidentifikasi nilai mana yang akan diambil. Jenis atribut harus MF_ATTRIBUTE_BLOB.

[out] pBuf

Penunjuk ke buffer yang dialokasikan oleh pemanggil. Jika kunci ditemukan dan nilainya adalah array byte, metode menyalin array ke dalam buffer ini. Untuk menemukan ukuran buffer yang diperlukan, panggil IMFAttributes::GetBlobSize.

[in] cbBufSize

Ukuran buffer pBuf , dalam byte.

[out] pcbBlobSize

Menerima ukuran array byte. Parameter ini bisa NULL.

Nilai kembali

Metode mengembalikan HRESULT. Nilai yang mungkin termasuk, tetapi tidak terbatas pada, yang ada dalam tabel berikut.

Menampilkan kode Deskripsi
S_OK
Metode berhasil.
E_NOT_SUFFICIENT_BUFFER
Buffer tidak cukup besar untuk array.
MF_E_ATTRIBUTENOTFOUND
Kunci yang ditentukan tidak ditemukan.
MF_E_INVALIDTYPE
Nilai atribut bukan array byte.

Keterangan

Anda juga dapat menggunakan metode IMFAttributes::GetAllocatedBlob , yang mengalokasikan buffer untuk menahan array byte.

Antarmuka ini tersedia pada platform berikut jika komponen yang dapat didistribusikan ulang Windows Media Format 11 SDK diinstal:

  • Windows XP dengan Paket Layanan 2 (SP2) dan yang lebih baru.
  • Windows XP Media Center Edition 2005 dengan KB900325 (Windows XP Media Center Edition 2005) dan KB925766 (Rollup Pembaruan Oktober 2006 untuk Windows XP Media Center Edition) terinstal.

Contoh

Contoh kode berikut menunjukkan cara mendapatkan atribut yang nilainya adalah array 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;
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header mfobjects.h (termasuk Mfidl.h)
Pustaka Mfuuid.lib

Lihat juga

Atribut dan Properti

IMFAttributes

MF_ATTRIBUTE_TYPE