Compartir a través de


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
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 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)