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 |
---|---|
|
Il metodo è riuscito. |
|
La lunghezza della stringa è troppo grande per adattarsi a un valore UINT32 . |
|
Il buffer non è sufficientemente grande da contenere la stringa. |
|
La chiave specificata non è stata trovata. |
|
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 |