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 |
|
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. |
|
La méthode n'est pas prise en charge. |
|
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. |
|
É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 ::EnumConstrainedOptions
IPrintOemUI ::D evicePropertySheets