Método IPrintOemUI2::D ocumentEvent (prcomoem.h)
O método IPrintOemUI2::DocumentEvent
permite que um plug-in de interface do usuário substitua a implementação padrão do módulo de interface do usuário do driver principal da DDI DrvDocumentEvent.
Sintaxe
HRESULT DocumentEvent(
HANDLE hPrinter,
HDC hdc,
INT iEsc,
ULONG cbIn,
PVOID pvIn,
ULONG cbOut,
PVOID pvOut,
PINT piResult
);
Parâmetros
hPrinter
Identificador de impressora fornecido pelo chamador.
hdc
Identificador de contexto de dispositivo fornecido pelo chamador, gerado por uma chamada CreateDC. Isso será zero se iEsc estiver DOCUMENTEVENT_CREATEDCPRE.
iEsc
Código de escape fornecido pelo chamador que identifica o evento a ser tratado. Esse parâmetro pode ser uma das seguintes constantes inteiros:
Código de escape | Significado |
---|---|
DOCUMENTEVENT_ABORTDOC | A GDI está prestes a processar uma chamada para sua função AbortDoc. |
DOCUMENTEVENT_CREATEDCPOST |
A GDI acabou de processar uma chamada para sua função CreateDC ou CreateIC.
Esse código de escape não deve ser usado, a menos que tenha havido uma chamada anterior para DrvDocumentEvent com iEsc definido como DOCUMENTEVENT_CREATEDCPRE. |
DOCUMENTEVENT_CREATEDCPRE | A GDI está prestes a processar uma chamada para sua função CreateDC ou CreateIC. |
DOCUMENTEVENT_DELETEDC | A GDI está prestes a processar uma chamada para sua função DeleteDC. |
DOCUMENTEVENT_ENDDOCPOST | A GDI acabou de processar uma chamada para sua função EndDoc. |
DOCUMENTEVENT_ENDDOCPRE ou DOCUMENTEVENT_ENDDOC |
A GDI está prestes a processar uma chamada para sua função EndDoc. |
DOCUMENTEVENT_ENDPAGE | A GDI está prestes a processar uma chamada para sua função EndPage. |
DOCUMENTEVENT_ESCAPE | A GDI está prestes a processar uma chamada para sua função extEscape. |
DOCUMENTEVENT_QUERYFILTER | O evento DOCUMENTEVENT_QUERYFILTER representa uma oportunidade para o spooler consultar o driver para obter uma lista dos eventos deXXX DOCUMENTEVENT_ aos quais o driver responderá. Esse evento é emitido pouco antes de uma chamada para drvDocumentEvent que passa o evento DOCUMENTEVENT_CREATEDCPRE. |
DOCUMENTEVENT_RESETDCPOST |
A GDI acabou de processar uma chamada para sua função de ResetDC.
Esse código de escape não deve ser usado, a menos que tenha havido uma chamada anterior para DrvDocumentEvent com iEsc definido como DOCUMENTEVENT_RESETDCPRE. |
DOCUMENTEVENT_RESETDCPRE | A GDI está prestes a processar uma chamada para sua função de ResetDC. |
DOCUMENTEVENT_STARTDOCPOST | A GDI acabou de processar uma chamada para sua função de StartDoc. |
DOCUMENTEVENT_STARTDOCPRE ou DOCUMENTEVENT_STARTDOC |
A GDI está prestes a processar uma chamada para sua função StartDoc. |
DOCUMENTEVENT_STARTPAGE | A GDI está prestes a processar uma chamada para sua função StartPage. |
cbIn
Tamanho fornecido pelo chamador, em bytes, do buffer apontado por pvIn.
pvIn
Ponteiro fornecido pelo chamador, do qual o uso depende do valor fornecido para iEsc, da seguinte maneira:
constante de iEsc | conteúdo de pvIn |
---|---|
DOCUMENTEVENT_ABORTDOC | Não usado. |
DOCUMENTEVENT_CREATEDCPOST | pvIn contém o endereço de um ponteiro para a estrutura de DEVMODEW especificada no parâmetro pvOut em uma chamada anterior para essa função, para a qual o parâmetro iEsc foi definido como DOCUMENTEVENT_CREATEDCPRE. |
DOCUMENTEVENT_CREATEDCPRE | pvIn aponta para uma estrutura de DOCEVENT_CREATEDCPRE. |
DOCUMENTEVENT_DELETEDC | Não usado. |
DOCUMENTEVENT_ENDDOCPOST | Não usado. |
DOCUMENTEVENT_ENDDOCPRE ou DOCUMENTEVENT_ENDDOC |
Não usado. |
DOCUMENTEVENT_ENDPAGE | Não usado. |
DOCUMENTEVENT_ESCAPE | pvIn aponta para uma estrutura de DOCEVENT_ESCAPE. |
DOCUMENTEVENT_QUERYFILTER | O mesmo que para DOCUMENTEVENT_CREATEDCPRE. |
DOCUMENTEVENT_RESETDCPOST | pvIn contém o endereço de um ponteiro para a estrutura de DEVMODEW especificada no parâmetro pvOut em uma chamada anterior para essa função, para a qual o parâmetro iEsc foi definido como DOCUMENTEVENT_RESETDCPRE. |
DOCUMENTEVENT_RESETDCPRE | pvIn contém o endereço de um ponteiro para uma estrutura de DEVMODEW fornecida pelo chamador de resetDC (descrito na documentação do SDK do Microsoft Windows). |
DOCUMENTEVENT_STARTDOCPOST | pvIn aponta para um LONG que especifica o identificador de trabalho de impressão retornado por StartDoc (descrito na documentação do SDK do Windows). |
DOCUMENTEVENT_STARTDOCPRE ou DOCUMENTEVENT_STARTDOC |
pvIn contém o endereço de um ponteiro para uma estrutura DOCINFO fornecida pelo chamador do StartDoc (ambos descritos na documentação do SDK do Windows). |
DOCUMENTEVENT_STARTPAGE | Não usado. |
cbOut
Se o iEsc for DOCUMENTEVENT_ESCAPE:
Valor fornecido pela função que é usado como o parâmetro cbOutput para ExtEscape .
Se o iEsc for DOCUMENTEVENT_QUERYFILTER:
Tamanho fornecido pelo chamador, em bytes, do ponteiro do buffer para pvOut.
Para todos os outros valores iEsc:
Não usado.
pvOut
Ponteiro fornecido por função para um buffer de saída, do qual o uso depende do valor fornecido para iEsc, da seguinte maneira. CreateDC, ExtEscape e ResetDC são descritos na documentação do SDK do Windows.
constante de iEsc | conteúdo de pvOut |
---|---|
DOCUMENTEVENT_CREATEDCPRE | Ponteiro para uma estrutura DEVMODEW fornecida pelo driver, que a GDI usa em vez daquela fornecida pelo chamador de CreateDC. (Se NULL, a GDI usará a estrutura fornecida pelo chamador.) |
DOCUMENTEVENT_ESCAPE | Ponteiro de buffer usado como o parâmetro lpszOutData para ExtEscape . |
DOCUMENTEVENT_QUERYFILTER | Ponteiro fornecido pelo chamador para buffer que contém uma estrutura de DOCEVENT_FILTER. |
DOCUMENTEVENT_RESETDCPRE | Ponteiro para uma estrutura DEVMODEW fornecida pelo driver, que a GDI usa em vez daquela fornecida pelo chamador ResetDC. (Se NULL, a GDI usará a estrutura fornecida pelo chamador.) |
Todos os outros valores de iEsc | Não usado. |
piResult
Ponteiro para um local de memória que recebe um dos seguintes valores:
Valor retornado | Definição |
---|---|
DOCUMENTEVENT_FAILURE | O driver dá suporte ao código de escape identificado por iEsc, mas ocorreu uma falha. |
DOCUMENTEVENT_SUCCESS | O driver lidou com êxito com o código de escape identificado por iEsc. Consulte também a seção Comentários para obter mais informações. |
DOCUMENTEVENT_UNSUPPORTED | O driver não dá suporte ao código de escape identificado pelo iEsc. |
Valor de retorno
Esse método deve retornar um dos valores a seguir. Consulte a seção Comentários para obter mais informações.
Código de retorno | Descrição |
---|---|
|
O plug-in da interface do usuário implementa esse método. |
|
O plug-in da interface do usuário não implementa esse método. |
Observações
O método IPrintOemUI2::DocumentEvent
de um plug-in de interface do usuário executa os mesmos tipos de operações que o DDI DrvDocumentEvent exportado por DLLs de interface da impressora no modo de usuário. Para obter informações sobre eventos de documento e como eles devem ser processados, consulte a descrição do DrvDocumentEvent DDI.
Se você fornecer um plug-in de interface do usuário, o DDI DrvDocumentEvent do driver de impressora chamará o método IPrintOemUI2::DocumentEvent
. A DDI DrvDocumentEvent executa seu próprio processamento para o evento especificado e, em seguida, chama o método IPrintOemUI2::DocumentEvent
para lidar com o processamento adicional do evento.
Quando esse método é chamado com um valor do parâmetro iEsc de DOCUMENTEVENT_QUERYFILTER e retorna com *piResult == DOCUMENTEVENT_SUCCESS, o spooler pode interpretar esse valor de duas maneiras, dependendo se determinados membros da estrutura DOCEVENT_FILTER alteraram valores. Para obter mais informações, consulte a seção Comentários para DrvDocumentEvent.
Quando o evento DOCUMENTEVENT_QUERYFILTER é acionado, o driver principal chama plug-ins na ordem em que foram instalados, até que um deles retorne S_OK ou até que todos os plug-ins tenham sido chamados e nenhum deles tenha retornado S_OK. Dessa forma, no máximo um plug-in tem permissão para lidar com o evento DOCUMENTEVENT_QUERYFILTER e o filtro especificado é aplicado a todos os plug-ins na cadeia de plug-in.
Para um gravador de plug-in que está implementando a interface de IPrintOemUI2, mas não precisa dar suporte ao método IPrintOemUI2::DocumentEvent
, esse método deve retornar E_NOTIMPL para todos os valores de iEsc. Se você precisar implementar esse método, ele deverá retornar S_OK para todos os valores de iEsc. Isso sinaliza ao driver principal que esse método lidou com o evento relevante. O driver principal usa o valor que esse método coloca em piResult como o valor retornado para o DrvDocumentEvent DDI.
Requisitos
Requisito | Valor |
---|---|
da Plataforma de Destino | Área de trabalho |
cabeçalho | prcomoem.h (inclua Prcomoem.h) |