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) |