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

Mit IPrintOemUni::DriverDMS der Methode kann ein Rendering-Plug-In für Unidrv angeben, 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. (Weitere Informationen finden Sie im folgenden Abschnitt mit den Anmerkungen.)

cbSize

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

pcbNeeded

Vom Aufrufer bereitgestellter Zeiger auf einen Speicherort, um die erforderliche pBuffer-Mindestgröße 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

Hinweise

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 IPrintOemUni::DriverDMS der Methode kann ein Rendering-Plug-In angeben, dass es eine geräteseitig verwaltete Zeichnungsoberfläche anstelle der von GDI verwalteten Standardoberfläche verwendet.

Die -Methode muss HOOK_-Präfix-Flags im Puffer angeben, auf den pBuffer verweist, was angibt, welche der Grafik-DDI-Hookingfunktionen des Plug-Ins für die Zeichnungsoberfläche aufgerufen werden sollen. Die HOOK_ präfixierten Flags werden in winddi.h definiert und in der Beschreibung der EngAssociateSurface-Funktion beschrieben. Von angegebene IPrintOemUni::DriverDMS Flags werden von Unidrv an EngAssociateSurface übergeben. (Beachten Sie, dass das Rendering-Plug-In alle Zeichnungsfunktionen einbinden muss, um eine geräteseitig verwaltete Oberfläche zu unterstützen.) Weitere Informationen finden Sie unter Behandeln Device-Managed Surfaces.

Wenn IPrintOemUni::DriverDMS Flags im Puffer festgelegt werden, auf den pBuffer verweist, erstellt Unidrv eine geräteverwaltete Oberfläche durch Aufrufen von EngCreateDeviceSurface. Wenn IPrintOemUni::DriverDMS keine Flags festgelegt werden, erstellt Unidrv eine von 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, auf die von pcbNeed verwiesen wird, SetLastError(ERROR_INSUFFICIENT_BUFFER) aufrufen und E_FAIL zurückgeben.

Anforderungen

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