API de filtro de datos del servidor de impresión de SNA
Configure la ruta de acceso al archivo DLL del filtro de datos de impresión. Todas las sesiones usan activamente este archivo DLL mediante el servicio de impresión de host. Sin embargo, el archivo DLL de filtro de datos de impresión puede especificar si desea o no los datos de impresión de una sesión determinada que se le pasen.
Los puntos de entrada a este archivo DLL se muestran de la siguiente manera:
PrtFilterAlloc
Obtiene un búfer de datos en el que se pasan los datos de impresión.
PrtFilterFree
Indica que ya no se necesita un búfer de datos obtenido anteriormente de la DLL y que el archivo DLL puede liberar la memoria asignada para este recurso.
PrtFilterJobData
Permite que el archivo DLL manipule los datos de impresión.
PrtFilterJobEnd
Informa al archivo DLL de que ha finalizado un trabajo de impresión.
PrtFilterJobStart
Informa al archivo DLL de que se ha iniciado un nuevo trabajo de impresión y permite que el archivo DLL envíe datos especiales al servidor de impresión al inicio de un trabajo.
A continuación se muestra una descripción de la secuencia de ejemplo de llamadas durante un trabajo de impresión normal para ilustrar cómo se usan normalmente estas funciones:
Se llama a PrtFilterStartJob cuando se inicia un nuevo trabajo de impresión. El archivo DLL puede devolver un búfer de datos con datos especiales que se enviarán a la impresora (una página de banner especial o cadenas de inicialización de impresora especiales, por ejemplo) antes de imprimir datos.
Se llama a PrtFilterFree si se enviaron datos especiales en la función PrtFilterStartJob e indica que el búfer de datos usado para pasar datos especiales se puede liberar.
La siguiente secuencia de llamadas de función se repite hasta que se hayan enviado todos los datos de impresión:
Se llama a PrtFilterAlloc para asignar un búfer de datos usado para pasar datos de impresión en la llamada posterior a PrtFilterJobData.
Se llama a PrtFilterJobData para pasar datos de impresión al archivo DLL para una posible modificación. Esto permite al usuario DLL la oportunidad de manipular los datos de la impresora antes de enviarlos a la impresora. Si los datos de impresión modificados que se van a devolver requieren un búfer de datos mayor o el archivo DLL debe usar otro búfer de datos para devolver datos, es posible que el archivo DLL tenga que asignar un nuevo búfer de datos para devolver estos datos. El archivo DLL también puede optar por liberar el búfer de datos usado para pasar los datos de impresión entrantes si se usa un búfer de datos diferente para devolver datos de impresión modificados. No se llamará a la función PrtFilterFree con el puntero al búfer de datos original si PrtFilterJobData devuelve un búfer de datos diferente.
Se llama a PrtFilterFree para indicar que el búfer de datos asignado por PrtFilterAlloc para pasar datos entrantes a la función PrtFilterJobData se puede liberar. Si PrtFilterJobData devolvió un búfer de datos diferente, se llamaría a PrtFilterFree para indicar que se puede liberar un búfer de datos asignado por el archivo DLL utilizado para devolver datos de impresión modificados en la función PrtFilterJobData .
La secuencia final se produce cuando se han procesado todos los datos de impresión:
Se llama a PrtFilterEndJob para indicar el final del trabajo de impresión y permite que la DLL devuelva datos especiales (por ejemplo, una página finalizador) que se debe enviar a la impresora.
Se llama a PrtFilterFree si se enviaron datos especiales en la función PrtFilterEndJob e indica que el búfer de datos usado para pasar datos especiales se puede liberar.