IPrintOemUI::P ublishDriverInterface 메서드(prcomoem.h)

메서드 IPrintOemUI::PublishDriverInterface 를 사용하면 사용자 인터페이스 플러그 인이 Unidrv 또는 Pscript5 드라이버의 IPrintOemDriverUI, IPrintCoreUI2, IPrintCoreHelperPS 또는 IPrintCoreHelperUni 인터페이스를 가져올 수 있습니다.

구문

HRESULT PublishDriverInterface(
  IUnknown *pIUnknown
);

매개 변수

pIUnknown

드라이버의 IPrintCoreUI2 COM 인터페이스, IPrintOemDriverUI COM 인터페이스, IPrintCoreHelperPS 인터페이스 또는 IPrintCoreHelperUni인터페이스IUnknown인터페이스에 대한 호출자 제공 포인터입니다. 설명 부분을 참조하세요.

반환 값

메서드는 다음 값 중 하나를 반환해야 합니다.

반환 코드 Description
S_OK
작업에 성공했습니다.
E_FAIL
작업이 실패했습니다.

설명

Pscript5 드라이버는 IPrintCoreUI2, IPrintOemDriverUIIPrintCoreHelperPS 인터페이스를 지원합니다. Unidrv는 IPrintOemDriverUIIPrintCoreHelperUni 인터페이스를 지원합니다. 두 유형의 드라이버에 대한 사용자 인터페이스 플러그 인은 메서드를 IPrintOemUI::PublishDriverInterface 구현해야 합니다.

메서드는 지원되는 Pscript5 인터페이스에 대한 정보를 다음과 같이 반환해야 합니다.

  1. Pscript5 드라이버는 먼저 iPrintCoreUI2 instance IUnknown 인터페이스로 설정된 pIUnknown 포인터를 사용하여 메서드를 호출 IPrintOemUI::PublishDriverInterface 합니다. 사용자 인터페이스 플러그 인이 IPrintCoreUI2 인터페이스를 사용할 수 있는 경우 메서드는 S_OK 반환해야 합니다. 그렇지 않으면 플러그 인이 E_FAIL 반환해야 합니다.
  2. 플러그 인이 E_FAIL 반환한 경우 Pscript5 드라이버는 메서드를 다시 호출 IPrintOemUI::PublishDriverInterface 하지만 pIUnknown 포인터를 IPrintOemDriverUI instance IUnknown 인터페이스로 설정합니다. 플러그 인에서 IPrintOemDriverUI 인터페이스를 사용할 수 있는 경우 메서드는 S_OK 반환해야 합니다. 그렇지 않으면 플러그 인이 E_FAIL 반환해야 합니다.
  3. 플러그 인의 IPrintOemUI::GetInfo 메서드가 dwMode가 OEMGI_GETREQUESTEDHELPERINTERFACES 설정된 호출에 대한 응답으로 pBuffer에서 OEMPUBLISH_IPRINTCOREHELPER 값을 반환한 경우 Pscript5 드라이버는 메서드를 다시 호출 IPrintOemUI::PublishDriverInterface 하지만, pIUnknown 포인터를 IPrintCoreHelperPSIPrintCoreHelper 인터페이스를 구현하는 개체로 설정합니다. 플러그 인이 IPrintCoreHelperPS 또는 IPrintCoreHelper 인터페이스를 사용할 수 있는 경우 메서드는 S_OK 반환해야 합니다. 그렇지 않으면 메서드는 E_FAIL 반환해야 합니다.
메서드는 다음과 같이 지원되는 Unidrv 인터페이스에 대한 정보를 반환해야 합니다.
  1. Unidrv 드라이버는 먼저 iPrintOemDriverUI instance IUnknown 인터페이스로 설정된 pIUnknown 포인터를 사용하여 메서드를 호출 IPrintOemUI::PublishDriverInterface 합니다. 플러그 인에서 IPrintOemDriverUI 인터페이스를 사용할 수 있는 경우 메서드는 S_OK 반환해야 합니다. 그렇지 않으면 플러그 인이 E_FAIL 반환해야 합니다.
  2. 플러그 인의 IPrintOemUI::GetInfo 메서드가 dwMode가 OEMGI_GETREQUESTEDHELPERINTERFACES 설정된 호출에 대한 응답으로 pBuffer에서 OEMPUBLISH_IPRINTCOREHELPER 값을 반환한 경우 Unidrv 드라이버는 메서드를 다시 호출 IPrintOemUI::PublishDriverInterface 하지만 pIUnknown 포인터를 IPrintCoreHelperUniIPrintCoreHelper 인터페이스를 구현하는 개체로 설정했습니다. 플러그 인에서 IPrintCoreHelperUni 또는 IPrintCoreHelper 인터페이스를 사용하는 경우 메서드는 S_OK 반환해야 합니다. 그렇지 않으면 메서드는 E_FAIL 반환해야 합니다.
플러그 인이 에 대한 모든 호출에 실패하면 IPrintOemUI::PublishDriverInterface플러그 인은 추가 호출을 받지 않습니다. 사용자 인터페이스 플러그 인이 IPrintCoreUI2, IPrintOemDriverUI, IPrintCoreHelperPS 또는 IPrintCoreHelperUni 인터페이스 메서드를 호출하는 경우 수신된 IUnknown 인터페이스 포인터를 사용하여 IUnknown::QueryInterface(Microsoft Windows SDK 설명서에 설명됨)를 호출하여 드라이버의 지원되는 IPrintCoreUI2버전에 대한 포인터를 가져와야 합니다.IPrintOemDriverUI, IPrintCoreHelperPS 또는 IPrintCoreHelperUni 인터페이스. 자세한 내용은 프린터 드라이버의 인터페이스 식별자를 참조하세요.

각 DDI 함수를 처리하는 동안 UI 플러그 인은 Windows Vista 이전 인터페이스(예: IPrintOemDriverUI 또는 IPrintCoreUI2 인터페이스)의 메서드와 Windows Vista 인터페이스의 새로운 메서드(예: IPrintCoreHelperUni 또는 IPrintCoreHelperPS)를 사용하여 드라이버 설정을 읽거나 작성해서는 안 됩니다. 예를 들어 IPrintOemUI::D ocumentPropertySheets 메서드 중에 UI 플러그 인은 IPrintOemDriverUI::D rvUpdateUISetting 메서드를 사용하여 설정을 작성하고 IPrintCoreHelper::GetOption 메서드를 사용하여 설정을 읽지 않아야 합니다. 또 다른 예로, IPrintOemUI::P rinterEvent 메서드 중에 UI 플러그 인은 IPrintCoreUI2::GetOptions 메서드를 사용하여 설정을 읽고 IPrintCoreHelper::SetOptions 메서드를 사용하여 설정을 작성하면 안 됩니다. 이러한 다양한 버전의 인터페이스 간에는 설정 읽기 및 쓰기 동기화가 지원되지 않습니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 prcomoem.h(Prcomoem.h 포함)

추가 정보

IPrintOemUI

IPrintOemUI::GetInfo