Share via


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

La méthode IPrintOemUni ::EnableDriver permet à un plug-in de rendu pour Unidrv 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é

Remarques

Un plug-in de rendu pour Unidrv doit implémenter la méthode IPrintOemUni ::EnableDriver .

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

Comme la fonction DrvEnableDriver , la méthode IPrintOemUni ::EnableDriver est chargée de fournir les adresses des 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 IPrintOemUni ::EnableDriver est facultative.

Si vous implémentez IPrintOemUni ::EnableDriver, vous devez également implémenter IPrintOemUni ::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 IPrintOemUni ::EnableDriver, mais pas libérée dans IPrintOemUni ::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 Unidrv peut raccorder une fonction DDI graphique uniquement si le pilote Unidrv définit la fonction. Les fonctions DDI graphiques suivantes sont définies dans Unidrv et/ou Pscript5 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 les fonctions DDI graphiques de recevoir des pointeurs PDEV :

  • 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.

  • 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.

Notez que si une DLL graphique d’imprimante inclut les adresses de ses fonctions DrvEnablePDEV, DrvDisablePDEV et DrvResetPDEV dans la structure DRVENABLEDATA, un plug-in de rendu exporte explicitement EnablePDEV, DisablePDEV et ResetPDEV en tant que méthodes de l’interface IPrintOemUni et ne place pas leurs adresses dans la structure DRVENABLEDATA.

Si les méthodes IPrintOemUni ::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 seul 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)