Condividi tramite


Metodo IPrintOemUni::D riverDMS (prcomoem.h)

Il IPrintOemUni::DriverDMS metodo consente a un plug-in di rendering per Unidrv di indicare che usa una superficie di disegno gestita dal dispositivo.

Sintassi

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

Parametri

pDevObj

Puntatore fornito dal chiamante a una struttura DEVOBJ .

pBuffer

Puntatore fornito dal chiamante a un buffer per ricevere flag specificati dal metodo. Vedere la sezione Osservazioni seguenti.

cbSize

Dimensioni fornite dal chiamante, in byte, del buffer a cui punta pBuffer.

pcbNeeded

Puntatore fornito dal chiamante a una posizione per ricevere le dimensioni minime minime necessarie.

Valore restituito

Il metodo deve restituire uno dei valori seguenti.

Codice restituito Descrizione
S_OK
Operazione completata.
E_FAIL
Operazione non riuscita

Commenti

Un plug-in di rendering per Unidrv deve implementare il IPrintOemUni::DriverDMS metodo. Il metodo verrà chiamato solo se Unidrv trova un puntatore di interfaccia valido al plug-in di rendering dell'OEM.

Il IPrintOemUni::DriverDMS metodo consente a un plug-in di rendering di indicare che verrà usata una superficie di disegno gestita dal dispositivo anziché la superficie gestita da GDI predefinita.

Il metodo deve specificare flag con prefisso HOOK_ nel buffer a cui fa riferimento pBuffer, che indica quale delle funzioni di hook DDI DDI per la grafica del plug-in deve essere chiamata per la superficie di disegno. I flag con prefisso HOOK_ sono definiti in winddi.h e descritti nella descrizione della funzione EngAssociateSurface . I flag specificati da IPrintOemUni::DriverDMS vengono passati da Unidrv a EngAssociateSurface. Si noti che per supportare una superficie gestita dal dispositivo, il plug-in di rendering deve collegare tutte le funzioni di disegno. Per altre informazioni, vedere Gestione delle superfici Device-Managed.

Se IPrintOemUni::DriverDMS imposta i flag nel buffer a cui fa riferimento pBuffer, Unidrv crea una superficie gestita dal dispositivo chiamando EngCreateDeviceSurface. Se IPrintOemUni::DriverDMS non imposta alcun flag, Unidrv crea una superficie gestita da GDI chiamando EngCreateBitmap. In uno di questi casi, IPrintOemUni::DriverDMS deve restituire S_OK.

Se le dimensioni del buffer di output specificate da cbSize sono troppo piccole, il metodo deve specificare le dimensioni necessarie nella posizione a cui punta pcbNeed, chiamare SetLastError(ERROR_INSUFFICIENT_BUFFER) e restituire E_FAIL.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione prcomoem.h (include Prcomoem.h)