다음을 통해 공유


PTConvertPrintTicketToDevMode 함수(prntvpt.h)

인쇄 티켓을 DEVMODE 구조체로 변환합니다.

구문

HRESULT PTConvertPrintTicketToDevMode(
  [in]  HPTPROVIDER         hProvider,
  [in]  IStream             *pPrintTicket,
        EDefaultDevmodeType baseDevmodeType,
  [in]  EPrintTicketScope   scope,
  [out] ULONG               *pcbDevmode,
  [out] PDEVMODE            *ppDevmode,
  [out] BSTR                *pbstrErrorMessage
);

매개 변수

[in] hProvider

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

[in] pPrintTicket

인쇄 티켓의 시작 부분에 검색 위치가 있는 IStream 에 대한 포인터입니다.

baseDevmodeType

pPrintTicket에서 DEVMODE에 대해 가능한 모든 설정을 지정하지 않는 경우 사용자의 기본 DEVMODE 또는 인쇄 큐의 기본 DEVMODE가 출력 DEVMODE에 값을 제공하는 데 사용되는지 여부를 나타내는 값입니다.

[in] scope

pPrintTicket의 scope 지정하는 값입니다. 이 값은 인쇄 작업의 단일 페이지, 전체 문서 또는 모든 문서를 지정할 수 있습니다. 지정된 scope 외부에 있는 pPrintTicket의 설정은 무시됩니다. 설명 부분을 참조하세요.

[out] pcbDevmode

DEVMODE의 크기에 대한 포인터(바이트)입니다.

[out] ppDevmode

새로 만든 DEVMODE에 대한 포인터입니다.

[out] pbstrErrorMessage

pPrintTicket에 대해 잘못된 항목(있는 경우)을 지정하는 문자열에 대한 포인터입니다. 유효한 경우 NULL입니다.

반환 값

작업이 성공하면 반환 값이 S_OK.

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

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

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

설명

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

baseDevmodeType이 kUserDefaultDevmode이지만 사용자의 기본값을 사용할 수 없는 경우 디바이스의 기본값이 사용됩니다.

반환된 DEVMODE 는 내부적으로 일관성이 없거나 하드 프린터 설정과 충돌할 수 있습니다. 예를 들어 프린터가 선택적 이중을 지원하지만 pPrintTicket 가 이중을 호출하는 경우 반환된 DEVMODE 는 이중체가 설치되지 않은 경우에도 이중을 호출합니다. DocumentProperties를 사용하여 반환된 DEVMODE를 수정합니다.

반환된 ppDevmode 의 버퍼는 PTReleaseMemory와 함께 해제되어야 합니다.

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

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

요구 사항

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

추가 정보

인쇄 스키마

인쇄 스풀러 API 함수

인쇄