Método IPrintOemUni::D riverDMS (prcomoem.h)
El IPrintOemUni::DriverDMS
método permite que un complemento de representación para Unidrv indique que usa una superficie de dibujo administrada por el dispositivo.
Sintaxis
HRESULT DriverDMS(
PVOID pDevObj,
PVOID pBuffer,
DWORD cbSize,
PDWORD pcbNeeded
);
Parámetros
pDevObj
Puntero proporcionado por el autor de la llamada a una estructura DEVOBJ .
pBuffer
Puntero proporcionado por el autor de la llamada a un búfer para recibir marcas especificadas por métodos. (Vea la siguiente sección Comentarios).
cbSize
Tamaño proporcionado por el autor de la llamada, en bytes, del búfer al que apunta pBuffer.
pcbNeeded
Puntero proporcionado por el autor de la llamada a una ubicación para recibir el tamaño mínimo de pBuffer necesario.
Valor devuelto
El método debe devolver uno de los valores siguientes.
Código devuelto | Descripción |
---|---|
|
La operación se realizó correctamente. |
|
Error en la operación |
Comentarios
Un complemento de representación para Unidrv debe implementar el IPrintOemUni::DriverDMS
método . Solo se llamará al método si Unidrv encuentra un puntero de interfaz válido al complemento de representación del OEM.
El IPrintOemUni::DriverDMS
método permite que un complemento de representación indique que va a usar una superficie de dibujo administrada por el dispositivo en lugar de la superficie administrada por GDI predeterminada.
El método debe especificar HOOK_ marcas con prefijo en el búfer al que apunta pBuffer, lo que indica cuál de las funciones de enlace DDI de gráficos del complemento se llamarán para la superficie de dibujo. Las marcas con prefijo HOOK_ se definen en winddi.h y se describen en la descripción de la función EngAssociateSurface . Las marcas especificadas por IPrintOemUni::DriverDMS
se pasan unidrv a EngAssociateSurface. (Tenga en cuenta que para admitir una superficie administrada por el dispositivo, el complemento de representación debe enlazar todas las funciones de dibujo). Para obtener más información, consulta Controlar Device-Managed superficies.
Si IPrintOemUni::DriverDMS
establece marcas en el búfer a las que apunta pBuffer, Unidrv crea una superficie administrada por el dispositivo mediante una llamada a EngCreateDeviceSurface. Si IPrintOemUni::DriverDMS
no establece ninguna marca, Unidrv crea una superficie administrada por GDI mediante una llamada a EngCreateBitmap. En cualquiera de estos casos, IPrintOemUni::DriverDMS
debe devolver S_OK.
Si el tamaño del búfer de salida especificado por cbSize es demasiado pequeño, el método debe especificar el tamaño necesario en la ubicación a la que apunta pcbNeeded, llame a SetLastError(ERROR_INSUFFICIENT_BUFFER) y devuelva E_FAIL.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | prcomoem.h (incluya Prcomoem.h) |