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

El método IPrintOemUni::EnableDriver permite que un complemento de representación para Unidrv enlace 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 valores siguientes.

Código devuelto Descripción
S_OK La operación se realizó correctamente.
E_FAIL Error en la operación

Comentarios

Un complemento de representación para Unidrv debe implementar el método IPrintOemUni::EnableDriver .

El método IPrintOemUni::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 IPrintOemUni::EnableDriver es responsable de proporcionar direcciones de funciones DDI de gráficos compatibles 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 de IPrintOemUni::EnableDriver es opcional.

Si implementa IPrintOemUni::EnableDriver, también debe implementar IPrintOemUni::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 IPrintOemUni::EnableDriver, pero no se desasigna en IPrintOemUni::D isableDriver, se puede producir una pérdida 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 Unidrv puede enlazar una función DDI de gráficos solo si el controlador Unidrv define la función. Las siguientes funciones DDI de gráficos se definen en Unidrv o Pscript5 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 las funciones DDI de gráficos reciban punteros PDEV:

  • 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.

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

Tenga en cuenta que, 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 exporta explícitamente EnablePDEV, DisablePDEV y ResetPDEV como métodos de la interfaz IPrintOemUni y no coloca sus direcciones en la estructura DRVENABLEDATA.

Si varios complementos de representación exportan los métodos IPrintOemUni::EnableDriver , 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 solo 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 Personalizar los controladores de impresora de Microsoft.

Requisitos

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