Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die IPrintOemUni::MemoryUsage-Methode kann mit Unidrv-unterstützten Druckern verwendet werden, um den für die Verwendung durch die IPrintOemUni::ImageProcessing-Methode des Rendering-Plug-Ins erforderlichen Arbeitsspeicher anzugeben.
Syntax
HRESULT MemoryUsage(
PDEVOBJ pdevobj,
POEMMEMORYUSAGE pMemoryUsage
);
Parameter
pdevobj
Vom Aufrufer bereitgestellter Zeiger auf eine DEVOBJ- Struktur.
pMemoryUsage
Vom Aufrufer bereitgestellter Zeiger auf eine OEMMEMORYUSAGE Struktur.
Rückgabewert
Die Methode muss einen der folgenden Werte zurückgeben.
| Rückgabecode | Beschreibung |
|---|---|
|
Der Vorgang war erfolgreich. |
|
Fehler beim Vorgang. |
|
Die Methode ist nicht implementiert. |
Bemerkungen
Der Zweck der IPrintOemUni::MemoryUsage Methode besteht darin, dem Unidrv-Treiber zu helfen, die optimale Größe für die GDI-Zeichnungsoberfläche basierend auf den Speicheranforderungen der IPrintOemUni::ImageProcessing-Methode zu bestimmen. Die Implementierung der IPrintOemUni::MemoryUsage-Methode ist optional.
Die IPrintOemUni::MemoryUsage-Methode sollte zwei Werte wie folgt zurückgeben:
-
Die Größe des dauerhaft zugewiesenen Speichers in fester Größe, den die IPrintOemUni::ImageProcessing- Methode zuordnen muss.
Dieser Wert wird im dwFixedMemoryUsage Member der OEMMEMORYUSAGE Struktur zurückgegeben.
-
Die Zum Speichern einer Bitmap erforderliche Menge, nachdem die IPrintOemUni::ImageProcessing--Methode die Verarbeitung abgeschlossen hat.
Das Rendering-Plug-In gibt diese verarbeitete Bitmap entweder an Unidrv zurück oder spools sie. Die zum Speichern der verarbeiteten Bitmap erforderliche Speichermenge wird in der dwPercentMemoryUsage Member der OEMMEMORYUSAGE-Struktur zurückgegeben und als Prozentsatz der Größe der Quellbitmap ausgedrückt.
Die dwMaxBandSize Member der OEMMEMORYUSAGE-Struktur wird von Unidrv bereitgestellt und gibt die standardmäßige maximale Bandgröße an.
Bevor der Unidrv-Treiber eine Zeichnungsoberfläche erstellt, fordert er GDI an, die optimale Größe für Bildbandbitmaps basierend auf dem verfügbaren Systemspeicher zu ermitteln. Dieser optimale Speicherplatz muss für jede Bandbitmap zwischen einer Quellbitmap freigegeben werden, die an die IPrintOemUni::ImageProcessing-Methode und eine (in der Regel kleinere) verarbeitete Bitmap übergeben wird, die die Methode entweder zurückgibt oder ausgibt. Unidrv ruft die IPrintOemUni::MemoryUsage-Methode des Rendering-Plug-Ins auf, sofern vorhanden, und verwendet das Ergebnis, um zu berechnen, wie der optimale Speicherplatz am besten dividiert werden kann.
Angenommen, GDI meldet, dass die optimale Speichermenge für die Zeichnung 6 Mb beträgt (in der OEMMEMORYUSAGE-Struktur dwMaxBandSize Member) enthalten ist, während die IPrintOemUni::MemoryUsage-Methode des Rendering-Plug-Ins Werte von Null für dwFixedMemoryUsage und 50 für dwPercentMemoryUsagezurückgibt. Der Wert 50 bedeutet, dass die IPrintOemUni::ImageProcessing Ausgabebitmaps der Methode 50 Prozent kleiner als die Quellbitmaps sind. Daher weist Unidrv eine Quellbitmapgröße von 4 MB zu, wodurch Ausgabebitmaps 2 MB groß sind.
Wenn keine IPrintOemUni::MemoryUsage Methode bereitgestellt wird, weist Unidrv dem Quellbitmap den optimalen verfügbaren Platz zu. Dies ist akzeptabel, wenn die IPrintOemUni::ImageProcessing--Methode die verarbeitete Bitmap im für die Quellbitmap zugewiesenen Speicherplatz zurückgibt. Wenn jedoch die IPrintOemUni::ImageProcessing--Methode eines Rendering-Plug-Ins Platz für eine Zielbitmap zuweist, aber keine IPrintOemUni::MemoryUsage Methode bereitstellt, liegt das Ergebnis darin, dass mehr Arbeitsspeicher für Bitmaps zugewiesen wird als die optimale verfügbare Größe, was möglicherweise zu Leistungsbeeinträchtigungen führt.
Die IPrintOemUni::MemoryUsage-Methode ist optional. Wenn ein Rendering-Plug-In diese Methode implementiert, muss die IPrintOemUni::GetImplementedMethod--Methode S_OK zurückgeben, wenn es "MemoryUsage" als Eingabe empfängt.
Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform- | Desktop |
| Header- | prcomoem.h (einschließlich Prcomoem.h) |