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 |
---|---|
|
Die Methode wurde erfolgreich ausgeführt. |
|
Der Puffer ist nicht groß genug für das Array. |
|
Der angegebene Schlüssel wurde nicht gefunden. |
|
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 |