Condividi tramite


Metodo IMFAttributes::GetString (mfobjects.h)

Recupera una stringa di caratteri wide associata a una chiave.

Sintassi

HRESULT GetString(
  [in]  REFGUID guidKey,
  [out] LPWSTR  pwszValue,
  [in]  UINT32  cchBufSize,
  [out] UINT32  *pcchLength
);

Parametri

[in] guidKey

GUID che identifica il valore da recuperare. Il tipo di attributo deve essere MF_ATTRIBUTE_STRING.

[out] pwszValue

Puntatore a una matrice di caratteri wide allocata dal chiamante. La matrice deve essere sufficientemente grande da contenere la stringa, incluso il carattere NULL di terminazione. Se la chiave viene trovata e il valore è un tipo stringa, il metodo copia la stringa in questo buffer. Per trovare la lunghezza della stringa, chiamare IMFAttributes::GetStringLength.

[in] cchBufSize

Dimensioni della matrice pwszValue , in caratteri. Questo valore include il carattere NULL di terminazione.

[out] pcchLength

Riceve il numero di caratteri nella stringa, escluso il carattere NULL di terminazione. Questo parametro può essere NULL.

Valore restituito

Il metodo restituisce un valore HRESULT. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente.

Codice restituito Descrizione
S_OK
Il metodo è riuscito.
E_OUTOFMEMORY
La lunghezza della stringa è troppo grande per adattarsi a un valore UINT32 .
E_NOT_SUFFICIENT_BUFFER
Il buffer non è sufficientemente grande da contenere la stringa.
MF_E_ATTRIBUTENOTFOUND
La chiave specificata non è stata trovata.
MF_E_INVALIDTYPE
Il valore dell'attributo non è una stringa.

Commenti

È anche possibile usare il metodo IMFAttributes::GetAllocatedString , che alloca il buffer per contenere la stringa.

Questa interfaccia è disponibile nelle piattaforme seguenti se vengono installati i componenti ridistribuibili di Windows Media Format 11 SDK:

  • Windows XP con Service Pack 2 (SP2) e versioni successive.
  • Windows XP Media Center Edition 2005 con KB900325 (Windows XP Media Center Edition 2005) e KB925766 (aggiornamento cumulativo di ottobre 2006 per Windows XP Media Center Edition) installato.

Esempio

Nell'esempio di codice seguente viene illustrato come ottenere un attributo il cui valore è una stringa.

HRESULT AttributeGetString(IMFAttributes *pAttributes)
{
    HRESULT hr = S_OK;
    UINT32 cchLength = 0;
    WCHAR *pString = NULL;

    hr = pAttributes->GetStringLength(MY_ATTRIBUTE, &cchLength);
    
    if (SUCCEEDED(hr))
    {
        pString = new WCHAR[cchLength + 1];
        if (pString == NULL)
        {
            hr = E_OUTOFMEMORY;
        }
    }

    if (SUCCEEDED(hr))
    {
        hr = pAttributes->GetString(
            MY_ATTRIBUTE, pString, cchLength + 1, &cchLength);
    }

    if (pString)
    {
        delete [] pString;
    }
    return hr;
}

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione mfobjects.h (include Mfidl.h)
Libreria Mfuuid.lib

Vedi anche

Attributi e proprietà

IMFAttributes

MF_ATTRIBUTE_TYPE