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

Parameter

[in] guidKey

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

[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 ermitteln, rufen Sie IMFAttributes::GetBlobSize auf.

[in] cbBufSize

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

[out] pcbBlobSize

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

Rückgabewert

Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.

Rückgabecode Beschreibung
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.

Hinweise

Sie können auch die IMFAttributes::GetAllocatedBlob-Methode verwenden, die den Puffer für das Bytearray zuordnet.

Diese Schnittstelle ist auf den folgenden Plattformen verfügbar, wenn die verteilbaren Windows Media Format 11 SDK-Komponenten 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 für Windows XP Media Center Edition vom Oktober 2006) installiert.

Beispiele

Im folgenden Codebeispiel wird gezeigt, 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
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile mfobjects.h (include Mfidl.h)
Bibliothek Mfuuid.lib

Weitere Informationen

Attribute und Eigenschaften

IMFAttributes

MF_ATTRIBUTE_TYPE