Méthode IWiaTransferCallback::GetNextStream
Obtient un nouveau flux pour l’élément spécifié.
Syntaxe
HRESULT GetNextStream(
[in] LONG lFlags,
[in] BSTR bstrItemName,
[in] BSTR bstrFullItemName,
[out] IStream **ppDestination
);
Paramètres
-
lFlags [in]
-
Type : LONG
Actuellement inutilisé. Doit être défini sur zéro (0).
-
bstrItemName [in]
-
Type : BSTR
Spécifie le nom de l’élément pour lequel créer le flux.
-
bstrFullItemName [in]
-
Type : BSTR
Spécifie le nom complet de l’élément pour lequel créer le flux.
-
ppDestination [out]
-
Type : IStream**
Reçoit l’adresse d’un pointeur vers le nouvel objet IStream .
Valeur retournée
Type : HRESULT
Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT .
Notes
Lorsque cette méthode est implémentée par un filtre de traitement d’image, le minidriver WiA (Windows Image Acquisition) 2.0 l’appelle lors de l’acquisition d’image pour obtenir le flux de destination à partir du client.
IWiaTransferCallback::GetNextStream d’un filtre doit déléguer à la méthode de rappel de l’application. Le filtre utilise le flux retourné par l’implémentation IWiaTransferCallback::GetNextStream du rappel d’application pour créer son propre flux qu’il transmet au service WIA 2.0. Le filtrage est effectué lorsque le flux du filtre appelle la méthode IStream::Write .
Le flux du filtre ne peut pas faire d’hypothèses sur le nombre d’octets qui lui sont écrits à chaque écriture, car les données d’image non filtrées peuvent provenir du composant WIA 2.0 Preview plutôt que du pilote. Le composant WIA 2.0 Preview écrit toujours l’intégralité des données d’image non filtrées dans le flux du filtre une seule fois, ce qui signifie qu’une seule source écrit dans le flux du filtre. Si le pilote et le composant d’aperçu écrivent tous les deux dans le flux du filtre, le flux du filtre ne peut pas supposer, par exemple, qu’il recevra l’en-tête complet la première fois que IStream::Write est appelé, bien que son pilote correspondant écrive toujours les données d’en-tête en premier dans une seule écriture. Il ne peut pas non plus supposer qu’une écriture suivante contient exactement une ligne d’analyse. Par conséquent, le flux de filtrage peut avoir à compter le nombre d’octets écrits dans celui-ci pour déterminer, par exemple, où les données d’image commencent.
L’implémentation IWiaTransferCallback::GetNextStream du filtre de traitement d’image doit lire les propriétés nécessaires pour son traitement d’image à partir de l’élément pour lequel l’image est acquise. Le filtre ne lit pas les propriétés directement à partir du pWiaItem2 passé dans InitializeFilter. Au lieu de cela, le filtre doit appeler FindItemByName sur cet élément WIA 2.0 pour obtenir l’élément WIA 2.0 réel. La raison en est que l’image en cours d’acquisition peut en fait être un élément enfant de pWiaItem2. Par exemple, lors d’une acquisition de dossier, le filtre utilise pWiaItem2 pour obtenir les éléments enfants de pWiaItem2 dans IWiaTransferCallback::GetNextStream (lors d’une acquisition de dossier, le pilote retourne les images représentées par les éléments enfants de pWiaItem2). Il en va de même lorsque le composant WIA 2.0 Preview appelle le filtre de traitement d’image en passant un élément WIA 2.0 enfant.
Spécifications
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge |
Windows Server 2008 [applications de bureau uniquement] |
En-tête |
|
IDL |
|
Bibliothèque |
|