Partilhar via


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

O método IPrintOemUni::DriverDMS 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 de 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 por pBuffer.

pcbNeeded

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

Valor de retorno

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

Código de retorno Descrição
S_OK
A operação foi bem-sucedida.
E_FAIL
Falha na operação

Observações

Um plug-in de renderização para Unidrv deve implementar o método IPrintOemUni::DriverDMS. 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 método IPrintOemUni::DriverDMS 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 em HOOK_ são definidos em winddi.h e descritos na descrição da função EngAssociateSurface. Sinalizadores especificados por IPrintOemUni::DriverDMS são passados pela 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 Tratamento Device-Managed Surfaces.

Se IPrintOemUni::DriverDMS definir sinalizadores no buffer apontado por pBuffer, o Unidrv criará uma superfície gerenciada por dispositivo chamando EngCreateDeviceSurface. Se IPrintOemUni::DriverDMS não definir nenhum sinalizador, o 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
da Plataforma de Destino Área de trabalho
cabeçalho prcomoem.h (inclua Prcomoem.h)