프린터 드라이버에서 플러그 인 인터페이스 액세스

Important

최신 인쇄 플랫폼은 Windows에서 프린터와 통신하는 데 선호되는 수단입니다. 프린터 장치 개발을 위해 Windows 10 및 11의 인쇄 환경을 사용자 지정하려면 MICROSOFT의 IPP 받은 편지함 클래스 드라이버와 PSA(인쇄 지원 앱)를 사용하는 것이 좋습니다.

자세한 내용은 최신 인쇄 플랫폼 및 인쇄 지원 앱 디자인 가이드를 참조하세요.

UI 플러그 인 또는 렌더링 플러그 인이 설치된 경우 프린터 드라이버(Unidrv 또는 Pscript5)는 다음 호출 시퀀스를 사용하여 플러그 인의 IPrintOemUI, IPrintOemUI2, IPrintOemUni, IPrintOemUni2, IPrintOemUni3, IPrintOemPS 또는 IPrintOemPS2 COM 인터페이스에 액세스합니다.

  1. 드라이버는 LoadLibrary를 호출하여 플러그 인 DLL을 로드하여 플러그 인의 DllMain 함수를 호출합니다.

  2. 드라이버는 플러그 인의 DllGetClassObject IClassFactory 인터페이스에 대한 포인터를 반환하는 플러그 인의 함수를 호출합니다.

  3. 드라이버는 iClassFactory 인터페이스의 CreateInstance 메서드를 호출하여 IID_IUnknown 인터페이스 식별자를 지정하여 메서드가 플러그 인의 IPrintOemUI, IPrintOemUI2, IPrintOemUni2, IPrintOemUni2, IPrintOemUni3, IPrintOemPS 또는 IPrintOemPS2 인터페이스의 인스턴스를 만들고 인스턴스의 IUnknown 인터페이스에 대한 포인터를 반환합니다.

  4. 드라이버는 IUnknown 인터페이스의 QueryInterface 메서드를 호출하여 플러그 인에서 지원되는 IPrintOemUI, IPrintOemUI2, IPrintOemUni2, IPrintOemUni3, IPrintOemPS 또는 IPrintOemPS2 인터페이스의 버전을 확인하고 지원되는 인터페이스에 대한 포인터를 수신합니다.

  5. 드라이버는 플러그 인 인터페이스의 PublishDriverInterface 메서드를 호출하여 드라이버의 IPrintOemDriverUI, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS 또는 IPrintCorePS2 인터페이스를 플러그 인에서 사용할 수 있도록 합니다.

  6. 플러그 인이 IPrintOemUni 인터페이스를 구현한 경우 드라이버는 IPrintOemUni::GetImplementedMethod를 호출하여 구현된 인터페이스 메서드를 결정합니다. 마찬가지로 플러그 인이 IPrintOemUni2 인터페이스를 구현한 경우 드라이버는 동일한 용도로 IPrintOemUni2::GetImplementedMethod를 호출합니다.