IPrintOemPS ::EnableDriver, méthode (prcomoem.h)
La méthode IPrintOemPS ::EnableDriver permet un plug-in de rendu pour Pscript pour 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 de retour
La méthode doit retourner l’une des valeurs suivantes :
Retourner le code | Description |
---|---|
S_OK | L’opération a réussi. |
E_FAIL | Échec de l’opération |
E_NOTIMPL | La 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 des 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 terminées dans cette dernière 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 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 connecté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 connectées :
Si vous fournissez une fonction de raccordement personnalisée, elle préempt 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 DEVOBJ pointeurs. Il existe deux façons pour ces fonctions de recevoir des pointeurs PDEV :
En tant que contenu du dhpdev membre d’une structure SURFOBJ pour la surface de destination. Pour la fonction de raccordement personnalisée équivalente, la structure SURFOBJ de destination dhpdev membre pointe vers une structure DEVOBJ et doit être castée en type PDEVOBJ quand elle est référencée. Un exemple de fonction DDI graphique est DrvBitBlt.
En tant qu’argument d’entrée pour un paramètre dhpdev. La fonction de raccordement personnalisée équivalente doit convertir ce paramètre d’entrée en type PDEVOBJ lors du référencement. Un exemple de fonction DDI graphique est DrvDitherColor.
Alors qu’une DLL graphique d’imprimante inclut les adresses de son DrvEnablePDEV, DrvDisablePDEVet fonctions DrvResetPDEV dans la structure DRVENABLEDATA, un plug-in de rendu pour Pscript5 implémente EnablePDEV, DisablePDEVet ResetPDEV en tant que méthodes de l’interface IPrintOemPS et ne place pas leurs adresses dans la structure DRVENABLEDATA.
Si 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 connecté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 des plug-ins de rendu, consultez Personnalisation des pilotes d’imprimantes microsoft.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Bureau |
d’en-tête | prcomoem.h (include Prcomoem.h) |