Share via


Méthode IPrintOemPS ::EnableDriver (prcomoem.h)

La méthode IPrintOemPS ::EnableDriver permet à un plug-in de rendu pour Pscript de raccorder certaines fonctions DDI graphiques.

Syntaxe

HRESULT EnableDriver(
  DWORD          DriverVersion,
  DWORD          cbSize,
  PDRVENABLEDATA pded
);

Paramètres

DriverVersion

Numéro de version de l’interface fournie par l’appelant. Cette valeur est définie par PRINTER_OEMINTF_VERSION, dans printoem.h.

cbSize

Taille fournie par l’appelant, en octets, de la structure pointée par pded.

pded

Pointeur fourni par l’appelant vers une structure DRVENABLEDATA .

Valeur retournée

La méthode doit retourner l’une des valeurs suivantes :

Code de retour Description
S_OK L’opération a réussi.
E_FAIL L’opération a échoué
E_NOTIMPL Cette méthode n'est pas implémentée.

Remarques

La méthode IPrintOemPS ::EnableDriver permet à un plug-in de rendu d’effectuer les mêmes types d’opérations que la fonction DrvEnableDriver exportée par les DLL graphiques d’imprimante.

Comme la fonction DrvEnableDriver , la méthode IPrintOemPS ::EnableDriver est chargée de fournir des adresses de fonctions DDI graphiques prises en charge en interne, appelées fonctions de raccordement. Il peut également effectuer d’autres opérations d’initialisation ponctuelles. Contrairement à la fonction DrvEnableDriver , l’implémentation de la méthode IPrintOemPS ::EnableDriver est facultative.

Si vous implémentez IPrintOemPS ::EnableDriver, vous devez également implémenter IPrintOemPS ::D isableDriver. Les actions commencées dans l’ancienne méthode doivent peut-être être effectuées dans la deuxième méthode. Par exemple, si une mémoire tampon volumineuse est allouée dans IPrintOemPS ::EnableDriver, mais pas libérée dans IPrintOemPS ::D isableDriver, une fuite de mémoire peut se produire.

La méthode doit remplir la structure DRVENABLEDATA fournie et allouer un tableau de structures DRVFN . Il doit remplir le tableau avec des pointeurs vers des fonctions de raccordement, ainsi que des valeurs d’index définies par winddi.h qui identifient les fonctions DDI graphiques raccordées.

Un plug-in de rendu pour Pscript5 peut raccorder une fonction DDI graphique uniquement si le pilote Pscript5 définit la fonction. Les fonctions DDI graphiques suivantes sont définies dans Pscript5 et ou Unidrv et peuvent donc être raccordées :

Si vous fournissez une fonction de raccordement personnalisée, elle préempte la fonction DDI graphique équivalente du pilote. Les fonctions de raccordement peuvent également rappeler les fonctions DDI graphiques du pilote. Pour plus d’informations, consultez Fonctions DDI graphiques personnalisées.

Les fonctions de raccordement personnalisées ont les mêmes paramètres d’entrée et de sortie que la fonction DDI graphique équivalente, à une exception près : où les fonctions DDI graphiques reçoivent des pointeurs PDEV, les fonctions de raccordement personnalisées reçoivent des pointeurs DEVOBJ . Il existe deux façons pour ces fonctions de recevoir des pointeurs PDEV :

  1. Contenu du membre dhpdev d’une structure SURFOBJ pour la surface de destination. Pour la fonction de raccordement personnalisée équivalente, le membre dhpdev de la structure SURFOBJ de destination pointe vers une structure DEVOBJ et doit être converti en type PDEVOBJ lorsqu’il est référencé. DrvBitBlt est un exemple de fonction DDI graphique.

  2. En tant qu’argument d’entrée pour un paramètre dhpdev . La fonction de raccordement personnalisée équivalente doit caster ce paramètre d’entrée en type PDEVOBJ lors de son référencement. DrvDitherColor est un exemple de fonction DDI graphique.

Alors qu’une DLL graphique d’imprimante inclut les adresses de ses fonctions DrvEnablePDEV, DrvDisablePDEV et DrvResetPDEV dans la structure DRVENABLEDATA, un plug-in de rendu pour Pscript5 implémente EnablePDEV, DisablePDEV et ResetPDEV en tant que méthodes de l’interface IPrintOemPS et ne place pas leurs adresses dans la structure DRVENABLEDATA.

Si les méthodes IPrintOemPS ::EnableDriver sont exportées par plusieurs plug-ins de rendu, les méthodes sont appelées dans l’ordre dans lequel les plug-ins sont spécifiés pour l’installation.

Chaque fonction DDI graphique peut être raccordée par un plug-in de rendu. Si plusieurs plug-ins tentent de raccorder la même fonction DDI graphique, tous les raccordements après le premier sont ignorés.

Pour plus d’informations sur la création et l’installation de plug-ins de rendu, consultez Personnalisation des pilotes d’imprimante de Microsoft.

Configuration requise

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