IWiaTransferCallback :: GetNextStream, méthode
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 [ dans]
-
Type : long
Actuellement inutilisé. Doit être défini sur zéro (0).
-
bstrItemName [ dans]
-
Type : BSTR
Spécifie le nom de l’élément pour lequel créer un flux.
-
bstrFullItemName [ dans]
-
Type : BSTR
Spécifie le nom complet de l’élément pour lequel créer un flux.
-
ppDestination [ à]
-
Type : IStream**
Reçoit l’adresse d’un pointeur vers le nouvel objet IStream .
Valeur retournée
Type : HRESULT
Si cette méthode est réussie, elle retourne la valeur _ 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 minipilote WIA (Windows Image Acquisition) 2,0 l’appelle lors de l’acquisition d’images pour récupérer 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 y sont écrits à chaque écriture, car les données d’image non filtrées peuvent provenir du composant WIA 2,0 Preview et non du pilote. Le composant d’aperçu WIA 2,0 écrit toujours l’intégralité des données d’image non filtrées dans le flux du filtre une seule fois, ce qui signifie que le flux du filtre a une source en écriture. Si le pilote et le composant d’aperçu écrivent 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é, alors que son pilote correspondant écrit toujours les données d’en-tête en premier dans une écriture. Elle ne peut pas non plus supposer qu’une écriture suivante ne contient qu’une seule ligne de numérisation. Le flux de filtrage peut donc avoir à compter le nombre d’octets écrits pour déterminer, par exemple, où les données de l’image démarrent.
L’implémentation IWiaTransferCallback :: GetNextStream du filtre de traitement d’image doit lire les propriétés nécessaires à 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. Cela est dû au fait que l’image en cours d’acquisition peut être un élément enfant de pWiaItem2. Par exemple, lors d’une acquisition de dossiers, 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 enfant WIA de l' 2,0 acquisition d’images.
Configuration requise
| Condition requise | Valeur |
|---|---|
| Client minimal pris en charge |
Applications de [ Bureau Windows Vista uniquement] |
| Serveur minimal pris en charge |
Applications de bureau Windows Server 2008 [ uniquement] |
| En-tête |
|
| MIDL |
|
| Bibliothèque |
|