DeviceCapabilitiesA-Funktion (wingdi.h)
Die DeviceCapabilities-Funktion ruft die Funktionen eines Druckertreibers ab.
Syntax
int DeviceCapabilitiesA(
[in] LPCSTR pDevice,
[in] LPCSTR pPort,
[in] WORD fwCapability,
[out] LPSTR pOutput,
[in] const DEVMODEA *pDevMode
);
Parameter
[in] pDevice
Ein Zeiger auf eine NULL-Zeichenfolge, die den Namen des Druckers enthält. Beachten Sie, dass dies der Name des Druckers und nicht des Druckertreibers ist.
[in] pPort
Ein Zeiger auf eine NULL-Zeichenfolge, die den Namen des Ports enthält, mit dem das Gerät verbunden ist, z. B. LPT1.
[in] fwCapability
Die abzufragbaren Funktionen. Dieser Parameter kann einen der folgenden Werte annehmen.
Wert | Bedeutung |
---|---|
|
Ruft die Namen der Papierbehälter des Druckers ab. Der pOutput-Puffer empfängt ein Array von Zeichenfolgenpuffern. Jeder Zeichenfolgenpuffer ist 24 Zeichen lang und enthält den Namen eines Papierkorbs. Der Rückgabewert gibt die Anzahl der Einträge im Array an. Die Namenszeichenfolgen sind NULL-beendet, es sei denn, der Name ist 24 Zeichen lang. Wenn pOutputNULL ist, ist der Rückgabewert die Anzahl der erforderlichen Bin-Einträge. |
|
Ruft eine Liste der verfügbaren Papiertonnen ab. Der pOutput-Puffer empfängt ein Array von WORD-Werten , die die verfügbaren Papierquellen für den Drucker angeben. Der Rückgabewert gibt die Anzahl der Einträge im Array an. Eine Liste der möglichen Arraywerte finden Sie in der Beschreibung des dmDefaultSource-Members der DEVMODE-Struktur . Wenn pOutputNULL ist, gibt der Rückgabewert die erforderliche Anzahl von Einträgen im Array an. |
|
Wenn der Drucker die Sortierung unterstützt, ist der Rückgabewert 1; andernfalls ist der Rückgabewert 0. Der pOutput-Parameter wird nicht verwendet. |
|
Wenn der Drucker den Farbdruck unterstützt, ist der Rückgabewert 1; andernfalls ist der Rückgabewert 0. Der pOutput-Parameter wird nicht verwendet. |
|
Gibt die Anzahl der Kopien zurück, die das Gerät drucken kann. |
|
Gibt die Versionsnummer des Druckertreibers zurück. |
|
Wenn der Drucker Duplexdruck unterstützt, ist der Rückgabewert 1; andernfalls ist der Rückgabewert 0. Der pOutput-Parameter wird nicht verwendet. |
|
Ruft eine Liste der vom Drucker unterstützten Auflösungen ab. Der pOutput-Puffer empfängt ein Array von LONG-Werten . Für jede unterstützte Auflösung enthält das Array ein Paar von LONG-Werten , die die x- und y-Dimensionen der Auflösung in Punkt pro Zoll angeben. Der Rückgabewert gibt die Anzahl der unterstützten Auflösungen an. Wenn pOutputNULL ist, gibt der Rückgabewert die Anzahl der unterstützten Auflösungen an. |
|
Gibt die Anzahl der Bytes zurück, die für den gerätespezifischen Teil der DEVMODE-Struktur für den Druckertreiber erforderlich sind. |
|
Gibt das dmFields-Element der DEVMODE-Struktur des Druckertreibers zurück. Das dmFields-Element gibt an, welche Member im geräteunabhängigen Teil der Struktur vom Druckertreiber unterstützt werden. |
|
Ruft die Namen aller zusätzlichen Dateien ab, die bei der Installation eines Treibers geladen werden müssen. Der pOutput-Puffer empfängt ein Array von Zeichenfolgenpuffern. Jeder Zeichenfolgenpuffer ist 64 Zeichen lang und enthält den Namen einer Datei. Der Rückgabewert gibt die Anzahl der Einträge im Array an. Die Namenszeichenfolgen sind NULL-beendet, es sei denn, der Name ist 64 Zeichen lang. Wenn pOutputNULL ist, ist der Rückgabewert die Anzahl der Dateien. |
|
Gibt das maximale Papierformat zurück, das die Mitglieder dmPaperLength und dmPaperWidth der DEVMODE-Struktur des Druckertreibers angeben können. Der LOWORD des Rückgabewerts enthält den maximalen dmPaperWidth-Wert , und HIWORD enthält den maximalen dmPaperLength-Wert . |
|
Ruft die Namen der Papierformulare ab, die derzeit zur Verwendung verfügbar sind. Der pOutput-Puffer empfängt ein Array von Zeichenfolgenpuffern. Jeder Zeichenfolgenpuffer ist 64 Zeichen lang und enthält den Namen eines Papierformulars. Der Rückgabewert gibt die Anzahl der Einträge im Array an. Die Namenszeichenfolgen sind NULL-beendet, es sei denn, der Name ist 64 Zeichen lang. Wenn pOutputNULL ist, ist der Rückgabewert die Anzahl der Papierformulare. |
|
Ruft die Namen der unterstützten Medientypen ab. Der pOutput-Puffer empfängt ein Array von Zeichenfolgenpuffern. Jeder Zeichenfolgenpuffer ist 64 Zeichen lang und enthält den Namen eines unterstützten Medientyps. Der Rückgabewert gibt die Anzahl der Einträge im Array an. Die Zeichenfolgen sind NULL-beendet, es sei denn, der Name ist 64 Zeichen lang. Wenn pOutputNULL ist, ist der Rückgabewert die Anzahl der erforderlichen Medientypnamen. |
|
Ruft eine Liste der unterstützten Medientypen ab. Der pOutput-Puffer empfängt ein Array von DWORD-Werten, die die unterstützten Medientypen angeben. Der Rückgabewert gibt die Anzahl der Einträge im Array an. Eine Liste der möglichen Arraywerte finden Sie in der Beschreibung des dmMediaType-Members der DEVMODE-Struktur . Wenn pOutputNULL ist, gibt der Rückgabewert die erforderliche Anzahl von Einträgen im Array an. |
|
Gibt das Mindestpapierformat zurück, das die Mitglieder dmPaperLength und dmPaperWidth der DEVMODE-Struktur des Druckertreibers angeben können. Der LOWORD des Rückgabewerts enthält den minimalen dmPaperWidth-Wert , und HIWORD enthält den minimalen dmPaperLength-Wert . |
|
Gibt die Beziehung zwischen Hoch- und Querformatausrichtung für ein Gerät in Bezug auf die Anzahl der Grad zurück, die im Hochformat gegen den Uhrzeigersinn gedreht wird, um eine Querausrichtung zu erzeugen. Einer der folgenden Werte kann zurückgegeben werden:
|
|
Ruft ein Array von ganzen Zahlen ab, die angeben, dass der Drucker mehrere Dokumentseiten pro gedruckter Seite drucken kann. Der pOutput-Puffer empfängt ein Array von DWORD-Werten . Jeder Wert stellt eine unterstützte Anzahl von Dokumentseiten pro gedruckter Seite dar. Der Rückgabewert gibt die Anzahl der Einträge im Array an. Wenn pOutputNULL ist, gibt der Rückgabewert die erforderliche Anzahl von Einträgen im Array an. |
|
Ruft eine Liste der unterstützten Papiernamen ab (z. B. Letter oder Legal). Der pOutput-Puffer empfängt ein Array von Zeichenfolgenpuffern. Jeder Zeichenfolgenpuffer ist 64 Zeichen lang und enthält den Namen eines Papierformulars. Der Rückgabewert gibt die Anzahl der Einträge im Array an. Die Namenszeichenfolgen sind NULL-beendet, es sei denn, der Name ist 64 Zeichen lang. Wenn pOutputNULL ist, ist der Rückgabewert die Anzahl der Papierformulare. |
|
Ruft eine Liste der unterstützten Papierformate ab. Der pOutput-Puffer empfängt ein Array von WORD-Werten , die die verfügbaren Papierformate für den Drucker angeben. Der Rückgabewert gibt die Anzahl der Einträge im Array an. Eine Liste der möglichen Arraywerte finden Sie in der Beschreibung des dmPaperSize-Members der DEVMODE-Struktur . Wenn pOutputNULL ist, gibt der Rückgabewert die erforderliche Anzahl von Einträgen im Array an. |
|
Ruft die Abmessungen jedes unterstützten Papierformats im Zehntelmillimeter ab. Der pOutput-Puffer empfängt ein Array von POINT-Strukturen . Jede Struktur enthält die Breite (x-Dimension) und die Länge (y-Dimension) eines Papierformats, als ob das Papier in der DMORIENT_PORTRAIT Ausrichtung wäre. Der Rückgabewert gibt die Anzahl der Einträge im Array an. |
|
Ruft eine Liste der vom Drucker unterstützten Druckerbeschreibungssprachen ab. Der pOutput-Puffer empfängt ein Array von Zeichenfolgenpuffern. Jeder Puffer ist 32 Zeichen lang und enthält den Namen einer Druckerbeschreibungssprache. Der Rückgabewert gibt die Anzahl der Einträge im Array an. Die Namenszeichenfolgen sind NULL-beendet, es sei denn, der Name ist 32 Zeichen lang. Wenn pOutputNULL ist, gibt der Rückgabewert die erforderliche Anzahl von Arrayeinträgen an. |
|
Der Rückgabewert ist die Menge des verfügbaren Druckerspeichers in Kilobyte. Der pOutput-Parameter wird nicht verwendet. |
|
Der Rückgabewert gibt die Druckrate des Druckers an. Der für DC_PRINTRATEUNIT zurückgegebene Wert gibt die Einheiten des DC_PRINTRATE-Werts an. Der pOutput-Parameter wird nicht verwendet. |
|
Der Rückgabewert gibt die Druckrate des Druckers in Seiten pro Minute an. Der pOutput-Parameter wird nicht verwendet. |
|
Der Rückgabewert ist einer der folgenden Werte, der die Druckrateneinheiten für den für das DC_PRINTRATE-Flag zurückgegebenen Wert angibt. Der pOutput-Parameter wird nicht verwendet.
|
|
Gibt das dmSize-Element der DEVMODE-Struktur des Druckertreibers zurück. |
|
Wenn der Drucker das Heften unterstützt, ist der Rückgabewert ein Wert ohne Zero. andernfalls ist der Rückgabewert 0. Der pOutput-Parameter wird nicht verwendet. |
|
Ruft die Fähigkeiten des Treibers ab, TrueType-Schriftarten zu verwenden. Für DC_TRUETYPE sollte der pOutput-ParameterNULL sein. Der Rückgabewert kann mindestens eine der folgenden Werte aufweisen:
|
|
Gibt die Spezifikationsversion zurück, der der Druckertreiber entspricht. |
[out] pOutput
Ein Zeiger auf ein Array. Das Format des Arrays hängt von der Einstellung des fwCapability-Parameters ab. Sehen Sie sich die einzelnen Funktionen oben an, um herauszufinden, was zurückgegeben wird, wenn pOutputNULL ist.
[in] pDevMode
Ein Zeiger auf eine DEVMODE-Struktur . Wenn dieser Parameter NULL ist, ruft DeviceCapabilities die aktuellen Standardinitialisierungswerte für den angegebenen Druckertreiber ab. Andernfalls ruft die Funktion die Werte ab, die in der Struktur enthalten sind, auf die pDevMode verweist.
Rückgabewert
Wenn die Funktion erfolgreich ist, hängt der Rückgabewert von der Einstellung des fwCapability-Parameters ab. Ein Rückgabewert von null gibt im Allgemeinen an, dass die Funktion während der erfolgreichen Ausführung eine Art von Fehler aufgetreten ist, z. B. eine Funktion, die nicht unterstützt wird. Weitere Informationen finden Sie in den Beschreibungen zu den fwCapability-Werten .
Wenn die Funktion -1 zurückgibt, kann dies entweder bedeuten, dass die Funktion nicht unterstützt wird oder dass ein allgemeiner Funktionsfehler aufgetreten ist.
Hinweise
Wenn ein Druckertreiber benutzerdefinierte Gerätefunktionen unterstützt, muss der Treiber die SetPrinterData-Funktion für jede benutzerdefinierte Funktion aufrufen. Die SetPrinterData-Funktion fügt dem Drucksystem die entsprechenden Druckerdaten hinzu, sodass 32-Bit-Anwendungen auf die benutzerdefinierten Funktionen bei 64-Bit-Windows-Installationen zugreifen können.
Für jede benutzerdefinierte Funktion müssen Sie zunächst Druckerdaten hinzufügen, die den Typ der Funktion beschreiben. Legen Sie dazu beim Aufrufen von SetPrinterData die pValueName-Zeichenfolge auf CustomDeviceCapabilityType_Xxx fest, wobei "Xxx" die hexadezimale Darstellung der Funktion ist. Sie können beispielsweise "CustomDeviceCapabilityType_1234" haben. Die von Ihnen festgelegten Registrierungsdaten müssen vom REG_DWORD Typ sein, und Sie müssen den Wert auf einen der folgenden Werte festlegen:
- 0, wenn es sich bei der benutzerdefinierten Funktion um eine DWORD-Funktion handelt
- 1, wenn die benutzerdefinierte Funktion ein Bytespuffer ist
- 2, wenn die benutzerdefinierte Funktion ein Array von Elementen ist
Hinweis
Der wingdi.h-Header definiert DeviceCapabilities 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 nicht codierungsneutralem Code 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 |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | wingdi.h (windows.h einschließen) |
Bibliothek | WinSpool.lib |
DLL | WinSpool.drv |