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 |
|
IDL |
|
Libreria |
|