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:

  1. Para iniciar um trabalho de impressão, chame StartDocPrinter.
  2. Para iniciar cada página, chame StartPagePrinter.
  3. Para gravar dados em uma página, chame WritePrinter.
  4. Para encerrar cada página, chame EndPagePrinter.
  5. Repita 2, 3 e 4 para quantas páginas forem necessárias.
  6. 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
Winspool.h (inclua Windows.h)
Biblioteca
Winspool.lib
DLL
Winspool.drv
Nomes Unicode e ANSI
StartDocPrinterW (Unicode) e StartDocPrinterA (ANSI)

Confira também

Addjob

DOC_INFO_1

DOC_INFO_2

EndDocPrinter

EndPagePrinter

OpenPrinter

Impressão

Funções da API do Spooler de impressão

StartDocPrinter

StartPagePrinter

WritePrinter