Freigeben über


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äteverwaltete Zeichnungsoberfläche verwendet.

Syntax

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

Parameter

pDevObj

Vom Aufrufer bereitgestellter Zeiger auf eine DEVOBJ- Struktur.

pBuffer

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

cbSize

Vom Aufrufer bereitgestellte Größe des Puffers in Byte, auf den pBuffer-verweist.

pcbNeeded

Vom Anrufer bereitgestellter Zeiger auf einen Standort, um die erforderliche mindeste pBuffer- Größe zu empfangen.

Rückgabewert

Die Methode muss einen der folgenden Werte zurückgeben.

Rückgabecode Beschreibung
S_OK
Der Vorgang war erfolgreich.
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 es eine vom Gerät verwaltete Zeichnungsoberfläche anstelle der standardmäßigen GDI-verwalteten Oberfläche verwendet.

Die Methode muss HOOK_-präfixierten Flags im Puffer angeben, auf die durch pBuffer-verwiesen wird, und gibt an, welche der Grafik-DDI-Hookingfunktionen des Plug-Ins für die Zeichnungsoberfläche aufgerufen werden sollen. Die HOOK_präfix-Flags werden in winddi.h definiert und in der Beschreibung der EngAssociateSurface Funktion beschrieben. Durch IPrintOemUni::DriverDMS angegebene Flags werden von Unidrv an EngAssociateSurface-übergeben. (Beachten Sie, dass für die Unterstützung einer geräteverwalteten Oberfläche das Rendering-Plug-In alle Zeichnungsfunktionen einbinden muss.) Weitere Informationen finden Sie unter Handling Device-Managed Surfaces.

Wenn IPrintOemUni::DriverDMS Flags im Puffer festlegt, auf die pBuffer-verweist, erstellt Unidrv eine geräteverwaltete Oberfläche, indem EngCreateDeviceSurfaceaufgerufen wird. Wenn IPrintOemUni::DriverDMS keine Flags festlegen, erstellt Unidrv eine GDI-verwaltete Oberfläche, indem EngCreateBitmap-aufgerufen wird. In einem dieser Fälle sollte IPrintOemUni::DriverDMS S_OK zurückgeben.

Wenn die durch cbSize angegebene Ausgabepuffergröße zu klein ist, sollte die Methode die erforderliche Größe in der Position angeben, auf die pcbNeedverweist, rufen Sie SetLastError(ERROR_INSUFFICIENT_BUFFER) auf, und geben Sie E_FAIL zurück.

Anforderungen

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