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 seguente.

cbSize

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

pcbNeeded

Puntatore fornito dal chiamante a una posizione per ricevere la dimensione minima richiesta di pBuffer .

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 HOOK_ flag con prefisso nel buffer a cui punta pBuffer, che indica quale delle funzioni di hook 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 per il rendering deve associare tutte le funzioni di disegno. Per altre informazioni, vedere Gestione delle superfici Device-Managed.

Se IPrintOemUni::DriverDMS imposta i flag nel buffer a cui punta 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 pcbNeeded, chiamare SetLastError(ERROR_INSUFFICIENT_BUFFER) e restituire E_FAIL.

Requisiti

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