Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La méthode IPrintOemPrintTicketProvider ::BindPrinter permet au pilote principal d’associer un ensemble d’URI (Uniform Resource Identifier) d’un espace de noms privé à un appareil. Cette méthode permet également au plug-in de mettre en cache des informations (telles que le handle d’imprimante) qui peuvent être utilisées ultérieurement.
Syntaxe
HRESULT BindPrinter(
[in] HANDLE hPrinter,
[in] INT version,
[out] POEMPTOPTS pOptions,
[out] INT *cNamespaces,
[out] BSTR **ppNamespaces
);
Paramètres
[in] hPrinter
Poignée d’impression du spouleur, fournie par Unidrv. Le fournisseur ne doit pas fermer ce handle à tout moment, car le client du fournisseur est responsable de la gestion de la durée de vie de ce handle. Le fournisseur peut mettre en cache le handle d’impression ; tous les appels futurs sur cet objet sont relatifs à l’imprimante associée à ce handle.
[in] version
Numéro de version principal du schéma d’impression. Windows Vista prend uniquement en charge la version 1.
[out] pOptions
Pointeur vers une variable qui reçoit l’une des valeurs énumérées suivantes :
OEMPT_DEFAULT
Le système place un encodage binaire (objet binaire volumineux [BLOB]) du privé DEVMODEW structure dans le ticket d’impression dans une conversion d’un DEVMODEW en ticket d’impression.
OEMPT_NOSNAPSHOT
Le système ne placera pas d’encodage binaire (objet blob) de la structure DEVMODEW privée dans le ticket d’impression dans une conversion d’un DEVMODEW en ticket d’impression. Utilisez cette valeur si tous les membres DEVMODEW publics et privés sont entièrement représentés dans le ticket d’impression.
L’objet OEM appelé doit définir la valeur pointée par ce paramètre.
[out] cNamespaces
Pointeur vers une variable qui reçoit le nombre d’URI d’espace de noms privés utilisés dans le plug-in. Ce nombre représente le nombre de chaînes dans le tableau pointé par *ppNamespaces.
[out] ppNamespaces
Pointeur vers une variable qui reçoit l’adresse du premier élément d’un tableau BSTR. Le plug-in remplit chaque position de tableau avec un URI d’espace de noms. Pour plus d’informations sur ce paramètre, consultez la section Remarques suivante.
Valeur de retour
IPrintOemPrintTicketProvider ::BindPrinter doit retourner l’une des valeurs suivantes.
| Retourner le code | Description |
|---|---|
| S_OK | L’opération a réussi. |
| E_VERSION_NOT_SUPPORTED | Le plug-in ne prend pas en charge la version du schéma d’impression spécifié dans le paramètre version. |
Remarques
Le plug-in est responsable de l’allocation de mémoire pour le tableau pointé par le paramètre ppNamespaces et pour les chaînes d’URI d’espace de noms. Le tableau doit être alloué à l’aide de la fonction CoTaskMemAlloc ; les chaînes d’espace de noms doivent être allouées à l’aide de la fonction SysAllocString. Ces deux fonctions sont décrites dans la documentation du Kit de développement logiciel (SDK) Microsoft Windows. Le tableau vers lequel pointe le paramètre ppNamespaces n’est pas nécessaire pour contenir les espaces de noms pour les mots clés de schéma d’impression ou l’infrastructure de schéma d’impression.
La liaison à un appareil permet au fournisseur de mettre en cache certains objets et de gérer qu’il aura besoin de services futurs de ticket d’impression ou d’impression sur cet appareil. Par exemple, le handle d’imprimante dans hPrinter peut être mis en cache. IPrintOemPrintTicketProvider ::BindPrinter est garanti d’être appelé une seule fois.
Un objet IPrintOemPrintTicketProvider ne doit pas être en mesure de lier plusieurs fois. Le gestionnaire de tickets d’impression utilise toujours différentes IPrintOemPrintTicketProvider instances d’objet pour la liaison à différents appareils. Toutes les ressources acquises dans un appel réussi à IPrintOemPrintTicketProvider ::BindPrinter doivent être libérées lorsque le nombre de références d’un objet IPrintOemPrintTicketProvider est égal à zéro. (Notez que le fournisseur ne doit pas fermer le handle passé dans l’appel à BindPrinter). Le gestionnaire de tickets d’impression peut créer plusieurs fournisseurs pour le même appareil, dans différentes versions, si plusieurs versions sont prises en charge.
Exigences
| Exigence | Valeur |
|---|---|
| plateforme cible | Bureau |
| d’en-tête | prcomoem.h (include Prcomoem.h) |
Voir aussi
IPrintOemPrintTicketProvider ::ConvertDevModeToPrintTicket