StartDocPrinter 함수

StartDocPrinter 함수는 인쇄를 위해 문서가 스풀러될 것임을 인쇄 스풀러에 알릴 수 있습니다.

구문

DWORD StartDocPrinter(
  _In_ HANDLE hPrinter,
  _In_ DWORD  Level,
  _In_ LPBYTE pDocInfo
);

매개 변수

hPrinter [ in]

프린터에 대한 핸들입니다. OpenPrinter 또는 AddPrinter 함수를 사용하여 프린터 핸들을 검색합니다.

수준 [ in]

pDocInfo가 가리키는 구조체의 버전입니다. 이 값은 1이어야 합니다.

pDocInfo [ in]

인쇄할 문서를 설명하는 DOC _ INFO _ 1 구조체에 대한 포인터입니다.

반환 값

함수가 성공하면 반환 값은 인쇄 작업을 식별합니다.

함수가 실패하면 반환 값은 0입니다.

설명

참고

이는 차단 또는 동기 함수이며 즉시 반환되지 않을 수 있습니다. 이 함수가 반환되는 횟수는 애플리케이션을 작성할 때 예측하기 어려운 네트워크 상태, 인쇄 서버 구성 및 프린터 드라이버 구현 요소와 같은 런타임 요인에 따라 달라집니다. 사용자 인터페이스와의 상호 작용을 관리하는 스레드에서 이 함수를 호출하면 애플리케이션이 응답하지 않는 것처럼 보일 수 있습니다.

인쇄 작업의 일반적인 시퀀스는 다음과 같습니다.

  1. 인쇄 작업을 시작하려면 StartDocPrinter 를 호출합니다.
  2. 각 페이지를 시작하려면 StartPagePrinter 를 호출합니다.
  3. 페이지에 데이터를 쓰려면 WritePrinter 를 호출합니다.
  4. 각 페이지를 종료하려면 EndPagePrinter 를 호출합니다.
  5. 필요한 만큼 많은 페이지에 대해 2, 3 및 4를 반복합니다.
  6. 인쇄 작업을 종료하려면 EndDocPrinter 를 호출합니다.

인쇄 데이터 형식에 페이지 정보가 포함된 경우와 같이 StartPagePrinterEndPagePrinter를 호출할 필요가 없습니다.

스풀된 파일의 페이지가 약 350MB를 초과하면 인쇄에 실패하고 오류 메시지를 보내지 못할 수 있습니다. 예를 들어 대용량 EMF 파일을 인쇄할 때 이 문제가 발생할 수 있습니다. 페이지 크기 제한은 사용 가능한 가상 메모리 양, 프로세스를 호출하여 할당된 메모리 양 및 프로세스 힙의 조각화 양을 비롯한 여러 요인에 따라 달라집니다.

예제

이 함수를 사용하는 샘플 프로그램은 방법: GDI 인쇄 API를 사용하여 인쇄를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 2000 Professional [데스크톱 앱만]
지원되는 최소 서버
Windows 2000 Server [데스크톱 앱만]
헤더
Winspool.h(Windows.h 포함)
라이브러리
Winspool.lib
DLL
Winspool.drv
유니코드 및 ANSI 이름
StartDocPrinterW(유니코드)StartDocPrinterA(ANSI)

참조

AddJob

문서 _ 정보 _ 1

문서 _ 정보 _ 2

EndDocPrinter

EndPagePrinter

OpenPrinter

인쇄

인쇄 스풀러 API 함수

StartDocPrinter

StartPagePrinter

WritePrinter