다음을 통해 공유


WIA 미니드라이버에 UI 추가

WIA 미니드라이버를 사용하여 별도의 DLL을 설치하여 WIA 미니드라이버의 확장된 UI를 추가하거나 UI 구성 요소를 바꿀 수 있습니다. TWAIN 드라이버와 달리 WIA 드라이버의 UI 구성 요소는 실제 WIA 미니드라이버와는 별개입니다. UI 구성 요소는 애플리케이션의 프로세스에서 실행되며 WIA 미니드라이버가 WIA 서비스의 프로세스에서 실행됩니다. 따라서 WIA 드라이버가 UI를 직접 표시하지 않을 수 있습니다. 드라이버의 WIA UI 확장 모듈만 UI를 표시할 수 있습니다.

WIA를 사용하면 시스템 제공 대화 상자에 속성 페이지를 추가하거나, 사용자 지정 아이콘 이미지를 제공하거나, 시스템 제공 대화 상자를 완전히 바꿀 수 있습니다. 속성 페이지 확장 메커니즘은 IShellPropSheetExt COM 인터페이스의 셸 정의를 기반으로 합니다(Microsoft Windows SDK 설명서에 설명되어 있음). 이 메커니즘은 속성 시트 처리기(디바이스 UI>\shellex\<PropertySheetHandlersHKCR\Clsid\Clsid)에 등록됩니다.

속성 페이지를 제외한 모든 디바이스 대화 상자 확장은 IWiaUIExtension 인터페이스 를 구현해야 합니다.

IWiaUIExtension 인터페이스를 구현하고 시스템 UI를 대체하지 않으려면 IWiaUIExtension::D eviceDialog 메서드에 대한 E_NOTIMPL 반환해야 합니다. 다른 반환 값은 디바이스의 디바이스 대화 상자를 표시하지 않습니다.

디바이스 대화 상자는 In-Process COM 서버에서 모달 대화 상자로 구현되어야 하며, 부모에 대한 pDeviceDialogData ->hwndParentDialogBoxParam 함수에 전달해야 합니다(Windows SDK 설명서에 설명됨). 디바이스 대화 상자는 사용자가 대화 상자를 취소하는 경우 S_FALSE 성공에 대한 S_OK 반환하거나 다른 오류에 대한 COM 오류 HRESULT를 반환해야 합니다.

DEVICEDIALOGDATA 구조에는 사용자 지정 디바이스 대화 상자를 구현하는 데 필요한 모든 데이터가 포함됩니다.

디바이스에 대한 사용자 지정 아이콘을 제공하려면 IWiaUIExtension::GetDeviceIcon 메서드를 구현합니다. 이 아이콘은 DestroyIcon 을 사용하여 호출자에 의해 제거됩니다(Windows SDK 설명서에 설명됨).

참고 WIA에는 매우 제한된 스크립팅 지원이 있습니다. 따라서 UI를 바꿀 수 있지만 스크립트에서 단순히 표시하지 않는 것은 불가능합니다.

이 섹션의 나머지 부분에는 다음이 포함됩니다.

사용자 고유의 사용자 지정 UI를 구현하는 방법에 대한 전체 예제인 "헬로 월드" WIA Minidriver UI 확장을 만듭니다.