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 |
---|---|
|
L’opération a réussi. |
|
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) |