프린터 드라이버와 함께 CPSUI 사용
Important
최신 인쇄 플랫폼은 Windows에서 프린터와 통신하는 데 선호되는 수단입니다. 프린터 장치 개발을 위해 Windows 10 및 11의 인쇄 환경을 사용자 지정하려면 MICROSOFT의 IPP 받은 편지함 클래스 드라이버와 PSA(인쇄 지원 앱)를 사용하는 것이 좋습니다.
자세한 내용은 최신 인쇄 플랫폼 및 인쇄 지원 앱 디자인 가이드를 참조하세요.
인쇄 스풀러는 프린터 인터페이스 DLL과 함께 CPSUI를 사용하여 인쇄 문서 및 프린터 디바이스에 대한 속성 시트 페이지를 만듭니다. 다음 단계는 응용 프로그램(예: Microsoft Word)이 인쇄 문서의 속성 시트를 표시하는 경우에 관련됩니다.
애플리케이션은 인쇄 스풀러의 DocumentProperties 함수를 호출하여 문서를 인쇄할 프린터를 지정합니다.
인쇄 스풀러는 내부 PFNPROPSHEETUI 형식 콜백 함수를 지정하여 CPSUI의 진입점 함수인 CommonPropertySheetUI를 호출합니다.
CPSUI는 스풀러의 PFNPROPSHEETUI 형식 콜백 함수를 호출합니다.
스풀러의 PFNPROPSHEETUI 형식 콜백 함수는 CPSUI의 ComPropSheet 함수(CPSFUNC_ADD_PFNPROPSHEETUI 함수 코드 포함)를 호출하여 적절한 프린터 인터페이스 DLL의 DrvDocumentPropertySheets 함수의 주소를 CPSUI에 알립니다.
CPSUI는 프린터 인터페이스 DLL의 DrvDocumentPropertySheets 함수를 호출합니다 .
프린터 인터페이스 DLL의 DrvDocumentPropertySheets 함수는 CPSUI의 ComPropSheet 함수(일반적으로 CPSFUNC_ADD_PCOMPROPSHEETUI 함수 코드 포함)를 호출하여 CPSUI에 속성 시트 페이지 설명 및 페이지 이벤트 콜백을 제공합니다.
CPSUI의 ComPropSheet 함수는 CreatePropertySheetPage(Windows SDK 설명서에 설명됨)를 호출하여 프린터 인터페이스 DLL에 지정된 속성 시트 페이지를 만듭니다. 그런 다음 CPSUI는 PropertySheet를 호출하여 속성 시트 페이지를 표시합니다.
다음 다이어그램에서는 이러한 단계를 보여 줍니다.
애플리케이션 사용자가 속성 시트 페이지를 트래버스하고 옵션 값을 수정할 때 운영 체제는 CPSUI에 페이지 이벤트 및 CPSUI를 알립니다. 그러면 프린터 인터페이스 DLL에서 제공하는 페이지 이벤트 콜백을 호출합니다. 페이지 이벤트 콜백은 페이지 이벤트를 처리하고 필요에 따라 새로 선택한 옵션 값을 내부적으로 저장합니다.
사용자가 확인 또는 취소 단추를 클릭하여 속성 시트를 해제하면 CPSUI는 페이지를 삭제하고 CommonPropertySheetUI 함수가 인쇄 스풀러로 돌아가서 컨트롤을 애플리케이션에 반환합니다.
응용 프로그램에서 인쇄 문서 대신 프린터 디바이스의 속성 시트를 표시하면 애플리케이션이 스풀러의 PrinterProperties 함수를 호출하고 스풀러가 프린터 인터페이스 DLL의 DrvDevicePropertySheets 함수의 주소를 CPSUI에 전달한다는 점을 제외하고 동일한 단계가 수행됩니다.