다음을 통해 공유


IWiaUIExtension COM 인터페이스

IWiaUIExtension 인터페이스를 구현하는 경우 없음, 일부 또는 모든 IWiaUIExtension 메서드를 구현할 수 있습니다.

특정 메서드가 시스템 제공 대안인 E_NOTIMPL 반환하고 하나를 사용할 수 있는 경우 대신 사용됩니다.

IWiaUIExtension 인터페이스는 다음 메서드를 제공합니다.P

메서드 Description
IWiaUIExtension::D eviceDialog 기본 시스템 사용자 인터페이스를 대체하는 사용자 지정 사용자 인터페이스를 제공합니다.
IWiaUIExtension::GetDeviceBitmapLogo 디바이스에 대한 사용자 지정 비트맵 로고를 가져옵니다.
IWiaUIExtension::GetDeviceIcon 사용자 지정 디바이스 아이콘을 가져옵니다.

IWiaUIExtension::D eviceDialog 는 디바이스 대화 상자를 구현하는 데 필요한 모든 데이터를 포함하는 DEVICEDIALOGDATA 구조체( wiadevd.h로 선언됨)에 대한 포인터를 허용합니다.

디바이스 대화 상자는 다음 네 가지 제약 조건에 따라 모달 Win32 대화 상자로 구현되어야 합니다.

  1. pDeviceDialogData-->ppWiaItems에 반환된 항목의 배열은 CoTaskMemAlloc를 사용하여 할당되어야 하며, CoTaskMemFree를 사용하여 애플리케이션에서 해제됩니다(두 함수에 대한 Microsoft Windows SDK 설명서 참조).

  2. pDeviceDialogData -->pIWiaItemRoot에 저장된 루트 항목을 삭제하거나 해제해서는 안 됩니다. 또한 루트 항목이 유효하지 않도록 해서는 안 됩니다. instance 경우 WIA_CMD_SYNCHRONIZE 디바이스 명령을 호출해서는 안 됩니다.

  3. S_OK 반환하여 사용자가 데이터 전송을 요청했음을 나타내고 S_FALSE 사용자가 전송을 취소했음을 나타냅니다.

  4. 애플리케이션에서 In Process로 실행되므로 메모리 또는 리소스 누수는 이 구성 요소에 도입되지 않도록 주의해야 합니다.

IWiaUIExtension::GetDeviceIcon 을 사용하면 애플리케이션에서 드라이버 지정 아이콘을 사용할 수 있습니다. 리소스 누출을 방지하려면 LR_SHARED 플래그를 사용하여 LoadImage와 함께 이 아이콘을 로드해야 합니다(Windows SDK 설명서 참조).

IWiaUIExtension::GetDeviceBitmapLogo 를 사용하면 애플리케이션이 디바이스 및 공급업체 로고를 적절하게 표시할 수 있습니다. 현재 이 메서드를 사용하는 시스템 구성 요소는 없습니다. 비트맵은 CreateDIBSection을 사용하여 DIB 할당 비트맵이거나 LR_CREATEDIBSECTION 플래그와 함께 LoadImage 를 사용하여 로드되어야 합니다(자세한 내용은 Windows SDK 설명서 참조). 이렇게 하면 애플리케이션에서 색상표 정보를 추출하고 현재 또는 변경되는 디스플레이 색 깊이에 맞게 조정할 수 있습니다.

WIA 스캐너 드라이버에서 사용자 지정 검사 대화 상자를 구현하려면 IWiaUIExtension::D eviceDialog 메서드(위에 나열된 네 가지 제약 조건 포함)를 사용하여 Win32 모달 대화 상자를 만들고 DEVICEDIALOGDATA 구조를 DialogBoxParam 함수의 dwInitParam 매개 변수에 LPARAM으로 전달합니다.

디바이스 대화 상자 자체가 데이터 전송을 관리하지 않는다는 점을 기억해야 합니다. 대화 상자는 드라이버에서 애플리케이션으로 IWiaItem 인터페이스 포인터(속성이 설정된) 배열에 대한 포인터만 반환합니다. 그런 다음 전송 메커니즘 및 형식을 협상하는 것은 애플리케이션에 달려 있습니다.