Méthode IPrintCoreHelper ::SetOptions (prcomoem.h)

La méthode IPrintCoreHelper ::SetOptions définit plusieurs paires fonctionnalité-option en même temps.

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 doit 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 obligatoire. Dans la plupart des autres situations, 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 lors d’opérations telles que le remplacement complet de l’interface utilisateur, où la structure DEVMODEW retournée par un DDI, telle que DrvDocumentPropertySheets, est prise en charge 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 de 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, Pscript ou le processeur d’impression. Si la valeur est TRUE, cette méthode doit tenter de résoudre le conflit. Si la valeur est FALSE, cette méthode ne doit pas tenter de résoudre les conflits. Pour plus d'informations, consultez la section Notes.

[in] pFOPairs

Tableau d’éléments PRINT_FEATURE_OPTION , où chaque élément contient une paire fonctionnalité-option. Chaque paire fonctionnalité-option 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 tard dans le tableau (c’est-à-dire, à un index plus élevé) remplacent ceux qui apparaissent plus tôt dans le tableau.

[in] cPairs

Nombre de paires fonctionnalité-option pointées vers le paramètre pFOPairs .

[out] pcPairsWritten

Pointeur vers une variable qui reçoit le nombre de paires fonctionnalité-option qui ont été correctement enregistrées avant que IPrintCoreHelper ::SetOptions ne soit retourné ou é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 le status de la résolution du conflit. La status 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 une 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 retournée

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

Code de retour Description
S_OK L’opération a réussi.
E_INVALIDARG Un ou plusieurs arguments n’est pas valide, 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 les autres échecs, la méthode doit retourner un code d’erreur COM standard.

Remarques

IPrintCoreHelper ::SetOptions peut être utilisé pour modifier plusieurs paramètres simultanément et pour 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, en commençant par le début du tableau pFOPairs . 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 (c’est-à-dire enregistrées dans le Registre), sauf si le paramètre bResolveConflicts a la valeur TRUE.

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

Configuration requise

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

Voir aussi

IPrintCoreHelper

IPrintCoreHelper ::GetOption