Méthode IMFAttributes ::GetString (mfobjects.h)
Récupère une chaîne de caractères larges associée à une clé.
Syntaxe
HRESULT GetString(
[in] REFGUID guidKey,
[out] LPWSTR pwszValue,
[in] UINT32 cchBufSize,
[out] UINT32 *pcchLength
);
Paramètres
[in] guidKey
GUID qui identifie la valeur à récupérer. Le type d’attribut doit être MF_ATTRIBUTE_STRING.
[out] pwszValue
Pointeur vers un tableau de caractères larges alloué par l’appelant. Le tableau doit être suffisamment grand pour contenir la chaîne, y compris le caractère NULL de fin. Si la clé est trouvée et que la valeur est de type chaîne, la méthode copie la chaîne dans cette mémoire tampon. Pour trouver la longueur de la chaîne, appelez IMFAttributes ::GetStringLength.
[in] cchBufSize
Taille du tableau pwszValue , en caractères. Cette valeur inclut le caractère NULL de fin.
[out] pcchLength
Reçoit le nombre de caractères dans la chaîne, à l’exclusion du caractère NULL de fin. Ce paramètre peut être NULL.
Valeur retournée
Cette méthode retourne un code HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.
Code de retour | Description |
---|---|
|
S_OK |
|
La longueur de la chaîne est trop grande pour tenir dans une valeur UINT32 . |
|
La mémoire tampon n’est pas assez grande pour contenir la chaîne. |
|
La clé spécifiée est introuvable. |
|
La valeur de l’attribut n’est pas une chaîne. |
Remarques
Vous pouvez également utiliser la méthode IMFAttributes ::GetAllocatedString , qui alloue la mémoire tampon pour contenir la chaîne.
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és.
Exemples
L’exemple de code suivant montre comment obtenir un attribut dont la valeur est une chaîne.
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;
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | mfobjects.h (include Mfidl.h) |
Bibliothèque | Mfuuid.lib |