Método IPrintOemPS::EnableDriver (prcomoem.h)

El método IPrintOemPS::EnableDriver permite que un complemento de representación para Pscript conecte algunas funciones DDI de gráficos.

Sintaxis

HRESULT EnableDriver(
  DWORD          DriverVersion,
  DWORD          cbSize,
  PDRVENABLEDATA pded
);

Parámetros

DriverVersion

Número de versión de la interfaz proporcionada por el autor de la llamada. Este valor se define mediante PRINTER_OEMINTF_VERSION, en printoem.h.

cbSize

Tamaño proporcionado por el autor de la llamada, en bytes, de la estructura a la que apunta pded.

pded

Puntero proporcionado por el autor de la llamada a una estructura DRVENABLEDATA .

Valor devuelto

El método debe devolver uno de los siguientes valores:

Código devuelto Descripción
S_OK La operación se realizó correctamente.
E_FAIL Error en la operación
E_NOTIMPL El método no está implementado.

Comentarios

El método IPrintOemPS::EnableDriver permite que un complemento de representación realice los mismos tipos de operaciones que la función DrvEnableDriver exportada por archivos DLL de gráficos de impresora.

Al igual que la función DrvEnableDriver , el método IPrintOemPS::EnableDriver es responsable de proporcionar direcciones de funciones DDI de gráficos admitidas internamente, conocidas como funciones de enlace. También puede realizar otras operaciones de inicialización única. A diferencia de la función DrvEnableDriver , la implementación del método IPrintOemPS::EnableDriver es opcional.

Si implementa IPrintOemPS::EnableDriver, también debe implementar IPrintOemPS::D isableDriver. Es posible que las acciones iniciadas en el método anterior deba completarse en el último método. Por ejemplo, si se asigna un búfer grande en IPrintOemPS::EnableDriver, pero no se desasigna en IPrintOemPS::D isableDriver, puede producirse una fuga de memoria.

El método debe rellenar la estructura DRVENABLEDATA proporcionada y asignar una matriz de estructuras DRVFN . Debe rellenar la matriz con punteros a funciones de enlace, junto con los valores de índice definidos por winddi.h que identifican las funciones DDI de gráficos enlazadas.

Un complemento de representación para Pscript5 puede enlazar una función DDI de gráficos solo si el controlador Pscript5 define la función. Las siguientes funciones DDI de gráficos se definen en Pscript5 o Unidrv y, por tanto, se pueden enlazar:

Si proporciona una función de enlace personalizada, adelanta la función DDI de gráficos equivalente del controlador. Las funciones de enlace también pueden volver a llamar a las funciones DDI de gráficos del controlador. Para obtener más información, vea Funciones DDI de gráficos personalizados.

Las funciones de enlace personalizadas tienen los mismos parámetros de entrada y salida que la función DDI de gráficos equivalente, con una excepción, donde las funciones DDI de gráficos reciben punteros PDEV, las funciones de enlace personalizadas reciben punteros DEVOBJ . Hay dos maneras de que estas funciones reciban punteros PDEV:

  1. Como contenido del miembro dhpdev de una estructura SURFOBJ para la superficie de destino. Para la función de enlace personalizada equivalente, el miembro dhpdev de la estructura surfOBJ de destino apunta a una estructura DEVOBJ y debe convertirse al tipo PDEVOBJ cuando se hace referencia. Una función DDI de gráficos de ejemplo es DrvBitBlt.

  2. Como argumento de entrada para un parámetro dhpdev . La función de enlace personalizada equivalente debe convertir este parámetro de entrada para escribir PDEVOBJ al hacer referencia a él. Una función DDI de gráficos de ejemplo es DrvDitherColor.

Aunque un archivo DLL de gráficos de impresora incluye las direcciones de sus funciones DrvEnablePDEV, DrvDisablePDEV y DrvResetPDEV en la estructura DRVENABLEDATA, un complemento de representación para Pscript5 implementa EnablePDEV, DisablePDEV y ResetPDEV como métodos de la interfaz IPrintOemPS y no coloca sus direcciones en la estructura DRVENABLEDATA.

Si los métodos IPrintOemPS::EnableDriver se exportan mediante varios complementos de representación, se llama a los métodos en el orden en que se especifican los complementos para la instalación.

Cada función DDI de gráficos se puede enlazar mediante un complemento de representación. Si varios complementos intentan enlazar la misma función DDI de gráficos, se omiten todos los enlaces después del primero.

Para obtener más información sobre cómo crear e instalar complementos de representación, vea Personalización de los controladores de impresora de Microsoft.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado prcomoem.h (include Prcomoem.h)