Bonjour,

J'ai réalisé un programme de capture vidéo (qui fonctionne correctement), utilisant l'instruction API AVISaveV :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
AVISaveV(vid_and_wavFileName.c_str(), 0, 0, 1, &aviStreamFinal, 0);
Comme la sauvegarde du fichier vidéo peut être longue (fichiers de plusieurs centaines de Mo), je voudrais ajouter une barre de progression pour faire patienter l'utilisateur.
Pour ce faire, il me faut donc ajouter une fonction de callback durant l'execution de cette instruction AVI.
Voici le code que j'utilise :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
AVISaveV(vid_and_wavFileName.c_str(), 0, (AVISAVECALLBACK)SaveCallback(nPercent), 1, &aviStreamFinal, 0);   
 
LONG __stdcall TForm1::SaveCallback(int nPercent)     
{
  Form2->ProgressBar1->Position = nPercent;
  Application->ProcessMessages();
  return(AVIERR_OK);
}
Malheureusement, ce code ne fonctionne pas (ProgressBar inerte) : Selon la documentation Microsoft, "the nPercent parameter specifies the percentage of the file saved".
Quelqu'un a-t-il une idée concernant l'erreur que je fais ?

Une recherche sur Internet montre qu'au moins une dizaine de personnes ont buté sur cette difficulté, mais je n'y ai trouvé aucune solution proposée.