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 |
---|---|
|
A operação foi realizada com êxito. |
|
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) |