Bonjour tout le monde,
J'ai le même problème qu'une autre personne qui a posté un message dans le forum de Programmation Windows, mais qui n'a pa eu de succès ^^
Alors je cite son message pour relancer le sujet ici.
Merci d'avance

Citation Envoyé par kidpaddle2 Voir le message
Bonjour,

On dirait qu'une partie de code à première vue très simpliste me pose quelques problèmes : CFileDialog semble ne pas avoir été très bien conçue quant au multiselect. En effet, avec le code suivant, la messagebox "Trapped" s'affiche, ce qui veut dire que le buffer utilisé par CFileDialog est trop petit...

Que puis-je y faire ?

Voici le code :
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <cderr.h>
 
/**
* \brief Browse button procedure : saves selected songs paths in the playlist
*/
void CPlayTyleDlg::OnBrowseBtn()
{
	static char const *FILTERS = "Music File |*.mp3;*.ogg;*.wav;*.wma||"; //And so on
 
	CFileDialog openDlg(
				    TRUE,
				    NULL,
				    NULL,
	                            OFN_ALLOWMULTISELECT|OFN_EXPLORER|OFN_FILEMUSTEXIST,
			            FILTERS,
				    this
				);
 
	//Buffer troubles... why ?
	if(openDlg.DoModal() == IDOK)
	{
		POSITION pos = openDlg.GetStartPosition();
 
		do
		{
			m_playlist.Add(openDlg.GetNextPathName(pos));
 
		}while(pos != NULL);
	}
	else if(CommDlgExtendedError() == FNERR_BUFFERTOOSMALL)
	{
		AfxMessageBox(_T("Trapped"));
	}
}

Merci d'avance.