Remplacement des pages de la feuille de propriétés fournies par le pilote
Important
La plateforme d’impression moderne est le moyen privilégié de Windows pour communiquer avec les imprimantes. Nous vous recommandons d’utiliser le pilote de classe IPP en boîte de Microsoft, ainsi que les applications de support d’impression (PSA), pour personnaliser l’expérience d’impression dans Windows 10 et 11 pour le développement de périphériques d’impression.
Pour plus d’informations, veuillez consulter la section Plateforme d’impression moderne et le Guide de conception des applications de support d’impression.
L'interface COM IPrintCoreUI2 fournit quatre méthodes qu'un plug-in Pscript5 UI fonctionnant sous Windows XP et les versions ultérieures du système d'exploitation Windows doit utiliser lorsqu'il a l'intention de remplacer entièrement les pages UI standard du pilote principal. (Le terme pilote de base fait référence au pilote d'imprimante Unidrv ou Pscript5). Ces méthodes sont les suivantes :
IPrintCoreUI2::EnumConstrainedOptions
Ces méthodes ne sont prises en charge que pendant l'exécution des méthodes IPrintOemUI::DocumentPropertySheets et IPrintOemUI::DevicePropertySheets du plug-in UI et de leurs routines de rappel des feuilles de propriété. Un plug-in d'interface utilisateur prend en charge ces méthodes pour afficher sa propre interface utilisateur. Si elles ne sont pas prises en charge, ces méthodes renvoient la valeur E_NOTIMPL.
Le pilote principal affiche sa propre interface utilisateur pour les feuilles de propriétés dans deux cas : pour les feuilles de propriétés DrvDocumentPropertySheets et pour les feuilles de propriétés DrvDevicePropertySheets. La première méthode affiche les propriétés qui ne s'appliquent qu'aux documents (propriétés collées aux documents), tandis que la seconde méthode affiche les propriétés qui s'appliquent à un appareil (propriétés collées à l'appareil ou à l'imprimante).
Le pilote de base se souvient du type de feuille de propriété qu'il gère (et donc du mode -- document-sticky ou imprimante-sticky). Le pilote principal enregistre ces informations d'état dans une structure (la structure OEMUIOBJ) qu'il crée pour l'instance d'interface utilisateur. Lorsque le pilote principal appelle les méthodes d'interface d'un plug-in, il transmet un pointeur vers une structure OEMUIOBJ, de sorte que lorsqu'un plug-in rappelle le pilote principal à partir de IPrintCoreUI2::EnumConstrainedOptions, IPrintCoreUI2::GetOptions, IPrintCoreUI2::SetOptions, ou IPrintCoreUI2::WhyConstrained, ces méthodes renvoient le pointeur au pilote principal, qui est alors en mesure de déterminer le mode.
Pour IPrintCoreUI2::EnumConstrainedOptions, IPrintCoreUI2::SetOptions, et IPrintCoreUI2::WhyConstrained, seules les fonctionnalités collant au document sont prises en charge lors de l'exécution de IPrintOemUI::DocumentPropertySheets ou de sa routine de rappel de la feuille de propriétés et seules les fonctionnalités collant à l'imprimante sont prises en charge lors de l'exécution de IPrintOemUI::DevicePropertySheets ou de sa routine de rappel de la feuille de propriétés. Pour IPrintCoreUI2::SetOptions, toute fonctionnalité dont l'adhésivité ne correspond pas au mode d'adhésivité actuel doit être ignorée. Lorsque IPrintCoreUI2::EnumConstrainedOptions ou IPrintCoreUI2::WhyConstrained est appelé pour une fonctionnalité dont l'adhérence ne correspond pas au mode d'adhérence actuel, la méthode doit renvoyer E_INVALIDARG.
Pour IPrintCoreUI2::GetOptions, les fonctionnalités collant au document et collant à l'imprimante sont prises en charge en mode collant au document (c'est-à-dire lorsque IPrintOemUI::DocumentPropertySheets ou sa routine de rappel de la feuille de propriétés sont en cours d'exécution), mais seules les fonctionnalités collant à l'imprimante sont prises en charge en mode collant à l'imprimante (lorsque IPrintOemUI::DevicePropertySheets ou sa routine de rappel de la feuille de propriétés sont en cours d'exécution).