Metodo IPrintOemPS::Command (prcomoem.h)

Il metodo IPrintOemPS::Command viene usato eseguendo il rendering dei plug-in per il driver della stampante Microsoft PostScript, per inserire i comandi PostScript nel flusso di dati del processo di stampa.

Sintassi

HRESULT Command(
        PDEVOBJ   pdevobj,
        DWORD     dwIndex,
        PVOID     pData,
        DWORD     cbSize,
  [out] OUT DWORD *pdwResult
);

Parametri

pdevobj

Puntatore fornito dal chiamante a una struttura DEVOBJ .

dwIndex

Valore fornito dal chiamante che rappresenta il punto di inserimento corrente all'interno del flusso di dati del processo di stampa. Per ulteriori informazioni, vedere la sezione Osservazioni successiva.

pData

Non usato.

cbSize

Non usato.

[out] pdwResult

Riceve un valore fornito dal metodo che indica il risultato dell'operazione di inserimento. Se l'inserimento ha esito positivo, questo valore deve essere ERROR_SUCCESS. Se l'inserimento ha esito negativo, il valore deve essere uno dei codici di errore definiti in winerror.h. Se il metodo non tenta di inserire dati per un valore dwIndex specificato, il valore deve essere ERROR_NOT_SUPPORTED.

Valore restituito

Il metodo deve restituire uno dei valori seguenti.

Codice restituito Descrizione
S_OK
Operazione completata.
E_FAIL
Operazione non riuscita
E_NOTIMPL
Il metodo non è implementato.

Commenti

Il metodo IPrintOemPS::Command viene usato per inserire i comandi PostScript nel flusso di dati generato dal driver della stampante Microsoft PostScript. Se si vuole fornire questo metodo, è necessario definirlo in un plug-in di rendering.

Quando viene chiamato il metodo IPrintOemPS::Command , il parametro dwIndex specifica il punto di inserimento corrente all'interno del flusso di dati del processo di stampa. Il metodo deve usare questo valore per determinare l'operazione, se presente, da eseguire. I valori di indice, definiti in wingdi.h, sono elencati nella tabella seguente.

Valore indice Quando ricevuto
PSINJECT_BEGINDEFAULTS Dopo che il driver della stampante invia %%BeginDefaults al flusso di dati.
PSINJECT_BEGINPAGESETUP Dopo che il driver della stampante invia %%BeginPageSetup al flusso di dati.
PSINJECT_BEGINPROLOG Dopo che il driver della stampante invia %%BeginProlog al flusso di dati.
PSINJECT_BEGINSETUP Dopo che il driver della stampante invia %%BeginSetup al flusso di dati.
PSINJECT_BEGINSTREAM Prima che il driver della stampante invii il primo byte del flusso di dati.
PSINJECT_BOUNDINGBOX Quando il driver della stampante è pronto per inserire %%BoundingBox: nel flusso di dati. I dati forniti da IPrintOemPS::Command sostituisce il commento %%BoundingBox del driver.
PSINJECT_COMMENTS Prima che il driver della stampante invii %%EndComments al flusso di dati.
PSINJECT_DLFONT Prima che il driver di stampa scarica un carattere morbido.
PSINJECT_DOCNEEDEDRES Dopo che il driver della stampante invia %%DocumentNeedResources: al flusso di dati, insieme alle informazioni sulle risorse. Se il metodo IPrintOemPS::Command invia informazioni sulla risorsa, viene aggiunto al flusso dopo le informazioni sulla risorsa del driver. Il formato di voce è il seguente:

%%+ResourceTypeResourceNames

Il driver della stampante invia %%DocumentNeedResources: dopo l'invio della sezione %%Trailer .

PSINJECT_DOCSUPPLIEDRES Dopo che il driver della stampante invia %%DocumentSuppliedResources: al flusso di dati, insieme alle informazioni sulle risorse. Se il metodo IPrintOemPS::Command invia informazioni sulla risorsa, viene aggiunto al flusso dopo le informazioni sulla risorsa del driver. Il formato di voce è il seguente:

%%+ResourceTypeResourceNames

Il driver della stampante invia %%DocumentSuppliedResources: dopo l'invio della sezione %%Trailer .

PSINJECT_DOCUMENTPROCESSCOLORS
Quando il driver della stampante è pronto per inserire %%DocumentProcessColors:color nel flusso di dati. I dati forniti da IPrintOemPS::Command sostituisce il commento %%DocumentProcessColors:color del driver.
PSINJECT_DOCUMENTPROCESSCOLORSATEND
Quando il driver della stampante è pronto per inserire %%DocumentProcessColors:(atend) nel flusso di dati. I dati forniti da IPrintOemPS::Command sostituisce il commento %%DocumentProcessColors:(atend).
PSINJECT_ENDDEFAULTS Prima che il driver della stampante invii %%EndDefaults al flusso di dati.
PSINJECT_ENDPAGECOMMENTS Prima che il driver della stampante invii %%EndPageComments al flusso di dati.
PSINJECT_ENDPAGESETUP Prima che il driver della stampante invii %%EndPageSetup al flusso di dati.
PSINJECT_ENDPROLOG Prima che il driver della stampante invii %%EndProlog al flusso di dati.
PSINJECT_ENDSETUP Prima che il driver della stampante invii %%EndSetup al flusso di dati.
PSINJECT_ENDSTREAM Dopo che il driver della stampante invia l'ultimo byte del flusso di dati.
PSINJECT_EOF Dopo che il driver della stampante invia %%EOF al flusso di dati.
PSINJECT_ORIENTATION Quando il driver della stampante è pronto per inserire %%Orientamento: nel flusso di dati. I dati forniti da IPrintOemPS::Command sostituisce il commento %%Orientation del driver.
PSINJECT_PAGEBBOX Quando il driver della stampante è pronto per inserire %%PageBoundingBox: nel flusso di dati. I dati forniti da IPrintOemPS::Command sostituisce il commento %%PageBoundingBox del driver.
PSINJECT_PAGENUMBER Quando il driver della stampante è pronto per inserire %%Page: nel flusso di dati. I dati forniti da IPrintOemPS::Command sostituisce il commento %%Page del driver.
PSINJECT_PAGEORDER Quando il driver della stampante è pronto per inserire %%PageOrder: nel flusso di dati. I dati forniti da IPrintOemPS::Command sostituisce il commento %%PageOrder del driver.
PSINJECT_PAGES Quando il driver della stampante è pronto per inserire %%Pages:nnn nel flusso di dati. I dati forniti da IPrintOemPS::Command sostituisce il commento %%Pages:nnn del driver.
PSINJECT_PAGESATEND Quando il driver della stampante è pronto per inserire %%Pages:(atend) nel flusso di dati. I dati forniti da IPrintOemPS::Command sostituiscono il commento %%Pages:(atend) del driver.
PSINJECT_PAGETRAILER Dopo che il driver della stampante ha inviato %%PageTrailer al flusso di dati.
PSINJECT_PLATECOLOR Quando il driver della stampante è pronto per inserire %%PlateColor:color nel flusso di dati. I dati forniti da IPrintOemPS::Command sostituiscono il commento %%PlateColor:color del driver.
PSINJECT_PSADOBE Prima che il driver della stampante invii %! PS-Adobe al flusso di dati.
PSINJECT_SHOWPAGE Prima che il driver della stampante invii un comando showpage .
PSINJECT_TRAILER Dopo che il driver della stampante invia %%Trailer al flusso di dati.
PSINJECT_VMRESTORE Dopo che il driver della stampante invia un comando di ripristino . Il metodo IPrintOemPS::Command deve inviare nuovamente tutte le risorse inviate dopo l'ultimo PSINJECT_VMSAVE, se le risorse verranno riutilizzate.
PSINJECT_VMSAVE Prima che il driver della stampante invii un comando di salvataggio . Vedere PSINJECT_VMRESTORE.

Il metodo IPrintOemPS::Command deve chiamare IPrintOemDriverPS::D rvWriteSpoolBuf per inserire i comandi PostScript.

Se i metodi IPrintOemPS::Command vengono esportati da più plug-in di rendering, i metodi vengono chiamati nell'ordine in cui vengono specificati i plug-in per l'installazione, ogni volta che il driver della stampante raggiunge un punto di inserimento. Sono applicabili le regole seguenti:

  • Se il punto di inserimento è uno per cui i dati forniti vengono aggiunti ai dati forniti dal driver della stampante, ogni plug-in viene chiamato e ogni plug-in può aggiungere comandi PostScript.

  • Se il punto di inserimento è uno per il quale i dati forniti sostituiscono i dati forniti dal driver della stampante, i plug-in vengono chiamati finché un metodo IPrintOemPS::Command non fornisce ERROR_SUCCESS per dwResult. Non vengono chiamati altri plug-in. Se tutti i plug-in forniscono ERROR_NOT_SUPPORTED, i dati forniti dal driver non vengono sostituiti.

  • Se il punto di inserimento è uno per il quale i dati forniti sostituiscono i dati forniti dal driver della stampante e se un'applicazione ha già sostituito i dati forniti dal driver utilizzando la funzione di escape della stampante POSTSCRIPT_INJECTION, non vengono chiamati plug-in.

Requisiti

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