다음을 통해 공유


IWiaTransferCallback::GetNextStream 메서드

지정된 항목에 대한 새 스트림을 가져옵니다.

구문

HRESULT GetNextStream(
  [in]  LONG    lFlags,
  [in]  BSTR    bstrItemName,
  [in]  BSTR    bstrFullItemName,
  [out] IStream **ppDestination
);

매개 변수

lFlags [in]

형식: LONG

현재 사용되지 않습니다. 0으로 설정해야 합니다.

bstrItemName [in]

형식: BSTR

스트림을 만들 항목의 이름을 지정합니다.

bstrFullItemName [in]

형식: BSTR

스트림을 만들 항목의 전체 이름을 지정합니다.

ppDestination [out]

형식: IStream**

IStream 개체에 대한 포인터의 주소를 받습니다.

반환 값

형식: HRESULT

메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다.

설명

이 메서드가 이미지 처리 필터에 의해 구현되면 WIA(Windows Image Acquisition) 2.0 미니드라이버가 이미지를 획득하는 동안 호출하여 클라이언트에서 대상 스트림을 가져옵니다.

필터의 IWiaTransferCallback::GetNextStream 은 애플리케이션의 콜백 메서드에 위임해야 합니다. 필터는 애플리케이션 콜백의 IWiaTransferCallback::GetNextStream 구현에서 반환된 스트림을 사용하여 WIA 2.0 서비스로 다시 전달하는 자체 스트림을 만듭니다. 필터링은 필터의 스트림이 IStream::Write 메서드를 호출할 때 수행됩니다.

필터링되지 않은 이미지 데이터는 드라이버가 아닌 WIA 2.0 미리 보기 구성 요소에서 가져올 수 있으므로 필터의 스트림은 각 쓰기에 기록되는 바이트 수에 대해 어떠한 가정도 할 수 없습니다. WIA 2.0 미리 보기 구성 요소는 항상 필터링되지 않은 전체 이미지 데이터를 필터의 스트림에 한 번만 기록합니다. 즉, 필터의 스트림에 하나의 원본이 기록됩니다. 드라이버와 미리 보기 구성 요소가 모두 필터의 스트림에 쓰는 경우 필터의 스트림은 IStream::Write 가 처음 호출될 때 전체 헤더를 수신한다고 가정할 수 없습니다. 그러나 해당 드라이버는 항상 헤더 데이터를 한 쓰기에 먼저 씁니다. 또한 후속 쓰기에 정확히 하나의 검색 줄이 포함되어 있다고 가정할 수 없습니다. 따라서 필터링 스트림은 이미지 데이터가 시작되는 위치를 결정하기 위해 기록된 바이트 수를 계산해야 할 수 있습니다.

이미지 처리 필터의 IWiaTransferCallback::GetNextStream 구현은 이미지를 가져오는 항목에서 이미지 처리에 필요한 속성을 읽어야 합니다. 필터는 InitializeFilter에 전달된 pWiaItem2에서 직접 속성을 읽지 않습니다. 대신 필터는 이 WIA 2.0 항목에서 FindItemByName 을 호출하여 실제 WIA 2.0 항목을 가져와야 합니다. 그 이유는 획득되는 이미지가 실제로 pWiaItem2의 자식 항목일 수 있기 때문입니다. 예를 들어 폴더를 획득하는 동안 필터는 pWiaItem2를 사용하여 IWiaTransferCallback::GetNextStream에서 pWiaItem2의 자식 항목을 가져옵니다(폴더를 획득하는 동안 드라이버는 pWiaItem2의 자식 항목으로 표시되는 이미지를 반환함). WIA 2.0 미리 보기 구성 요소가 자식 WIA 2.0 항목을 전달하는 이미지 처리 필터를 호출할 때도 마찬가지입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버
Windows Server 2008 [데스크톱 앱만 해당]
헤더
Wia.h
IDL
Wia.idl
라이브러리
Wiaguid.lib