Partager via


IMFAttributes ::GetBlob, méthode (mfobjects.h)

Récupère un tableau d’octets associé à une clé. Cette méthode copie le tableau dans une mémoire tampon allouée par l’appelant.

Syntaxe

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

Paramètres

[in] guidKey

GUID qui identifie la valeur à récupérer. Le type d’attribut doit être MF_ATTRIBUTE_BLOB.

[out] pBuf

Pointeur vers une mémoire tampon allouée par l’appelant. Si la clé est trouvée et que la valeur est un tableau d’octets, la méthode copie le tableau dans cette mémoire tampon. Pour rechercher la taille requise de la mémoire tampon, appelez IMFAttributes ::GetBlobSize.

[in] cbBufSize

Taille de la mémoire tampon pBuf , en octets.

[out] pcbBlobSize

Reçoit la taille du tableau d’octets. Ce paramètre peut être NULL.

Valeur retournée

La méthode retourne un HRESULT. Les valeurs possibles incluent, mais ne sont pas limitées à celles du tableau suivant.

Code de retour Descriptif
S_OK
S_OK
E_NOT_SUFFICIENT_BUFFER
La mémoire tampon n’est pas assez grande pour le tableau.
MF_E_ATTRIBUTENOTFOUND
La clé spécifiée est introuvable.
MF_E_INVALIDTYPE
La valeur d’attribut n’est pas un tableau d’octets.

Remarques

Vous pouvez également utiliser la méthode IMFAttributes ::GetAllocatedBlob , qui alloue la mémoire tampon pour contenir le tableau d’octets.

Cette interface est disponible sur les plateformes suivantes si les composants redistribuables du SDK Windows Media Format 11 sont installés :

  • Windows XP avec Service Pack 2 (SP2) et versions ultérieures.
  • Windows XP Media Center Edition 2005 avec KB900325 (Windows XP Media Center Edition 2005) et KB925766 (correctif cumulatif d’octobre 2006 pour Windows XP Media Center Edition) installé.

Examples

L’exemple de code suivant montre comment obtenir un attribut dont la valeur est un tableau d’octets.

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

Spécifications

Requirement Valeur
Client minimum requis Windows Vista [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | Applications UWP]
plateforme cible Fenêtres
Header mfobjects.h (include Mfidl.h)
Library Mfuuid.lib

Voir aussi

Attributs et propriétés

IMFAttributes

MF_ATTRIBUTE_TYPE