Ouverture et fermeture de Flux
L’ouverture de flux de données est semblable à l’ouverture de fichiers. Vous pouvez ouvrir un flux à l’aide de la fonction AVIFileGetStream . Cette fonction crée une interface de flux, place un handle du flux dans l’interface et retourne un pointeur vers l’interface. AVIFileGetStream gère également un décompte de références des applications qui ont ouvert un flux, mais pas celles qui l’ont fermé.
Si vous souhaitez accéder à un flux unique dans un fichier, vous pouvez ouvrir le fichier et le flux à l’aide de la fonction AVIStreamOpenFromFile . Cette fonction combine les arguments Operations et Function des fonctions AVIFileOpen et AVIFileGetStream .
Pour accéder à plusieurs flux dans un fichier, utilisez AVIFileOpen une fois suivi de plusieurs appels à AVIFileGetStream.
Vous pouvez incrémenter le décompte de références d’un flux à l’aide de la fonction AVIStreamAddRef pour garder un flux ouvert lors de l’utilisation d’une fonction qui fermerait normalement le flux.
Vous pouvez fermer un flux à l’aide de la fonction AVIStreamRelease . Cette fonction décrémente le décompte de références du flux et la ferme lorsque le nombre de références atteint zéro. Vos applications doivent équilibrer le nombre de références en incluant un appel à AVIStreamRelease pour chaque utilisation de la fonction AVIFileGetStream, AVIFileCreateStream, AVIStreamAddRef ou AVIStreamOpenFromFile . Lorsque vous publiez un flux qui a été ouvert à l’aide de AVIStreamOpenFromFile, avifile ferme le fichier contenant le flux. Si votre application libère un fichier qui a des flux de données ouverts, AVIFile ne ferme pas les flux tant que tous les flux n’ont pas été libérés.