Freigeben über


IMFAttributes::GetBlob-Methode (mfobjects.h)

Ruft ein Bytearray ab, das einem Schlüssel zugeordnet ist. Diese Methode kopiert das Array in einen vom Aufrufer zugewiesenen Puffer.

Syntax

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

Die Parameter

[in] guidKey

GUID, die den abzurufenden Wert identifiziert. Der Attributtyp muss MF_ATTRIBUTE_BLOB werden.

[out] pBuf

Zeiger auf einen vom Aufrufer zugewiesenen Puffer. Wenn der Schlüssel gefunden wird und der Wert ein Bytearray ist, kopiert die Methode das Array in diesen Puffer. Um die erforderliche Größe des Puffers zu finden, rufen Sie IMFAttributes::GetBlobSize auf.

[in] cbBufSize

Die Größe des pBuf-Puffers in Byte.

[out] pcbBlobSize

Empfängt die Größe des Bytearrays. Dieser Parameter kann NULL-sein.

Rückgabewert

Die Methode gibt ein HRESULT zurück. Mögliche Werte sind die Werte in der folgenden Tabelle, sind jedoch nicht beschränkt.

Rückgabecode Description
S_OK
Die Methode wurde erfolgreich ausgeführt.
E_NOT_SUFFICIENT_BUFFER
Der Puffer ist nicht groß genug für das Array.
MF_E_ATTRIBUTENOTFOUND
Der angegebene Schlüssel wurde nicht gefunden.
MF_E_INVALIDTYPE
Der Attributwert ist kein Bytearray.

Bemerkungen

Sie können auch die IMFAttributes::GetAllocatedBlob-Methode verwenden, die den Puffer zum Speichern des Bytearrays zuweist.

Diese Schnittstelle ist auf den folgenden Plattformen verfügbar, wenn die verteilbaren Komponenten des Windows Media Format 11 SDK installiert sind:

  • Windows XP mit Service Pack 2 (SP2) und höher.
  • Windows XP Media Center Edition 2005 mit KB900325 (Windows XP Media Center Edition 2005) und KB925766 (Updaterollup vom Oktober 2006 für Windows XP Media Center Edition) installiert.

Examples

Das folgende Codebeispiel zeigt, wie Ein Attribut abgerufen wird, dessen Wert ein Bytearray ist.

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;
}

Anforderungen

Anforderung Wert
Mindestens unterstützter Client Windows Vista [Desktop-Apps | UWP-Apps]
Mindestanforderungen für unterstützte Server Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Fenster
Header mfobjects.h (include Mfidl.h)
Library Mfuuid.lib

Siehe auch

Attribute und Eigenschaften

IMFAttributes-

MF_ATTRIBUTE_TYPE