Partager via


IPrintCoreUI2 ::WhyConstrained, méthode (prcomoem.h)

La IPrintCoreUI2::WhyConstrained méthode détermine la raison pour laquelle la sélection de fonctionnalité/option spécifiée est limitée.

Syntaxe

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

[in] pszOptionKeyword

Pointeur vers une mémoire tampon fournie par l’appelant contenant l’option mot clé.

[out] pmszReasonList

Pointeur vers une mémoire tampon fournie par l’appelant qui reçoit une liste des paires fonctionnalité/option mot clé qui placent des contraintes sur la fonctionnalité/option spécifiée. Cette liste est au format MULTI_SZ, chaque élément de la liste étant séparé du suivant par un caractère null. La liste se termine par deux caractères null.

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

[in] cbSize

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

[out] pcbNeeded

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

Valeur retournée

La 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 vers pmszReasonList).

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

E_NOTIMPL
La méthode n'est pas prise en charge.
E_INVALIDARG
Le paramètre poemuiobj pointait vers un objet de contexte non valide.

La fonctionnalité mot clé ou l’option mot clé n’a pas été reconnue.

L’adhérence à la fonctionnalité (voir Remplacement Driver-Supplied pages de feuille de propriétés) ne correspondait pas à celle spécifiée dans le contexte actuel.

E_FAIL
Échec de la méthode

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 .

Lorsqu’un utilisateur de l’interface utilisateur OEM tente de sélectionner un élément qui est limité, l’appelant peut utiliser cette méthode pour afficher un message expliquant pourquoi l’élément est contraint. Lorsque cette méthode retourne, pmszReasonList pointe vers une liste d’une ou plusieurs paires fonctionnalité/option qui apparaissent dans les paramètres actuels du pilote, mais qui entrent en conflit avec les mots clés fonctionnalité/option sélectionnés. En l’absence de conflit, la méthode doit retourner S_OK, pmszReasonList doit être renseigné avec une chaîne ASCII vide contenant uniquement un caractère null et *pcbNeeded doit avoir la valeur 1.

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 ::EnumConstrainedOptions

IPrintOemUI ::D evicePropertySheets

IPrintOemUI ::D ocumentPropertySheets

OEMUIOBJ