Méthode IWiaPropertyStorage ::GetPropertyAttributes (wia_xp.h)

La méthode IWiaPropertyStorage ::GetPropertyAttributes récupère les droits d’accès et les informations de valeur légale pour un ensemble de propriétés spécifié.

Syntaxe

HRESULT GetPropertyAttributes(
  [in]  ULONG          cpspec,
  [in]  PROPSPEC []    rgpspec,
  [out] ULONG []       rgflags,
  [out] PROPVARIANT [] rgpropvar
);

Paramètres

[in] cpspec

Type : ULONG

Spécifie le nombre d’attributs de propriété à interroger.

[in] rgpspec

Type : PROPSPEC[]

Spécifie un tableau de constantes de propriété Device Information. Chaque constante du tableau sélectionne une propriété à interroger.

[out] rgflags

Type : ULONG[]

Tableau qui reçoit un descripteur d’attribut de propriété pour chaque propriété spécifiée dans le tableau rgpspec . Chaque élément du tableau est une ou plusieurs valeurs de descripteur combinées à une opération OR au niveau du bit.

[out] rgpropvar

Type : PROPVARIANT[]

Tableau qui reçoit un descripteur d’attribut de propriété pour chaque propriété spécifiée dans le tableau pPROPSPEC . Pour plus d’informations, consultez PROPVARIANT.

Valeur retournée

Type : HRESULT

Cette méthode retourne l’une des valeurs suivantes ou un code d’erreur COM standard :

Valeur renvoyée Signification
S_OK Cette méthode a réussi.
S_FALSE Les noms de propriétés spécifiés n’existent pas. Aucun attribut n’a été récupéré.
STG_E_ACCESSDENIED L’application n’a pas accès au flux de propriétés ou le flux est peut-être déjà ouvert.
STG_E_INSUFFICIENTMEMORY La mémoire disponible est insuffisante pour terminer cette opération.
ERROR_NOT_SUPPORTED Le type de propriété n’est pas pris en charge.
STG_E_INVALIDPARAMETER Un ou plusieurs paramètres ne sont pas valides. Une ou plusieurs structures PROPSPEC contiennent des données non valides.
STG_E_INVALIDPOINTER Un ou plusieurs des pointeurs passés à cette méthode ne sont pas valides.
ERROR_NO_UNICODE_TRANSLATION Une traduction d’Unicode vers ANSI ou ANSI vers Unicode a échoué.

Remarques

Cette méthode récupère à la fois les droits d’accès aux propriétés et les valeurs de propriété valides. Les droits d’accès indiquent si la propriété est lisible, accessible en écriture ou les deux. Les valeurs de propriété valides sont spécifiées sous la forme d’une plage de valeurs, d’une liste de valeurs ou d’un groupe de valeurs d’indicateur. Pour plus d’informations, consultez Attributs de propriété.

Si l’indicateur de droits d’accès à la propriété a le WIA_PROP_NONE bit défini, aucune information de valeur légale n’est disponible pour cette propriété. Les propriétés en lecture seule et les propriétés avec un type de données binaire sont des exemples de propriétés dont le WIA_PROP_NONE bit est défini.

Si la propriété a une plage de valeurs valides, elles peuvent être déterminées par le paramètre rgpropvar à l’achèvement de cette méthode. Le paramètre ppvValidValues spécifie un tableau de structures PROPVARIANT .

Par exemple, si la plage de propriétés est spécifiée comme VT_VECTOR | VT_UI4, les informations de plage peuvent être récupérées via le membre de structure

rgpropvar[n].caul.pElems[range_specifier]

n est le numéro d’index de la propriété inspectée et range_specifier est l’un des éléments suivants :

Spécificateur de plage Signification
WIA_RANGE_MAX Valeur maximale sur laquelle la propriété peut être définie.
WIA_RANGE_MIN Valeur minimale sur laquelle la propriété peut être définie.
WIA_RANGE_NOM Valeur de propriété normale ou par défaut.
WIA_RANGE_STEP Incrémentez ou décrémentez entre les valeurs de propriété.
 

Si la propriété a une liste de valeurs valides, les applications les déterminent via le paramètre ppvValidValues à l’issue de cette méthode.

Par exemple, si la plage de propriétés est spécifiée comme VT_VECTOR | VT_UI4, la liste des valeurs de propriété valides peut être récupérée via le membre de la structure

rgpropspecValues[n].caul.pElems[list_specifier]

n est le numéro d’index de la propriété inspectée et list_specifier est l’un des éléments suivants :

Spécificateur de plage Signification
WIA_LIST_COUNT Nombre total d’éléments de liste à l’exclusion de la valeur nominale.
WIA_LIST_NOM Valeur nominale de la propriété.
WIA_LIST_VALUES Numéro d’index de la première valeur.
 

Les programmes utilisent également le paramètre ppvValidValues pour récupérer des valeurs d’indicateur valides. Par instance, si les indicateurs de propriété sont spécifiés comme VT_UI4, les valeurs d’indicateur valides peuvent être déterminées par le biais du membre de la structure

rgpropspec[n].caul.pElems[flag_specifier]

n est le numéro d’index de la propriété inspectée, et flag_specifier est l’un des éléments suivants :

Spécificateur de plage Signification
WIA_FLAG_NOM Valeur nominale de la propriété.
WIA_FLAG_NUM_ELEMS Nombre total d’éléments de liste à l’exclusion de la valeur nominale.
WIA_FLAG_VALUES Toutes les valeurs avec tous les bits d’indicateur valides définis.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel, Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête wia_xp.h (incluez Wia.h)
Bibliothèque Wiaguid.lib
DLL Wiaservc.dll

Voir aussi

IPropertyStorage

IWiaPropertyStorage