다음을 통해 공유


IPrintTicketProvider2::ConvertPrintTicketToDevMode 메서드(prdrvcom.h)

IPrintTicketProvider2::ConvertPrintTicketToDevMode 메서드는 인쇄 티켓을 DEVMODEW 구조체로 변환합니다.

구문

HRESULT ConvertPrintTicketToDevMode(
  [in]  IN IXMLDOMDocument2 *pPrintTicket,
  [in]  IN ULONG            cbDevmodeIn,
  [in]  IN PDEVMODE         pDevmodeIn,
  [out] OUT ULONG           *pcbDevmodeOut,
  [out] OUT PDEVMODE        *ppDevmodeOut
);

매개 변수

[in] pPrintTicket

입력 인쇄 티켓에 대한 포인터입니다. IPrintTicketProvider2::ConvertPrintTicketToDevMode 는 입력 인쇄 티켓의 설정을 DEVMODEW 구조의 필드로 변환합니다.

[in] cbDevmodeIn

입력 DEVMODEW 구조체의 크기(바이트)입니다. 이 크기에는 DEVMODEW 구조의 퍼블릭 및 프라이빗 섹션이 모두 포함됩니다.

[in] pDevmodeIn

기본 설정을 포함하는 입력 DEVMODEW 구조체에 대한 포인터입니다. DEVMODEW 구조는 인쇄 큐 기본 DEVMODEW 구조이거나 사용자 기본 DEVMODEW 구조일 수 있습니다. 이 매개 변수는 사용자 기본 DEVMODEW 구조를 나타낼 수 있으므로 OEM 플러그 인 공급자는 해당 구조의 데이터의 유효성을 검사해야 합니다. 인쇄 큐의 드라이버가 변경되거나 업그레이드되는 경우와 같이 특정 드라이버에 대해 사용자 기본 DEVMODEW 구조가 유효하지 않을 수 있습니다.

[out] pcbDevmodeOut

출력 DEVMODEW 구조체의 크기(바이트)를 포함하는 변수에 대한 포인터입니다.

[out] ppDevmodeOut

출력 DEVMODEW 구조체의 주소를 포함하는 변수에 대한 포인터입니다. IPrintTicketProvider2::ConvertPrintTicketToDevMode가 성공적으로 반환되면 출력 DEVMODEW 구조체의 멤버가 인쇄 티켓의 설정을 반영하도록 다시 설정됩니다. 자세한 내용은 아래 설명 부분을 참조하십시오.

반환 값

IPrintTicketProvider2::ConvertPrintTicketToDevMode 는 작업이 성공하면 S_OK 반환해야 합니다. 그렇지 않으면 이 메서드는 표준 COM 오류 코드를 반환해야 합니다.

설명

핵심 드라이버는 인쇄 티켓을 DEVMODEW 구조체로 변환하기 전에 IPrintTicketProvider2::ConvertPrintTicketToDevMode 메서드를 호출합니다. 이 메서드 호출에서 핵심 드라이버는 완전히 채워진 입력 인쇄 티켓과 기본값으로 설정된 DEVMODEW 구조를 전달합니다. 변환에서 플러그 인은 이전에 DEVMODEW 구조에서 인쇄 티켓으로 변환하는 동안 인쇄 티켓에 대한 변경 내용을 실행 취소해야 합니다. 이 이전 변환 중에 플러그 인이 개인 네임스페이스에서 공용 네임스페이스로 기능을 이동한 경우 플러그 인은 핵심 드라이버에 적합한 형식, 즉 핵심 드라이버가 이전에 IPrintOemPrintTicketProvider의 플러그 인에 제공된 인쇄 티켓에 기능을 배치한 형식으로 개인 네임스페이스로 기능을 복원해야 합니다. ConvertDevModeToPrintTicket 메서드. 이 복원은 핵심 드라이버가 인쇄 티켓에서 기능을 인식하고 핵심 드라이버의 DEVMODEW 구조의 프라이빗 부분에 해당 설정을 반영할 수 있도록 하는 동시에 핵심 드라이버가 인쇄 티켓-DEVMODEW 변환의 일부를 수행할 수 있도록 필요합니다.

시스템에서 인쇄 티켓을 DEVMODEW 구조체로 다시 변환하기 전에 먼저 기본 DEVMODEW를 로드합니다. 그런 다음, 시스템은 공급자의 IPrintTicketProvider2::BindPrinter 메서드를 호출합니다. 그런 다음 이 메서드는 인쇄 티켓에서 지원되는 모든 설정을 읽고 해당 설정을 DEVMODEW 구조에 배치해야 합니다. 모든 기능이 반드시 표현되는 것은 아니며, 종종 존재하는 Option 인스턴스에는 공급자가 일반적으로 채우는 점수가 매긴 속성 인스턴스가 모두 포함되지 않을 수 있습니다. 공급자가 인쇄 티켓에서 DEVMODEW로 변환하는 동안 시스템에 의해 채워진 설정을 변경하는 경우 공급자는 이 메서드에서 해당 변경 내용의 역방향을 수행해야 합니다. 공급자가 반환된 후 시스템은 인쇄 티켓에 표시되지만 공급자가 명시적으로 사용하지 않도록 설정하지 않은 공용 DEVMODEW 설정을 덮어씁니다.

요구 사항

요구 사항
헤더 prdrvcom.h(Prdrvcom.h 포함)

추가 정보

IPrintTicketProvider2

IPrintTicketProvider2::ConvertDevModeToPrintTicket