IPrintOemUni::D riverDMS-Methode (prcomoem.h)

Mit der IPrintOemUni::DriverDMS Methode kann ein Rendering-Plug-In für Unidrv angegeben werden, dass es eine gerätegesteuerte Zeichnungsoberfläche verwendet.

Syntax

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

Parameter

pDevObj

Anrufer-bereitgestellter Zeiger auf eine DEVOBJ-Struktur .

pBuffer

Aufrufer-bereitgestellter Zeiger auf einen Puffer zum Empfangen von methodenspezifischen Flags. (Siehe den folgenden Abschnitt "Hinweise".)

cbSize

Von pBuffer angegebene Anrufergröße in Bytes des Puffers, auf den pBuffer verweist.

pcbNeeded

Anrufer-bereitgestellter Zeiger an einen Speicherort, um die erforderliche Mindestgröße von pBuffer zu erhalten.

Rückgabewert

Die Methode muss einen der folgenden Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Der Vorgang wurde erfolgreich ausgeführt.
E_FAIL
Fehler beim Vorgang

Bemerkungen

Ein Rendering-Plug-In für Unidrv muss die IPrintOemUni::DriverDMS Methode implementieren. Die Methode wird nur aufgerufen, wenn Unidrv einen gültigen Schnittstellenzeiger auf das Rendering-Plug-In des OEM findet.

Mit der IPrintOemUni::DriverDMS Methode kann ein Rendering-Plug-In angeben, dass er eine gerätegesteuerte Zeichnungsoberfläche anstelle der standardmäßigen GDI-verwalteten Oberfläche verwendet.

Die Methode muss HOOK_ präfixierten Flags im Puffer angeben, auf den pBuffer verweist, der angibt, welche der Grafikfunktionen des Plug-Ins DDI-Hookings für die Zeichnungsoberfläche aufgerufen werden sollen. Die HOOK_ präfixierten Flags werden in winddi.h definiert und in der Beschreibung der Funktion EngAssociateSurface beschrieben. Von Unidrv an EngAssociateSurface angegebene IPrintOemUni::DriverDMS Flags werden übergeben. (Beachten Sie, dass das Rendering-Plug-In für die Unterstützung einer gerätegesteuerten Oberfläche alle Zeichnungsfunktionen anbinden muss.) Weitere Informationen finden Sie unter Behandeln von Device-Managed Surfaces.

Wenn IPrintOemUni::DriverDMS Flags im Puffer festgelegt werden, auf den pBuffer verweist, erstellt Unidrv eine gerätegesteuerte Oberfläche, indem Sie EngCreateDeviceSurface aufrufen. Wenn IPrintOemUni::DriverDMS keine Flags festgelegt werden, erstellt Unidrv eine GDI-verwaltete Oberfläche durch Aufrufen von EngCreateBitmap. In beiden Fällen IPrintOemUni::DriverDMS sollte S_OK zurückgegeben werden.

Wenn die von cbSize angegebene Ausgabepuffergröße zu klein ist, sollte die Methode die erforderliche Größe an der Position angeben, die von pcbNeededed verweist, setLastError(ERROR_INSUFFICIENT_BUFFER) aufrufen und E_FAIL zurückgeben.

Requirements (Anforderungen)

   
Zielplattform Desktop
Header prcomoem.h (einschließlich Prcomoem.h)