Função StartDocPrinter
A função StartDocPrinter notifica o spooler de impressão de que um documento deve ser spooled para impressão.
Sintaxe
DWORD StartDocPrinter(
_In_ HANDLE hPrinter,
_In_ DWORD Level,
_In_ LPBYTE pDocInfo
);
Parâmetros
-
hPrinter [in]
-
Um identificador para a impressora. Use a função OpenPrinter ou AddPrinter para recuperar um identificador de impressora.
-
Nível [in]
-
A versão da estrutura para a qual pDocInfo aponta. Esse valor deve ser 1.
-
pDocInfo [in]
-
Um ponteiro para uma estrutura DOC_INFO_1 que descreve o documento a ser impresso.
Valor retornado
Se a função for bem-sucedida, o valor retornado identificará o trabalho de impressão.
Se a função falhar, o valor retornado será zero.
Comentários
Observação
Essa é uma função de bloqueio ou síncrona e pode não retornar imediatamente. A rapidez com que essa função retorna depende de fatores de tempo de execução, como status de rede, configuração do servidor de impressão e fatores de implementação de driver de impressora que são difíceis de prever ao escrever um aplicativo. Chamar essa função de um thread que gerencia a interação com a interface do usuário pode fazer com que o aplicativo pareça não responder.
A sequência típica de um trabalho de impressão é a seguinte:
- Para iniciar um trabalho de impressão, chame StartDocPrinter.
- Para iniciar cada página, chame StartPagePrinter.
- Para gravar dados em uma página, chame WritePrinter.
- Para encerrar cada página, chame EndPagePrinter.
- Repita 2, 3 e 4 para quantas páginas forem necessárias.
- Para encerrar o trabalho de impressão, chame EndDocPrinter.
Observe que chamar StartPagePrinter e EndPagePrinter pode não ser necessário, como se o tipo de dados de impressão incluísse as informações da página.
Quando uma página em um arquivo em spool excede aproximadamente 350 MB, ela pode falhar ao imprimir e não enviar uma mensagem de erro. Por exemplo, isso pode ocorrer ao imprimir arquivos EMF grandes. O limite de tamanho da página depende de muitos fatores, incluindo a quantidade de memória virtual disponível, a quantidade de memória alocada por processos de chamada e a quantidade de fragmentação no heap do processo.
Exemplos
Para obter um programa de exemplo que usa essa função, consulte Como imprimir usando a API de impressão GDI.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte |
Windows 2000 Server [somente aplicativos da área de trabalho] |
Cabeçalho |
|
Biblioteca |
|
DLL |
|
Nomes Unicode e ANSI |
StartDocPrinterW (Unicode) e StartDocPrinterA (ANSI) |