Méthode IPrintOemUni ::D riverDMS (prcomoem.h)

La IPrintOemUni::DriverDMS méthode permet à un plug-in de rendu pour Unidrv d’indiquer qu’il utilise une surface de dessin gérée par l’appareil.

Syntaxe

HRESULT DriverDMS(
  PVOID  pDevObj,
  PVOID  pBuffer,
  DWORD  cbSize,
  PDWORD pcbNeeded
);

Paramètres

pDevObj

Pointeur fourni par l’appelant vers une structure DEVOBJ .

pBuffer

Pointeur fourni par l’appelant vers une mémoire tampon pour recevoir les indicateurs spécifiés par la méthode. (Voir la section Remarques suivante.)

cbSize

Taille fournie par l’appelant, en octets, de la mémoire tampon pointée par pBuffer.

pcbNeeded

Pointeur fourni par l’appelant vers un emplacement pour recevoir la taille pBuffer minimale requise.

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 IPrintOemUni::DriverDMS méthode . La méthode est appelée uniquement si Unidrv trouve un pointeur d’interface valide vers le plug-in de rendu oem.

La IPrintOemUni::DriverDMS méthode permet à un plug-in de rendu d’indiquer qu’il utilisera une surface de dessin gérée par l’appareil au lieu de la surface gérée par GDI par défaut.

La méthode doit spécifier HOOK_ indicateurs préfixés dans la mémoire tampon pointée par pBuffer, indiquant les fonctions de raccordement DDI graphiques du plug-in qui doivent être appelées pour la surface de dessin. Les indicateurs préfixés HOOK_ sont définis dans winddi.h et décrits dans la description de la fonction EngAssociateSurface . Les indicateurs spécifiés par IPrintOemUni::DriverDMS sont passés par Unidrv à EngAssociateSurface. (Notez que pour prendre en charge une surface gérée par l’appareil, le plug-in de rendu doit raccorder toutes les fonctions de dessin.) Pour plus d’informations, consultez Gestion Device-Managed Surfaces.

Si IPrintOemUni::DriverDMS définit des indicateurs dans la mémoire tampon vers laquelle pBuffer pointe, Unidrv crée une surface gérée par l’appareil en appelant EngCreateDeviceSurface. Si IPrintOemUni::DriverDMS ne définit aucun indicateur, Unidrv crée une surface gérée par GDI en appelant EngCreateBitmap. Dans l’un ou l’autre de ces cas, IPrintOemUni::DriverDMS doit retourner S_OK.

Si la taille de mémoire tampon de sortie spécifiée par cbSize est trop petite, la méthode doit spécifier la taille requise à l’emplacement pointé par pcbNeeded, appeler SetLastError(ERROR_INSUFFICIENT_BUFFER) et retourner E_FAIL.

Configuration requise

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