PropVariantToInt16, fonction (propvarutil.h)
Extrait une valeur de propriété Int16 d’une structure PROPVARIANT .
Syntaxe
PSSTDAPI PropVariantToInt16(
[in] REFPROPVARIANT propvarIn,
[out] SHORT *piRet
);
Paramètres
[in] propvarIn
Type : REFPROPVARIANT
Référence à une structure PROPVARIANT source.
[out] piRet
Type : SHORT*
Lorsque cette fonction est retournée, contient la valeur de propriété extraite si elle existe ; sinon, 0.
Valeur retournée
Type : HRESULT
Si cette fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.
Remarques
Cette fonction d’assistance est utilisée dans les endroits où l’application appelante s’attend à ce qu’un PROPVARIANT contienne une valeur Int16. Par instance, une application qui obtient des valeurs à partir d’un magasin de propriétés peut l’utiliser pour extraire en toute sécurité la valeur Int16 pour les propriétés Int16.
Si la source PROPVARIANT a le type VT_I2, cette fonction d’assistance extrait la valeur Int16. Sinon, il tente de convertir la valeur de la structure PROPVARIANT en int16. Si une conversion n’est pas possible, PropVariantToInt16 retourne un code d’échec et définit piRet sur 0. Pour obtenir la liste des conversions possibles, consultez PropVariantChangeType . Notez que VT_EMPTY est correctement converti en 0.
Exemples
L’exemple suivant, à inclure dans le cadre d’un programme plus large, montre comment utiliser PropVariantToInt16 pour accéder à une valeur Int16 dans un PROPVARIANT.
// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
PROPVARIANT propvar = {0};
HRESULT hr = ppropstore->GetValue(PKEY_Image_ResolutionUnit, &propvar);
if (SUCCEEDED(hr))
{
// PKEY_Image_ResolutionUnit is expected to produce a VT_I2 or VT_EMPTY value.
// PropVariantToInt16 will convert VT_EMPTY to 0.
INT16 iUnit;
hr = PropVariantToInt16(propvar, & iUnit);
if (SUCCEEDED(hr))
{
// iUnit is now valid
}
else
{
// iUnit is always 0
}
PropVariantClear(&propvar);
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP avec SP2, Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 avec SP1 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | propvarutil.h |
Bibliothèque | Propsys.lib |
DLL | Propsys.dll (version 6.0 ou ultérieure) |
Composant redistribuable | Windows Desktop Search (WDS) 3.0 |