Share via


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

La IPrintCoreUI2::EnumConstrainedOptions méthode détermine les options d’une fonctionnalité qui sont limitées.

Syntaxe

HRESULT EnumConstrainedOptions(
  [in]  POEMUIOBJ poemuiobj,
  [in]  DWORD     dwFlags,
  [in]  PCSTR     pszFeatureKeyword,
  [out] PZZSTR    pmszConstrainedOptionList,
  [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.

[in] pszFeatureKeyword

Pointeur vers une mémoire tampon fournie par l’appelant contenant la fonctionnalité unique mot clé d’intérêt pour l’appelant.

[out] pmszConstrainedOptionList

Pointeur vers une mémoire tampon fournie par l’appelant qui reçoit la liste des mots clés d’option, au format MULTI_SZ, pour cette fonctionnalité. Chaque mot clé représente une option contrainte dans la configuration actuelle.

Définissez ce paramètre sur NULL pour simplement interroger la taille (*pcbNeededed) de la liste d’options contraintes sans que la liste soit remplie.

[in] cbSize

Spécifie la taille, en octets, de la mémoire tampon pointée vers pmszConstrainedOptionList.

[out] pcbNeeded

Pointeur vers un emplacement de mémoire qui reçoit la taille réelle, en octets, de la liste d’options contraintes.

Valeur retournée

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

Code de retour Description
S_OK
S_OK La méthode doit également retourner cette valeur si aucune des options de la fonctionnalité n’est limitée. Dans ce cas, la méthode doit placer un caractère null dans la mémoire tampon pointée par pmszConstrainedOptionList et doit définir **pcbNeeded* sur 1.
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 vers pmszConstrainedOptionList).

La méthode a été appelée avec pmszConstrainedOptionList défini sur NULL.

E_INVALIDARG
La chaîne pointée vers pszFeatureKeyword n’était pas une fonctionnalité reconnue.

Le paramètre poemuiobj pointait vers un objet de contexte non valide.

L’adhérence de la fonctionnalité ne correspondait pas à celle de l’objet de contexte pointé par peomuiobj. (Consultez Remplacement des pages de feuille de propriétés Driver-Supplied.)

E_FAIL
La méthode a échoué.
E_NOTIMPL
La méthode n'est pas prise en charge.

Remarques

Cette méthode est prise en charge uniquement pour les plug-ins d’interface utilisateur Windows XP Pscript5 qui remplacent entièrement les pages d’interface utilisateur standard du pilote principal, et n’est prise en charge que pendant les fonctions IPrintOemUI ::D ocumentPropertySheets et IPrintOemUI ::D evicePropertySheets et leurs routines de rappel de la feuille de propriétés. Pour plus d’informations, consultez Remplacement des pages de feuille de propriétés Driver-Supplied .

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.

Configuration requise

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

Voir aussi

IPrintCoreUI2

IPrintCoreUI2 ::WhyConstrained

IPrintOemUI ::D evicePropertySheets

IPrintOemUI ::D ocumentPropertySheets

OEMUIOBJ