Share via


Función AddJob

La función AddJob agrega un trabajo de impresión a la lista de trabajos de impresión que el administrador de trabajos de impresión puede programar. La función recupera el nombre del archivo que puede usar para almacenar el trabajo.

Nota:

En Windows 8 y sistemas operativos posteriores, no se recomienda usar AddJob directamente porque hay casos (como imprimir en una cola mediante File: o PORTPROMPT:) donde Se producirá un error en AddJob. En su lugar, se recomienda usar GDI Print API, XPS Print API, StartDocPrinter o el método adecuado del espacio de nombres Windows.Graphics.Printing , según el escenario de impresión.

Si intenta imprimir en una cola mediante File: o PORTPROMPT:, AddJob devolverá el error NOT_SUPPORTED.

Sintaxis

BOOL AddJob(
  _In_  HANDLE  hPrinter,
  _In_  DWORD   Level,
  _Out_ LPBYTE  pData,
  _In_  DWORD   cbBuf,
  _Out_ LPDWORD pcbNeeded
);

Parámetros

hPrinter [in]

Identificador que especifica la impresora para el trabajo de impresión. Debe ser una impresora local configurada como una impresora en cola. Si hPrinter es un identificador de una conexión de impresora remota o si la impresora está configurada para la impresión directa, se produce un error en la función AddJob . Use la función OpenPrinter o AddPrinter para recuperar un identificador de impresora.

Nivel [in]

La versión de la estructura de datos de información del trabajo de impresión que almacena la función en el búfer al que apunta pData. Establezca este parámetro en uno.

pData [out]

Puntero a un búfer que recibe una estructura de datos ADDJOB_INFO_1 y una cadena de ruta de acceso.

cbBuf [in]

Tamaño, en bytes, del búfer al que apunta pData. El búfer debe ser lo suficientemente grande como para contener una estructura de ADDJOB_INFO_1 y una cadena de ruta de acceso.

pcbNeededed [out]

Puntero a una variable que recibe el tamaño total, en bytes, de la estructura de datos ADDJOB_INFO_1 más la cadena de ruta de acceso. Si este valor es menor o igual que cbBuf y la función se realiza correctamente, este es el número real de bytes escritos en el búfer al que apunta pData. Si este número es mayor que cbBuf, el búfer es demasiado pequeño y debe llamar a la función de nuevo con un tamaño de búfer al menos tan grande como *pcbNeeded.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es un valor distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero.

Comentarios

Nota

Se trata de una función de bloqueo o sincrónica y podría no devolverse inmediatamente. La rapidez con la que devuelve esta función depende de factores en tiempo de ejecución, como el estado de red, la configuración del servidor de impresión y los factores de implementación de controladores de impresora que son difíciles de predecir al escribir una aplicación. Llamar a esta función desde un subproceso que administra la interacción con la interfaz de usuario podría hacer que la aplicación parezca que no responde.

Puede llamar a la función CreateFile para abrir el archivo de cola especificado por el miembro Path de la estructura ADDJOB_INFO_1 y, a continuación, llamar a la función WriteFile para escribir datos de trabajos de impresión en él. Una vez hecho esto, llame a la función ScheduleJob para notificar al administrador de trabajos de impresión que el trabajo de impresión ahora puede programar el administrador de trabajos de impresión para imprimir.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado
Winspool.h (incluye Windows.h)
Biblioteca
Winspool.lib
Archivo DLL
Winspool.drv
Nombres Unicode y ANSI
AddJobW (Unicode) y AddJobA (ANSI)

Consulte también

ADDJOB_INFO_1

CreateFile

API de impresión de GDI

Impresión

Funciones de la API del administrador de trabajos de impresión

OpenPrinter

ScheduleJob

StartDocPrinter

Windows.Graphics.Printing

WriteFile

XPS Print API