Méthode IPrintCoreHelperUni ::SetOptions (prcomoem.h)
La méthode IPrintCoreHelperUni ::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, IPrintCoreHelperUni ::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 de IPrintOemPS ::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 IPrintCoreHelperUni ::SetOptions doit résoudre les conflits qui proviennent d’une ou de plusieurs contraintes dans la vue GPD du fichier de configuration, ainsi que des contraintes pour les fonctionnalités implémentées par Unidrv 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 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 IPrintCoreHelperUni ::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 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 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 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
IPrintCoreHelperUni ::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
IPrintCoreHelperUni ::SetOptions peut être utilisé pour apporter plusieurs modifications de 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, 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 (include Prcomoem.h) |