Condividi tramite


Metodo IWiaTransferCallback::GetNextStream

Ottiene un nuovo flusso per l'elemento specificato.

Sintassi

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

Parametri

lFlags [in]

Tipo: LONG

Attualmente inutilizzato. Deve essere impostato su zero.

bstrItemName [in]

Tipo: BSTR

Specifica il nome dell'elemento per cui creare il flusso.

bstrFullItemName [in]

Tipo: BSTR

Specifica il nome completo dell'elemento per cui creare il flusso.

ppDestination [out]

Tipo: IStream**

Riceve l'indirizzo di un puntatore al nuovo oggetto IStream .

Valore restituito

Tipo: HRESULT

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

Quando questo metodo viene implementato da un filtro di elaborazione delle immagini, il minidriver Windows Image Acquisition (WIA) 2.0 lo chiama durante l'acquisizione dell'immagine per ottenere il flusso di destinazione dal client.

IWiaTransferCallback::GetNextStream di un filtro deve delegare al metodo di callback dell'applicazione. Il filtro usa il flusso restituito dall'implementazione IWiaTransferCallback::GetNextStream del callback dell'applicazione per creare il proprio flusso che passa di nuovo al servizio WIA 2.0. Il filtro viene eseguito quando il flusso del filtro chiama il metodo IStream::Write .

Il flusso del filtro non può fare ipotesi sul numero di byte scritti in ogni scrittura, poiché i dati dell'immagine non filtrati possono provenire dal componente di anteprima wia 2.0 anziché dal driver. Il componente di anteprima di WIA 2.0 scrive sempre l'intero dato immagine non filtrato nel flusso del filtro una sola volta, il che significa che il flusso del filtro ha un'unica origine che scrive. Se sia il driver che il componente di anteprima scrivono nel flusso del filtro, il flusso del filtro non può presupporre, ad esempio, che riceverà l'intestazione completa la prima volta che IStream::Write viene chiamato anche se il driver corrispondente scrive sempre i dati di intestazione prima in una scrittura. Né può presupporre che una scrittura successiva contenga esattamente una riga di analisi. Pertanto, il flusso di filtro potrebbe dover contare il numero di byte scritti per determinare, ad esempio, dove iniziano i dati dell'immagine.

L'implementazione IWiaTransferCallback::GetNextStream del filtro di elaborazione delle immagini deve leggere le proprietà necessarie per l'elaborazione delle immagini dall'elemento per cui viene acquisita l'immagine. Il filtro non legge le proprietà direttamente da pWiaItem2 passate in InitializeFilter. Al contrario, il filtro deve chiamare FindItemByName in questo elemento WIA 2.0 per ottenere l'elemento WIA 2.0 effettivo. Il motivo è che l'immagine acquisita può effettivamente essere un elemento figlio di pWiaItem2. Ad esempio, durante l'acquisizione di una cartella il filtro usa pWiaItem2 per ottenere gli elementi figlio di pWiaItem2 in IWiaTransferCallback::GetNextStream (durante l'acquisizione di una cartella il driver restituisce le immagini rappresentate dagli elementi figlio di pWiaItem2). Lo stesso vale quando il componente WIA 2.0 Preview chiama il filtro di elaborazione delle immagini passando un elemento WIA 2.0 figlio.

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista [solo app desktop]
Server minimo supportato
Windows Server 2008 [solo app desktop]
Intestazione
Wia.h
IDL
Wia.idl
Libreria
Wiaguid.lib