Compartilhar via


Método IPrintOemUni::D riverDMS (prcomoem.h)

O IPrintOemUni::DriverDMS método permite que um plug-in de renderização para Unidrv indique que ele usa uma superfície de desenho gerenciada pelo dispositivo.

Sintaxe

HRESULT DriverDMS(
  PVOID  pDevObj,
  PVOID  pBuffer,
  DWORD  cbSize,
  PDWORD pcbNeeded
);

Parâmetros

pDevObj

Ponteiro fornecido pelo chamador para uma estrutura DEVOBJ .

pBuffer

Ponteiro fornecido pelo chamador para um buffer para receber sinalizadores especificados pelo método. (Consulte a seção Comentários a seguir.)

cbSize

Tamanho fornecido pelo chamador, em bytes, do buffer apontado pelo pBuffer.

pcbNeeded

Ponteiro fornecido pelo chamador para um local para receber o tamanho mínimo necessário do pBuffer .

Retornar valor

O método deve retornar um dos valores a seguir.

Código de retorno Descrição
S_OK
A operação foi realizada com êxito.
E_FAIL
Falha na operação

Comentários

Um plug-in de renderização para Unidrv deve implementar o IPrintOemUni::DriverDMS método . O método será chamado somente se Unidrv encontrar um ponteiro de interface válido para o plug-in de renderização do OEM.

O IPrintOemUni::DriverDMS método permite que um plug-in de renderização indique que ele usará uma superfície de desenho gerenciada pelo dispositivo em vez da superfície gerenciada por GDI padrão.

O método deve especificar sinalizadores prefixados HOOK_ no buffer apontado por pBuffer, indicando quais das funções de conexão DDI de elementos gráficos do plug-in devem ser chamadas para a superfície de desenho. Os sinalizadores prefixados por HOOK_ são definidos em winddi.h e descritos na descrição da função EngAssociateSurface . Os sinalizadores especificados por IPrintOemUni::DriverDMS são passados por Unidrv para EngAssociateSurface. (Observe que, para dar suporte a uma superfície gerenciada pelo dispositivo, o plug-in de renderização deve conectar todas as funções de desenho.) Para obter mais informações, consulte Manipulando superfícies de Device-Managed.

Se IPrintOemUni::DriverDMS definir sinalizadores no buffer apontado por pBuffer, Unidrv criará uma superfície gerenciada pelo dispositivo chamando EngCreateDeviceSurface. Se IPrintOemUni::DriverDMS não definir nenhum sinalizador, Unidrv criará uma superfície gerenciada por GDI chamando EngCreateBitmap. Em qualquer um desses casos, IPrintOemUni::DriverDMS deve retornar S_OK.

Se o tamanho do buffer de saída especificado por cbSize for muito pequeno, o método deverá especificar o tamanho necessário no local apontado por pcbNeeded, chamar SetLastError(ERROR_INSUFFICIENT_BUFFER) e retornar E_FAIL.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho prcomoem.h (inclua Prcomoem.h)