다음을 통해 공유


WIA 오류 처리기 모덜리스 대화 상자 취소

오류 처리기의 복잡성은 대부분 모덜리스 대화 상자의 취소 및 해제를 처리하는 방법을 중심으로 진행됩니다.

특히 WIA 프록시 코드는 하위 수준 오류 처리기(즉, 해당 애플리케이션의 오류 처리기 이외의 처리기)가 모덜리스 대화 상자에서 드라이버로 취소 요청을 다시 전달할 기회를 얻도록 합니다. 이렇게 하면 하위 수준 처리기가 모덜리스 대화 상자를 해제할 수 있습니다.

오류 처리기가 모덜리스 대화 상자에서 데이터 전송 작업을 취소할 수 있도록 하려면 드라이버는 동일한 hrErrorStatus 코드로 WIA_TRANSFER_MSG_DEVICE_STATUS 메시지를 계속 보내야 하며, 오류 처리기 UI가 진행률을 표시할 수 있도록 lPercentComplete 매개 변수를 업데이트할 수 있습니다. 예를 들어 드라이버가 실제로 "온난화"가 얼마나 걸리는지 예상할 수 있는 경우 hrErrorStatus 가 WIA_STATUS_WARMING_UP 설정된 여러 디바이스 메시지를 보낼 수 있습니다. 이렇게 하면 오류 처리기가 진행률 대화 상자를 표시하고 사용자에게 이 대화 상자에서 전송을 취소할 수 있는 기회를 제공할 수 있습니다. IWiaErrorHandler::ReportStatus에 전달된 lPercentComplete 매개 변수는 드라이버가 IWiaTransferCallback::WiaTransferParams 메서드에서 설정하는 것과 정확히 동일한 lPercentComplete 매개 변수입니다. 이에 대한 예제는 WDK CD의 확장 WIA 몬스터 드라이버를 참조하세요.

오류 처리기가 모덜리스 대화 상자를 해제할 수 있도록 Microsoft는 디바이스 상태 코드 WIA_STATUS_CLEAR 도입했습니다. WIA 프록시가 현재 표시된 것과 다른 디바이스 메시지를 수신할 때 이 메시지는 WIA 프록시가 현재 모덜리스 UI를 표시하는 오류 처리기로 전송됩니다. 프록시는 다음과 같은 경우 WIA_STATUS_CLEAR 메시지를 보냅니다.

드라이버가 WIA_TRANSFER_MESSAGE_STATUS 메시지를 보냅니다.

IWiaTransferCallback::GetNextStream 메서드를 호출하는 동안

스트림/전송의 끝에 있습니다(현재 모덜리스 UI를 표시하는 오류 처리기가 있는 경우).

드라이버는 WIA_STATUS_CLEAR 메시지를 직접 보내서는 안 됩니다.

IWiaTransferCallback 인터페이스는 Microsoft Windows SDK 설명서에 설명되어 있습니다.