Método IPrintOemUni::EnableDriver (prcomoem.h)
El método IPrintOemUni::EnableDriver permite un complemento de representación para unidrv enlazar 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 |
Observaciones
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, se reemplaza 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, la estructura SURFOBJ de destino miembro dhpdev 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 al tipo PDEVOBJ al hacer referencia a él. Una función DDI de gráficos de ejemplo es DrvDitherColor.
Tenga en cuenta que, aunque un dll de gráficos de impresora incluye las direcciones de sus drvEnablePDEV, DrvDisablePDEVy funciones de drvResetPDEV en la estructura DRVENABLEDATA, un complemento de representación exporta explícitamente EnablePDEV, DisablePDEVy ResetPDEV como métodos de la interfaz IPrintOemUni y no coloca sus direcciones en la estructura DRVENABLEDATA.
Si métodos IPrintOemUni::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 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 Personalización de los controladores de impresora de Microsoft.
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Escritorio |
encabezado de | prcomoem.h (include Prcomoem.h) |