Partager via


IPrintCoreHelper ::SetOptions, méthode (prcomoem.h)

La méthode IPrintCoreHelper ::SetOption s définit simultanément plusieurs paires d’options de fonctionnalité.

Syntaxe

HRESULT SetOptions(
  [in, optional] IN PDEVMODE                      pDevmode,
  [in]           IN DWORD                         cbSize,
  [in]           IN BOOL                          bResolveConflicts,
  [in]           IN const PRINT_FEATURE_OPTION [] pFOPairs,
  [in]           IN DWORD                         cPairs,
  [out]          OUT PDWORD                       pcPairsWritten,
  [out]          OUT PDWORD                       pdwResult
);

Paramètres

[in, optional] pDevmode

Pointeur vers une structure DEVMODEW. Si ce pointeur est fourni, IPrintCoreHelper ::SetOptions devez utiliser la structure DEVMODEW pointée par pDevmode au lieu de la structure DEVMODEW par défaut ou actuelle. Si cette méthode est appelée à partir du fournisseur de plug-in ou à partir de IPrintOemPS ::D evMode ou IPrintOemUni ::D evMode, ce paramètre est requis. Dans la plupart des autres cas, le paramètre doit être NULL. Lorsque le pilote principal définit pDevmode sur NULL, il modifie son état interne plutôt que celui de la structure DEVMODEW passée. Cela est nécessaire pendant les opérations telles que le remplacement complet de l’interface utilisateur, où la structure DEVMODEW retournée par une DDI, telle que DrvDocumentPropertySheets, est en cours de service par le module d’interface utilisateur du pilote principal.

[in] cbSize

Taille, en octets, de la structure DEVMODEW pointée par le paramètre pDevmode.

[in] bResolveConflicts

Valeur booléenne qui indique si IPrintCoreHelper ::SetOptions doit résoudre les conflits qui proviennent d’une ou plusieurs contraintes spécifiées dans la vue GPD ou PPD du fichier de configuration, ainsi que des contraintes pour les fonctionnalités implémentées par Unidrv ou Pscript ou le processeur d’impression. Si TRUE, cette méthode doit tenter de résoudre le conflit. Si faux, cette méthode ne doit pas tenter de résoudre les conflits. Pour plus d’informations, consultez la section Remarques.

[in] pFOPairs

Tableau d’éléments PRINT_FEATURE_OPTION, où chaque élément contient une paire d’options de fonctionnalité. Chaque paire d’options de fonctionnalité répertorie une fonctionnalité et l’option à sélectionner pour cette fonctionnalité. Tous les paramètres sont appliqués séquentiellement. Les doublons ne sont pas interdits, mais les paramètres qui apparaissent plus loin dans le tableau (autrement dit, à un index supérieur) remplacent ceux qui apparaissent plus haut dans le tableau.

[in] cPairs

Nombre de paires d’options de fonctionnalité pointées par le paramètre pFOPairs.

[out] pcPairsWritten

Pointeur vers une variable qui reçoit le nombre de paires d’options de fonctionnalité qui ont été correctement enregistrées avant IPrintCoreHelper ::SetOptions retournées ou ayant échoué. Si cette méthode retourne correctement, *pcPairsWritten aura la même valeur que cPairs. Si la méthode échoue,*pcPairsWritten peut avoir n’importe quelle valeur comprise entre zéro et la valeur de cPairs. Ce paramètre est facultatif et peut être NULL.

[out] pdwResult

Pointeur vers une variable qui reçoit l’état de la résolution de conflit. L’état peut être l’une des valeurs suivantes.

Valeur Description
SETOPTIONS_RESULT_NO_CONFLICT Aucune contrainte spécifiée dans la vue GPD ou PPD du fichier de configuration n’a été violée, par rapport au nouveau paramètre.
SETOPTIONS_RESULT_CONFLICT_RESOLVED Au moins une contrainte spécifiée dans la vue GPD ou PPD du fichier de configuration a été violée et l’appelant a demandé que la méthode résolve les conflits. Cette valeur entraîne la modification des paramètres avec des conflits résolus.
SETOPTIONS_RESULT_CONFLICT_NOT_RESOLVED Au moins une contrainte spécifiée dans la vue GPD ou PPD du fichier de configuration a été violée, et l’appelant a demandé que la méthode ne résolve pas les conflits. Les paramètres ne changent pas et les conflits restent.

Valeur de retour

IPrintCoreHelper ::SetOptions doit retourner l’une des valeurs suivantes.

Retourner le code Description
S_OK L’opération a réussi.
E_INVALIDARG Un ou plusieurs arguments ne sont pas valides, ou la fonctionnalité n’a pas été prise en charge.
E_OUTOFMEMORY La mémoire du tableau de résultats n’a pas pu être allouée.

Pour d’autres échecs, la méthode doit retourner un code d’erreur COM standard.

Remarques

IPrintCoreHelper ::SetOptions pouvez être utilisé pour modifier plusieurs paramètres simultanément et résoudre les contraintes une fois que toutes les options sélectionnées ont été définies. Les modifications apportées aux options sont appliquées séquentiellement, à partir du début de la pFOPairs tableau. Par conséquent, si la même fonctionnalité apparaît deux fois dans ce tableau, seule la dernière option de la fonctionnalité est sélectionnée. Les modifications apportées aux options ne sont pas validées (autrement dit, enregistrées dans le Registre), sauf si le paramètre bResolveConflicts est TRUE.

Pour la plupart des scénarios, le paramètre bResolveConflicts doit être défini sur TRUE. Définissez ce paramètre sur FALSE si vous souhaitez inviter l’utilisateur à résoudre les conflits.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête prcomoem.h (include Prcomoem.h)

Voir aussi

IPrintCoreHelper

IPrintCoreHelper ::GetOption