IPrintOemUni::D riverDMS, méthode (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 des indicateurs spécifiés par la méthode. (Consultez 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 minimale requise de pBuffer .

Valeur de retour

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

Code de retour Description
S_OK
L’opération a réussi.
E_FAIL
Échec de l’opération

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 d’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 quelles fonctions de raccordement DDI graphiques du plug-in doivent être appelées pour la surface de dessin. Les indicateurs HOOK_ préfixés 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 des surfaces Device-Managed.

Si IPrintOemUni::DriverDMS vous définissez des indicateurs dans la mémoire tampon pointée par pBuffer, Unidrv crée une surface gérée par l’appareil en appelant EngCreateDeviceSurface. Si IPrintOemUni::DriverDMS aucun indicateur n’est défini, 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.

If the output buffer size specified by cbSize is too small, the method should specify the required size in the location pointed to by pcbNeeded, call SetLastError(ERROR_INSUFFICIENT_BUFFER), and return E_FAIL.

Configuration requise

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