다음을 통해 공유


PTMergeAndValidatePrintTicket 함수(prntvpt.h)

두 인쇄 티켓을 병합하고 유효한 실행 가능한 인쇄 티켓을 반환합니다.

구문

HRESULT PTMergeAndValidatePrintTicket(
  [in]  HPTPROVIDER       hProvider,
  [in]  IStream           *pBaseTicket,
  [in]  IStream           *pDeltaTicket,
  [in]  EPrintTicketScope scope,
        IStream           *pResultTicket,
  [out] BSTR              *pbstrErrorMessage
);

매개 변수

[in] hProvider

열려 있는 인쇄 티켓 공급자에 대한 핸들입니다. 이 핸들은 PTOpenProvider 또는 PTOpenProviderEx 함수에 의해 반환됩니다.

[in] pBaseTicket

인쇄 티켓에 대한 포인터입니다. 스트림의 검색 위치는 인쇄 티켓 콘텐츠의 시작 부분에 있어야 합니다.

참고PTMergeAndValidatePrintTicket 는 병합하기 전에 인쇄 스키마 프레임워크 에 대해 기본 티켓의 유효성을 검사합니다.
 

[in] pDeltaTicket

인쇄 티켓에 대한 포인터입니다. 스트림의 검색 위치는 인쇄 티켓 콘텐츠의 시작 부분에 있어야 합니다. NULL 은 이 매개 변수에 전달할 수 있습니다. 설명 부분을 참조하세요.

참고PTMergeAndValidatePrintTicket 는 병합하기 전에 인쇄 스키마 프레임워크 에 대해 델타 티켓의 유효성을 검사합니다.
 

[in] scope

pDeltaTicketpResultTicket의 scope 단일 페이지, 전체 문서 또는 인쇄 작업의 모든 문서인지 여부를 지정하는 값입니다. 설명 부분을 참조하세요.

pResultTicket

실행 가능한 병합된 티켓이 기록될 스트림에 대한 포인터입니다. 검색 위치는 인쇄 티켓의 끝에 있습니다. 설명 부분을 참조하세요.

[out] pbstrErrorMessage

pBaseTicket 또는 pDeltaTicket에 대해 잘못된 항목을 지정하는 문자열에 대한 포인터입니다. 둘 다 유효한 경우 NULL입니다. 실행 가능성 문제는 pbstrErrorMessage에서 보고되지 않습니다.

반환 값

병합된 티켓의 설정과 프린터 기능 간에 충돌 없이 작업이 성공하면 HRESULT 가 S_PT_NO_CONFLICT.

작업이 성공했지만 프린터에서 지원하지 않는 기능을 요청했기 때문에 병합된 티켓을 하나 이상의 설정에서 변경해야 하는 경우 HRESULT 는 S_PT_CONFLICT_RESOLVED. 설명 부분을 참조하세요.

hProvider가 다른 스레드에서 열린 경우 HRESULT는 E_INVALIDARG.

pBaseTicket가 유효하지 않으면 HRESULT가 E_PRINTTICKET_FORMAT.

pDeltaTicket이 유효하지 않으면 HRESULT가 E_DELTA_PRINTTICKET_FORMAT.

그렇지 않으면 HRESULT에 다른 오류 코드가 반환됩니다. COM 오류 코드에 관한 자세한 내용은 오류 처리를 참조하세요.

설명

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

이 함수는 두 가지 방법으로 유효성을 검사합니다. 먼저 인쇄 스키마 프레임워크에 대해 두 입력 티켓의 유효성을 검사하여 pbstrErrorMessage의 오류를 보고합니다. 그런 다음 프린터 드라이버와 병합된 인쇄 티켓의 실행 가능성을 확인합니다. 병합된 티켓이 프린터에서 지원하지 않는 기능을 요청하는 경우 불가능 설정이 대체되고 프린터 드라이버가 사용할 대체 설정을 결정합니다. 일반적으로 프린터 드라이버는 사용자의 기본 인쇄 티켓 설정을 사용합니다. 프린터 드라이버가 pBaseTicket 에서 가리키는 것과 동일한 인쇄 티켓을 대체 값의 원본으로 사용하지 않는 경우 pResultTicket 가 두 입력 인쇄 티켓의 일부 설정에서 다를 수 있습니다.

일반적으로 pBaseTicket 에는 작업, 문서 및 페이지 설정의 전체 범위가 포함됩니다. 일반적으로 사용자 기본값 또는 디바이스 기본 인쇄 티켓은 pBaseTicket에 사용됩니다.

pDeltaTicketNULL인 경우 메서드는 pBaseTicket의 유효성을 검사하고, 해당 실행 가능성을 확인하고, pResultTicket가 가리키는 스트림에서 수정할 수 있는 값을 반환합니다.

scope 외부에 있는 pDeltaTicket 값은 무시됩니다. 예를 들어 scope 단일 페이지일 경우 작업 전체 설정 및 문서 전체 설정은 무시됩니다. 작업 scope 문서 scope 및 페이지 scope 포함합니다. 문서 scope 페이지 scope 포함합니다.

scope 외부에 있는 설정은 pResultTicket에 포함되지 않습니다.

함수가 값을 반환하면 pResultTicket 의 검색 위치가 인쇄 티켓 콘텐츠의 끝에 있습니다. 호출자는 데이터를 읽기 전에 검색 위치를 다시 설정해야 합니다.

함수가 반환되면 pbstrErrorMessageNULL 이 아니면 호출자는 SysFreeString을 사용하여 문자열을 해제해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 prntvpt.h
라이브러리 Prntvpt.lib
DLL Prntvpt.dll

추가 정보

인쇄 스키마

인쇄 스풀러 API 함수

인쇄