Función DrvDeviceCapabilities (winddiui.h)

La función DrvDeviceCapabilities de un archivo DLL de interfaz de impresora devuelve información solicitada sobre las funcionalidades de una impresora.

Sintaxis

DWORD DrvDeviceCapabilities(
                 HANDLE   hPrinter,
  [in]           PWSTR    pszDeviceName,
                 WORD     Capability,
  [out]          PVOID    pOutput,
  [in, optional] PDEVMODE pDevmode
);

Parámetros

hPrinter

Controlador de impresora proporcionado por el autor de la llamada.

[in] pszDeviceName

Puntero proporcionado por el autor de la llamada a una cadena de nombre de impresora.

Capability

Marca de bits proporcionada por el autor de la llamada que indica la información que se solicita. Puede ser una de las marcas enumeradas en la tabla siguiente. (Las marcas se definen en el archivo de encabezado Wingdi.h).

Marca Definición
DC_BINADJUST No se usa para sistemas operativos basados en NT.
DC_BINNAMES El parámetro pOutput apunta a un búfer que la función debe rellenar con una matriz de búferes de cadena, cada 24 caracteres de longitud. Cada búfer de cadenas de la matriz debe contener una cadena terminada en NULL de caracteres anchos que especifique el nombre de una papelera de origen. El valor devuelto de la función debe ser el número de elementos de la matriz devuelta. Si pOutput es NULL, la función solo debe devolver el número de elementos de matriz necesarios.
DC_BINS El parámetro pOutput apunta a un búfer que la función debe rellenar con una matriz WORD. Cada elemento de matriz debe contener una constante prefijo DMBIN (o un valor personalizado) que represente una papelera de origen de papel compatible. El valor devuelto de la función debe ser el número de elementos de la matriz devuelta. Si pOutput es NULL, la función solo debe devolver el número de elementos de matriz necesarios.
DC_COLLATE No se usa el parámetro pOutput . El valor devuelto de la función debe ser 1 si la impresora admite la intercalación; de lo contrario, el valor devuelto debe ser cero.
DC_COLORDEVICE No se usa el parámetro pOutput . El valor devuelto de la función debe ser 1 si la impresora admite la impresión en color; de lo contrario, el valor devuelto debe ser cero.
DC_COPIES No se usa el parámetro pOutput . El valor devuelto de la función debe ser el número máximo de copias que la impresora puede admitir.
DC_DATATYPE_PRODUCED No se usa para sistemas operativos basados en NT.
DC_DRIVER No se usa el parámetro pOutput . El valor devuelto de la función debe ser el miembro dmDriverVersion de la estructura interna del controlador [DEVMODEW](/windows/win32/api/wingdi/ns-wingdi-devmodew).
DC_DUPLEX No se usa el parámetro pOutput . El valor devuelto de la función debe ser 1 si la impresora admite la impresión dúplex; de lo contrario, el valor devuelto debe ser cero.
DC_EMF_COMPLIANT No se usa para sistemas operativos basados en NT.
DC_ENUMRESOLUTIONS El parámetro pOutput apunta a un búfer que la función debe rellenar con una matriz LONG. Para cada resolución compatible con la impresora, la función debe devolver dos palabras largas (una para la dimensión x y otra para la dimensión y ) de la resolución, en puntos por pulgada. El valor devuelto de la función debe ser el número de resoluciones admitidas. Si pOutput es NULL, la función solo debe devolver el número de resoluciones admitidas.
DC_EXTRA No se usa el parámetro pOutput . El valor devuelto de la función debe ser el miembro dmDriverExtra de la estructura interna del controlador [DEVMODEW](/windows/win32/api/wingdi/ns-wingdi-devmodew).
DC_FIELDS No se usa el parámetro pOutput . El valor devuelto de la función debe ser el miembro dmFields de la estructura interna del controlador [DEVMODEW](/windows/win32/api/wingdi/ns-wingdi-devmodew). El miembro dmFields indica qué miembros de la parte independiente del dispositivo de la estructura DEVMODEW son compatibles con el controlador de impresora.
DC_FILEDEPENDENCIES El parámetro pOutput apunta a un búfer que la función debe rellenar con una matriz de búferes de cadena, cada 64 caracteres de longitud. Cada búfer de cadena de la matriz debe contener una cadena terminada en NULL de caracteres anchos que especifique el nombre de un archivo que se debe instalar con el controlador. El valor devuelto de la función debe ser el número de elementos de la matriz devuelta. Si pOutput es NULL, la función solo debe devolver el número de elementos de matriz necesarios.
DC_MANUFACTURER No se usa para sistemas operativos basados en NT.
DC_MAXEXTENT No se usa el parámetro pOutput . La función debe devolver una estructura POINTS (descrita en la documentación de Microsoft Windows SDK). La estructura debe contener los valores máximos permitidos para los miembros dmPaperWidth (dimensión x ) y dmPaperLength (dimensión y ) de la estructura DEVMODEW de la impresora.
DC_MEDIAREADY El parámetro pOutput apunta a un búfer que la función debe rellenar con una matriz de búferes de cadena, cada 64 caracteres de longitud. Cada búfer de cadenas de la matriz debe contener una cadena terminada en NULL de caracteres anchos que especifique el nombre de un formulario de papel que está disponible para su uso. El valor devuelto de la función debe ser el número de elementos de la matriz devuelta. Si pOutput es NULL, la función solo debe devolver el número de elementos de matriz necesarios.
DC_MEDIATYPENAMES El parámetro pOutput apunta a un búfer que la función debe rellenar con una matriz de búferes de cadena, cada 64 caracteres de longitud. Cada búfer de cadenas de la matriz debe contener una cadena terminada en NULL de caracteres anchos que especifique el nombre de un tipo de medio admitido. El valor devuelto de la función debe ser el número de elementos de la matriz devuelta. Si pOutput es NULL, la función simplemente debe devolver el número de elementos de matriz necesarios.
DC_MEDIATYPES El parámetro pOutput apunta a un búfer que la función debe rellenar con una matriz DWORD. Cada elemento de matriz debe contener una constante con prefijo DMMEDIA (vea la estructura [DEVMODEW](/windows/win32/api/wingdi/ns-wingdi-devmodew) o el valor personalizado que representa un tipo de medio admitido. El valor devuelto de la función debe ser el número de elementos de la matriz devuelta. Si pOutput es NULL, la función simplemente debe devolver el número de elementos de matriz necesarios.
DC_MINEXTENT No se usa el parámetro pOutput . La función debe devolver una estructura POINTS (descrita en la documentación de Windows SDK). La estructura debe contener los valores mínimos permitidos para los miembros dmPaperWidth (dimensión x ) y dmPaperLength (dimensión y ) de la estructura DEVMODEW de la impresora.
DC_MODEL No se usa para sistemas operativos basados en NT.
DC_NUP El parámetro pOutput apunta a un búfer que la función debe rellenar con una matriz DWORD. Cada elemento de matriz debe contener un entero que represente una opción N-up (es decir, cada entero debe representar un número admitido de páginas de documento por página física). El valor devuelto de la función debe ser el número de elementos de la matriz devuelta. Si pOutput es NULL, la función solo debe devolver el número de elementos de matriz necesarios.
DC_ORIENTATION No se usa el parámetro pOutput . El valor devuelto de la función debe ser el número de grados de rotación necesarios para generar orientación horizontal a partir de la orientación vertical. Un valor de cero indica que no se admite la orientación horizontal.
DC_PAPERNAMES El parámetro pOutput apunta a un búfer que la función debe rellenar con una matriz de búferes de cadena, cada 64 caracteres de longitud. Cada búfer de cadena de la matriz debe contener una cadena terminada en NULL de caracteres anchos que especifique el nombre de un formulario de papel. El valor devuelto de la función debe ser el número de elementos de la matriz devuelta. Si pOutput es NULL, la función solo debe devolver el número de elementos de matriz necesarios.
DC_PAPERS El parámetro pOutput apunta a un búfer que la función debe rellenar con una matriz WORD. Cada elemento de matriz debe contener una constante con prefijo DMPAPER (o un valor personalizado) que represente un formulario de papel admitido. El valor devuelto de la función debe ser el número de elementos de la matriz devuelta. Si pOutput es NULL, la función solo debe devolver el número de elementos de matriz necesarios.
DC_PAPERSIZE El parámetro pOutput apunta a un búfer que la función debe rellenar con una matriz POINT. Cada elemento de matriz debe contener las dimensiones x e y del tamaño de papel de un formulario, en unidades de 0,1 mm, en orientación vertical. El valor devuelto de la función debe ser el número de elementos de la matriz devuelta. Si pOutput es NULL, la función solo debe devolver el número de elementos de matriz necesarios.
DC_PERSONALITY El parámetro pOutput apunta a un búfer que la función debe rellenar con una matriz de búferes de cadena, cada 32 caracteres de longitud. Cada búfer de cadena de la matriz debe contener una cadena terminada en NULL de caracteres anchos que especifique el lenguaje de descripción de la impresora admitido por la impresora (por ejemplo, L"HP-GL/2"). El valor devuelto de la función debe ser el número de elementos de la matriz devuelta. Si pOutput es NULL, la función solo debe devolver el número de elementos de matriz necesarios.
DC_PRINTERMEM No se usa el parámetro pOutput . El valor devuelto de la función debe ser un entero que representa la cantidad de memoria de impresora disponible, en kilobytes.
DC_PRINTRATE No se usa el parámetro pOutput . El valor devuelto de la función debe ser un entero que representa la velocidad de impresión, en las unidades especificadas para DC_PRINTRATEUNIT.
DC_PRINTRATEPPM No se usa el parámetro pOutput . El valor devuelto de la función debe ser un entero que representa la velocidad de impresión, en páginas por minuto.
DC_PRINTRATEUNIT No se usa el parámetro pOutput . El valor devuelto de la función debe identificar las unidades usadas para especificar el valor devuelto para DC_PRINTRATE. Se debe especificar una de las siguientes constantes: PRINTRATEUNIT_PPM - pages/min. PRINTRATEUNIT_CPS - chars./sec. PRINTRATEUNIT_LPM - líneas/min. PRINTRATEUNIT_IPM: pulgadas/min.
DC_SIZE No se usa el parámetro pOutput . El valor devuelto de la función debe ser el miembro dmSize de la estructura interna del controlador [DEVMODEW](/windows/win32/api/wingdi/ns-wingdi-devmodew).
DC_STAPLE No se usa el parámetro pOutput . El valor devuelto de la función debe ser TRUE si la impresora admite la asociación y FALSE si la impresora no admite la asociación.
DC_TRUETYPE No se usa el parámetro pOutput . El valor devuelto de la función puede ser cero, uno o varios de los siguientes indicadores: DCTT_BITMAP: el dispositivo puede imprimir fuentes TrueType como gráficos. DCTT_DOWNLOAD: el dispositivo puede aceptar fuentes TrueType descargadas. DCTT_DOWNLOAD_OUTLINE: (solo Windows 95/98/Me) El dispositivo puede descargar fuentes TrueType de esquema. DCTT_SUBDEV: el dispositivo puede sustituir las fuentes del dispositivo por fuentes TrueType.
DC_VERSION No se usa el parámetro pOutput . El valor devuelto de la función debe ser el miembro dmSpecVersion de la estructura interna del controlador [DEVMODEW](/windows/win32/api/wingdi/ns-wingdi-devmodew).

[out] pOutput

Puntero proporcionado por el autor de la llamada a un búfer para recibir información proporcionada por la función. El uso del búfer depende del valor recibido para el parámetro Capability .

[in, optional] pDevmode

Puntero proporcionado por el autor de la llamada a una estructura DEVMODEW que describe las características actuales del trabajo de impresión. Si este parámetro es NULL, DrvDeviceCapabilities recupera los valores de inicialización predeterminados actuales para el controlador de impresora especificado, como la estructura DEVMODEW predeterminada del usuario de la cola de impresión.

Valor devuelto

El valor devuelto de la función depende del valor recibido para el parámetro Capability . Si el valor de funcionalidad recibido representa una funcionalidad que el controlador no admite o, si se encuentra un error, la función debe devolver GDI_ERROR.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado winddiui.h (incluya Winddiui.h)