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

La méthode IPrintCoreHelperPS ::SetOptions définit plusieurs paires d’options de fonctionnalité 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, IPrintCoreHelperPS ::SetOptions doit utiliser la structure DEVMODEW pointée par pDevmode plutôt que la structure DEVMODEW par défaut ou actuelle. Si cette méthode est appelée à partir du fournisseur de plug-in ou de IPrintOemPS ::D evMode, ce paramètre est obligatoire. Dans la plupart des autres situations, le paramètre doit avoir la valeur NULL. Lorsque le pilote principal définit pDevmode sur NULL, il modifie son état interne plutôt que celui de la structure DEVMODEW transmise. Cela est requis lors d’opérations telles que le remplacement complet de l’interface utilisateur, où la structure DEVMODEW retournée par un DDI, comme DrvDocumentPropertySheets, est en cours de maintenance par le module d’interface utilisateur du pilote principal.

[in] cbSize

Taille, en octets, de la structure DEVMODEW vers laquelle pointe le paramètre pDevmode .

[in] bResolveConflicts

Valeur booléenne qui indique si IPrintCoreHelperPS ::SetOptions doit résoudre les conflits qui proviennent d’une ou de plusieurs contraintes dans la vue PPD du fichier de configuration, ainsi que les contraintes relatives aux fonctionnalités implémentées par 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.

[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 tard dans le tableau (c’est-à-dire, à un index supérieur) remplacent ceux qui apparaissent précédemment 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 que IPrintCoreHelperPS ::SetOptions ait été 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. Le status peut être l’une des valeurs suivantes.

Valeur Description
SETOPTIONS_RESULT_NO_CONFLICT Aucune contrainte spécifiée dans la vue 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 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 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 subsistent.

Valeur retournée

IPrintCoreHelperPS ::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 d’autres échecs, la méthode doit retourner un code d’erreur COM standard.

Remarques

IPrintCoreHelperPS ::SetOptions peut être utilisé pour apporter plusieurs modifications de paramètres simultanément et pour résoudre les contraintes une fois toutes les options sélectionnées définies. Les modifications apportées aux options sont appliquées séquentiellement, à partir du 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, sauf si le paramètre bResolveConflicts a la valeur TRUE.

Dans 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 (inclure Prcomoem.h)

Voir aussi

IPrintCoreHelperPS

IPrintCoreHelperPS ::GetOptions