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 DEVMODEW-Struktur wird zum Angeben der Merkmale von Anzeige- und Druckgeräten im Unicode-Zeichensatz (breit) verwendet.
Syntax
typedef struct _devicemodeW {
WCHAR dmDeviceName[CCHDEVICENAME];
WORD dmSpecVersion;
WORD dmDriverVersion;
WORD dmSize;
WORD dmDriverExtra;
DWORD dmFields;
union {
struct {
short dmOrientation;
short dmPaperSize;
short dmPaperLength;
short dmPaperWidth;
short dmScale;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
} DUMMYSTRUCTNAME;
POINTL dmPosition;
struct {
POINTL dmPosition;
DWORD dmDisplayOrientation;
DWORD dmDisplayFixedOutput;
} DUMMYSTRUCTNAME2;
} DUMMYUNIONNAME;
short dmColor;
short dmDuplex;
short dmYResolution;
short dmTTOption;
short dmCollate;
WCHAR dmFormName[CCHFORMNAME];
WORD dmLogPixels;
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
union {
DWORD dmDisplayFlags;
DWORD dmNup;
} DUMMYUNIONNAME2;
DWORD dmDisplayFrequency;
DWORD dmICMMethod;
DWORD dmICMIntent;
DWORD dmMediaType;
DWORD dmDitherType;
DWORD dmReserved1;
DWORD dmReserved2;
DWORD dmPanningWidth;
DWORD dmPanningHeight;
} DEVMODEW, *PDEVMODEW, *NPDEVMODEW, *LPDEVMODEW;
Elemente
dmDeviceName[CCHDEVICENAME]
Gibt für eine Anzeige den Namen der DLL des Anzeigetreibers an; Beispiel: "perm3dd" für den 3Dlabs Permedia3-Anzeigetreiber.
Gibt für einen Drucker den "Anzeigenamen" an; Beispiel: "PCL/HP LaserJet" im Fall von PCL/HP LaserJet. Wenn der Name größer als CCHDEVICENAME-Zeichen ist, schneidet der Spooler ihn ab, damit er in das Array passt.
dmSpecVersion
Gibt die Versionsnummer dieser DEVMODEW-Struktur an. Die aktuelle Versionsnummer wird durch die DM_SPECVERSION Konstante in wingdi.h identifiziert.
dmDriverVersion
Gibt für einen Drucker die Vom Entwickler des Druckertreibers zugewiesene Druckertreiberversionsnummer an.
Anzeigetreiber können dieses Element auf DM_SPECVERSION festlegen.
dmSize
Gibt die Größe in Byte der öffentlichen DEVMODEW-Struktur an, nicht einschließlich privater, treiberspezifischer Member, die vom dmDriverExtra-Element identifiziert werden.
dmDriverExtra
Gibt die Anzahl der Byte privater Treiberdaten an, die den Elementen der öffentlichen Struktur folgen. Wenn ein Gerätetreiber keine privaten DEVMODEW-Member bereitstellt, sollte dieses Element auf Null festgelegt werden.
dmFields
Gibt Bitkennzeichnungen an, die angeben, welche der folgenden DEVMODEW-Member verwendet werden. Beispielsweise wird das DM_ORIENTATION Flag festgelegt, wenn das dmOrientation-Element gültige Daten enthält. Die DM_XXX Flags werden in wingdi.h definiert.
DUMMYUNIONNAME
DUMMYUNIONNAME.DUMMYSTRUCTNAME
DUMMYUNIONNAME.DUMMYSTRUCTNAME.dmOrientation
Gibt für Drucker die Papierausrichtung an. Dieses Mitglied kann entweder DMORIENT_PORTRAIT oder DMORIENT_LANDSCAPE sein.
Dieses Element wird nicht für Anzeigen verwendet.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.dmPaperSize
Gibt für Drucker das Papierformat an, auf dem gedruckt werden soll. Dieses Element muss null sein, wenn die Länge und Breite des Papiers durch die Elemente dmPaperLength und dmPaperWidth angegeben werden. Andernfalls muss das dmPaperSize-Element eine der in wingdi.h definierten DMPAPER-Präfixkonstanten sein.
Dieses Element wird nicht für Anzeigen verwendet.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.dmPaperLength
Gibt für Drucker die Länge des Papiers in Einheiten von 1/10 millimeter an. Dieser Wert überschreibt die Länge des papiers, das durch das DmPaperSize-Element angegeben ist, und wird verwendet, wenn das Papier eine benutzerdefinierte Größe aufweist oder wenn es sich bei dem Gerät um einen Punktmatrixdrucker handelt, der eine Seite beliebiger Länge drucken kann.
Dieses Element wird nicht für Anzeigen verwendet.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.dmPaperWidth
Gibt für Drucker die Breite des Papiers in Einheiten von 1/10 millimeter an. Dieser Wert setzt die Breite des Papiers außer Kraft, das durch das dmPaperSize-Element angegeben wird. Dieses Element muss verwendet werden, wenn dmPaperLength verwendet wird.
Dieses Element wird nicht für Anzeigen verwendet.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.dmScale
Gibt für Drucker den Prozentsatz an, um den das Bild für den Druck skaliert werden soll. Die Seitengröße des Bilds wird um den Faktor dmScale/100 auf die physische Seite skaliert. Beispielsweise erfordert ein Bild von 17 Zoll x 22 Zoll mit einem Skalierungswert von 100 17 x 22 Zoll Papier, während dasselbe Bild mit einem Skalierungswert von 50 als Halbformat gedruckt und auf Briefpapier passt.
Dieses Element wird nicht für Anzeigen verwendet.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.dmCopies
Gibt für Drucker die Anzahl der exemplare an, die gedruckt werden sollen, wenn das Gerät mehrere Kopien unterstützt.
Dieses Element wird nicht für Anzeigen verwendet.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.dmDefaultSource
Gibt für Drucker den Standardeingabebehälter des Druckers an. Dies muss eine der DMBIN-Präfixkonstanten sein, die in wingdi.h definiert sind. Wenn die angegebene Konstante DMBIN_FORMSOURCE ist, sollte der Eingabecontainer automatisch ausgewählt werden.
Dieses Element wird nicht für Anzeigen verwendet.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.dmPrintQuality
Gibt für Drucker die Druckerauflösung an. Die folgenden negativen Konstantenwerte werden in wingdi.h definiert:
- DMRES_HIGH
- DMRES_MEDIUM
- DMRES_LOW
- DMRES_DRAFT
Wenn ein positiver Wert angegeben wird, stellt er die Anzahl der Punkte pro Zoll (DPI) für die x-Auflösung dar, und die y-Auflösung wird durch dmYResolution angegeben.
Dieses Element wird nicht für Anzeigen verwendet.
DUMMYUNIONNAME.dmPosition
DUMMYUNIONNAME.DUMMYSTRUCTNAME2
DUMMYUNIONNAME.DUMMYSTRUCTNAME2.dmPosition
Gibt für Displays eine POINTL-Struktur an, die die x- und y-Koordinaten der oberen linken Ecke der Anzeige in Desktopkoordinaten enthält. Dieses Element wird verwendet, um die relative Position von Monitoren in einer Umgebung mit mehreren Monitoren zu bestimmen.
Dieses Element wird nicht für Drucker verwendet.
DUMMYUNIONNAME.DUMMYSTRUCTNAME2.dmDisplayOrientation
Dieses Element wird nur für Windows XP und höher definiert.
Gibt für Displays die Ausrichtung an, an der Bilder präsentiert werden sollen. Wenn das DM_DISPLAYORIENTATION Bit nicht im dmFields-Element festgelegt ist, muss dieses Element auf Null festgelegt werden. Wenn das DM_DISPLAYORIENTATION Bit im dmFields-Element festgelegt ist, muss dieses Element auf einen der folgenden Werte festgelegt werden:
| Wert | Bedeutung |
|---|---|
| DMDO_DEFAULT | Die Ausrichtung des Anzeigegeräts des aktuellen Modus ist die natürliche Ausrichtung des Geräts und sollte als Standard verwendet werden. |
| DMDO_90 | Die Ausrichtung des Anzeigegeräts beträgt 90 Grad (gemessen gegen den Uhrzeigersinn) von der DMDO_DEFAULT. |
| DMDO_180 | Die Ausrichtung des Anzeigegeräts beträgt 180 Grad (gemessen gegen den Uhrzeigersinn) von der DMDO_DEFAULT. |
| DMDO_270 | Die Ausrichtung des Anzeigegeräts beträgt 270 Grad (gemessen gegen den Uhrzeigersinn) von der DMDO_DEFAULT. |
Dieses Element wird nicht für Drucker verwendet.
Weitere Informationen finden Sie unter Zurückgeben von Anzeigemodi: DrvGetModes.
DUMMYUNIONNAME.DUMMYSTRUCTNAME2.dmDisplayFixedOutput
Dieses Element wird nur für Windows XP und höher definiert.
Gibt für Displays mit fester Auflösung an, wie das Gerät einen Modus mit niedrigerer Auflösung auf einer Anzeige mit höherer Auflösung darstellen kann. Wenn die Auflösung eines Anzeigegeräts beispielsweise mit 1024 X 768 behoben ist und sein Modus auf 640 x 480 festgelegt ist, kann das Gerät entweder ein 640 X 480-Bild im 1024 X 768-Bildschirmbereich anzeigen oder das Bild 640 X 480 strecken, um den größeren Bildschirmbereich zu füllen.
Wenn das DM_DISPLAYFIXEDOUTPUT Bit nicht im dmFields-Element festgelegt ist, muss dieses Element auf Null festgelegt werden. Wenn das DM_DISPLAYFIXEDOUTPUT Bit im dmFields-Element festgelegt ist, muss dieses Element auf einen der folgenden Werte festgelegt werden:
| Wert | Bedeutung |
|---|---|
| DMDFO_CENTER | Das Anzeigegerät stellt ein Bild mit niedrigerer Auflösung dar, indem es im größeren Bildschirmbereich zentriert wird. |
| DMDFO_STRETCH | Das Anzeigegerät stellt ein Bild mit niedrigerer Auflösung dar, indem es gestreckt wird, um den größeren Bildschirmbereich auszufüllen. |
Dieses Element wird nicht für Drucker verwendet.
Weitere Informationen finden Sie unter Zurückgeben von Anzeigemodi: DrvGetModes.
dmColor
Gibt für Drucker an, ob ein Farbdrucker Farbe oder Monochrom drucken soll. Dieses Mitglied kann eine von DMCOLOR_COLOR oder DMCOLOR_MONOCHROME sein.
Dieses Element wird nicht für Anzeigen verwendet.
dmDuplex
Gibt bei Druckern den Duplexdruck (doppelseitig) für Duplexdrucker an. Dieses Element kann einer der folgenden Werte sein:
DMDUP_HORIZONTAL
Drucken Sie doppelseitig mit kurzer Kantenbindung.
DMDUP_SIMPLEX
Einseitig drucken.
DMDUP_VERTICAL
Mit langer Kantenbindung wird doppelseitig gedruckt.
Dieses Element wird nicht für Anzeigen verwendet.
dmYResolution
Gibt für Drucker die y-Auflösung des Druckers in DPI an. Wenn dieses Element verwendet wird, gibt das dmPrintQuality-Element die x-Auflösung an.
Dieses Element wird nicht für Anzeigen verwendet.
dmTTOption
Gibt für Drucker an, wie TrueType-Schriftarten gedruckt werden sollen. Dieses Element muss eine der DMTT-Präfixkonstanten sein, die in wingdi.h definiert sind.
Dieses Element wird nicht für Anzeigen verwendet.
dmCollate
Gibt für Drucker an, ob mehrere Kopien sortiert werden sollen. Dieses Element kann einer der folgenden Werte sein:
DMCOLLATE_TRUE
Sortieren Sie beim Drucken mehrerer Kopien.
DMCOLLATE_FALSE
Beim Drucken mehrerer Kopien nicht sortieren.
Dieses Element wird nicht für Anzeigen verwendet.
dmFormName[CCHFORMNAME]
Gibt für Drucker den Namen des zu verwendenden Formulars an; z. B. "Letter" oder "Legal". Dies muss ein Name sein, der durch Aufrufen der Win32-EnumForms-Funktion abgerufen werden kann.
Dieses Element wird nicht für Anzeigen verwendet.
dmLogPixels
Gibt für Displays die Anzahl der logischen Pixel pro Zoll eines Anzeigegeräts an und sollte dem ulLogPixels-Element der GDIINFO-Struktur entsprechen.
Dieses Element wird nicht für Drucker verwendet.
dmBitsPerPel
Gibt für Displays die Farbauflösung in Bits pro Pixel eines Anzeigegeräts an.
Dieses Element wird nicht für Drucker verwendet.
dmPelsWidth
Gibt für Displays die Breite der sichtbaren Geräteoberfläche in Pixel an.
Dieses Element wird nicht für Drucker verwendet.
dmPelsHeight
Gibt für Displays die Höhe der sichtbaren Geräteoberfläche in Pixel an.
Dieses Element wird nicht für Drucker verwendet.
DUMMYUNIONNAME2
DUMMYUNIONNAME2.dmDisplayFlags
Gibt den Anzeigemodus des Geräts an. Dieses Element kann eine Kombination aus den folgenden Werten sein.
| Wert | Bedeutung |
|---|---|
| DM_GRAYSCALE | Gibt an, dass es sich bei der Anzeige um ein nicht einfarbiges Gerät handelt. Wenn dieses Kennzeichen nicht festgelegt ist, wird die Farbe angenommen. Dieses Kennzeichen ist nicht mehr gültig. |
| DM_INTERLACED | Gibt an, dass der Anzeigemodus interlaced ist. Wenn das Kennzeichen nicht festgelegt ist, wird nicht interlaced angenommen. |
Anzeigen von Treibern, die dieses Mitglied verwenden; Beispiel: in der ChangeDisplaySettings-Funktion . Druckertreiber verwenden dieses Mitglied nicht.
DUMMYUNIONNAME2.dmNup
Gibt bei Druckern an, ob das Drucksystem den Druckvorgang "N-up" verarbeitet (mehrere logische EMF-Seiten auf einer einzelnen physischen Seite wiedergeben). Der Wert dieses Elements kann eine der folgenden Sein:
| Wert | Bedeutung |
|---|---|
| DMNUP_SYSTEM | Das Drucksystem verarbeitet den "N-up"-Druck. |
| DMNUP_ONEUP | Das Drucksystem verarbeitet keinen "N-up"-Druck. Eine Anwendung kann dmNup auf DMNUP_ONEUP festlegen, wenn sie "N-up"-Druck eigenständig durchführen will. |
Dieses Element wird nicht für Anzeigen verwendet.
dmDisplayFrequency
Gibt für Displays die Frequenz eines Anzeigegeräts im aktuellen Modus in Hertz an.
Dieses Element wird nicht für Drucker verwendet.
dmICMMethod
Gibt eine der DMICMMETHOD-präfixierten Konstanten an, die in wingdi.h definiert sind.
dmICMIntent
Gibt eine der DMICM-präfixierten Konstanten an, die in wingdi.h definiert sind.
dmMediaType
Gibt eine der DMMEDIA-Präfixkonstanten an, die in wingdi.h definiert sind.
dmDitherType
Gibt eine der dmDITHER-präfixierten Konstanten an, die in wingdi.h definiert sind.
dmReserved1
Ist für die Systemverwendung reserviert und sollte vom Treiber ignoriert werden.
dmReserved2
Ist für die Systemverwendung reserviert und sollte vom Treiber ignoriert werden.
dmPanningWidth
Ist für die Systemverwendung reserviert und sollte vom Treiber ignoriert werden.
dmPanningHeight
Ist für die Systemverwendung reserviert und sollte vom Treiber ignoriert werden.
Bemerkungen
Die DEVMODEW-Struktur ist die Unicode-Version der DEVMODE-Struktur (in der Microsoft Windows SDK-Dokumentation beschrieben). Während Anwendungen entweder die ANSI- oder Unicode-Version der Struktur verwenden können, müssen Treiber die Unicode-Version verwenden.
Bei Druckertreibern wird die DEVMODEW-Struktur zum Angeben von Druckermerkmalen verwendet, die von einem Druckdokument benötigt werden. Sie wird auch zum Angeben der Standardeigenschaften eines Druckers verwendet.
Unmittelbar nach den definierten Membern einer DEVMODEW-Struktur (häufig als öffentliche Member bezeichnet) kann eine Gruppe von treiberdefinierte Membern (häufig als private DEVMODEW-Member bezeichnet) vorhanden sein. Der Treiber liefert die Größe dieses privaten Bereichs in Bytes in dmDriverExtra. Treiberdefinierte private Mitglieder dienen der exklusiven Verwendung durch den Treiber. Auf die Startadresse für die privaten Mitglieder kann mithilfe des dmSize-Mitglieds wie folgt verwiesen werden:
PVOID pvDriverData = (PVOID) (((BYTE *) pdm) + (pdm->dmSize));
Ein Treiber kann sich auf den Spooler verlassen, um einen DEVMODEW-Puffer zu übergeben, der nicht kleiner als (dmSize + dmDriverExtra) Bytes ist. Daher kann der Treiber diese Anzahl von Bytes, die vom Anfang des Puffers beginnen, sicher lesen, ohne einen Zugriffsverstoß zu verursachen, und ohne Arbeitsspeicher untersuchen zu müssen.
Vor der Wiedergabe von EMF ruft GDI den Spooler auf, um den Inhalt des öffentlichen Teils des DEVMODEW-Puffers zu überprüfen. Wenn der DEVMODEW-Puffer die im Spooler ausgeführten Überprüfungstests nicht bestanden hat, übergibt GDI den Puffer nicht an den Druckertreiber.
In Windows XP wurde ein neues Strukturelement hinzugefügt. Dieses Strukturmember enthält ein vorhandenes DEVMODEW-Strukturmember dmPosition zusammen mit zwei neuen Membern, dmDisplayOrientation und dmDisplayFixedOutput. Diese Member werden im vorherigen Abschnitt "Mitglieder" beschrieben.
Auch für Windows XP wurden mehrere Mitglieder der DEVMODEW-Struktur an verschiedene Speicherorte in dieser Struktur verschoben. Die Member "dmScale", "dmCopies", " dmDefaultSource" und " dmPrintQuality " wurden an das Strukturelement angefügt, das die Member "dmOrientation", "dmPaperSize", " dmPaperLength" und "dmPaperWidth " enthält.
Hinweis
Der wingdi.h-Header definiert DEVMODE als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
| Anforderung | Wert |
|---|---|
| Überschrift | wingdi.h (include Wingdi.h) |