Share via


Méthode IPrintCoreUI2 ::EnumFeatures (prcomoem.h)

La IPrintCoreUI2::EnumFeatures méthode énumère les fonctionnalités disponibles d’une imprimante.

Syntaxe

HRESULT EnumFeatures(
  [in]  POEMUIOBJ poemuiobj,
  [in]  DWORD     dwFlags,
  [out] PZZSTR    pmszFeatureList,
  [in]  DWORD     cbSize,
  [out] PDWORD    pcbNeeded
);

Paramètres

[in] poemuiobj

Pointeur vers le contexte actuel, une structure OEMUIOBJ .

[in] dwFlags

Est réservé et doit être défini sur zéro.

[out] pmszFeatureList

Pointeur vers une mémoire tampon fournie par l’appelant qui reçoit une liste délimitée par des valeurs Null de mots clés de fonctionnalité au format MULTI_SZ. La liste se termine par deux caractères Null.

Définissez ce paramètre sur NULL pour simplement interroger la taille (*pcbNeeded) de la liste des fonctionnalités sans que la liste soit remplie.

[in] cbSize

Spécifie la taille, en octets, de la mémoire tampon pointée par pmszFeatureList.

[out] pcbNeeded

Pointeur vers un emplacement de mémoire qui reçoit la taille réelle, en octets, de la liste des fonctionnalités.

Valeur retournée

Cette méthode doit retourner l’une des valeurs suivantes.

Code de retour Description
S_OK
S_OK
E_OUTOFMEMORY
La valeur dans cbSize était inférieure au nombre d’octets à écrire dans la mémoire tampon de sortie (la mémoire tampon pointée par pmszFeatureList).

La méthode a été appelée avec pmszFeatureList définie sur NULL.

E_INVALIDARG
Le paramètre poemuiobj pointe vers un objet de contexte non valide.
E_FAIL
Échec de la méthode

Remarques

Cette méthode est prise en charge uniquement pour les plug-ins Windows XP Pscript5, et non pour les plug-ins Unidrv.

les fonctionnalités d’impression-sticky (voir Remplacement Driver-Supplied pages de feuille de propriétés), telles que celles qui déterminent la mémoire installable et la présence d’accessoires facultatifs, sont incluses dans la liste des fonctionnalités mot clé, qui apparaît dans la mémoire tampon de sortie pointée par pmszFeatureList lorsque la méthode est retournée. Pour Pscript5, l’attribut de fonctionnalité OpenGroupType de ces fonctionnalités est défini sur « InstallableOptions ».

Pour réduire la nécessité d’effectuer deux appels par accès aux données, transmettez à la méthode une mémoire tampon de sortie d’une taille fixe (1 Ko, par exemple), puis case activée la valeur de retour de la fonction. Si la méthode retourne S_OK, la mémoire tampon contient déjà les données intéressantes. Si la méthode retourne E_OUTOFMEMORY, la valeur dans *pcbNeeded est la taille de mémoire tampon nécessaire pour contenir les données intéressantes. L’appelant doit ensuite allouer une mémoire tampon de cette plus grande taille et procéder à un deuxième appel à la méthode .

Pour plus d’informations, consultez Utilisation d’EnumFeatures.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête prcomoem.h (include Prcomoem.h)

Voir aussi

IPrintCoreUI2

IPrintCoreUI2 ::EnumOptions

OEMUIOBJ